From 3cb36b0c4124d596bc507001c0f9d5acf850947c Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Sun, 30 Nov 2025 16:50:04 +0100 Subject: [PATCH] chore(setup): create core skeleton --- .AI_INSTRUCTIONS_SYNC.md | 41 - .ai/README.md | 148 - .ai/core/application-architecture.md | 604 - .ai/core/deployment-architecture.md | 666 - .ai/core/project-overview.md | 156 - .ai/core/technology-stack.md | 245 - .ai/development/development-workflow.md | 648 - .ai/development/laravel-boost.md | 402 - .ai/development/testing-patterns.md | 648 - .ai/meta/maintaining-docs.md | 172 - .ai/meta/sync-guide.md | 214 - .ai/patterns/api-and-routing.md | 469 - .ai/patterns/database-patterns.md | 324 - .ai/patterns/form-components.md | 447 - .ai/patterns/frontend-patterns.md | 696 - .ai/patterns/security-patterns.md | 1100 - .coolify-logo | 8 - .cursor/mcp.json | 11 - .cursor/rules/coolify-ai-docs.mdc | 156 - .dockerignore | 38 - .editorconfig | 2 +- .env.development.example | 30 +- .env.dusk.ci | 15 - .env.example | 65 + .env.production | 18 - .env.production.example | 9 + .env.testing | 14 + .env.windows-docker-desktop.example | 13 - .gitattributes | 2 +- .github/FUNDING.yaml | 2 - .github/ISSUE_TEMPLATE/01_BUG_REPORT.yml | 65 - .../ISSUE_TEMPLATE/02_ENHANCEMENT_BOUNTY.yml | 31 - .github/ISSUE_TEMPLATE/config.yml | 18 - .github/pull_request_template.md | 13 - ...lock-closed-issues-discussions-and-prs.yml | 22 - .../chore-manage-stale-issues-and-prs.yml | 32 - .github/workflows/chore-pr-comments.yml | 49 - ...e-remove-labels-and-assignees-on-close.yml | 86 - .github/workflows/cleanup-ghcr-untagged.yml | 22 - .github/workflows/coolify-helper-next.yml | 117 - .github/workflows/coolify-helper.yml | 116 - .../workflows/coolify-production-build.yml | 121 - .github/workflows/coolify-realtime-next.yml | 120 - .github/workflows/coolify-realtime.yml | 120 - .github/workflows/coolify-staging-build.yml | 133 - .github/workflows/coolify-testing-host.yml | 104 - .github/workflows/generate-changelog.yml | 36 - .gitignore | 28 +- .mcp.json | 11 - .phpactor.json | 4 - CLAUDE.md | 320 - CODE_OF_CONDUCT.md | 94 - README.md | 178 +- RELEASE.md | 133 - TECH_STACK.md | 29 - app/Actions/Application/GenerateConfig.php | 16 - .../Application/IsHorizonQueueEmpty.php | 37 - app/Actions/Application/LoadComposeFile.php | 16 - app/Actions/Application/StopApplication.php | 60 - .../Application/StopApplicationOneServer.php | 41 - .../CoolifyTask/PrepareCoolifyTask.php | 54 - app/Actions/CoolifyTask/RunRemoteProcess.php | 194 - app/Actions/Database/RestartDatabase.php | 29 - app/Actions/Database/StartClickhouse.php | 167 - app/Actions/Database/StartDatabase.php | 59 - app/Actions/Database/StartDatabaseProxy.php | 124 - app/Actions/Database/StartDragonfly.php | 265 - app/Actions/Database/StartKeydb.php | 310 - app/Actions/Database/StartMariadb.php | 292 - app/Actions/Database/StartMongodb.php | 348 - app/Actions/Database/StartMysql.php | 295 - app/Actions/Database/StartPostgresql.php | 333 - app/Actions/Database/StartRedis.php | 324 - app/Actions/Database/StopDatabase.php | 56 - app/Actions/Database/StopDatabaseProxy.php | 38 - app/Actions/Docker/GetContainersStatus.php | 535 - app/Actions/Fortify/CreateNewUser.php | 70 - app/Actions/Fortify/ResetUserPassword.php | 29 - app/Actions/Fortify/UpdateUserPassword.php | 31 - .../Fortify/UpdateUserProfileInformation.php | 60 - app/Actions/Proxy/CheckProxy.php | 417 - app/Actions/Proxy/GetProxyConfiguration.php | 53 - app/Actions/Proxy/SaveProxyConfiguration.php | 27 - app/Actions/Proxy/StartProxy.php | 101 - app/Actions/Proxy/StopProxy.php | 51 - app/Actions/Server/CheckUpdates.php | 222 - app/Actions/Server/CleanupDocker.php | 60 - app/Actions/Server/ConfigureCloudflared.php | 60 - app/Actions/Server/DeleteServer.php | 103 - app/Actions/Server/InstallDocker.php | 153 - app/Actions/Server/InstallPrerequisites.php | 57 - app/Actions/Server/ResourcesCheck.php | 41 - app/Actions/Server/RestartContainer.php | 16 - app/Actions/Server/RunCommand.php | 17 - app/Actions/Server/StartLogDrain.php | 221 - app/Actions/Server/StartSentinel.php | 71 - app/Actions/Server/StopLogDrain.php | 20 - app/Actions/Server/StopSentinel.php | 17 - app/Actions/Server/UpdateCoolify.php | 133 - app/Actions/Server/UpdatePackage.php | 52 - app/Actions/Server/ValidatePrerequisites.php | 40 - app/Actions/Server/ValidateServer.php | 79 - app/Actions/Service/DeleteService.php | 78 - app/Actions/Service/RestartService.php | 20 - app/Actions/Service/StartService.php | 52 - app/Actions/Service/StopService.php | 65 - app/Actions/Shared/ComplexStatusCheck.php | 88 - app/Actions/Stripe/CancelSubscription.php | 209 - app/Actions/User/DeleteUserResources.php | 131 - app/Actions/User/DeleteUserServers.php | 77 - app/Actions/User/DeleteUserTeams.php | 202 - app/Console/Commands/AdminDeleteUser.php | 1173 - .../CheckApplicationDeploymentQueue.php | 50 - .../Commands/CheckTraefikVersionCommand.php | 30 - .../CleanupApplicationDeploymentQueue.php | 26 - app/Console/Commands/CleanupDatabase.php | 68 - app/Console/Commands/CleanupNames.php | 214 - app/Console/Commands/CleanupRedis.php | 425 - .../Commands/CleanupStuckedResources.php | 459 - .../Commands/CleanupUnreachableServers.php | 27 - .../Commands/ClearGlobalSearchCache.php | 83 - .../Commands/Cloud/CloudFixSubscription.php | 879 - .../Commands/Cloud/RestoreDatabase.php | 219 - app/Console/Commands/Dev.php | 91 - app/Console/Commands/Emails.php | 277 - app/Console/Commands/Generate/OpenApi.php | 39 - app/Console/Commands/Generate/Services.php | 234 - app/Console/Commands/Horizon.php | 23 - app/Console/Commands/HorizonManage.php | 178 - app/Console/Commands/Init.php | 289 - app/Console/Commands/Migration.php | 24 - app/Console/Commands/NotifyDemo.php | 78 - app/Console/Commands/RootChangeEmail.php | 42 - app/Console/Commands/RootResetPassword.php | 56 - .../Commands/RunScheduledJobsManually.php | 247 - app/Console/Commands/Scheduler.php | 23 - app/Console/Commands/Seeder.php | 24 - app/Console/Commands/ServicesDelete.php | 222 - app/Console/Commands/SyncBunny.php | 700 - .../Commands/UpdateServiceVersions.php | 791 - app/Console/Commands/ViewScheduledLogs.php | 278 - app/Console/Kernel.php | 142 - .../CustomJobRepositoryInterface.php | 19 - app/Data/CoolifyTaskArgs.php | 30 - app/Data/ServerMetadata.php | 17 - app/Enums/ActivityTypes.php | 9 - app/Enums/ApplicationDeploymentStatus.php | 12 - app/Enums/BuildPackTypes.php | 11 - app/Enums/ContainerStatusTypes.php | 14 - app/Enums/NewDatabaseTypes.php | 15 - app/Enums/NewResourceTypes.php | 22 - app/Enums/ProcessStatus.php | 14 - app/Enums/ProxyTypes.php | 17 - app/Enums/RedirectTypes.php | 10 - app/Enums/Role.php | 37 - app/Enums/StaticImageTypes.php | 8 - .../ApplicationConfigurationChanged.php | 35 - app/Events/ApplicationStatusChanged.php | 35 - app/Events/BackupCreated.php | 36 - app/Events/CloudflareTunnelChanged.php | 14 - app/Events/CloudflareTunnelConfigured.php | 35 - app/Events/DatabaseProxyStopped.php | 35 - app/Events/DatabaseStatusChanged.php | 36 - app/Events/DockerCleanupDone.php | 24 - app/Events/FileStorageChanged.php | 35 - app/Events/ProxyStatusChanged.php | 14 - app/Events/ProxyStatusChangedUI.php | 35 - app/Events/RestoreJobFinished.php | 40 - app/Events/S3RestoreJobFinished.php | 56 - app/Events/ScheduledTaskDone.php | 35 - app/Events/SentinelRestarted.php | 39 - app/Events/ServerPackageUpdated.php | 35 - app/Events/ServerReachabilityChanged.php | 17 - app/Events/ServerValidated.php | 51 - app/Events/ServiceChecked.php | 36 - app/Events/ServiceStatusChanged.php | 34 - app/Events/TestEvent.php | 34 - app/Exceptions/DeploymentException.php | 32 - app/Exceptions/Handler.php | 126 - app/Exceptions/NonReportableException.php | 31 - app/Exceptions/ProcessException.php | 7 - app/Helpers/SshMultiplexingHelper.php | 311 - app/Helpers/SshRetryHandler.php | 34 - app/Helpers/SslHelper.php | 233 - .../Api/ApplicationsController.php | 3449 -- .../Controllers/Api/DatabasesController.php | 2752 - app/Http/Controllers/Api/DeployController.php | 614 - app/Http/Controllers/Api/GithubController.php | 745 - app/Http/Controllers/Api/OpenApi.php | 72 - app/Http/Controllers/Api/OtherController.php | 189 - .../Controllers/Api/ProjectController.php | 731 - .../Controllers/Api/ResourcesController.php | 68 - .../Controllers/Api/SecurityController.php | 423 - .../Controllers/Api/ServersController.php | 836 - .../Controllers/Api/ServicesController.php | 1639 - app/Http/Controllers/Api/TeamController.php | 277 - app/Http/Controllers/Controller.php | 161 - app/Http/Controllers/MagicController.php | 84 - app/Http/Controllers/OauthController.php | 43 - app/Http/Controllers/UploadController.php | 81 - app/Http/Controllers/Webhook/Bitbucket.php | 211 - app/Http/Controllers/Webhook/Gitea.php | 244 - app/Http/Controllers/Webhook/Github.php | 657 - app/Http/Controllers/Webhook/Gitlab.php | 277 - app/Http/Controllers/Webhook/Stripe.php | 47 - app/Http/Kernel.php | 78 - app/Http/Middleware/ApiAbility.php | 27 - app/Http/Middleware/ApiAllowed.php | 38 - app/Http/Middleware/ApiSensitiveData.php | 21 - app/Http/Middleware/Authenticate.php | 17 - app/Http/Middleware/CanAccessTerminal.php | 29 - app/Http/Middleware/CanCreateResources.php | 26 - app/Http/Middleware/CanUpdateResource.php | 75 - .../Middleware/CheckForcePasswordReset.php | 38 - .../Middleware/DecideWhatToDoWithUser.php | 61 - app/Http/Middleware/EncryptCookies.php | 17 - .../PreventRequestsDuringMaintenance.php | 18 - .../Middleware/RedirectIfAuthenticated.php | 30 - app/Http/Middleware/TrimStrings.php | 19 - app/Http/Middleware/TrustHosts.php | 96 - app/Http/Middleware/TrustProxies.php | 28 - app/Http/Middleware/ValidateSignature.php | 22 - app/Http/Middleware/VerifyCsrfToken.php | 17 - app/Jobs/ApplicationDeploymentJob.php | 4057 -- app/Jobs/ApplicationPullRequestUpdateJob.php | 93 - app/Jobs/CheckAndStartSentinelJob.php | 52 - app/Jobs/CheckForUpdatesJob.php | 88 - app/Jobs/CheckHelperImageJob.php | 39 - app/Jobs/CheckTraefikVersionForServerJob.php | 173 - app/Jobs/CheckTraefikVersionJob.php | 45 - app/Jobs/CleanupHelperContainersJob.php | 77 - app/Jobs/CleanupInstanceStuffsJob.php | 58 - .../CleanupStaleMultiplexedConnections.php | 82 - app/Jobs/CoolifyTask.php | 111 - app/Jobs/DatabaseBackupJob.php | 717 - app/Jobs/DeleteResourceJob.php | 203 - app/Jobs/DockerCleanupJob.php | 148 - app/Jobs/GithubAppPermissionJob.php | 57 - app/Jobs/PullChangelog.php | 126 - app/Jobs/PullTemplatesFromCDN.php | 42 - app/Jobs/PushServerUpdateJob.php | 597 - app/Jobs/RegenerateSslCertJob.php | 78 - app/Jobs/RestartProxyJob.php | 45 - app/Jobs/ScheduledJobManager.php | 314 - app/Jobs/ScheduledTaskJob.php | 260 - app/Jobs/SendMessageToDiscordJob.php | 46 - app/Jobs/SendMessageToPushoverJob.php | 50 - app/Jobs/SendMessageToSlackJob.php | 60 - app/Jobs/SendMessageToTelegramJob.php | 78 - app/Jobs/SendWebhookJob.php | 60 - app/Jobs/ServerCheckJob.php | 103 - app/Jobs/ServerCleanupMux.php | 40 - app/Jobs/ServerConnectionCheckJob.php | 187 - app/Jobs/ServerFilesFromServerJob.php | 28 - app/Jobs/ServerLimitCheckJob.php | 55 - app/Jobs/ServerManagerJob.php | 170 - app/Jobs/ServerPatchCheckJob.php | 68 - app/Jobs/ServerStorageCheckJob.php | 66 - app/Jobs/ServerStorageSaveJob.php | 26 - app/Jobs/StripeProcessJob.php | 359 - app/Jobs/SubscriptionInvoiceFailedJob.php | 83 - app/Jobs/UpdateCoolifyJob.php | 54 - app/Jobs/UpdateStripeCustomerEmailJob.php | 133 - app/Jobs/ValidateAndInstallServerJob.php | 201 - .../VerifyStripeSubscriptionStatusJob.php | 106 - app/Jobs/VolumeCloneJob.php | 104 - .../CloudflareTunnelChangedNotification.php | 66 - .../MaintenanceModeDisabledNotification.php | 48 - .../MaintenanceModeEnabledNotification.php | 21 - .../ProxyStatusChangedNotification.php | 42 - app/Livewire/ActivityMonitor.php | 107 - app/Livewire/Admin/Index.php | 81 - app/Livewire/Boarding/Index.php | 490 - app/Livewire/Dashboard.php | 30 - app/Livewire/DeploymentsIndicator.php | 50 - app/Livewire/Destination/Index.php | 23 - app/Livewire/Destination/New/Docker.php | 103 - app/Livewire/Destination/Show.php | 102 - app/Livewire/ForcePasswordReset.php | 64 - app/Livewire/GlobalSearch.php | 1465 - app/Livewire/Help.php | 58 - app/Livewire/LayoutPopups.php | 27 - app/Livewire/MonacoEditor.php | 52 - app/Livewire/NavbarDeleteTeam.php | 53 - app/Livewire/Notifications/Discord.php | 207 - app/Livewire/Notifications/Email.php | 383 - app/Livewire/Notifications/Pushover.php | 200 - app/Livewire/Notifications/Slack.php | 193 - app/Livewire/Notifications/Telegram.php | 271 - app/Livewire/Notifications/Webhook.php | 201 - app/Livewire/Profile/Index.php | 274 - app/Livewire/Project/AddEmpty.php | 50 - app/Livewire/Project/Application/Advanced.php | 259 - .../Project/Application/Configuration.php | 67 - .../Project/Application/Deployment/Index.php | 167 - .../Project/Application/Deployment/Show.php | 102 - .../Project/Application/DeploymentNavbar.php | 144 - app/Livewire/Project/Application/General.php | 1045 - app/Livewire/Project/Application/Heading.php | 183 - .../Project/Application/Preview/Form.php | 68 - app/Livewire/Project/Application/Previews.php | 338 - .../Project/Application/PreviewsCompose.php | 121 - app/Livewire/Project/Application/Rollback.php | 87 - app/Livewire/Project/Application/Source.php | 160 - app/Livewire/Project/Application/Swarm.php | 75 - app/Livewire/Project/CloneMe.php | 440 - .../Project/Database/Backup/Execution.php | 48 - .../Project/Database/Backup/Index.php | 45 - app/Livewire/Project/Database/BackupEdit.php | 263 - .../Project/Database/BackupExecutions.php | 207 - app/Livewire/Project/Database/BackupNow.php | 22 - .../Project/Database/Clickhouse/General.php | 219 - .../Project/Database/Configuration.php | 73 - .../Database/CreateScheduledBackup.php | 89 - .../Project/Database/Dragonfly/General.php | 290 - app/Livewire/Project/Database/Heading.php | 111 - app/Livewire/Project/Database/Import.php | 615 - app/Livewire/Project/Database/InitScript.php | 56 - .../Project/Database/Keydb/General.php | 284 - .../Project/Database/Mariadb/General.php | 314 - .../Project/Database/Mongodb/General.php | 322 - .../Project/Database/Mysql/General.php | 326 - .../Project/Database/Postgresql/General.php | 467 - .../Project/Database/Redis/General.php | 314 - .../Project/Database/ScheduledBackups.php | 85 - app/Livewire/Project/DeleteEnvironment.php | 47 - app/Livewire/Project/DeleteProject.php | 43 - app/Livewire/Project/Edit.php | 63 - app/Livewire/Project/EnvironmentEdit.php | 79 - app/Livewire/Project/Index.php | 29 - app/Livewire/Project/New/DockerCompose.php | 89 - app/Livewire/Project/New/DockerImage.php | 168 - app/Livewire/Project/New/EmptyProject.php | 21 - .../Project/New/GithubPrivateRepository.php | 244 - .../New/GithubPrivateRepositoryDeployKey.php | 243 - .../Project/New/PublicGitRepository.php | 401 - app/Livewire/Project/New/Select.php | 375 - app/Livewire/Project/New/SimpleDockerfile.php | 85 - app/Livewire/Project/Resource/Create.php | 125 - .../Project/Resource/EnvironmentSelect.php | 35 - app/Livewire/Project/Resource/Index.php | 132 - .../Project/Service/Configuration.php | 122 - app/Livewire/Project/Service/Database.php | 235 - app/Livewire/Project/Service/EditCompose.php | 94 - app/Livewire/Project/Service/EditDomain.php | 175 - app/Livewire/Project/Service/FileStorage.php | 210 - app/Livewire/Project/Service/Heading.php | 166 - app/Livewire/Project/Service/Index.php | 71 - .../Service/ServiceApplicationView.php | 337 - app/Livewire/Project/Service/StackForm.php | 179 - app/Livewire/Project/Service/Storage.php | 223 - .../Project/Shared/ConfigurationChecker.php | 47 - app/Livewire/Project/Shared/Danger.php | 144 - app/Livewire/Project/Shared/Destination.php | 161 - .../Shared/EnvironmentVariable/Add.php | 152 - .../Shared/EnvironmentVariable/All.php | 314 - .../Shared/EnvironmentVariable/Show.php | 288 - .../Shared/ExecuteContainerCommand.php | 236 - app/Livewire/Project/Shared/GetLogs.php | 161 - app/Livewire/Project/Shared/HealthChecks.php | 202 - app/Livewire/Project/Shared/Logs.php | 163 - app/Livewire/Project/Shared/Metrics.php | 59 - .../Project/Shared/ResourceLimits.php | 119 - .../Project/Shared/ResourceOperations.php | 393 - .../Project/Shared/ScheduledTask/Add.php | 140 - .../Project/Shared/ScheduledTask/All.php | 44 - .../Shared/ScheduledTask/Executions.php | 157 - .../Project/Shared/ScheduledTask/Show.php | 175 - app/Livewire/Project/Shared/Storages/All.php | 23 - app/Livewire/Project/Shared/Storages/Show.php | 98 - app/Livewire/Project/Shared/Tags.php | 110 - app/Livewire/Project/Shared/Terminal.php | 97 - app/Livewire/Project/Shared/UploadConfig.php | 46 - app/Livewire/Project/Shared/Webhooks.php | 65 - app/Livewire/Project/Show.php | 72 - app/Livewire/Security/ApiTokens.php | 113 - app/Livewire/Security/CloudInitScriptForm.php | 101 - app/Livewire/Security/CloudInitScripts.php | 52 - .../Security/CloudProviderTokenForm.php | 99 - app/Livewire/Security/CloudProviderTokens.php | 114 - app/Livewire/Security/CloudTokens.php | 13 - app/Livewire/Security/PrivateKey/Create.php | 120 - app/Livewire/Security/PrivateKey/Index.php | 28 - app/Livewire/Security/PrivateKey/Show.php | 135 - app/Livewire/Server/Advanced.php | 85 - app/Livewire/Server/CaCertificate/Show.php | 133 - app/Livewire/Server/Charts.php | 64 - .../Server/CloudProviderToken/Show.php | 144 - app/Livewire/Server/CloudflareTunnel.php | 102 - app/Livewire/Server/Create.php | 38 - app/Livewire/Server/Delete.php | 78 - app/Livewire/Server/Destinations.php | 95 - app/Livewire/Server/DockerCleanup.php | 104 - .../Server/DockerCleanupExecutions.php | 132 - app/Livewire/Server/Index.php | 22 - app/Livewire/Server/LogDrains.php | 195 - app/Livewire/Server/Navbar.php | 204 - app/Livewire/Server/New/ByHetzner.php | 583 - app/Livewire/Server/New/ByIp.php | 136 - app/Livewire/Server/PrivateKey/Show.php | 79 - app/Livewire/Server/Proxy.php | 308 - .../Proxy/DynamicConfigurationNavbar.php | 59 - .../Server/Proxy/DynamicConfigurations.php | 71 - app/Livewire/Server/Proxy/Logs.php | 31 - .../Server/Proxy/NewDynamicConfiguration.php | 106 - app/Livewire/Server/Proxy/Show.php | 28 - app/Livewire/Server/Resources.php | 102 - app/Livewire/Server/Security/Patches.php | 190 - .../Server/Security/TerminalAccess.php | 85 - app/Livewire/Server/Show.php | 472 - app/Livewire/Server/ValidateAndInstall.php | 233 - app/Livewire/Settings/Advanced.php | 177 - app/Livewire/Settings/Index.php | 189 - app/Livewire/Settings/Updates.php | 101 - app/Livewire/SettingsBackup.php | 133 - app/Livewire/SettingsDropdown.php | 73 - app/Livewire/SettingsEmail.php | 241 - app/Livewire/SettingsOauth.php | 145 - .../SharedVariables/Environment/Index.php | 22 - .../SharedVariables/Environment/Show.php | 178 - app/Livewire/SharedVariables/Index.php | 13 - .../SharedVariables/Project/Index.php | 22 - app/Livewire/SharedVariables/Project/Show.php | 169 - app/Livewire/SharedVariables/Team/Index.php | 168 - app/Livewire/Source/Github/Change.php | 386 - app/Livewire/Source/Github/Create.php | 66 - app/Livewire/Storage/Create.php | 125 - app/Livewire/Storage/Form.php | 182 - app/Livewire/Storage/Index.php | 21 - app/Livewire/Storage/Show.php | 28 - app/Livewire/Subscription/Actions.php | 22 - app/Livewire/Subscription/Index.php | 90 - app/Livewire/Subscription/PricingPlans.php | 70 - app/Livewire/Subscription/Show.php | 26 - app/Livewire/SwitchTeam.php | 35 - app/Livewire/Tags/Deployments.php | 37 - app/Livewire/Tags/Show.php | 95 - app/Livewire/Team/AdminView.php | 90 - app/Livewire/Team/Create.php | 45 - app/Livewire/Team/Index.php | 119 - app/Livewire/Team/Invitations.php | 41 - app/Livewire/Team/InviteLink.php | 122 - app/Livewire/Team/Member.php | 89 - app/Livewire/Team/Member/Index.php | 27 - app/Livewire/Team/Storage/Show.php | 24 - app/Livewire/Terminal/Index.php | 91 - app/Livewire/Upgrade.php | 44 - app/Livewire/VerifyEmail.php | 27 - app/Models/Application.php | 2058 - app/Models/ApplicationDeploymentQueue.php | 163 - app/Models/ApplicationPreview.php | 167 - app/Models/ApplicationSetting.php | 50 - app/Models/BaseModel.php | 36 - app/Models/CloudInitScript.php | 33 - app/Models/CloudProviderToken.php | 41 - app/Models/DiscordNotificationSettings.php | 70 - app/Models/DockerCleanupExecution.php | 15 - app/Models/EmailNotificationSettings.php | 79 - app/Models/Environment.php | 135 - app/Models/EnvironmentVariable.php | 253 - app/Models/GithubApp.php | 101 - app/Models/GitlabApp.php | 26 - app/Models/InstanceSettings.php | 119 - app/Models/LocalFileVolume.php | 268 - app/Models/LocalPersistentVolume.php | 117 - app/Models/OauthSetting.php | 36 - app/Models/PersonalAccessToken.php | 16 - app/Models/PrivateKey.php | 333 - app/Models/Project.php | 160 - app/Models/ProjectSetting.php | 15 - app/Models/PushoverNotificationSettings.php | 65 - app/Models/S3Storage.php | 102 - app/Models/ScheduledDatabaseBackup.php | 83 - .../ScheduledDatabaseBackupExecution.php | 24 - app/Models/ScheduledTask.php | 62 - app/Models/ScheduledTaskExecution.php | 25 - app/Models/Server.php | 1441 - app/Models/ServerSetting.php | 153 - app/Models/Service.php | 1428 - app/Models/ServiceApplication.php | 256 - app/Models/ServiceDatabase.php | 155 - app/Models/SharedEnvironmentVariable.php | 30 - app/Models/SlackNotificationSettings.php | 63 - app/Models/SslCertificate.php | 49 - app/Models/StandaloneClickhouse.php | 352 - app/Models/StandaloneDocker.php | 96 - app/Models/StandaloneDragonfly.php | 363 - app/Models/StandaloneKeydb.php | 363 - app/Models/StandaloneMariadb.php | 353 - app/Models/StandaloneMongodb.php | 385 - app/Models/StandaloneMysql.php | 367 - app/Models/StandalonePostgresql.php | 370 - app/Models/StandaloneRedis.php | 410 - app/Models/Subscription.php | 48 - app/Models/SwarmDocker.php | 82 - app/Models/Tag.php | 32 - app/Models/Team.php | 323 - app/Models/TeamInvitation.php | 52 - app/Models/TelegramNotificationSettings.php | 93 - app/Models/User.php | 446 - app/Models/UserChangelogRead.php | 48 - app/Models/WebhookNotificationSettings.php | 68 - .../Application/DeploymentFailed.php | 214 - .../Application/DeploymentSuccess.php | 234 - .../Application/StatusChanged.php | 131 - app/Notifications/Channels/DiscordChannel.php | 29 - app/Notifications/Channels/EmailChannel.php | 145 - .../Channels/PushoverChannel.php | 21 - app/Notifications/Channels/SendsDiscord.php | 8 - app/Notifications/Channels/SendsEmail.php | 8 - app/Notifications/Channels/SendsPushover.php | 8 - app/Notifications/Channels/SendsSlack.php | 8 - app/Notifications/Channels/SendsTelegram.php | 8 - app/Notifications/Channels/SlackChannel.php | 24 - .../Channels/TelegramChannel.php | 48 - .../Channels/TransactionalEmailChannel.php | 47 - app/Notifications/Channels/WebhookChannel.php | 37 - .../Container/ContainerRestarted.php | 123 - .../Container/ContainerStopped.php | 123 - app/Notifications/CustomEmailNotification.php | 18 - app/Notifications/Database/BackupFailed.php | 108 - app/Notifications/Database/BackupSuccess.php | 104 - .../Database/BackupSuccessWithS3Warning.php | 139 - app/Notifications/Dto/DiscordMessage.php | 83 - app/Notifications/Dto/PushoverMessage.php | 50 - app/Notifications/Dto/SlackMessage.php | 32 - .../Internal/GeneralNotification.php | 61 - app/Notifications/Notification.php | 22 - .../ScheduledTask/TaskFailed.php | 141 - .../ScheduledTask/TaskSuccess.php | 132 - .../Server/DockerCleanupFailed.php | 84 - .../Server/DockerCleanupSuccess.php | 84 - app/Notifications/Server/ForceDisabled.php | 77 - app/Notifications/Server/ForceEnabled.php | 68 - .../Server/HetznerDeletionFailed.php | 71 - app/Notifications/Server/HighDiskUsage.php | 105 - app/Notifications/Server/Reachable.php | 91 - app/Notifications/Server/ServerPatchCheck.php | 388 - .../Server/TraefikVersionOutdated.php | 262 - app/Notifications/Server/Unreachable.php | 99 - .../SslExpirationNotification.php | 151 - app/Notifications/Test.php | 125 - .../EmailChangeVerification.php | 43 - .../TransactionalEmails/InvitationLink.php | 39 - .../TransactionalEmails/ResetPassword.php | 75 - .../TransactionalEmails/Test.php | 29 - app/Policies/ApiTokenPolicy.php | 109 - app/Policies/ApplicationPolicy.php | 154 - app/Policies/ApplicationPreviewPolicy.php | 94 - app/Policies/ApplicationSettingPolicy.php | 71 - app/Policies/CloudInitScriptPolicy.php | 65 - app/Policies/CloudProviderTokenPolicy.php | 65 - app/Policies/DatabasePolicy.php | 102 - app/Policies/EnvironmentPolicy.php | 71 - app/Policies/EnvironmentVariablePolicy.php | 73 - app/Policies/GithubAppPolicy.php | 79 - app/Policies/InstanceSettingsPolicy.php | 25 - app/Policies/NotificationPolicy.php | 56 - app/Policies/PrivateKeyPolicy.php | 102 - app/Policies/ProjectPolicy.php | 71 - app/Policies/ResourceCreatePolicy.php | 65 - app/Policies/S3StoragePolicy.php | 75 - app/Policies/ServerPolicy.php | 104 - app/Policies/ServiceApplicationPolicy.php | 63 - app/Policies/ServiceDatabasePolicy.php | 69 - app/Policies/ServicePolicy.php | 128 - .../SharedEnvironmentVariablePolicy.php | 79 - app/Policies/StandaloneDockerPolicy.php | 70 - app/Policies/SwarmDockerPolicy.php | 70 - app/Policies/TeamPolicy.php | 99 - app/Providers/AppServiceProvider.php | 77 +- app/Providers/AuthServiceProvider.php | 77 - app/Providers/BroadcastServiceProvider.php | 19 - .../ConfigurationServiceProvider.php | 21 - app/Providers/DuskServiceProvider.php | 21 - app/Providers/EventServiceProvider.php | 48 - app/Providers/FortifyServiceProvider.php | 149 - app/Providers/HorizonServiceProvider.php | 63 - app/Providers/RouteServiceProvider.php | 58 - app/Providers/TelescopeServiceProvider.php | 67 - app/Repositories/CustomJobRepository.php | 51 - app/Rules/DockerImageFormat.php | 41 - app/Rules/ValidCloudInitYaml.php | 55 - app/Rules/ValidGitBranch.php | 96 - app/Rules/ValidGitRepositoryUrl.php | 157 - app/Rules/ValidHostname.php | 114 - app/Rules/ValidIpOrCidr.php | 63 - app/Services/ChangelogService.php | 300 - app/Services/ConfigurationGenerator.php | 192 - app/Services/ConfigurationRepository.php | 56 - app/Services/ContainerStatusAggregator.php | 251 - app/Services/DockerImageParser.php | 126 - app/Services/HetznerService.php | 150 - app/Services/ProxyDashboardCacheService.php | 57 - app/Support/ValidationPatterns.php | 93 - app/Traits/AuthorizesResourceCreation.php | 20 - app/Traits/CalculatesExcludedStatus.php | 166 - app/Traits/ClearsGlobalSearchCache.php | 128 - app/Traits/DeletesUserSessions.php | 34 - app/Traits/EnvironmentVariableAnalyzer.php | 221 - app/Traits/EnvironmentVariableProtection.php | 63 - app/Traits/ExecuteRemoteCommand.php | 285 - app/Traits/HasConfiguration.php | 42 - app/Traits/HasNotificationSettings.php | 98 - app/Traits/HasSafeStringAttribute.php | 25 - app/Traits/SaveFromRedirect.php | 26 - app/Traits/SshRetryable.php | 174 - app/View/Components/Forms/Button.php | 43 - app/View/Components/Forms/Checkbox.php | 69 - app/View/Components/Forms/Datalist.php | 79 - app/View/Components/Forms/EnvVarInput.php | 94 - app/View/Components/Forms/Input.php | 78 - app/View/Components/Forms/Select.php | 72 - app/View/Components/Forms/Textarea.php | 87 - app/View/Components/Modal.php | 34 - app/View/Components/ResourceView.php | 28 - app/View/Components/Services/Advanced.php | 26 - app/View/Components/Services/Explanation.php | 26 - app/View/Components/Services/Links.php | 55 - app/View/Components/Status/Index.php | 26 - app/View/Components/Status/Services.php | 30 - artisan | 49 +- backlog/config.yml | 16 - ...uild-caching-for-Coolify-staging-builds.md | 58 - ...Add-BuildKit-cache-mounts-to-Dockerfile.md | 24 - ...gistry-caching-for-AMD64-staging-builds.md | 24 - ...stry-caching-for-AARCH64-staging-builds.md | 25 - ...ablish-build-time-baseline-measurements.md | 24 - ...on-and-measure-performance-improvements.md | 28 - ...lts-and-create-production-workflow-plan.md | 25 - ...regular-scheduling-in-cloud-environment.md | 82 - ...-replace-boxes-with-dropdown-selections.md | 30 - bootstrap/app.php | 66 +- bootstrap/getHelperVersion.php | 10 - bootstrap/getRealtimeVersion.php | 10 - bootstrap/getVersion.php | 10 - bootstrap/helpers/api.php | 181 - bootstrap/helpers/applications.php | 355 - bootstrap/helpers/constants.php | 80 - bootstrap/helpers/databases.php | 456 - bootstrap/helpers/docker.php | 1378 - bootstrap/helpers/domains.php | 237 - bootstrap/helpers/github.php | 164 - bootstrap/helpers/notifications.php | 77 - bootstrap/helpers/parsers.php | 2468 - bootstrap/helpers/proxy.php | 475 - bootstrap/helpers/remoteProcess.php | 331 - bootstrap/helpers/services.php | 393 - bootstrap/helpers/shared.php | 3310 - bootstrap/helpers/socialite.php | 83 - bootstrap/helpers/subscriptions.php | 110 - bootstrap/helpers/sudo.php | 152 - bootstrap/helpers/timezone.php | 42 - bootstrap/helpers/versions.php | 53 - bootstrap/includeHelpers.php | 6 - bootstrap/providers.php | 5 + cliff.toml | 84 - composer.json | 148 +- composer.lock | 8317 +-- conductor.json | 7 - config/api.php | 5 - config/app.php | 140 +- config/auth.php | 36 +- config/broadcasting.php | 70 - config/cache.php | 32 +- config/chunk-upload.php | 45 - config/constants.php | 124 - config/cors.php | 34 - config/database.php | 115 +- config/debugbar.php | 326 - config/filesystems.php | 50 +- config/fortify.php | 148 - config/hashing.php | 52 - config/horizon.php | 218 - config/livewire.php | 150 - config/logging.php | 51 +- config/mail.php | 78 +- config/purify.php | 115 - config/queue.php | 58 +- config/ray.php | 108 - config/sanctum.php | 68 - config/sentry.php | 85 - config/services.php | 39 +- config/session.php | 78 +- config/subscription.php | 12 - config/telescope.php | 205 - config/testing.php | 6 - config/view.php | 36 - database/.gitignore | 1 - database/factories/ApplicationFactory.php | 22 - database/factories/ServerFactory.php | 17 - database/factories/TeamFactory.php | 40 - database/factories/UserFactory.php | 37 - .../2014_10_12_000000_create_users_table.php | 32 - ...000_create_password_reset_tokens_table.php | 28 - ..._add_two_factor_columns_to_users_table.php | 46 - ..._100000_create_telescope_entries_table.php | 70 - ...01_create_personal_access_tokens_table.php | 34 - ...03_20_112410_create_activity_log_table.php | 27 - ...add_event_column_to_activity_log_table.php | 22 - ...atch_uuid_column_to_activity_log_table.php | 22 - ...023_03_20_112809_create_sessions_table.php | 31 - .../2023_03_20_112811_create_teams_table.php | 34 - ...23_03_20_112812_create_team_user_table.php | 32 - ...0_112813_create_team_invitations_table.php | 35 - ..._112814_create_instance_settings_table.php | 38 - ...2023_03_24_140711_create_servers_table.php | 36 - ...24_140712_create_server_settings_table.php | 33 - ...03_24_140853_create_private_keys_table.php | 33 - ...023_03_27_075351_create_projects_table.php | 33 - ...7_075443_create_project_settings_table.php | 29 - ...03_27_075444_create_environments_table.php | 30 - ...03_27_081716_create_applications_table.php | 85 - ...1717_create_application_settings_table.php | 38 - ...1718_create_application_previews_table.php | 36 - ...023_03_27_083621_create_services_table.php | 33 - ...085020_create_standalone_dockers_table.php | 33 - ...3_27_085022_create_swarm_dockers_table.php | 31 - ...3_03_28_062150_create_kubernetes_table.php | 29 - ..._03_28_083723_create_github_apps_table.php | 47 - ..._03_28_083726_create_gitlab_apps_table.php | 49 - ..._create_local_persistent_volumes_table.php | 35 - ...548_create_environment_variables_table.php | 40 - ..._05_17_104039_create_failed_jobs_table.php | 32 - ...te_application_deployment_queues_table.php | 34 - ...3_06_22_131459_move_wildcard_to_server.php | 34 - ..._wildcard_domain_from_instancesettings.php | 28 - ...2023_06_23_110548_next_channel_updates.php | 28 - ..._23_114131_change_env_var_value_length.php | 28 - ...efault_redirect_from_instance_settings.php | 28 - ...lication_deployment_queues_as_activity.php | 30 - ...4_add_disk_usage_percentage_to_servers.php | 28 - ...7_13_115117_create_subscriptions_table.php | 39 - ...023_07_13_120719_create_webhooks_table.php | 31 - ...20721_add_license_to_instance_settings.php | 30 - ...2013_smtp_discord_schemaless_to_normal.php | 193 - ...escription_field_to_applications_table.php | 28 - ...remove_foreignId_environment_variables.php | 32 - ...54_add_readonly_localpersistentvolumes.php | 28 - ..._08_07_073651_create_s3_storages_table.php | 37 - ...50_create_standalone_postgresqls_table.php | 58 - ...reate_scheduled_database_backups_table.php | 30 - ...duled_database_backup_executions_table.php | 27 - ...1311_add_backup_notifications_to_teams.php | 24 - ...8_add_dockerfile_to_applications_table.php | 25 - ...23_08_15_095902_create_waitlists_table.php | 31 - .../2023_08_15_111125_update_users_table.php | 28 - ...te_servers_add_unreachable_count_table.php | 28 - ...023_08_22_071048_add_boarding_to_teams.php | 28 - ...2023_08_22_071049_update_webhooks_type.php | 29 - ..._22_071050_update_subscriptions_stripe.php | 52 - ...71051_add_stripe_plan_to_subscriptions.php | 28 - .../2023_08_22_071052_add_resend_as_email.php | 30 - ...22_071053_add_resend_as_email_to_teams.php | 32 - .../2023_08_22_071054_add_stripe_reasons.php | 30 - ...055_add_discord_notifications_to_teams.php | 34 - ...2_071056_update_telegram_notifications.php | 29 - ...057_add_nixpkgsarchive_to_applications.php | 22 - ..._nixpkgsarchive_to_applications_remove.php | 22 - ...23_08_22_071059_add_stripe_trial_ended.php | 28 - ...2_071060_change_invitation_link_length.php | 28 - ...023_09_20_082541_update_services_table.php | 34 - ..._082733_create_service_databases_table.php | 38 - ...2737_create_service_applications_table.php | 39 - ...549_update_environment_variables_table.php | 28 - ...185356_create_local_file_volumes_table.php | 34 - ...111808_update_servers_with_cloudflared.php | 28 - ...remove_destination_from_services_table.php | 29 - ...1811_update_service_applications_table.php | 32 - ..._111812_update_service_databases_table.php | 30 - ...23_111813_update_users_databases_table.php | 28 - ...111814_update_local_file_volumes_table.php | 28 - ..._add_healthcheck_disable_to_apps_table.php | 28 - ...1816_add_destination_to_services_table.php | 28 - ...use_instance_email_settings_by_default.php | 28 - ...111818_set_notifications_on_by_default.php | 30 - .../2023_09_23_111819_add_server_emails.php | 30 - ...08_111819_add_server_unreachable_count.php | 28 - ..._10_10_100320_update_s3_storages_table.php | 30 - ...dockerfile_location_applications_table.php | 28 - ...2_132430_create_standalone_redis_table.php | 54 - ...e_redis_to_environment_variables_table.php | 28 - ...2432_add_database_selection_to_backups.php | 34 - ...9_add_custom_labels_applications_table.php | 28 - ...01331_create_standalone_mongodbs_table.php | 56 - ...mongodb_to_environment_variables_table.php | 28 - ..._103548_create_standalone_mysqls_table.php | 57 - ...20523_create_standalone_mariadbs_table.php | 57 - ...e_mysql_to_environment_variables_table.php | 30 - ...wn_once_to_environment_variables_table.php | 28 - ...100437_add_restart_to_deployment_queue.php | 28 - ..._07_123731_add_target_build_dockerfile.php | 28 - ...dd_custom_config_standalone_postgresql.php | 30 - ...2_add_public_port_to_service_databases.php | 30 - ..._12_180605_change_fqdn_to_longer_field.php | 40 - ...3_11_13_133059_add_sponsorship_disable.php | 28 - ...11_14_103450_add_manual_webhook_secret.php | 30 - .../2023_11_14_121416_add_git_type.php | 34 - ...01819_add_high_disk_usage_notification.php | 30 - .../2023_11_16_220647_add_log_drains.php | 46 - ...160437_add_drain_log_enable_by_service.php | 76 - .../2023_11_20_094628_add_gpu_settings.php | 36 - ...20_add_additional_destinations_to_apps.php | 28 - ..._24_080341_add_docker_compose_location.php | 42 - ..._28_143533_add_fields_to_swarm_dockers.php | 30 - ...3_11_29_075937_change_swarm_properties.php | 30 - ...3_12_01_091723_save_logs_view_settings.php | 64 - ...dd_custom_fluentd_config_for_logdrains.php | 32 - ..._12_08_162228_add_soft_delete_services.php | 28 - ...103611_add_realtime_connection_problem.php | 28 - .../2023_12_13_110214_add_soft_deletes.php | 70 - ...dd_custom_docker_compose_start_command.php | 30 - ..._12_18_093514_add_swarm_related_things.php | 36 - ...2_19_124111_add_swarm_cluster_grouping.php | 28 - ...134507_add_description_to_environments.php | 28 - ...31_173041_create_scheduled_tasks_table.php | 37 - ...create_scheduled_task_executions_table.php | 31 - ...1_02_113855_add_raw_compose_deployment.php | 28 - ...2024_01_12_123422_update_cpuset_limits.php | 76 - ...024_01_15_084609_add_custom_dns_server.php | 30 - ...4_01_16_115005_add_build_server_enable.php | 28 - ..._130328_add_docker_network_to_services.php | 28 - ...32_add_manual_webhook_secret_bitbucket.php | 28 - ...ate_shared_environment_variables_table.php | 37 - ...concurrent_number_of_builds_per_server.php | 28 - ...4_01_25_073212_add_server_id_to_queues.php | 28 - ...ation_name_and_deployment_url_to_queue.php | 32 - ...1_29_072322_change_env_variable_length.php | 28 - ...9_145200_add_custom_docker_run_options.php | 28 - .../2024_02_01_111228_create_tags_table.php | 38 - ...215_add_destination_to_app_deployments.php | 28 - ..._06_132748_add_additional_destinations.php | 37 - ...23_add_post_deployment_to_applications.php | 34 - ...04_add_dynamic_timeout_for_deployments.php | 28 - ..._consistent_application_container_name.php | 28 - ...192025_add_is_gzip_enabled_to_services.php | 28 - ...0_165045_add_permissions_to_github_app.php | 34 - ...090900_add_only_this_server_deployment.php | 28 - ...custom_server_limits_to_teams_ultimate.php | 28 - ...222150_add_server_force_disabled_field.php | 28 - ..._gzip_enabled_and_stripprefix_settings.php | 44 - ...add_notifications_notification_disable.php | 28 - .../2024_03_08_180457_nullable_password.php | 28 - ...024_03_11_150013_create_oauth_settings.php | 33 - .../2024_03_14_214402_add_multiline_envs.php | 34 - .../2024_03_18_101440_add_version_of_envs.php | 34 - ...3_22_080914_remove_popup_notifications.php | 30 - ...6_122110_remove_realtime_notifications.php | 28 - ...4_03_28_114620_add_watch_paths_to_apps.php | 28 - ...517_make_custom_docker_commands_longer.php | 28 - ..._071920_create_standalone_keydbs_table.php | 64 - ...20_create_standalone_dragonflies_table.php | 63 - ...19_create_standalone_clickhouses_table.php | 64 - ...4015_add_permission_local_file_volumes.php | 30 - ...337_add_config_hash_to_other_resources.php | 76 - ...024_04_15_094703_add_literal_variables.php | 34 - ...16_083919_add_service_type_on_creation.php | 28 - .../2024_04_17_132541_add_rollback_queues.php | 28 - ...docker_network_to_application_settings.php | 28 - ...29_111956_add_custom_hc_indicator_apps.php | 28 - ...dd_custom_name_to_application_settings.php | 28 - .../2024_05_07_124019_add_server_metrics.php | 28 - ...5_10_085215_make_stripe_comment_longer.php | 28 - ...commit_message_to_app_deployment_queue.php | 28 - ..._15_151236_add_container_escape_toggle.php | 34 - ...24_05_17_082012_add_env_sorting_toggle.php | 28 - ..._scheduled_tasks_notification_to_teams.php | 34 - ...oyment_commands_length_in_applications.php | 30 - ...1713_add_gitea_webhook_to_applications.php | 28 - ...5_101019_add_docker_compose_pr_domains.php | 28 - ...103938_change_pr_issue_commend_id_type.php | 28 - ..._06_11_081614_add_www_non_www_redirect.php | 28 - .../2024_06_18_105948_move_server_metrics.php | 40 - ...4_06_20_102551_add_server_api_sentinel.php | 28 - ...4_06_21_143358_add_api_deployment_type.php | 28 - ...er_instance_settings_add_instance_name.php | 28 - .../2024_06_25_184323_update_db.php | 95 - ...1_115528_add_is_api_allowed_and_iplist.php | 24 - ...05_120217_remove_unique_from_tag_names.php | 28 - ...11_083719_application_compose_versions.php | 28 - ...23828_add_is_container_labels_readonly.php | 28 - ...ettings_is_preserve_repository_enabled.php | 28 - ..._07_18_123458_add_force_cleanup_server.php | 28 - ...9_132617_disable_healtcheck_by_default.php | 28 - ..._112710_add_validation_logs_to_servers.php | 28 - ...5_142659_add_update_frequency_settings.php | 32 - ...4_08_07_155324_add_proxy_label_chooser.php | 28 - ...leanup_fields_to_server_settings_table.php | 59 - ...659_add_local_file_volume_based_on_git.php | 28 - ...mezone_to_server_and_instance_settings.php | 30 - ...d_order_to_environment_variables_table.php | 28 - ...dd_build_server_id_to_deployment_queue.php | 28 - ...05649_add_custom_docker_options_to_dbs.php | 70 - ...dd_compose_parsing_version_to_services.php | 28 - ...dd_helper_version_to_instance_settings.php | 28 - ...062534_change_server_cleanup_to_forced.php | 37 - ...4_09_07_185402_change_cleanup_schedule.php | 37 - ...pdate_server_settings_default_timezone.php | 28 - ...6_111428_encrypt_existing_private_keys.php | 24 - ..._key_fingerprint_to_private_keys_table.php | 39 - ...anup_options_to_servers_settings_table.php | 24 - ...24_09_26_083441_disable_api_by_default.php | 18 - ...add_dump_all_to_standalone_postgresqls.php | 28 - ...straint_from_service_applications_fqdn.php | 34 - ...0_11_114331_add_required_env_variables.php | 28 - ...pdate_metrics_token_in_server_settings.php | 54 - ...add_is_shared_to_environment_variables.php | 22 - ..._16_120026_move_redis_password_to_envs.php | 41 - ...on_settings_to_instance_settings_table.php | 22 - ...0_17_093722_add_soft_delete_to_servers.php | 28 - ...105745_add_server_disk_usage_threshold.php | 28 - ...223_add_server_disk_usage_notification.php | 32 - ...tinel_debug_enabled_to_server_settings.php | 28 - ..._10_30_074601_rename_token_permissions.php | 60 - ...213214_add_last_online_at_to_resources.php | 96 - ...d_custom_nginx_configuration_to_static.php | 28 - ...11_11_125366_add_index_to_activity_log.php | 28 - ..._124742_add_uuid_to_environments_table.php | 38 - ...dd_disable_build_cache_advanced_option.php | 22 - ...eate_email_notification_settings_table.php | 58 - ...te_discord_notification_settings_table.php | 45 - ...e_telegram_notification_settings_table.php | 59 - ...notification_settings_from_teams_table.php | 135 - ...notification_settings_from_teams_table.php | 92 - ...notification_settings_from_teams_table.php | 115 - ...eate_slack_notification_settings_table.php | 58 - ...2024_12_09_105711_drop_waitlists_table.php | 31 - ...ncrypt_instance_settings_email_columns.php | 72 - .../2024_12_10_122143_drop_resale_license.php | 30 - ...e_pushover_notification_settings_table.php | 59 - ...entik_base_url_to_oauth_settings_table.php | 28 - ...pt_resend_api_key_in_instance_settings.php | 46 - ...columns_to_environment_variables_table.php | 165 - ...eck_frequency_to_server_settings_table.php | 28 - ..._142402_update_email_encryption_values.php | 114 - ..._network_aliases_to_applications_table.php | 22 - ...01_08_154008_switch_up_readonly_labels.php | 39 - ...35244_add_horizon_job_details_to_queue.php | 30 - ...ds_to_scheduled_database_backups_table.php | 36 - ...create_docker_cleanup_executions_table.php | 33 - ..._text_in_application_deployment_queues.php | 28 - ...8_add_finished_at_to_executions_tables.php | 38 - ...date_finished_at_timestamps_if_not_set.php | 37 - ..._22_101105_remove_wrongly_created_envs.php | 19 - ...2616_add_ssl_fields_to_database_tables.php | 70 - ...7_153741_create_ssl_certificates_table.php | 34 - ...5223_encrypt_local_file_volumes_fields.php | 133 - ...add_index_to_scheduled_task_executions.php | 38 - .../2025_03_01_112617_add_stripe_past_due.php | 28 - ...deletion_tracking_to_backup_executions.php | 19 - ...2025_03_21_104103_disable_discord_here.php | 28 - ..._104103_disable_mongodb_ssl_by_default.php | 28 - ...00_revert_some_local_volume_encryption.php | 160 - ..._124212_add_specific_spa_configuration.php | 28 - ...5_04_01_124212_stripe_comment_nullable.php | 28 - ...add_application_http_basic_auth_fields.php | 32 - ..._30_134146_add_is_migrated_to_services.php | 36 - ..._100258_add_server_patch_notifications.php | 74 - ...dd_terminal_enabled_to_server_settings.php | 28 - ...06_06_073345_create_server_previous_ip.php | 28 - ...6_123532_change_sentinel_on_by_default.php | 28 - ...pup_enabled_to_instance_settings_table.php | 28 - ...6_131350_optimize_activity_log_indexes.php | 44 - ...leted_at_to_application_previews_table.php | 28 - ...ut_to_scheduled_database_backups_table.php | 18 - ...2403_create_user_changelog_reads_table.php | 34 - ...up_to_scheduled_database_backups_table.php | 28 - ...add_email_change_fields_to_users_table.php | 30 - ...44_change_env_sorting_default_to_false.php | 18 - ...ow_clone_to_application_settings_table.php | 28 - ...public_enabled_to_application_settings.php | 28 - ...ly_from_local_persistent_volumes_table.php | 28 - .../2025_09_10_173300_drop_webhooks_table.php | 31 - ...025_09_10_173402_drop_kubernetes_table.php | 28 - ..._time_from_environment_variables_table.php | 38 - ...me_only_to_environment_variables_table.php | 28 - ..._build_secrets_to_application_settings.php | 28 - ...ildtime_to_environment_variables_table.php | 67 - ...5_10_03_154100_update_clickhouse_image.php | 32 - ...duled_database_backup_executions_table.php | 28 - ...125_create_cloud_provider_tokens_table.php | 33 - ...add_hetzner_server_id_to_servers_table.php | 28 - ...oud_provider_token_id_to_servers_table.php | 29 - ...hetzner_server_status_to_servers_table.php | 28 - ...036_add_is_validating_to_servers_table.php | 28 - ...ev_helper_version_to_instance_settings.php | 28 - ...1_add_timeout_to_scheduled_tasks_table.php | 28 - ...ove_scheduled_task_executions_tracking.php | 31 - ...restart_tracking_to_applications_table.php | 30 - ...efik_version_tracking_to_servers_table.php | 28 - ...utdated_to_email_notification_settings.php | 28 - ...d_id_to_telegram_notification_settings.php | 28 - ...traefik_outdated_info_to_servers_table.php | 28 - ...te_webhook_notification_settings_table.php | 89 - ...000002_create_cloud_init_scripts_table.php | 33 - ...efik_outdated_to_notification_settings.php | 68 - ...ile_data_for_non_dockerfile_buildpacks.php | 31 - ...cache_settings_to_application_settings.php | 30 - database/seeders/ApplicationSeeder.php | 81 - .../seeders/ApplicationSettingsSeeder.php | 19 - database/seeders/CaSslCertSeeder.php | 42 - database/seeders/DatabaseSeeder.php | 35 - .../DisableTwoStepConfirmationSeeder.php | 20 - database/seeders/GithubAppSeeder.php | 39 - database/seeders/GitlabAppSeeder.php | 24 - database/seeders/InstanceSettingsSeeder.php | 45 - .../seeders/LocalPersistentVolumeSeeder.php | 23 - database/seeders/OauthSettingSeeder.php | 69 - .../seeders/PersonalAccessTokenSeeder.php | 115 - .../PopulateSshKeysDirectorySeeder.php | 37 - database/seeders/PrivateKeySeeder.php | 63 - database/seeders/ProductionSeeder.php | 214 - database/seeders/ProjectSeeder.php | 18 - database/seeders/RootUserSeeder.php | 74 - database/seeders/S3StorageSeeder.php | 26 - database/seeders/SentinelSeeder.php | 32 - database/seeders/ServerSeeder.php | 27 - database/seeders/ServerSettingSeeder.php | 22 - .../SharedEnvironmentVariableSeeder.php | 36 - database/seeders/StandaloneDockerSeeder.php | 24 - .../seeders/StandalonePostgresqlSeeder.php | 22 - database/seeders/StandaloneRedisSeeder.php | 22 - database/seeders/TeamSeeder.php | 23 - database/seeders/UserSeeder.php | 28 - .../seeders/local/.gitkeep | 0 docker-compose.dev.yml | 152 - docker-compose.prod.yml | 90 - docker-compose.windows.yml | 133 - docker-compose.yml | 37 - docker/coolify-helper/Dockerfile | 55 - docker/coolify-realtime/Dockerfile | 28 - docker/coolify-realtime/package-lock.json | 370 - docker/coolify-realtime/package.json | 13 - docker/coolify-realtime/soketi-entrypoint.sh | 35 - docker/coolify-realtime/terminal-server.js | 333 - docker/development/Dockerfile | 81 - .../development/etc/nginx/conf.d/custom.conf | 4 - .../etc/nginx/site-opts.d/http.conf | 46 - .../etc/php/conf.d/zzz-custom-php.ini | 10 - .../etc/s6-overlay/s6-rc.d/horizon/run | 12 - .../etc/s6-overlay/s6-rc.d/horizon/type | 1 - .../etc/s6-overlay/s6-rc.d/init-setup/type | 1 - .../etc/s6-overlay/s6-rc.d/init-setup/up | 22 - .../s6-overlay/s6-rc.d/scheduler-worker/run | 13 - .../s6-overlay/s6-rc.d/scheduler-worker/type | 1 - .../s6-rc.d/user/contents.d/scheduler-worker | 0 docker/production/Dockerfile | 145 - .../production/entrypoint.d/99-debug-mode.sh | 8 - .../production/etc/nginx/conf.d/custom.conf | 4 - .../etc/nginx/site-opts.d/http.conf | 46 - .../etc/php/conf.d/zzz-custom-php.ini | 10 - .../etc/s6-overlay/s6-rc.d/db-migration/type | 1 - .../etc/s6-overlay/s6-rc.d/db-migration/up | 11 - .../horizon/dependencies.d/init-script | 0 .../etc/s6-overlay/s6-rc.d/horizon/run | 11 - .../etc/s6-overlay/s6-rc.d/horizon/type | 1 - .../init-script/dependencies.d/init-seeder | 0 .../etc/s6-overlay/s6-rc.d/init-script/type | 1 - .../etc/s6-overlay/s6-rc.d/init-script/up | 12 - .../init-seeder/dependencies.d/db-migration | 0 .../etc/s6-overlay/s6-rc.d/init-seeder/type | 1 - .../etc/s6-overlay/s6-rc.d/init-seeder/up | 12 - .../dependencies.d/init-script | 0 .../s6-overlay/s6-rc.d/scheduler-worker/run | 10 - .../s6-overlay/s6-rc.d/scheduler-worker/type | 1 - .../s6-rc.d/user/contents.d/db-migration | 0 .../s6-rc.d/user/contents.d/horizon | 0 .../s6-rc.d/user/contents.d/init-script | 0 .../s6-rc.d/user/contents.d/init-seeder | 0 .../s6-rc.d/user/contents.d/scheduler-worker | 0 docker/testing-host/Dockerfile | 36 - hooks/pre-commit | 34 - jean.json | 5 - lang/ar.json | 43 - lang/az.json | 43 - lang/cs.json | 34 - lang/de.json | 35 - lang/en.json | 44 - lang/en/passwords.php | 22 - lang/es.json | 34 - lang/fa.json | 34 - lang/fr.json | 43 - lang/id.json | 43 - lang/it.json | 43 - lang/ja.json | 34 - lang/no.json | 43 - lang/pl.json | 44 - lang/pt-br.json | 43 - lang/pt.json | 34 - lang/ro.json | 41 - lang/tr.json | 42 - lang/vi.json | 34 - lang/zh-cn.json | 34 - lang/zh-tw.json | 34 - openapi.json | 10229 --- openapi.yaml | 6594 -- other/logos/advin.png | Bin 33880 -> 0 bytes other/logos/appwrite.svg | 14 - other/logos/arcjet.svg | 25 - other/logos/bc.png | Bin 28644 -> 0 bytes other/logos/blacksmith.svg | 18 - other/logos/branddev.png | Bin 30428 -> 0 bytes other/logos/ccc-logo.webp | Bin 1592 -> 0 bytes other/logos/codext.jpg | Bin 105902 -> 0 bytes other/logos/fractal.png | Bin 5643 -> 0 bytes other/logos/fractal.svg | 40 - other/logos/glueops.webp | Bin 118280 -> 0 bytes other/logos/hetzner.jpg | Bin 196793 -> 0 bytes other/logos/hostinger.svg | 2 - other/logos/internetgarden.ico | Bin 15406 -> 0 bytes other/logos/jobscollider.svg | 12 - other/logos/juxtdigital.png | Bin 105748 -> 0 bytes other/logos/latitude.svg | 1 - other/logos/logto.webp | Bin 5156 -> 0 bytes other/logos/massivegrid.svg | 20 - other/logos/quant.svg | 1 - other/logos/saasykit.png | Bin 84363 -> 0 bytes other/logos/saasykit.webp | Bin 44522 -> 0 bytes other/logos/supaguide.png | Bin 16916 -> 0 bytes other/logos/tigris.svg | 16 - other/logos/trieve_bg.png | Bin 964454 -> 0 bytes other/logos/ubicloud.svg | 1 - other/nightly/.env.production | 18 - other/nightly/docker-compose.prod.yml | 90 - other/nightly/docker-compose.windows.yml | 133 - other/nightly/docker-compose.yml | 37 - other/nightly/install.sh | 866 - other/nightly/upgrade.sh | 72 - other/nightly/versions.json | 29 - package-lock.json | 2878 - package.json | 29 +- phpunit.dusk.xml | 15 - phpunit.xml | 57 +- pint.json | 3 - postcss.config.cjs | 5 - public/coolify-logo-dev-transparent.png | Bin 1775 -> 0 bytes public/coolify-logo-dev-transparent.svg | 1 - public/coolify-logo-monochrome.png | Bin 1826 -> 0 bytes public/coolify-logo-monochrome.svg | 1 - public/coolify-logo-red.png | Bin 1777 -> 0 bytes public/coolify-logo-red.svg | 1 - public/coolify-logo.svg | 1 - public/coolify-transparent.png | Bin 1797 -> 0 bytes public/ente-photos-icon-green.png | Bin 30327 -> 0 bytes .../init-setup => public/favicon.ico | 0 public/heart.png | Bin 3972 -> 0 bytes public/index.php | 47 +- public/js/apexcharts.js | 16 - public/js/dropzone.js | 1 - public/js/echo.js | 2 - .../browser/ui/codicons/codicon/codicon.ttf | Bin 80340 -> 0 bytes .../min/vs/base/worker/workerMain.js | 31 - .../min/vs/basic-languages/abap/abap.js | 10 - .../min/vs/basic-languages/apex/apex.js | 10 - .../min/vs/basic-languages/azcli/azcli.js | 10 - .../min/vs/basic-languages/bat/bat.js | 10 - .../min/vs/basic-languages/bicep/bicep.js | 11 - .../vs/basic-languages/cameligo/cameligo.js | 10 - .../min/vs/basic-languages/clojure/clojure.js | 10 - .../min/vs/basic-languages/coffee/coffee.js | 10 - .../min/vs/basic-languages/cpp/cpp.js | 10 - .../min/vs/basic-languages/csharp/csharp.js | 10 - .../min/vs/basic-languages/csp/csp.js | 10 - .../min/vs/basic-languages/css/css.js | 12 - .../min/vs/basic-languages/cypher/cypher.js | 10 - .../min/vs/basic-languages/dart/dart.js | 10 - .../basic-languages/dockerfile/dockerfile.js | 10 - .../min/vs/basic-languages/ecl/ecl.js | 10 - .../min/vs/basic-languages/elixir/elixir.js | 10 - .../min/vs/basic-languages/flow9/flow9.js | 10 - .../freemarker2/freemarker2.js | 12 - .../min/vs/basic-languages/fsharp/fsharp.js | 10 - .../min/vs/basic-languages/go/go.js | 10 - .../min/vs/basic-languages/graphql/graphql.js | 10 - .../basic-languages/handlebars/handlebars.js | 10 - .../min/vs/basic-languages/hcl/hcl.js | 10 - .../min/vs/basic-languages/html/html.js | 10 - .../min/vs/basic-languages/ini/ini.js | 10 - .../min/vs/basic-languages/java/java.js | 10 - .../basic-languages/javascript/javascript.js | 10 - .../min/vs/basic-languages/julia/julia.js | 10 - .../min/vs/basic-languages/kotlin/kotlin.js | 10 - .../min/vs/basic-languages/less/less.js | 11 - .../min/vs/basic-languages/lexon/lexon.js | 10 - .../min/vs/basic-languages/liquid/liquid.js | 10 - .../min/vs/basic-languages/lua/lua.js | 10 - .../min/vs/basic-languages/m3/m3.js | 10 - .../vs/basic-languages/markdown/markdown.js | 10 - .../min/vs/basic-languages/mdx/mdx.js | 10 - .../min/vs/basic-languages/mips/mips.js | 10 - .../min/vs/basic-languages/msdax/msdax.js | 10 - .../min/vs/basic-languages/mysql/mysql.js | 10 - .../objective-c/objective-c.js | 10 - .../min/vs/basic-languages/pascal/pascal.js | 10 - .../vs/basic-languages/pascaligo/pascaligo.js | 10 - .../min/vs/basic-languages/perl/perl.js | 10 - .../min/vs/basic-languages/pgsql/pgsql.js | 10 - .../min/vs/basic-languages/php/php.js | 10 - .../min/vs/basic-languages/pla/pla.js | 10 - .../vs/basic-languages/postiats/postiats.js | 10 - .../basic-languages/powerquery/powerquery.js | 10 - .../basic-languages/powershell/powershell.js | 10 - .../vs/basic-languages/protobuf/protobuf.js | 11 - .../min/vs/basic-languages/pug/pug.js | 10 - .../min/vs/basic-languages/python/python.js | 10 - .../min/vs/basic-languages/qsharp/qsharp.js | 10 - .../min/vs/basic-languages/r/r.js | 10 - .../min/vs/basic-languages/razor/razor.js | 10 - .../min/vs/basic-languages/redis/redis.js | 10 - .../vs/basic-languages/redshift/redshift.js | 10 - .../restructuredtext/restructuredtext.js | 10 - .../min/vs/basic-languages/ruby/ruby.js | 10 - .../min/vs/basic-languages/rust/rust.js | 10 - .../min/vs/basic-languages/sb/sb.js | 10 - .../min/vs/basic-languages/scala/scala.js | 10 - .../min/vs/basic-languages/scheme/scheme.js | 10 - .../min/vs/basic-languages/scss/scss.js | 12 - .../min/vs/basic-languages/shell/shell.js | 10 - .../vs/basic-languages/solidity/solidity.js | 10 - .../min/vs/basic-languages/sophia/sophia.js | 10 - .../min/vs/basic-languages/sparql/sparql.js | 10 - .../min/vs/basic-languages/sql/sql.js | 10 - .../min/vs/basic-languages/st/st.js | 10 - .../min/vs/basic-languages/swift/swift.js | 13 - .../systemverilog/systemverilog.js | 10 - .../min/vs/basic-languages/tcl/tcl.js | 10 - .../min/vs/basic-languages/twig/twig.js | 10 - .../basic-languages/typescript/typescript.js | 10 - .../vs/basic-languages/typespec/typespec.js | 10 - .../min/vs/basic-languages/vb/vb.js | 10 - .../min/vs/basic-languages/wgsl/wgsl.js | 307 - .../min/vs/basic-languages/xml/xml.js | 10 - .../min/vs/basic-languages/yaml/yaml.js | 10 - .../min/vs/editor/editor.main.css | 8 - .../min/vs/editor/editor.main.js | 798 - .../min/vs/language/css/cssMode.js | 13 - .../min/vs/language/css/cssWorker.js | 77 - .../min/vs/language/html/htmlMode.js | 13 - .../min/vs/language/html/htmlWorker.js | 454 - .../min/vs/language/json/jsonMode.js | 19 - .../min/vs/language/json/jsonWorker.js | 42 - .../min/vs/language/typescript/tsMode.js | 20 - .../min/vs/language/typescript/tsWorker.js | 51328 ---------------- .../js/monaco-editor-0.52.2/min/vs/loader.js | 11 - .../min/vs/nls.messages.de.js | 21 - .../min/vs/nls.messages.es.js | 21 - .../min/vs/nls.messages.fr.js | 19 - .../min/vs/nls.messages.it.js | 19 - .../min/vs/nls.messages.ja.js | 21 - .../min/vs/nls.messages.ko.js | 19 - .../min/vs/nls.messages.ru.js | 21 - .../min/vs/nls.messages.zh-cn.js | 21 - .../min/vs/nls.messages.zh-tw.js | 19 - public/js/purify.min.js | 3 - public/js/pusher.js | 10 - public/robots.txt | 2 +- public/svgs/activepieces.png | Bin 21819 -> 0 bytes public/svgs/actualbudget.png | Bin 613659 -> 0 bytes public/svgs/affine.svg | 88 - public/svgs/anythingllm.svg | 166 - public/svgs/apprise.png | Bin 160907 -> 0 bytes public/svgs/appsmith.svg | 19 - public/svgs/appwrite.svg | 1 - public/svgs/argilla.png | Bin 18955 -> 0 bytes public/svgs/audiobookshelf.svg | 25 - public/svgs/authentik.png | Bin 5736 -> 0 bytes public/svgs/azimutt.png | Bin 12800 -> 0 bytes public/svgs/babybuddy.png | Bin 27699 -> 0 bytes public/svgs/beszel.svg | 1 - public/svgs/bitcoin.svg | 15 - public/svgs/bitwarden.svg | 59 - public/svgs/bluesky.svg | 3 - public/svgs/bookstack.png | Bin 5782 -> 0 bytes public/svgs/browserless.svg | 1 - public/svgs/budge.png | Bin 3376 -> 0 bytes public/svgs/budibase.svg | 21 - public/svgs/bugsink.svg | 45 - public/svgs/calcom.svg | 9 - public/svgs/calibre-web.svg | 5 - public/svgs/cap.svg | 28 - public/svgs/castopod.svg | 5 - public/svgs/changedetection.png | Bin 31507 -> 0 bytes public/svgs/chaskiq.png | Bin 5235 -> 0 bytes public/svgs/chatwoot.svg | 10 - public/svgs/checkmate.png | Bin 4867 -> 0 bytes public/svgs/chroma.svg | 13 - public/svgs/classicpress.svg | 1 - public/svgs/clickhouse.svg | 1 - public/svgs/cloudbeaver.svg | 7 - public/svgs/cloudflared.svg | 26 - public/svgs/cockpit.svg | 7 - public/svgs/code-server.svg | 15 - public/svgs/coder.svg | 8 - public/svgs/codimd.png | Bin 4837 -> 0 bytes public/svgs/convertx.png | Bin 51678 -> 0 bytes public/svgs/convex.svg | 12 - public/svgs/coolify-logo.svg | 9 - public/svgs/coolify.png | Bin 7872 -> 0 bytes public/svgs/cryptgeon.png | Bin 77470 -> 0 bytes public/svgs/cyberchef.jpeg | Bin 14831 -> 0 bytes public/svgs/dashy.png | Bin 59523 -> 0 bytes public/svgs/default.webp | Bin 3522 -> 0 bytes public/svgs/denoKV.svg | 1 - public/svgs/dify.png | Bin 7324 -> 0 bytes public/svgs/directus.svg | 31 - public/svgs/diun.svg | 38 - public/svgs/docker-registry.png | Bin 7191 -> 0 bytes public/svgs/docker.svg | 1 - public/svgs/docmost.png | Bin 1350 -> 0 bytes public/svgs/documenso.png | Bin 10539 -> 0 bytes public/svgs/docuseal.png | Bin 2095 -> 0 bytes public/svgs/dokuwiki.png | Bin 3744 -> 0 bytes public/svgs/dolibarr.png | Bin 195577 -> 0 bytes public/svgs/dozzle.svg | 10 - public/svgs/drizzle.jpeg | Bin 18402 -> 0 bytes public/svgs/drupal.svg | 1 - public/svgs/duplicati.webp | Bin 3780 -> 0 bytes public/svgs/easyappointments.png | Bin 25264 -> 0 bytes public/svgs/edgedb.svg | 3 - public/svgs/elasticsearch.svg | 16 - public/svgs/emby.png | Bin 869641 -> 0 bytes public/svgs/ente-photos.svg | 15 - public/svgs/ente.png | Bin 8770 -> 0 bytes public/svgs/evolution-api.png | Bin 25461 -> 0 bytes public/svgs/evolution-api.svg | 25 - public/svgs/excalidraw.svg | 7 - public/svgs/external-link.svg | 6 - public/svgs/faraday.png | Bin 4015 -> 0 bytes public/svgs/fider.svg | 1 - public/svgs/filebrowser.svg | 147 - public/svgs/fileflows.svg | 5 - public/svgs/firefly.svg | 21 - public/svgs/firefox.svg | 1 - public/svgs/flipt.svg | 21 - public/svgs/flowise.png | Bin 7230 -> 0 bytes public/svgs/forgejo.svg | 1 - public/svgs/formbricks.png | Bin 22089 -> 0 bytes public/svgs/foundryvtt.png | Bin 35049 -> 0 bytes public/svgs/freescout.png | Bin 10089 -> 0 bytes public/svgs/freshrss.png | Bin 14801 -> 0 bytes public/svgs/getoutline.jpeg | Bin 5651 -> 0 bytes public/svgs/ghost.svg | 9 - public/svgs/git.svg | 1 - public/svgs/gitea.svg | 31 - public/svgs/github-runner.png | Bin 13322 -> 0 bytes public/svgs/github.svg | 1 - public/svgs/gitlab.svg | 1 - public/svgs/glance.png | Bin 1167 -> 0 bytes public/svgs/glances.png | Bin 50295 -> 0 bytes public/svgs/glitchtip.png | Bin 16211 -> 0 bytes public/svgs/gotenberg.png | Bin 234321 -> 0 bytes public/svgs/gotify.png | Bin 26294 -> 0 bytes public/svgs/gowa.svg | 1 - public/svgs/grafana.svg | 1 - public/svgs/gramps-web.svg | 154 - public/svgs/grist.svg | 18 - public/svgs/grocy.svg | 21 - public/svgs/heimdall.svg | 11 - public/svgs/hetzner.svg | 6 - public/svgs/heyform.svg | 5 - public/svgs/homarr.svg | 11 - public/svgs/home-assistant.svg | 4 - public/svgs/homebox.svg | 11 - public/svgs/homepage.png | Bin 30860 -> 0 bytes public/svgs/hoppscotch.png | Bin 133464 -> 0 bytes public/svgs/immich.svg | 66 - public/svgs/infisical.png | Bin 4112 -> 0 bytes public/svgs/internal-link.svg | 3 - public/svgs/interviewpal.svg | 1 - public/svgs/invoiceninja.png | Bin 36038 -> 0 bytes public/svgs/it-tools.svg | 6 - public/svgs/jellyfin.svg | 15 - public/svgs/jenkins.svg | 283 - public/svgs/jitsi.svg | 8 - public/svgs/joomla.svg | 14 - public/svgs/joplin.png | Bin 5443 -> 0 bytes public/svgs/jupyter.svg | 90 - public/svgs/karakeep.svg | 1 - public/svgs/keycloak.svg | 55 - public/svgs/kimai.svg | 67 - public/svgs/kuzzle.png | Bin 16439 -> 0 bytes public/svgs/labelstudio.png | Bin 1813 -> 0 bytes public/svgs/langfuse.svg | 9 - public/svgs/leantime.svg | 1 - public/svgs/librechat.svg | 32 - public/svgs/libreoffice.svg | 1 - public/svgs/libretranslate.svg | 1 - public/svgs/limesurvey.svg | 32 - public/svgs/listmonk.svg | 2 - public/svgs/litellm.svg | 1 - public/svgs/litequeen.svg | 1 - public/svgs/lobe-chat.png | Bin 208557 -> 0 bytes public/svgs/logto_dark.svg | 14 - public/svgs/lowcoder.svg | 20 - public/svgs/macos.svg | 1 - public/svgs/mailpit.svg | 5 - public/svgs/mariadb.svg | 1 - public/svgs/marimo.svg | 112 - public/svgs/martin.png | Bin 187011 -> 0 bytes public/svgs/matrix.svg | 7 - public/svgs/mattermost.svg | 6 - public/svgs/mautic.svg | 17 - public/svgs/maybe.svg | 160 - public/svgs/mealie.png | Bin 16365 -> 0 bytes public/svgs/mediawiki.ico | Bin 15406 -> 0 bytes public/svgs/meilisearch.svg | 19 - public/svgs/memos.png | Bin 42519 -> 0 bytes public/svgs/metabase.svg | 1 - public/svgs/metamcp.png | Bin 57872 -> 0 bytes public/svgs/mindsdb.svg | 12 - public/svgs/minecraft.svg | 1 - public/svgs/miniflux.svg | 1 - public/svgs/minio.svg | 1 - public/svgs/mixpost.svg | 5 - public/svgs/mongodb.svg | 1 - public/svgs/moodle.png | Bin 48836 -> 0 bytes public/svgs/mosquitto.svg | 1 - public/svgs/mysql.svg | 1 - public/svgs/n8n.png | Bin 7690 -> 0 bytes public/svgs/navidrome.svg | 1 - public/svgs/neon.svg | 20 - public/svgs/netbird.png | Bin 15277 -> 0 bytes public/svgs/newapi.png | Bin 10512 -> 0 bytes public/svgs/nextcloud.svg | 73 - public/svgs/nexus.png | Bin 6698 -> 0 bytes public/svgs/nitropage.svg | 8 - public/svgs/nocodb.svg | 10 - public/svgs/nodebb.svg | 16 - public/svgs/ntfy.svg | 1 - public/svgs/observium.webp | Bin 65818 -> 0 bytes public/svgs/odoo.svg | 1 - public/svgs/ollama.svg | 14 - public/svgs/once-campfire.png | Bin 405666 -> 0 bytes public/svgs/onedev.svg | 51 - public/svgs/onetimesecret.svg | 6 - public/svgs/openpanel.svg | 1 - public/svgs/openwebui.svg | 3 - public/svgs/opnform.svg | 1 - public/svgs/orangehrm.svg | 1 - public/svgs/organizr.png | Bin 13884 -> 0 bytes public/svgs/osticket.png | Bin 12347 -> 0 bytes public/svgs/overseerr.svg | 6 - public/svgs/owncloud.svg | 84 - public/svgs/pairdrop.png | Bin 61165 -> 0 bytes public/svgs/palworld.svg | 18 - public/svgs/pangolin-logo.png | Bin 33548 -> 0 bytes public/svgs/paperless.svg | 12 - public/svgs/passbolt.svg | 44 - public/svgs/paymenter.svg | 11 - public/svgs/penpot.svg | 3 - public/svgs/peppermint.png | Bin 20389 -> 0 bytes public/svgs/pgbackweb.png | Bin 23304 -> 0 bytes public/svgs/phpmyadmin.svg | 1 - public/svgs/pihole.svg | 1 - public/svgs/pingvinshare.svg | 1 - public/svgs/plane.svg | 6 - public/svgs/plex.svg | 1 - public/svgs/plunk.svg | 1 - public/svgs/pocketbase.svg | 9 - public/svgs/pocketid-logo.png | Bin 4463 -> 0 bytes public/svgs/portainer.png | Bin 6956 -> 0 bytes public/svgs/postgres.svg | 1 - public/svgs/postgresql.svg | 1 - public/svgs/postgresus.svg | 1 - public/svgs/posthog.svg | 7 - public/svgs/postiz.svg | 13 - public/svgs/prefect.png | Bin 3630 -> 0 bytes public/svgs/privatebin.svg | 1 - public/svgs/prowlarr.svg | 1 - public/svgs/pterodactyl.png | Bin 32004 -> 0 bytes public/svgs/qbittorrent.svg | 16 - public/svgs/qdrant.png | Bin 11663 -> 0 bytes public/svgs/rabbitmq.svg | 1 - public/svgs/radarr.svg | 1 - public/svgs/rallly.svg | 1 - public/svgs/readeck.svg | 9 - public/svgs/redis.svg | 1 - public/svgs/redisinsight.png | Bin 4100 -> 0 bytes public/svgs/redlib.svg | 7 - public/svgs/rivet.svg | 1 - public/svgs/rocketchat.svg | 6 - public/svgs/rxresume.svg | 18 - public/svgs/rybbit.svg | 1 - public/svgs/ryot.svg | 14 - public/svgs/seafile.svg | 1 - public/svgs/searxng.svg | 56 - public/svgs/sequin.svg | 16 - public/svgs/signoz.svg | 30 - public/svgs/siyuan.svg | 10 - public/svgs/soketi.jpeg | Bin 18264 -> 0 bytes public/svgs/sonarr.svg | 1 - public/svgs/sparkyfitness.svg | 1 - public/svgs/statusnook.svg | 17 - public/svgs/stirling.png | Bin 8860 -> 0 bytes public/svgs/strapi.svg | 8 - public/svgs/supabase.svg | 15 - public/svgs/superset.svg | 9 - public/svgs/supertokens.svg | 17 - public/svgs/swetrix.svg | 8 - public/svgs/syncthing.svg | 32 - public/svgs/tailscale.svg | 7 - public/svgs/teable.png | Bin 4309 -> 0 bytes public/svgs/tolgee.svg | 5 - public/svgs/traccar.png | Bin 22009 -> 0 bytes public/svgs/transmission.svg | 1 - public/svgs/trigger.avif | Bin 6465 -> 0 bytes public/svgs/trigger.png | Bin 1918 -> 0 bytes public/svgs/triliumnext.svg | 28 - public/svgs/twenty.svg | 1 - public/svgs/typesense.png | Bin 29941 -> 0 bytes public/svgs/umami.svg | 1 - public/svgs/unleash.svg | 1 - public/svgs/unsend.svg | 13 - public/svgs/unstructured.png | Bin 14909 -> 0 bytes public/svgs/uptime-kuma.svg | 9 - public/svgs/vert.jpg | Bin 34053 -> 0 bytes public/svgs/vert.png | Bin 3910 -> 0 bytes public/svgs/vikunja.svg | 12 - public/svgs/vvveb.svg | 1 - public/svgs/wakapi.svg | 150 - public/svgs/weaviate.png | Bin 18639 -> 0 bytes public/svgs/web-check.png | Bin 21984 -> 0 bytes public/svgs/weblate.webp | Bin 4050 -> 0 bytes public/svgs/whoogle-search.png | Bin 23518 -> 0 bytes public/svgs/whoogle.png | Bin 24077 -> 0 bytes public/svgs/wikijs.svg | 119 - public/svgs/windmill.svg | 29 - public/svgs/windows.svg | 1 - public/svgs/wireguard.svg | 7 - public/svgs/wordpress.svg | 1 - public/svgs/yamtrack.svg | 28 - public/svgs/zep.png | Bin 10841 -> 0 bytes public/svgs/zipline.png | Bin 27499 -> 0 bytes public/vendor/horizon/app-dark.css | 10 - public/vendor/horizon/app.css | 10 - public/vendor/horizon/app.js | 2 - public/vendor/horizon/img/favicon.png | Bin 648 -> 0 bytes public/vendor/horizon/img/horizon.svg | 4 - public/vendor/horizon/img/sprite.svg | 806 - public/vendor/horizon/mix-manifest.json | 8 - public/vendor/telescope/app-dark.css | 8 - public/vendor/telescope/app.css | 7 - public/vendor/telescope/app.js | 2 - public/vendor/telescope/favicon.ico | Bin 26622 -> 0 bytes public/vendor/telescope/mix-manifest.json | 5 - rector.php | 34 - resources/css/app.css | 188 +- resources/css/fonts.css | 72 - resources/css/utilities.css | 294 - ...k-ext_latin_latin-ext_vietnamese-100.woff2 | Bin 98024 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-200.woff2 | Bin 104156 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-300.woff2 | Bin 103704 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-500.woff2 | Bin 105412 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-600.woff2 | Bin 105940 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-700.woff2 | Bin 106308 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-800.woff2 | Bin 106012 -> 0 bytes ...k-ext_latin_latin-ext_vietnamese-900.woff2 | Bin 102324 -> 0 bytes ...t_latin_latin-ext_vietnamese-regular.woff2 | Bin 97260 -> 0 bytes resources/js/app.js | 10 - .../contents.d/horizon => resources/js/app.ts | 0 resources/js/terminal.js | 583 - .../views/auth/confirm-password.blade.php | 51 - .../views/auth/forgot-password.blade.php | 88 - resources/views/auth/login.blade.php | 102 - resources/views/auth/register.blade.php | 95 - resources/views/auth/reset-password.blade.php | 86 - .../views/auth/two-factor-challenge.blade.php | 137 - resources/views/auth/verify-email.blade.php | 12 - .../applications/advanced.blade.php | 36 - .../components/applications/links.blade.php | 93 - resources/views/components/banner.blade.php | 22 - .../components/boarding-progress.blade.php | 47 - .../views/components/boarding-step.blade.php | 29 - resources/views/components/callout.blade.php | 69 - .../views/components/chevron-down.blade.php | 5 - .../views/components/confirm-modal.blade.php | 30 - .../domain-conflict-modal.blade.php | 87 - resources/views/components/dropdown.blade.php | 24 - .../views/components/emails/footer.blade.php | 6 - .../views/components/emails/header.blade.php | 1 - .../views/components/emails/layout.blade.php | 3 - .../environment-variable-warning.blade.php | 37 - .../views/components/external-link.blade.php | 6 - .../views/components/forms/button.blade.php | 20 - .../views/components/forms/checkbox.blade.php | 46 - .../components/forms/copy-button.blade.php | 18 - .../views/components/forms/datalist.blade.php | 288 - .../components/forms/env-var-input.blade.php | 274 - .../views/components/forms/input.blade.php | 58 - .../components/forms/monaco-editor.blade.php | 124 - .../views/components/forms/select.blade.php | 23 - .../views/components/forms/textarea.blade.php | 80 - resources/views/components/git-icon.blade.php | 31 - resources/views/components/helper.blade.php | 18 - .../views/components/highlighted.blade.php | 1 - .../views/components/internal-link.blade.php | 3 - .../views/components/layout-simple.blade.php | 1 - resources/views/components/layout.blade.php | 1 - .../views/components/limit-reached.blade.php | 6 - .../components/loading-on-button.blade.php | 13 - resources/views/components/loading.blade.php | 13 - .../components/modal-confirmation.blade.php | 389 - .../views/components/modal-input.blade.php | 72 - resources/views/components/modal.blade.php | 56 - resources/views/components/navbar.blade.php | 408 - .../components/notification/navbar.blade.php | 32 - .../views/components/page-loading.blade.php | 13 - .../views/components/popup-small.blade.php | 33 - resources/views/components/popup.blade.php | 40 - .../views/components/pricing-plans.blade.php | 444 - .../views/components/resource-view.blade.php | 22 - .../resources/breadcrumbs.blade.php | 53 - .../components/security/navbar.blade.php | 24 - .../components/server/sidebar-proxy.blade.php | 16 - .../server/sidebar-security.blade.php | 10 - .../views/components/server/sidebar.blade.php | 42 - .../components/services/advanced.blade.php | 48 - .../views/components/services/links.blade.php | 12 - .../components/settings/navbar.blade.php | 25 - .../components/settings/sidebar.blade.php | 8 - .../views/components/slide-over.blade.php | 60 - .../components/status/degraded.blade.php | 33 - .../views/components/status/index.blade.php | 37 - .../components/status/restarting.blade.php | 46 - .../views/components/status/running.blade.php | 84 - .../components/status/services.blade.php | 30 - .../views/components/status/stopped.blade.php | 48 - .../views/components/team/navbar.blade.php | 27 - resources/views/components/toast.blade.php | 486 - .../views/components/use-magic-bar.blade.php | 11 - resources/views/components/version.blade.php | 4 - .../application-deployment-failed.blade.php | 10 - .../application-deployment-success.blade.php | 11 - .../application-status-changes.blade.php | 7 - .../views/emails/backup-failed.blade.php | 7 - .../backup-success-with-s3-warning.blade.php | 9 - .../views/emails/backup-success.blade.php | 3 - .../emails/before-trial-conversion.blade.php | 7 - .../emails/container-restarted.blade.php | 9 - .../views/emails/container-stopped.blade.php | 7 - resources/views/emails/daily-backup.blade.php | 19 - .../emails/docker-cleanup-failed.blade.php | 8 - .../emails/docker-cleanup-success.blade.php | 9 - .../email-change-verification.blade.php | 11 - .../views/emails/email-verification.blade.php | 3 - resources/views/emails/help.blade.php | 5 - .../emails/hetzner-deletion-failed.blade.php | 13 - .../views/emails/high-disk-usage.blade.php | 7 - .../views/emails/invitation-link.blade.php | 9 - .../views/emails/reset-password.blade.php | 7 - .../emails/s3-connection-error.blade.php | 6 - .../emails/scheduled-task-failed.blade.php | 9 - .../emails/scheduled-task-success.blade.php | 9 - .../emails/server-force-disabled.blade.php | 5 - .../emails/server-force-enabled.blade.php | 3 - .../emails/server-lost-connection.blade.php | 9 - .../emails/server-patches-error.blade.php | 13 - .../views/emails/server-patches.blade.php | 53 - .../views/emails/server-revived.blade.php | 3 - .../emails/ssl-certificate-renewed.blade.php | 28 - .../subscription-invoice-failed.blade.php | 5 - resources/views/emails/test.blade.php | 3 - .../emails/traefik-version-outdated.blade.php | 62 - resources/views/emails/trial-ended.blade.php | 5 - .../views/emails/trial-ends-soon.blade.php | 5 - resources/views/emails/updates.blade.php | 3 - resources/views/errors/400.blade.php | 27 - resources/views/errors/401.blade.php | 21 - resources/views/errors/402.blade.php | 20 - resources/views/errors/403.blade.php | 21 - resources/views/errors/404.blade.php | 22 - resources/views/errors/419.blade.php | 22 - resources/views/errors/429.blade.php | 23 - resources/views/errors/500.blade.php | 26 - resources/views/errors/503.blade.php | 23 - resources/views/layouts/app.blade.php | 72 - resources/views/layouts/base.blade.php | 329 - resources/views/layouts/boarding.blade.php | 7 - resources/views/layouts/simple.blade.php | 8 - .../views/livewire/activity-monitor.blade.php | 64 - .../views/livewire/admin/index.blade.php | 35 - .../views/livewire/boarding/index.blade.php | 748 - resources/views/livewire/dashboard.blade.php | 160 - .../livewire/deployments-indicator.blade.php | 95 - .../livewire/destination/index.blade.php | 44 - .../livewire/destination/new/docker.blade.php | 24 - .../views/livewire/destination/show.blade.php | 29 - .../livewire/force-password-reset.blade.php | 19 - .../views/livewire/global-search.blade.php | 1097 - resources/views/livewire/help.blade.php | 11 - .../views/livewire/layout-popups.blade.php | 199 - .../livewire/navbar-delete-team.blade.php | 6 - .../livewire/notifications/discord.blade.php | 88 - .../livewire/notifications/email.blade.php | 169 - .../livewire/notifications/pushover.blade.php | 90 - .../livewire/notifications/slack.blade.php | 81 - .../livewire/notifications/telegram.blade.php | 184 - .../livewire/notifications/webhook.blade.php | 91 - .../views/livewire/profile/index.blade.php | 156 - .../livewire/project/add-empty.blade.php | 9 - .../project/application/advanced.blade.php | 129 - .../application/configuration.blade.php | 117 - .../application/deployment-navbar.blade.php | 18 - .../application/deployment/index.blade.php | 183 - .../application/deployment/show.blade.php | 129 - .../project/application/destination.blade.php | 8 - .../project/application/general.blade.php | 541 - .../project/application/heading.blade.php | 124 - .../application/preview/form.blade.php | 17 - .../application/previews-compose.blade.php | 7 - .../project/application/previews.blade.php | 237 - .../project/application/rollback.blade.php | 52 - .../project/application/source.blade.php | 98 - .../project/application/swarm.blade.php | 29 - .../views/livewire/project/clone-me.blade.php | 107 - .../project/database/backup-edit.blade.php | 132 - .../database/backup-executions.blade.php | 195 - .../project/database/backup-now.blade.php | 1 - .../database/backup/execution.blade.php | 12 - .../project/database/backup/index.blade.php | 19 - .../database/clickhouse/general.blade.php | 89 - .../project/database/configuration.blade.php | 83 - .../create-scheduled-backup.blade.php | 21 - .../database/dragonfly/general.blade.php | 126 - .../project/database/heading.blade.php | 111 - .../project/database/import.blade.php | 237 - .../project/database/init-script.blade.php | 14 - .../project/database/keydb/general.blade.php | 129 - .../database/mariadb/general.blade.php | 152 - .../database/mongodb/general.blade.php | 167 - .../project/database/mysql/general.blade.php | 166 - .../database/postgresql/general.blade.php | 213 - .../project/database/redis/general.blade.php | 157 - .../database/scheduled-backups.blade.php | 224 - .../project/delete-environment.blade.php | 5 - .../livewire/project/delete-project.blade.php | 7 - .../views/livewire/project/edit.blade.php | 19 - .../project/environment-edit.blade.php | 54 - .../views/livewire/project/index.blade.php | 48 - .../project/new/docker-compose.blade.php | 40 - .../project/new/docker-image.blade.php | 29 - .../project/new/empty-project.blade.php | 1 - ...ub-private-repository-deploy-key.blade.php | 93 - .../new/github-private-repository.blade.php | 138 - .../new/public-git-repository.blade.php | 85 - .../livewire/project/new/select.blade.php | 541 - .../project/new/simple-dockerfile.blade.php | 15 - .../project/resource/create.blade.php | 20 - .../resource/environment-select.blade.php | 7 - .../livewire/project/resource/index.blade.php | 292 - .../project/service/configuration.blade.php | 202 - .../project/service/database.blade.php | 52 - .../project/service/edit-compose.blade.php | 66 - .../project/service/edit-domain.blade.php | 84 - .../project/service/file-storage.blade.php | 101 - .../project/service/heading.blade.php | 183 - .../livewire/project/service/index.blade.php | 54 - .../service-application-view.blade.php | 149 - .../project/service/stack-form.blade.php | 49 - .../project/service/storage.blade.php | 459 - .../shared/configuration-checker.blade.php | 22 - .../livewire/project/shared/danger.blade.php | 18 - .../project/shared/destination.blade.php | 110 - .../shared/environment-variable/add.blade.php | 37 - .../shared/environment-variable/all.blade.php | 104 - .../environment-variable/show.blade.php | 258 - .../execute-container-command.blade.php | 65 - .../project/shared/get-logs.blade.php | 167 - .../project/shared/health-checks.blade.php | 52 - .../livewire/project/shared/logs.blade.php | 91 - .../livewire/project/shared/metrics.blade.php | 292 - .../project/shared/resource-limits.blade.php | 41 - .../shared/resource-operations.blade.php | 166 - .../shared/scheduled-task/add.blade.php | 32 - .../shared/scheduled-task/all.blade.php | 50 - .../scheduled-task/executions.blade.php | 96 - .../shared/scheduled-task/show.blade.php | 56 - .../project/shared/storages/all.blade.php | 13 - .../project/shared/storages/show.blade.php | 86 - .../livewire/project/shared/tags.blade.php | 47 - .../project/shared/terminal.blade.php | 53 - .../project/shared/upload-config.blade.php | 6 - .../project/shared/webhooks.blade.php | 83 - .../views/livewire/project/show.blade.php | 46 - .../livewire/security/api-tokens.blade.php | 108 - .../security/cloud-init-script-form.blade.php | 17 - .../security/cloud-init-scripts.blade.php | 50 - .../cloud-provider-token-form.blade.php | 72 - .../security/cloud-provider-tokens.blade.php | 48 - .../livewire/security/cloud-tokens.blade.php | 7 - .../security/private-key/create.blade.php | 26 - .../security/private-key/index.blade.php | 56 - .../security/private-key/show.blade.php | 65 - .../views/livewire/server/advanced.blade.php | 44 - .../server/ca-certificate/show.blade.php | 92 - .../views/livewire/server/charts.blade.php | 296 - .../cloud-provider-token/show.blade.php | 61 - .../server/cloudflare-tunnel.blade.php | 133 - .../views/livewire/server/create.blade.php | 34 - .../views/livewire/server/delete.blade.php | 30 - .../livewire/server/destinations.blade.php | 51 - .../docker-cleanup-executions.blade.php | 128 - .../livewire/server/docker-cleanup.blade.php | 92 - .../views/livewire/server/index.blade.php | 56 - .../livewire/server/log-drains.blade.php | 123 - .../views/livewire/server/navbar.blade.php | 192 - .../livewire/server/new/by-hetzner.blade.php | 204 - .../views/livewire/server/new/by-ip.blade.php | 39 - .../server/private-key/show.blade.php | 45 - .../views/livewire/server/proxy.blade.php | 193 - .../dynamic-configuration-navbar.blade.php | 12 - .../proxy/dynamic-configurations.blade.php | 57 - .../livewire/server/proxy/logs.blade.php | 13 - .../proxy/new-dynamic-configuration.blade.php | 6 - .../livewire/server/proxy/show.blade.php | 16 - .../views/livewire/server/resources.blade.php | 167 - .../server/security/patches.blade.php | 133 - .../server/security/terminal-access.blade.php | 55 - .../views/livewire/server/show.blade.php | 433 - .../server/validate-and-install.blade.php | 155 - .../views/livewire/settings-backup.blade.php | 53 - .../livewire/settings-dropdown.blade.php | 358 - .../views/livewire/settings-email.blade.php | 81 - .../views/livewire/settings-oauth.blade.php | 53 - .../livewire/settings/advanced.blade.php | 93 - .../views/livewire/settings/index.blade.php | 108 - .../views/livewire/settings/updates.blade.php | 51 - .../environment/index.blade.php | 34 - .../environment/show.blade.php | 34 - .../livewire/shared-variables/index.blade.php | 31 - .../shared-variables/project/index.blade.php | 25 - .../shared-variables/project/show.blade.php | 36 - .../shared-variables/team/index.blade.php | 35 - .../livewire/source/github/change.blade.php | 354 - .../livewire/source/github/create.blade.php | 69 - .../views/livewire/storage/create.blade.php | 31 - .../views/livewire/storage/form.blade.php | 55 - .../views/livewire/storage/index.blade.php | 38 - .../views/livewire/storage/show.blade.php | 6 - .../livewire/subscription/actions.blade.php | 53 - .../livewire/subscription/index.blade.php | 64 - .../subscription/pricing-plans.blade.php | 162 - .../livewire/subscription/show.blade.php | 8 - .../views/livewire/switch-team.blade.php | 6 - .../views/livewire/tags/deployments.blade.php | 27 - resources/views/livewire/tags/show.blade.php | 96 - .../views/livewire/team/admin-view.blade.php | 40 - .../views/livewire/team/create.blade.php | 7 - resources/views/livewire/team/index.blade.php | 83 - .../views/livewire/team/invitations.blade.php | 73 - .../views/livewire/team/invite-link.blade.php | 20 - .../views/livewire/team/member.blade.php | 52 - .../livewire/team/member/index.blade.php | 59 - .../views/livewire/terminal/index.blade.php | 41 - resources/views/livewire/upgrade.blade.php | 186 - .../views/livewire/verify-email.blade.php | 3 - resources/views/server/create.blade.php | 9 - resources/views/source/all.blade.php | 38 - resources/views/source/github/show.blade.php | 4 - .../views/vendor/mail/html/button.blade.php | 21 - .../views/vendor/mail/html/footer.blade.php | 11 - .../views/vendor/mail/html/header.blade.php | 12 - .../views/vendor/mail/html/layout.blade.php | 63 - .../views/vendor/mail/html/message.blade.php | 27 - .../views/vendor/mail/html/panel.blade.php | 13 - .../views/vendor/mail/html/subcopy.blade.php | 7 - .../views/vendor/mail/html/table.blade.php | 3 - .../views/vendor/mail/html/themes/default.css | 291 - .../views/vendor/mail/text/button.blade.php | 1 - .../views/vendor/mail/text/footer.blade.php | 1 - .../views/vendor/mail/text/header.blade.php | 1 - .../views/vendor/mail/text/layout.blade.php | 8 - .../views/vendor/mail/text/message.blade.php | 27 - .../views/vendor/mail/text/panel.blade.php | 1 - .../views/vendor/mail/text/subcopy.blade.php | 1 - .../views/vendor/mail/text/table.blade.php | 1 - routes/api.php | 203 - routes/channels.php | 32 - routes/console.php | 18 +- routes/web.php | 372 - routes/webhooks.php | 21 - .../contents.d/init-setup => scripts/.gitkeep | 0 scripts/cloud_upgrade.sh | 6 - scripts/conductor-setup.sh | 1 - scripts/install.sh | 866 - scripts/run | 69 - scripts/sync_volume.sh | 57 - scripts/upgrade.sh | 72 - storage/app/.gitignore | 1 + .../app/private}/.gitignore | 0 .../cache/data}/.gitignore | 0 storage/pail/.gitignore | 2 - templates/compose/activepieces.yaml | 64 - templates/compose/actualbudget.yaml | 20 - templates/compose/affine.yaml | 92 - templates/compose/anythingllm.yaml | 34 - templates/compose/apprise-api.yaml | 22 - templates/compose/appsmith.yaml | 23 - templates/compose/appwrite.yaml | 944 - templates/compose/argilla.yaml | 128 - templates/compose/audiobookshelf.yaml | 24 - templates/compose/authentik.yaml | 99 - templates/compose/azimutt.yaml | 104 - templates/compose/babybuddy.yaml | 22 - templates/compose/beszel.yaml | 29 - templates/compose/bitcoin-core.yaml | 28 - templates/compose/bluesky-pds.yaml | 53 - templates/compose/bookstack.yaml | 70 - templates/compose/browserless.yaml | 20 - templates/compose/budge.yaml | 21 - templates/compose/budibase.yaml | 147 - templates/compose/bugsink.yaml | 46 - templates/compose/calcom.yaml | 66 - templates/compose/calibre-web.yaml | 29 - templates/compose/cap.yaml | 75 - templates/compose/castopod.yaml | 64 - templates/compose/changedetection.yaml | 49 - templates/compose/chaskiq.yaml | 153 - templates/compose/chatwoot.yaml | 116 - templates/compose/checkmate.yaml | 47 - templates/compose/chroma.yaml | 21 - .../compose/classicpress-with-mariadb.yaml | 39 - .../compose/classicpress-with-mysql.yaml | 38 - .../classicpress-without-database.yaml | 18 - templates/compose/cloudbeaver.yaml | 19 - templates/compose/cloudflared.yaml | 19 - templates/compose/cockpit.yaml | 20 - templates/compose/code-server.yaml | 25 - templates/compose/coder.yaml | 47 - templates/compose/codimd.yaml | 47 - templates/compose/convertx.yml | 20 - templates/compose/convex.yaml | 61 - templates/compose/cryptgeon.yaml | 42 - templates/compose/cyberchef.yaml | 24 - templates/compose/dashy.yaml | 22 - templates/compose/denoKV.yaml | 26 - templates/compose/dify.yaml | 641 - .../compose/directus-with-postgresql.yaml | 63 - templates/compose/directus.yaml | 30 - templates/compose/diun.yaml | 28 - templates/compose/docker-registry.yaml | 51 - templates/compose/docmost.yaml | 68 - templates/compose/documenso.yaml | 151 - templates/compose/docuseal-with-postgres.yaml | 37 - templates/compose/docuseal.yaml | 20 - templates/compose/dokuwiki.yaml | 21 - templates/compose/dolibarr.yaml | 44 - templates/compose/dozzle-with-auth.yaml | 32 - templates/compose/dozzle.yaml | 20 - templates/compose/drizzle-gateway.yaml | 16 - templates/compose/drupal-with-postgresql.yaml | 54 - templates/compose/duplicati.yaml | 25 - templates/compose/easyappointments.yaml | 36 - templates/compose/edgedb.yaml | 42 - .../compose/elasticsearch-with-kibana.yaml | 88 - templates/compose/elasticsearch.yaml | 28 - templates/compose/emby.yaml | 24 - templates/compose/embystat.yaml | 21 - templates/compose/ente-photos-with-s3.yaml | 128 - templates/compose/ente-photos.yaml | 87 - templates/compose/evolution-api.yaml | 164 - templates/compose/excalidraw.yaml | 22 - templates/compose/faraday.yaml | 59 - templates/compose/fider.yaml | 45 - templates/compose/filebrowser.yaml | 31 - templates/compose/fileflows.yaml | 29 - templates/compose/firefly.yaml | 77 - templates/compose/firefox.yaml | 24 - templates/compose/flipt.yaml | 24 - templates/compose/flowise-with-databases.yaml | 80 - templates/compose/flowise.yaml | 29 - templates/compose/forgejo-with-mariadb.yaml | 51 - templates/compose/forgejo-with-mysql.yaml | 51 - .../compose/forgejo-with-postgresql.yaml | 50 - .../forgejo-with-runner-with-mariadb.yaml | 138 - .../forgejo-with-runner-with-mysql.yaml | 138 - .../forgejo-with-runner-with-postgresql.yaml | 137 - templates/compose/forgejo-with-runner.yaml | 115 - templates/compose/forgejo.yaml | 28 - templates/compose/formbricks.yaml | 87 - templates/compose/foundryvtt.yaml | 58 - templates/compose/freescout.yaml | 48 - templates/compose/freshrss-with-mariadb.yaml | 42 - templates/compose/freshrss-with-mysql.yaml | 42 - .../compose/freshrss-with-postgresql.yaml | 42 - templates/compose/freshrss.yaml | 21 - templates/compose/getoutline.yaml | 102 - templates/compose/ghost.yaml | 49 - templates/compose/gitea-with-mariadb.yaml | 47 - templates/compose/gitea-with-mysql.yaml | 47 - templates/compose/gitea-with-postgresql.yaml | 46 - templates/compose/gitea.yaml | 24 - templates/compose/github-runner.yaml | 28 - templates/compose/gitlab.yaml | 35 - templates/compose/glance.yaml | 94 - templates/compose/glances.yaml | 32 - templates/compose/glitchtip.yaml | 94 - templates/compose/gotenberg.yaml | 29 - templates/compose/gotify.yaml | 29 - templates/compose/gowa.yaml | 22 - .../compose/grafana-with-postgresql.yaml | 42 - templates/compose/grafana.yaml | 22 - templates/compose/gramps-web.yaml | 59 - templates/compose/grist.yaml | 93 - templates/compose/grocy.yaml | 21 - templates/compose/heimdall.yaml | 21 - templates/compose/heyform.yaml | 56 - templates/compose/homarr.yaml | 22 - templates/compose/home-assistant.yaml | 40 - templates/compose/homebox.yaml | 28 - templates/compose/homepage.yaml | 123 - templates/compose/hoppscotch.yaml | 96 - templates/compose/huly.yaml | 123 - templates/compose/immich.yaml | 79 - templates/compose/infisical.yaml | 67 - templates/compose/invoice-ninja.yaml | 183 - templates/compose/it-tools.yaml | 19 - templates/compose/jellyfin.yaml | 25 - templates/compose/jenkins.yaml | 21 - templates/compose/jitsi.yaml | 127 - templates/compose/joomla-with-mariadb.yaml | 49 - templates/compose/joplin.yaml | 47 - .../compose/jupyter-notebook-python.yaml | 20 - templates/compose/karakeep.yaml | 47 - templates/compose/keycloak-with-postgres.yaml | 55 - templates/compose/keycloak.yaml | 32 - templates/compose/kimai.yaml | 45 - templates/compose/kuzzle.yaml | 64 - templates/compose/labelstudio.yaml | 50 - templates/compose/langfuse.yaml | 135 - templates/compose/leantime.yaml | 64 - templates/compose/librechat.yaml | 156 - templates/compose/libreoffice.yaml | 22 - templates/compose/libretranslate.yaml | 20 - templates/compose/limesurvey.yaml | 77 - templates/compose/listmonk.yaml | 55 - templates/compose/litellm.yaml | 168 - templates/compose/litequeen.yaml | 25 - templates/compose/lobe-chat.yaml | 22 - templates/compose/logto.yaml | 40 - templates/compose/lowcoder.yaml | 22 - templates/compose/macos.yaml | 26 - templates/compose/mailpit.yaml | 36 - templates/compose/marimo.yml | 35 - templates/compose/martin.yaml | 37 - templates/compose/matrix.yaml | 132 - templates/compose/mattermost.yaml | 42 - templates/compose/mautic5.yaml | 121 - templates/compose/maybe.yaml | 92 - templates/compose/mealie.yaml | 25 - templates/compose/mediawiki.yaml | 22 - templates/compose/meilisearch.yaml | 22 - templates/compose/memos.yaml | 14 - templates/compose/metabase.yaml | 38 - templates/compose/metamcp.yaml | 50 - templates/compose/metube.yaml | 20 - templates/compose/mindsdb.yaml | 49 - templates/compose/minecraft.yaml | 52 - templates/compose/miniflux.yaml | 41 - .../compose/minio-community-edition.yaml | 22 - templates/compose/minio.yaml | 23 - templates/compose/mixpost.yaml | 57 - templates/compose/moodle.yaml | 56 - templates/compose/mosquitto.yaml | 49 - .../compose/n8n-with-postgres-and-worker.yaml | 107 - templates/compose/n8n-with-postgresql.yaml | 52 - templates/compose/n8n.yaml | 30 - templates/compose/navidrome.yaml | 26 - templates/compose/neon-ws-proxy.yaml | 44 - templates/compose/netbird-client.yaml | 28 - templates/compose/newapi.yaml | 56 - templates/compose/newt-pangolin.yaml | 17 - .../compose/next-image-transformation.yaml | 31 - templates/compose/nextcloud-with-mariadb.yaml | 62 - templates/compose/nextcloud-with-mysql.yaml | 62 - .../compose/nextcloud-with-postgres.yaml | 61 - templates/compose/nextcloud.yaml | 23 - templates/compose/nexus-arm.yaml | 22 - templates/compose/nexus.yaml | 23 - .../compose/nitropage-with-postgresql.yaml | 38 - templates/compose/nitropage.yaml | 22 - templates/compose/nocodb.yaml | 19 - templates/compose/nodebb.yaml | 55 - templates/compose/ntfy.yaml | 49 - templates/compose/observium.yaml | 55 - templates/compose/odoo.yaml | 36 - templates/compose/ollama-with-open-webui.yaml | 35 - templates/compose/once-campfire.yaml | 27 - templates/compose/onedev.yaml | 44 - templates/compose/onetimesecret.yaml | 45 - templates/compose/open-webui.yaml | 25 - templates/compose/openpanel.yaml | 199 - templates/compose/opnform.yaml | 228 - templates/compose/orangehrm.yaml | 50 - templates/compose/organizr.yaml | 20 - templates/compose/osticket.yaml | 54 - templates/compose/overseerr.yaml | 31 - templates/compose/owncloud.yaml | 73 - templates/compose/pairdrop.yaml | 21 - templates/compose/palworld.yaml | 128 - templates/compose/paperless.yaml | 44 - templates/compose/passbolt.yaml | 50 - templates/compose/paymenter.yaml | 71 - templates/compose/penpot.yaml | 109 - templates/compose/peppermint.yaml | 43 - templates/compose/pgadmin.yaml | 21 - templates/compose/pgbackweb.yaml | 35 - templates/compose/phpmyadmin.yaml | 23 - templates/compose/pi-hole.yaml | 31 - .../compose/pingvinshare-with-clamav.yaml | 33 - templates/compose/pingvinshare.yaml | 26 - templates/compose/plane.yaml | 238 - templates/compose/plausible.yaml | 89 - templates/compose/plex.yaml | 28 - templates/compose/plunk.yaml | 62 - .../compose/pocket-id-with-postgresql.yaml | 55 - templates/compose/pocket-id.yaml | 35 - templates/compose/pocketbase.yaml | 15 - templates/compose/portainer.yaml | 20 - templates/compose/postgresus.yaml | 20 - templates/compose/posthog.yaml | 2131 - templates/compose/postiz.yaml | 136 - templates/compose/prefect.yaml | 81 - templates/compose/privatebin.yaml | 19 - templates/compose/prowlarr.yaml | 23 - templates/compose/proxyscotch.yaml | 15 - templates/compose/pterodactyl-panel.yaml | 105 - templates/compose/pterodactyl-with-wings.yaml | 232 - templates/compose/qbittorrent.yaml | 49 - templates/compose/qdrant.yaml | 22 - templates/compose/rabbitmq.yaml | 25 - templates/compose/radarr.yaml | 25 - templates/compose/rallly.yaml | 48 - templates/compose/reactive-resume.yaml | 82 - templates/compose/readeck.yaml | 25 - templates/compose/redis-insight.yaml | 31 - templates/compose/redlib.yaml | 43 - templates/compose/rivet-engine.yaml | 42 - templates/compose/rocketchat.yaml | 50 - templates/compose/rybbit.yaml | 134 - templates/compose/ryot.yaml | 38 - templates/compose/seafile.yaml | 70 - templates/compose/searxng.yaml | 73 - templates/compose/sequin.yaml | 69 - templates/compose/shlink.yaml | 32 - templates/compose/signoz.yaml | 627 - templates/compose/siyuan.yaml | 29 - templates/compose/slash.yaml | 18 - templates/compose/snapdrop.yaml | 20 - templates/compose/soketi.yaml | 24 - templates/compose/sonarqube.yaml | 43 - templates/compose/sonarr.yaml | 25 - templates/compose/sparkyfitness.yaml | 56 - templates/compose/statusnook.yaml | 24 - templates/compose/stirling-pdf.yaml | 23 - templates/compose/strapi.yaml | 61 - templates/compose/supabase.yaml | 1430 - .../compose/superset-with-postgresql.yaml | 88 - templates/compose/supertokens-with-mysql.yaml | 41 - .../compose/supertokens-with-postgresql.yaml | 35 - templates/compose/swetrix.yaml | 171 - templates/compose/syncthing.yaml | 28 - templates/compose/tailscale-client.yaml | 43 - templates/compose/teable.yaml | 89 - templates/compose/tolgee.yaml | 43 - templates/compose/traccar.yaml | 51 - templates/compose/transmission.yaml | 32 - .../trigger-with-external-database.yaml | 37 - templates/compose/trigger.yaml | 146 - templates/compose/triliumnext.yaml | 25 - templates/compose/twenty.yaml | 93 - templates/compose/typesense.yaml | 27 - templates/compose/umami.yaml | 36 - .../compose/unleash-with-postgresql.yaml | 51 - .../compose/unleash-without-database.yaml | 28 - templates/compose/unsend.yaml | 64 - templates/compose/unstructured.yaml | 22 - templates/compose/uptime-kuma.yaml | 19 - templates/compose/vaultwarden.yaml | 27 - templates/compose/vert.yaml | 16 - .../compose/vikunja-with-postgresql.yaml | 38 - templates/compose/vikunja.yaml | 28 - templates/compose/vvveb-with-mariadb.yaml | 42 - templates/compose/vvveb-with-mysql.yaml | 42 - templates/compose/vvveb.yaml | 19 - templates/compose/wakapi.yaml | 68 - templates/compose/weaviate.yaml | 46 - templates/compose/web-check.yaml | 19 - templates/compose/weblate.yaml | 59 - templates/compose/whoogle.yaml | 17 - templates/compose/wikijs.yaml | 38 - templates/compose/windmill.yaml | 127 - templates/compose/windows.yaml | 26 - templates/compose/wings.yaml | 45 - templates/compose/wireguard-easy.yaml | 32 - templates/compose/wordpress-with-mariadb.yaml | 38 - templates/compose/wordpress-with-mysql.yaml | 38 - .../compose/wordpress-without-database.yaml | 18 - .../compose/yamtrack-with-postgresql.yaml | 67 - templates/compose/yamtrack.yaml | 44 - templates/compose/zep.yaml | 189 - templates/compose/zipline.yaml | 43 - templates/service-templates-latest.json | 4738 -- templates/service-templates.json | 4738 -- templates/test-database-detection.yaml | 378 - tests/Browser/LoginTest.php | 27 - tests/Browser/Project/ProjectAddNewTest.php | 34 - tests/Browser/Project/ProjectSearchTest.php | 29 - tests/Browser/Project/ProjectTest.php | 27 - tests/Browser/console/.gitignore | 2 - tests/Browser/screenshots/.gitignore | 2 - tests/Browser/source/.gitignore | 2 - tests/CreatesApplication.php | 21 - tests/DuskTestCase.php | 57 - .../ApplicationBuildpackCleanupTest.php | 183 - tests/Feature/BuildpackSwitchCleanupTest.php | 134 - tests/Feature/CheckTraefikVersionJobTest.php | 216 - tests/Feature/CleanupRedisTest.php | 130 - tests/Feature/CloudInitScriptTest.php | 101 - tests/Feature/ConvertArraysTest.php | 7 - tests/Feature/ConvertContainerEnvsToArray.php | 299 - tests/Feature/ConvertingGitUrlsTest.php | 62 - tests/Feature/CoolifyTaskRetryTest.php | 70 - .../Feature/DatabaseBackupCreationApiTest.php | 145 - tests/Feature/DatabaseBackupJobTest.php | 37 - tests/Feature/DeletesUserSessionsTest.php | 136 - .../Feature/DeploymentCancellationApiTest.php | 183 - tests/Feature/DockerCustomCommandsTest.php | 200 - .../EnvironmentVariableSharedSpacingTest.php | 194 - tests/Feature/ExecuteContainerCommandTest.php | 57 - tests/Feature/GithubAppsListApiTest.php | 222 - tests/Feature/GithubSourceChangeTest.php | 208 - tests/Feature/GithubSourceCreateTest.php | 108 - tests/Feature/HetznerServerCreationTest.php | 188 - tests/Feature/IpAllowlistTest.php | 183 - tests/Feature/LoginRateLimitIPTest.php | 58 - .../MultilineEnvironmentVariableTest.php | 208 - .../ServerPatchCheckNotificationTest.php | 146 - .../ServerSettingSentinelRestartTest.php | 139 - tests/Feature/ServerSettingWasChangedTest.php | 64 - .../Service/EditDomainPortValidationTest.php | 154 - tests/Feature/ServiceFqdnUpdatePathTest.php | 220 - tests/Feature/StartupExecutionCleanupTest.php | 216 - .../TeamInvitationEmailNormalizationTest.php | 55 - .../TeamInvitationPrivilegeEscalationTest.php | 176 - tests/Feature/TeamPolicyTest.php | 184 - tests/Feature/TrustHostsMiddlewareTest.php | 310 - tests/Feature/Utf8HandlingTest.php | 38 - tests/Pest.php | 44 - tests/TestCase.php | 10 - tests/Traits/HandlesTestDatabase.php | 78 - .../Server/ValidatePrerequisitesTest.php | 46 - .../Actions/User/DeleteUserResourcesTest.php | 182 - .../AllExcludedContainersConsistencyTest.php | 223 - .../Unit/ApplicationComposeEditorLoadTest.php | 73 - .../ApplicationConfigurationChangeTest.php | 49 - ...cationDeploymentCustomBuildCommandTest.php | 617 - .../ApplicationDeploymentEmptyEnvTest.php | 63 - .../ApplicationDeploymentErrorLoggingTest.php | 344 - tests/Unit/ApplicationGitSecurityTest.php | 101 - .../ApplicationHealthcheckRemovalTest.php | 57 - .../ApplicationNetworkAliasesSyncTest.php | 50 - .../Unit/ApplicationParserStringableTest.php | 182 - tests/Unit/ApplicationPortDetectionTest.php | 156 - ...icationServiceEnvironmentVariablesTest.php | 190 - .../Unit/ApplicationSettingStaticCastTest.php | 105 - tests/Unit/ApplicationWatchPathsTest.php | 368 - tests/Unit/BashEnvEscapingTest.php | 307 - tests/Unit/CheckForUpdatesJobTest.php | 186 - .../CheckTraefikVersionForServerJobTest.php | 141 - tests/Unit/CheckTraefikVersionJobTest.php | 26 - tests/Unit/CloudInitScriptValidationTest.php | 76 - tests/Unit/ContainerHealthStatusTest.php | 342 - tests/Unit/ContainerStatusAggregatorTest.php | 540 - tests/Unit/CoolifyTaskCleanupTest.php | 84 - tests/Unit/DatabaseBackupSecurityTest.php | 83 - tests/Unit/DatalistComponentTest.php | 68 - tests/Unit/DeploymentExceptionTest.php | 71 - ...ckerComposeEmptyStringPreservationTest.php | 296 - ...DockerComposeEmptyTopLevelSectionsTest.php | 194 - tests/Unit/DockerComposeLabelParsingTest.php | 79 - .../DockerComposeRawContentRemovalTest.php | 100 - tests/Unit/DockerComposeRawSeparationTest.php | 90 - tests/Unit/DockerImageAutoParseTest.php | 130 - tests/Unit/DockerImageParserTest.php | 141 - tests/Unit/DockerfileArgInsertionTest.php | 218 - tests/Unit/EnvVarInputComponentTest.php | 67 - tests/Unit/ExcludeFromHealthCheckTest.php | 151 - tests/Unit/FileStorageSecurityTest.php | 93 - tests/Unit/FormatBytesTest.php | 42 - tests/Unit/FormatContainerStatusTest.php | 201 - ...ContainersStatusServiceAggregationTest.php | 90 - tests/Unit/GitLsRemoteParsingTest.php | 77 - .../GlobalSearchNewImageQuickActionTest.php | 44 - .../HetznerDeletionFailedNotificationTest.php | 114 - tests/Unit/HetznerSshKeysTest.php | 53 - .../ApplicationGeneralPreviewTest.php | 156 - .../Livewire/BoardingPrerequisitesTest.php | 181 - .../Unit/Livewire/Database/S3RestoreTest.php | 79 - .../EnvironmentVariableAutocompleteTest.php | 53 - .../Channels/EmailChannelTest.php | 186 - .../NotifyOutdatedTraefikServersJobTest.php | 56 - tests/Unit/ParseCommandsByLineForSudoTest.php | 623 - tests/Unit/ParseDockerVolumeStringTest.php | 221 - tests/Unit/PathTraversalSecurityTest.php | 184 - tests/Unit/Policies/PrivateKeyPolicyTest.php | 208 - tests/Unit/Policies/S3StoragePolicyTest.php | 149 - .../Unit/PostgresqlInitScriptSecurityTest.php | 76 - tests/Unit/PreSaveValidationTest.php | 200 - tests/Unit/PrivateKeyStorageTest.php | 316 - .../Database/ImportCheckFileButtonTest.php | 128 - tests/Unit/ProxyConfigurationSecurityTest.php | 83 - tests/Unit/ProxyCustomCommandsTest.php | 137 - tests/Unit/ProxyHelperTest.php | 191 - tests/Unit/RestartCountTrackingTest.php | 82 - .../Unit/RestoreJobFinishedNullServerTest.php | 93 - tests/Unit/RestoreJobFinishedSecurityTest.php | 61 - .../RestoreJobFinishedShellEscapingTest.php | 118 - tests/Unit/Rules/ValidCloudInitYamlTest.php | 174 - tests/Unit/S3RestoreSecurityTest.php | 98 - tests/Unit/S3RestoreTest.php | 75 - tests/Unit/S3StorageTest.php | 53 - tests/Unit/ScheduledJobManagerLockTest.php | 60 - tests/Unit/ScheduledJobsRetryConfigTest.php | 77 - tests/Unit/ScheduledTaskJobTimeoutTest.php | 96 - tests/Unit/ServerQueryScopeTest.php | 62 - tests/Unit/ServerStatusAccessorTest.php | 53 - .../ServiceApplicationPrerequisitesTest.php | 149 - .../Unit/ServiceConfigurationRefreshTest.php | 44 - tests/Unit/ServiceExcludedStatusTest.php | 321 - tests/Unit/ServiceNameSecurityTest.php | 242 - tests/Unit/ServiceParserImageUpdateTest.php | 55 - .../Unit/ServiceParserPathDuplicationTest.php | 150 - .../ServiceParserPortDetectionLogicTest.php | 158 - .../Unit/ServicePortSpecificVariablesTest.php | 221 - tests/Unit/ServiceRequiredPortTest.php | 270 - tests/Unit/SshRetryMechanismTest.php | 189 - tests/Unit/StartProxyTest.php | 87 - tests/Unit/StartupExecutionCleanupTest.php | 116 - tests/Unit/StopProxyTest.php | 69 - tests/Unit/StripCoolifyCustomFieldsTest.php | 229 - tests/Unit/TimescaleDbDetectionTest.php | 80 - .../UpdateComposeAbbreviatedVariablesTest.php | 563 - tests/Unit/UpdateCoolifyTest.php | 132 - tests/Unit/ValidGitRepositoryUrlTest.php | 357 - tests/Unit/ValidHostnameTest.php | 74 - tests/Unit/ValidateShellSafePathTest.php | 150 - tests/Unit/VolumeArrayFormatSecurityTest.php | 300 - tests/Unit/VolumeSecurityTest.php | 207 - tests/Unit/WindowsPathVolumeTest.php | 64 - todos/service-database-deployment-logging.md | 1916 - versions.json | 29 - vite.config.js | 50 +- 2353 files changed, 687 insertions(+), 297375 deletions(-) delete mode 100644 .AI_INSTRUCTIONS_SYNC.md delete mode 100644 .ai/README.md delete mode 100644 .ai/core/application-architecture.md delete mode 100644 .ai/core/deployment-architecture.md delete mode 100644 .ai/core/project-overview.md delete mode 100644 .ai/core/technology-stack.md delete mode 100644 .ai/development/development-workflow.md delete mode 100644 .ai/development/laravel-boost.md delete mode 100644 .ai/development/testing-patterns.md delete mode 100644 .ai/meta/maintaining-docs.md delete mode 100644 .ai/meta/sync-guide.md delete mode 100644 .ai/patterns/api-and-routing.md delete mode 100644 .ai/patterns/database-patterns.md delete mode 100644 .ai/patterns/form-components.md delete mode 100644 .ai/patterns/frontend-patterns.md delete mode 100644 .ai/patterns/security-patterns.md delete mode 100644 .coolify-logo delete mode 100644 .cursor/mcp.json delete mode 100644 .cursor/rules/coolify-ai-docs.mdc delete mode 100644 .dockerignore delete mode 100644 .env.dusk.ci create mode 100644 .env.example delete mode 100644 .env.production create mode 100644 .env.production.example create mode 100644 .env.testing delete mode 100644 .env.windows-docker-desktop.example delete mode 100644 .github/FUNDING.yaml delete mode 100644 .github/ISSUE_TEMPLATE/01_BUG_REPORT.yml delete mode 100644 .github/ISSUE_TEMPLATE/02_ENHANCEMENT_BOUNTY.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/chore-lock-closed-issues-discussions-and-prs.yml delete mode 100644 .github/workflows/chore-manage-stale-issues-and-prs.yml delete mode 100644 .github/workflows/chore-pr-comments.yml delete mode 100644 .github/workflows/chore-remove-labels-and-assignees-on-close.yml delete mode 100644 .github/workflows/cleanup-ghcr-untagged.yml delete mode 100644 .github/workflows/coolify-helper-next.yml delete mode 100644 .github/workflows/coolify-helper.yml delete mode 100644 .github/workflows/coolify-production-build.yml delete mode 100644 .github/workflows/coolify-realtime-next.yml delete mode 100644 .github/workflows/coolify-realtime.yml delete mode 100644 .github/workflows/coolify-staging-build.yml delete mode 100644 .github/workflows/coolify-testing-host.yml delete mode 100644 .github/workflows/generate-changelog.yml delete mode 100644 .mcp.json delete mode 100644 .phpactor.json delete mode 100644 CLAUDE.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 RELEASE.md delete mode 100644 TECH_STACK.md delete mode 100644 app/Actions/Application/GenerateConfig.php delete mode 100644 app/Actions/Application/IsHorizonQueueEmpty.php delete mode 100644 app/Actions/Application/LoadComposeFile.php delete mode 100644 app/Actions/Application/StopApplication.php delete mode 100644 app/Actions/Application/StopApplicationOneServer.php delete mode 100644 app/Actions/CoolifyTask/PrepareCoolifyTask.php delete mode 100644 app/Actions/CoolifyTask/RunRemoteProcess.php delete mode 100644 app/Actions/Database/RestartDatabase.php delete mode 100644 app/Actions/Database/StartClickhouse.php delete mode 100644 app/Actions/Database/StartDatabase.php delete mode 100644 app/Actions/Database/StartDatabaseProxy.php delete mode 100644 app/Actions/Database/StartDragonfly.php delete mode 100644 app/Actions/Database/StartKeydb.php delete mode 100644 app/Actions/Database/StartMariadb.php delete mode 100644 app/Actions/Database/StartMongodb.php delete mode 100644 app/Actions/Database/StartMysql.php delete mode 100644 app/Actions/Database/StartPostgresql.php delete mode 100644 app/Actions/Database/StartRedis.php delete mode 100644 app/Actions/Database/StopDatabase.php delete mode 100644 app/Actions/Database/StopDatabaseProxy.php delete mode 100644 app/Actions/Docker/GetContainersStatus.php delete mode 100644 app/Actions/Fortify/CreateNewUser.php delete mode 100644 app/Actions/Fortify/ResetUserPassword.php delete mode 100644 app/Actions/Fortify/UpdateUserPassword.php delete mode 100644 app/Actions/Fortify/UpdateUserProfileInformation.php delete mode 100644 app/Actions/Proxy/CheckProxy.php delete mode 100644 app/Actions/Proxy/GetProxyConfiguration.php delete mode 100644 app/Actions/Proxy/SaveProxyConfiguration.php delete mode 100644 app/Actions/Proxy/StartProxy.php delete mode 100644 app/Actions/Proxy/StopProxy.php delete mode 100644 app/Actions/Server/CheckUpdates.php delete mode 100644 app/Actions/Server/CleanupDocker.php delete mode 100644 app/Actions/Server/ConfigureCloudflared.php delete mode 100644 app/Actions/Server/DeleteServer.php delete mode 100644 app/Actions/Server/InstallDocker.php delete mode 100644 app/Actions/Server/InstallPrerequisites.php delete mode 100644 app/Actions/Server/ResourcesCheck.php delete mode 100644 app/Actions/Server/RestartContainer.php delete mode 100644 app/Actions/Server/RunCommand.php delete mode 100644 app/Actions/Server/StartLogDrain.php delete mode 100644 app/Actions/Server/StartSentinel.php delete mode 100644 app/Actions/Server/StopLogDrain.php delete mode 100644 app/Actions/Server/StopSentinel.php delete mode 100644 app/Actions/Server/UpdateCoolify.php delete mode 100644 app/Actions/Server/UpdatePackage.php delete mode 100644 app/Actions/Server/ValidatePrerequisites.php delete mode 100644 app/Actions/Server/ValidateServer.php delete mode 100644 app/Actions/Service/DeleteService.php delete mode 100644 app/Actions/Service/RestartService.php delete mode 100644 app/Actions/Service/StartService.php delete mode 100644 app/Actions/Service/StopService.php delete mode 100644 app/Actions/Shared/ComplexStatusCheck.php delete mode 100644 app/Actions/Stripe/CancelSubscription.php delete mode 100644 app/Actions/User/DeleteUserResources.php delete mode 100644 app/Actions/User/DeleteUserServers.php delete mode 100644 app/Actions/User/DeleteUserTeams.php delete mode 100644 app/Console/Commands/AdminDeleteUser.php delete mode 100644 app/Console/Commands/CheckApplicationDeploymentQueue.php delete mode 100644 app/Console/Commands/CheckTraefikVersionCommand.php delete mode 100644 app/Console/Commands/CleanupApplicationDeploymentQueue.php delete mode 100644 app/Console/Commands/CleanupDatabase.php delete mode 100644 app/Console/Commands/CleanupNames.php delete mode 100644 app/Console/Commands/CleanupRedis.php delete mode 100644 app/Console/Commands/CleanupStuckedResources.php delete mode 100644 app/Console/Commands/CleanupUnreachableServers.php delete mode 100644 app/Console/Commands/ClearGlobalSearchCache.php delete mode 100644 app/Console/Commands/Cloud/CloudFixSubscription.php delete mode 100644 app/Console/Commands/Cloud/RestoreDatabase.php delete mode 100644 app/Console/Commands/Dev.php delete mode 100644 app/Console/Commands/Emails.php delete mode 100644 app/Console/Commands/Generate/OpenApi.php delete mode 100644 app/Console/Commands/Generate/Services.php delete mode 100644 app/Console/Commands/Horizon.php delete mode 100644 app/Console/Commands/HorizonManage.php delete mode 100644 app/Console/Commands/Init.php delete mode 100644 app/Console/Commands/Migration.php delete mode 100644 app/Console/Commands/NotifyDemo.php delete mode 100644 app/Console/Commands/RootChangeEmail.php delete mode 100644 app/Console/Commands/RootResetPassword.php delete mode 100644 app/Console/Commands/RunScheduledJobsManually.php delete mode 100644 app/Console/Commands/Scheduler.php delete mode 100644 app/Console/Commands/Seeder.php delete mode 100644 app/Console/Commands/ServicesDelete.php delete mode 100644 app/Console/Commands/SyncBunny.php delete mode 100644 app/Console/Commands/UpdateServiceVersions.php delete mode 100644 app/Console/Commands/ViewScheduledLogs.php delete mode 100644 app/Console/Kernel.php delete mode 100644 app/Contracts/CustomJobRepositoryInterface.php delete mode 100644 app/Data/CoolifyTaskArgs.php delete mode 100644 app/Data/ServerMetadata.php delete mode 100644 app/Enums/ActivityTypes.php delete mode 100644 app/Enums/ApplicationDeploymentStatus.php delete mode 100644 app/Enums/BuildPackTypes.php delete mode 100644 app/Enums/ContainerStatusTypes.php delete mode 100644 app/Enums/NewDatabaseTypes.php delete mode 100644 app/Enums/NewResourceTypes.php delete mode 100644 app/Enums/ProcessStatus.php delete mode 100644 app/Enums/ProxyTypes.php delete mode 100644 app/Enums/RedirectTypes.php delete mode 100644 app/Enums/Role.php delete mode 100644 app/Enums/StaticImageTypes.php delete mode 100644 app/Events/ApplicationConfigurationChanged.php delete mode 100644 app/Events/ApplicationStatusChanged.php delete mode 100644 app/Events/BackupCreated.php delete mode 100644 app/Events/CloudflareTunnelChanged.php delete mode 100644 app/Events/CloudflareTunnelConfigured.php delete mode 100644 app/Events/DatabaseProxyStopped.php delete mode 100644 app/Events/DatabaseStatusChanged.php delete mode 100644 app/Events/DockerCleanupDone.php delete mode 100644 app/Events/FileStorageChanged.php delete mode 100644 app/Events/ProxyStatusChanged.php delete mode 100644 app/Events/ProxyStatusChangedUI.php delete mode 100644 app/Events/RestoreJobFinished.php delete mode 100644 app/Events/S3RestoreJobFinished.php delete mode 100644 app/Events/ScheduledTaskDone.php delete mode 100644 app/Events/SentinelRestarted.php delete mode 100644 app/Events/ServerPackageUpdated.php delete mode 100644 app/Events/ServerReachabilityChanged.php delete mode 100644 app/Events/ServerValidated.php delete mode 100644 app/Events/ServiceChecked.php delete mode 100644 app/Events/ServiceStatusChanged.php delete mode 100644 app/Events/TestEvent.php delete mode 100644 app/Exceptions/DeploymentException.php delete mode 100644 app/Exceptions/Handler.php delete mode 100644 app/Exceptions/NonReportableException.php delete mode 100644 app/Exceptions/ProcessException.php delete mode 100644 app/Helpers/SshMultiplexingHelper.php delete mode 100644 app/Helpers/SshRetryHandler.php delete mode 100644 app/Helpers/SslHelper.php delete mode 100644 app/Http/Controllers/Api/ApplicationsController.php delete mode 100644 app/Http/Controllers/Api/DatabasesController.php delete mode 100644 app/Http/Controllers/Api/DeployController.php delete mode 100644 app/Http/Controllers/Api/GithubController.php delete mode 100644 app/Http/Controllers/Api/OpenApi.php delete mode 100644 app/Http/Controllers/Api/OtherController.php delete mode 100644 app/Http/Controllers/Api/ProjectController.php delete mode 100644 app/Http/Controllers/Api/ResourcesController.php delete mode 100644 app/Http/Controllers/Api/SecurityController.php delete mode 100644 app/Http/Controllers/Api/ServersController.php delete mode 100644 app/Http/Controllers/Api/ServicesController.php delete mode 100644 app/Http/Controllers/Api/TeamController.php delete mode 100644 app/Http/Controllers/Controller.php delete mode 100644 app/Http/Controllers/MagicController.php delete mode 100644 app/Http/Controllers/OauthController.php delete mode 100644 app/Http/Controllers/UploadController.php delete mode 100644 app/Http/Controllers/Webhook/Bitbucket.php delete mode 100644 app/Http/Controllers/Webhook/Gitea.php delete mode 100644 app/Http/Controllers/Webhook/Github.php delete mode 100644 app/Http/Controllers/Webhook/Gitlab.php delete mode 100644 app/Http/Controllers/Webhook/Stripe.php delete mode 100644 app/Http/Kernel.php delete mode 100644 app/Http/Middleware/ApiAbility.php delete mode 100644 app/Http/Middleware/ApiAllowed.php delete mode 100644 app/Http/Middleware/ApiSensitiveData.php delete mode 100644 app/Http/Middleware/Authenticate.php delete mode 100644 app/Http/Middleware/CanAccessTerminal.php delete mode 100644 app/Http/Middleware/CanCreateResources.php delete mode 100644 app/Http/Middleware/CanUpdateResource.php delete mode 100644 app/Http/Middleware/CheckForcePasswordReset.php delete mode 100644 app/Http/Middleware/DecideWhatToDoWithUser.php delete mode 100644 app/Http/Middleware/EncryptCookies.php delete mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php delete mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php delete mode 100644 app/Http/Middleware/TrimStrings.php delete mode 100644 app/Http/Middleware/TrustHosts.php delete mode 100644 app/Http/Middleware/TrustProxies.php delete mode 100644 app/Http/Middleware/ValidateSignature.php delete mode 100644 app/Http/Middleware/VerifyCsrfToken.php delete mode 100644 app/Jobs/ApplicationDeploymentJob.php delete mode 100755 app/Jobs/ApplicationPullRequestUpdateJob.php delete mode 100644 app/Jobs/CheckAndStartSentinelJob.php delete mode 100644 app/Jobs/CheckForUpdatesJob.php delete mode 100644 app/Jobs/CheckHelperImageJob.php delete mode 100644 app/Jobs/CheckTraefikVersionForServerJob.php delete mode 100644 app/Jobs/CheckTraefikVersionJob.php delete mode 100644 app/Jobs/CleanupHelperContainersJob.php delete mode 100644 app/Jobs/CleanupInstanceStuffsJob.php delete mode 100644 app/Jobs/CleanupStaleMultiplexedConnections.php delete mode 100755 app/Jobs/CoolifyTask.php delete mode 100644 app/Jobs/DatabaseBackupJob.php delete mode 100644 app/Jobs/DeleteResourceJob.php delete mode 100644 app/Jobs/DockerCleanupJob.php delete mode 100644 app/Jobs/GithubAppPermissionJob.php delete mode 100644 app/Jobs/PullChangelog.php delete mode 100644 app/Jobs/PullTemplatesFromCDN.php delete mode 100644 app/Jobs/PushServerUpdateJob.php delete mode 100644 app/Jobs/RegenerateSslCertJob.php delete mode 100644 app/Jobs/RestartProxyJob.php delete mode 100644 app/Jobs/ScheduledJobManager.php delete mode 100644 app/Jobs/ScheduledTaskJob.php delete mode 100644 app/Jobs/SendMessageToDiscordJob.php delete mode 100644 app/Jobs/SendMessageToPushoverJob.php delete mode 100644 app/Jobs/SendMessageToSlackJob.php delete mode 100644 app/Jobs/SendMessageToTelegramJob.php delete mode 100644 app/Jobs/SendWebhookJob.php delete mode 100644 app/Jobs/ServerCheckJob.php delete mode 100644 app/Jobs/ServerCleanupMux.php delete mode 100644 app/Jobs/ServerConnectionCheckJob.php delete mode 100644 app/Jobs/ServerFilesFromServerJob.php delete mode 100644 app/Jobs/ServerLimitCheckJob.php delete mode 100644 app/Jobs/ServerManagerJob.php delete mode 100644 app/Jobs/ServerPatchCheckJob.php delete mode 100644 app/Jobs/ServerStorageCheckJob.php delete mode 100644 app/Jobs/ServerStorageSaveJob.php delete mode 100644 app/Jobs/StripeProcessJob.php delete mode 100755 app/Jobs/SubscriptionInvoiceFailedJob.php delete mode 100644 app/Jobs/UpdateCoolifyJob.php delete mode 100644 app/Jobs/UpdateStripeCustomerEmailJob.php delete mode 100644 app/Jobs/ValidateAndInstallServerJob.php delete mode 100644 app/Jobs/VerifyStripeSubscriptionStatusJob.php delete mode 100644 app/Jobs/VolumeCloneJob.php delete mode 100644 app/Listeners/CloudflareTunnelChangedNotification.php delete mode 100644 app/Listeners/MaintenanceModeDisabledNotification.php delete mode 100644 app/Listeners/MaintenanceModeEnabledNotification.php delete mode 100644 app/Listeners/ProxyStatusChangedNotification.php delete mode 100644 app/Livewire/ActivityMonitor.php delete mode 100644 app/Livewire/Admin/Index.php delete mode 100644 app/Livewire/Boarding/Index.php delete mode 100644 app/Livewire/Dashboard.php delete mode 100644 app/Livewire/DeploymentsIndicator.php delete mode 100644 app/Livewire/Destination/Index.php delete mode 100644 app/Livewire/Destination/New/Docker.php delete mode 100644 app/Livewire/Destination/Show.php delete mode 100644 app/Livewire/ForcePasswordReset.php delete mode 100644 app/Livewire/GlobalSearch.php delete mode 100644 app/Livewire/Help.php delete mode 100644 app/Livewire/LayoutPopups.php delete mode 100644 app/Livewire/MonacoEditor.php delete mode 100644 app/Livewire/NavbarDeleteTeam.php delete mode 100644 app/Livewire/Notifications/Discord.php delete mode 100644 app/Livewire/Notifications/Email.php delete mode 100644 app/Livewire/Notifications/Pushover.php delete mode 100644 app/Livewire/Notifications/Slack.php delete mode 100644 app/Livewire/Notifications/Telegram.php delete mode 100644 app/Livewire/Notifications/Webhook.php delete mode 100644 app/Livewire/Profile/Index.php delete mode 100644 app/Livewire/Project/AddEmpty.php delete mode 100644 app/Livewire/Project/Application/Advanced.php delete mode 100644 app/Livewire/Project/Application/Configuration.php delete mode 100644 app/Livewire/Project/Application/Deployment/Index.php delete mode 100644 app/Livewire/Project/Application/Deployment/Show.php delete mode 100644 app/Livewire/Project/Application/DeploymentNavbar.php delete mode 100644 app/Livewire/Project/Application/General.php delete mode 100644 app/Livewire/Project/Application/Heading.php delete mode 100644 app/Livewire/Project/Application/Preview/Form.php delete mode 100644 app/Livewire/Project/Application/Previews.php delete mode 100644 app/Livewire/Project/Application/PreviewsCompose.php delete mode 100644 app/Livewire/Project/Application/Rollback.php delete mode 100644 app/Livewire/Project/Application/Source.php delete mode 100644 app/Livewire/Project/Application/Swarm.php delete mode 100644 app/Livewire/Project/CloneMe.php delete mode 100644 app/Livewire/Project/Database/Backup/Execution.php delete mode 100644 app/Livewire/Project/Database/Backup/Index.php delete mode 100644 app/Livewire/Project/Database/BackupEdit.php delete mode 100644 app/Livewire/Project/Database/BackupExecutions.php delete mode 100644 app/Livewire/Project/Database/BackupNow.php delete mode 100644 app/Livewire/Project/Database/Clickhouse/General.php delete mode 100644 app/Livewire/Project/Database/Configuration.php delete mode 100644 app/Livewire/Project/Database/CreateScheduledBackup.php delete mode 100644 app/Livewire/Project/Database/Dragonfly/General.php delete mode 100644 app/Livewire/Project/Database/Heading.php delete mode 100644 app/Livewire/Project/Database/Import.php delete mode 100644 app/Livewire/Project/Database/InitScript.php delete mode 100644 app/Livewire/Project/Database/Keydb/General.php delete mode 100644 app/Livewire/Project/Database/Mariadb/General.php delete mode 100644 app/Livewire/Project/Database/Mongodb/General.php delete mode 100644 app/Livewire/Project/Database/Mysql/General.php delete mode 100644 app/Livewire/Project/Database/Postgresql/General.php delete mode 100644 app/Livewire/Project/Database/Redis/General.php delete mode 100644 app/Livewire/Project/Database/ScheduledBackups.php delete mode 100644 app/Livewire/Project/DeleteEnvironment.php delete mode 100644 app/Livewire/Project/DeleteProject.php delete mode 100644 app/Livewire/Project/Edit.php delete mode 100644 app/Livewire/Project/EnvironmentEdit.php delete mode 100644 app/Livewire/Project/Index.php delete mode 100644 app/Livewire/Project/New/DockerCompose.php delete mode 100644 app/Livewire/Project/New/DockerImage.php delete mode 100644 app/Livewire/Project/New/EmptyProject.php delete mode 100644 app/Livewire/Project/New/GithubPrivateRepository.php delete mode 100644 app/Livewire/Project/New/GithubPrivateRepositoryDeployKey.php delete mode 100644 app/Livewire/Project/New/PublicGitRepository.php delete mode 100644 app/Livewire/Project/New/Select.php delete mode 100644 app/Livewire/Project/New/SimpleDockerfile.php delete mode 100644 app/Livewire/Project/Resource/Create.php delete mode 100644 app/Livewire/Project/Resource/EnvironmentSelect.php delete mode 100644 app/Livewire/Project/Resource/Index.php delete mode 100644 app/Livewire/Project/Service/Configuration.php delete mode 100644 app/Livewire/Project/Service/Database.php delete mode 100644 app/Livewire/Project/Service/EditCompose.php delete mode 100644 app/Livewire/Project/Service/EditDomain.php delete mode 100644 app/Livewire/Project/Service/FileStorage.php delete mode 100644 app/Livewire/Project/Service/Heading.php delete mode 100644 app/Livewire/Project/Service/Index.php delete mode 100644 app/Livewire/Project/Service/ServiceApplicationView.php delete mode 100644 app/Livewire/Project/Service/StackForm.php delete mode 100644 app/Livewire/Project/Service/Storage.php delete mode 100644 app/Livewire/Project/Shared/ConfigurationChecker.php delete mode 100644 app/Livewire/Project/Shared/Danger.php delete mode 100644 app/Livewire/Project/Shared/Destination.php delete mode 100644 app/Livewire/Project/Shared/EnvironmentVariable/Add.php delete mode 100644 app/Livewire/Project/Shared/EnvironmentVariable/All.php delete mode 100644 app/Livewire/Project/Shared/EnvironmentVariable/Show.php delete mode 100644 app/Livewire/Project/Shared/ExecuteContainerCommand.php delete mode 100644 app/Livewire/Project/Shared/GetLogs.php delete mode 100644 app/Livewire/Project/Shared/HealthChecks.php delete mode 100644 app/Livewire/Project/Shared/Logs.php delete mode 100644 app/Livewire/Project/Shared/Metrics.php delete mode 100644 app/Livewire/Project/Shared/ResourceLimits.php delete mode 100644 app/Livewire/Project/Shared/ResourceOperations.php delete mode 100644 app/Livewire/Project/Shared/ScheduledTask/Add.php delete mode 100644 app/Livewire/Project/Shared/ScheduledTask/All.php delete mode 100644 app/Livewire/Project/Shared/ScheduledTask/Executions.php delete mode 100644 app/Livewire/Project/Shared/ScheduledTask/Show.php delete mode 100644 app/Livewire/Project/Shared/Storages/All.php delete mode 100644 app/Livewire/Project/Shared/Storages/Show.php delete mode 100644 app/Livewire/Project/Shared/Tags.php delete mode 100644 app/Livewire/Project/Shared/Terminal.php delete mode 100644 app/Livewire/Project/Shared/UploadConfig.php delete mode 100644 app/Livewire/Project/Shared/Webhooks.php delete mode 100644 app/Livewire/Project/Show.php delete mode 100644 app/Livewire/Security/ApiTokens.php delete mode 100644 app/Livewire/Security/CloudInitScriptForm.php delete mode 100644 app/Livewire/Security/CloudInitScripts.php delete mode 100644 app/Livewire/Security/CloudProviderTokenForm.php delete mode 100644 app/Livewire/Security/CloudProviderTokens.php delete mode 100644 app/Livewire/Security/CloudTokens.php delete mode 100644 app/Livewire/Security/PrivateKey/Create.php delete mode 100644 app/Livewire/Security/PrivateKey/Index.php delete mode 100644 app/Livewire/Security/PrivateKey/Show.php delete mode 100644 app/Livewire/Server/Advanced.php delete mode 100644 app/Livewire/Server/CaCertificate/Show.php delete mode 100644 app/Livewire/Server/Charts.php delete mode 100644 app/Livewire/Server/CloudProviderToken/Show.php delete mode 100644 app/Livewire/Server/CloudflareTunnel.php delete mode 100644 app/Livewire/Server/Create.php delete mode 100644 app/Livewire/Server/Delete.php delete mode 100644 app/Livewire/Server/Destinations.php delete mode 100644 app/Livewire/Server/DockerCleanup.php delete mode 100644 app/Livewire/Server/DockerCleanupExecutions.php delete mode 100644 app/Livewire/Server/Index.php delete mode 100644 app/Livewire/Server/LogDrains.php delete mode 100644 app/Livewire/Server/Navbar.php delete mode 100644 app/Livewire/Server/New/ByHetzner.php delete mode 100644 app/Livewire/Server/New/ByIp.php delete mode 100644 app/Livewire/Server/PrivateKey/Show.php delete mode 100644 app/Livewire/Server/Proxy.php delete mode 100644 app/Livewire/Server/Proxy/DynamicConfigurationNavbar.php delete mode 100644 app/Livewire/Server/Proxy/DynamicConfigurations.php delete mode 100644 app/Livewire/Server/Proxy/Logs.php delete mode 100644 app/Livewire/Server/Proxy/NewDynamicConfiguration.php delete mode 100644 app/Livewire/Server/Proxy/Show.php delete mode 100644 app/Livewire/Server/Resources.php delete mode 100644 app/Livewire/Server/Security/Patches.php delete mode 100644 app/Livewire/Server/Security/TerminalAccess.php delete mode 100644 app/Livewire/Server/Show.php delete mode 100644 app/Livewire/Server/ValidateAndInstall.php delete mode 100644 app/Livewire/Settings/Advanced.php delete mode 100644 app/Livewire/Settings/Index.php delete mode 100644 app/Livewire/Settings/Updates.php delete mode 100644 app/Livewire/SettingsBackup.php delete mode 100644 app/Livewire/SettingsDropdown.php delete mode 100644 app/Livewire/SettingsEmail.php delete mode 100644 app/Livewire/SettingsOauth.php delete mode 100644 app/Livewire/SharedVariables/Environment/Index.php delete mode 100644 app/Livewire/SharedVariables/Environment/Show.php delete mode 100644 app/Livewire/SharedVariables/Index.php delete mode 100644 app/Livewire/SharedVariables/Project/Index.php delete mode 100644 app/Livewire/SharedVariables/Project/Show.php delete mode 100644 app/Livewire/SharedVariables/Team/Index.php delete mode 100644 app/Livewire/Source/Github/Change.php delete mode 100644 app/Livewire/Source/Github/Create.php delete mode 100644 app/Livewire/Storage/Create.php delete mode 100644 app/Livewire/Storage/Form.php delete mode 100644 app/Livewire/Storage/Index.php delete mode 100644 app/Livewire/Storage/Show.php delete mode 100644 app/Livewire/Subscription/Actions.php delete mode 100644 app/Livewire/Subscription/Index.php delete mode 100644 app/Livewire/Subscription/PricingPlans.php delete mode 100644 app/Livewire/Subscription/Show.php delete mode 100644 app/Livewire/SwitchTeam.php delete mode 100644 app/Livewire/Tags/Deployments.php delete mode 100644 app/Livewire/Tags/Show.php delete mode 100644 app/Livewire/Team/AdminView.php delete mode 100644 app/Livewire/Team/Create.php delete mode 100644 app/Livewire/Team/Index.php delete mode 100644 app/Livewire/Team/Invitations.php delete mode 100644 app/Livewire/Team/InviteLink.php delete mode 100644 app/Livewire/Team/Member.php delete mode 100644 app/Livewire/Team/Member/Index.php delete mode 100644 app/Livewire/Team/Storage/Show.php delete mode 100644 app/Livewire/Terminal/Index.php delete mode 100644 app/Livewire/Upgrade.php delete mode 100644 app/Livewire/VerifyEmail.php delete mode 100644 app/Models/Application.php delete mode 100644 app/Models/ApplicationDeploymentQueue.php delete mode 100644 app/Models/ApplicationPreview.php delete mode 100644 app/Models/ApplicationSetting.php delete mode 100644 app/Models/BaseModel.php delete mode 100644 app/Models/CloudInitScript.php delete mode 100644 app/Models/CloudProviderToken.php delete mode 100644 app/Models/DiscordNotificationSettings.php delete mode 100644 app/Models/DockerCleanupExecution.php delete mode 100644 app/Models/EmailNotificationSettings.php delete mode 100644 app/Models/Environment.php delete mode 100644 app/Models/EnvironmentVariable.php delete mode 100644 app/Models/GithubApp.php delete mode 100644 app/Models/GitlabApp.php delete mode 100644 app/Models/InstanceSettings.php delete mode 100644 app/Models/LocalFileVolume.php delete mode 100644 app/Models/LocalPersistentVolume.php delete mode 100644 app/Models/OauthSetting.php delete mode 100644 app/Models/PersonalAccessToken.php delete mode 100644 app/Models/PrivateKey.php delete mode 100644 app/Models/Project.php delete mode 100644 app/Models/ProjectSetting.php delete mode 100644 app/Models/PushoverNotificationSettings.php delete mode 100644 app/Models/S3Storage.php delete mode 100644 app/Models/ScheduledDatabaseBackup.php delete mode 100644 app/Models/ScheduledDatabaseBackupExecution.php delete mode 100644 app/Models/ScheduledTask.php delete mode 100644 app/Models/ScheduledTaskExecution.php delete mode 100644 app/Models/Server.php delete mode 100644 app/Models/ServerSetting.php delete mode 100644 app/Models/Service.php delete mode 100644 app/Models/ServiceApplication.php delete mode 100644 app/Models/ServiceDatabase.php delete mode 100644 app/Models/SharedEnvironmentVariable.php delete mode 100644 app/Models/SlackNotificationSettings.php delete mode 100644 app/Models/SslCertificate.php delete mode 100644 app/Models/StandaloneClickhouse.php delete mode 100644 app/Models/StandaloneDocker.php delete mode 100644 app/Models/StandaloneDragonfly.php delete mode 100644 app/Models/StandaloneKeydb.php delete mode 100644 app/Models/StandaloneMariadb.php delete mode 100644 app/Models/StandaloneMongodb.php delete mode 100644 app/Models/StandaloneMysql.php delete mode 100644 app/Models/StandalonePostgresql.php delete mode 100644 app/Models/StandaloneRedis.php delete mode 100644 app/Models/Subscription.php delete mode 100644 app/Models/SwarmDocker.php delete mode 100644 app/Models/Tag.php delete mode 100644 app/Models/Team.php delete mode 100644 app/Models/TeamInvitation.php delete mode 100644 app/Models/TelegramNotificationSettings.php delete mode 100644 app/Models/User.php delete mode 100644 app/Models/UserChangelogRead.php delete mode 100644 app/Models/WebhookNotificationSettings.php delete mode 100644 app/Notifications/Application/DeploymentFailed.php delete mode 100644 app/Notifications/Application/DeploymentSuccess.php delete mode 100644 app/Notifications/Application/StatusChanged.php delete mode 100644 app/Notifications/Channels/DiscordChannel.php delete mode 100644 app/Notifications/Channels/EmailChannel.php delete mode 100644 app/Notifications/Channels/PushoverChannel.php delete mode 100644 app/Notifications/Channels/SendsDiscord.php delete mode 100644 app/Notifications/Channels/SendsEmail.php delete mode 100644 app/Notifications/Channels/SendsPushover.php delete mode 100644 app/Notifications/Channels/SendsSlack.php delete mode 100644 app/Notifications/Channels/SendsTelegram.php delete mode 100644 app/Notifications/Channels/SlackChannel.php delete mode 100644 app/Notifications/Channels/TelegramChannel.php delete mode 100644 app/Notifications/Channels/TransactionalEmailChannel.php delete mode 100644 app/Notifications/Channels/WebhookChannel.php delete mode 100644 app/Notifications/Container/ContainerRestarted.php delete mode 100644 app/Notifications/Container/ContainerStopped.php delete mode 100644 app/Notifications/CustomEmailNotification.php delete mode 100644 app/Notifications/Database/BackupFailed.php delete mode 100644 app/Notifications/Database/BackupSuccess.php delete mode 100644 app/Notifications/Database/BackupSuccessWithS3Warning.php delete mode 100644 app/Notifications/Dto/DiscordMessage.php delete mode 100644 app/Notifications/Dto/PushoverMessage.php delete mode 100644 app/Notifications/Dto/SlackMessage.php delete mode 100644 app/Notifications/Internal/GeneralNotification.php delete mode 100644 app/Notifications/Notification.php delete mode 100644 app/Notifications/ScheduledTask/TaskFailed.php delete mode 100644 app/Notifications/ScheduledTask/TaskSuccess.php delete mode 100644 app/Notifications/Server/DockerCleanupFailed.php delete mode 100644 app/Notifications/Server/DockerCleanupSuccess.php delete mode 100644 app/Notifications/Server/ForceDisabled.php delete mode 100644 app/Notifications/Server/ForceEnabled.php delete mode 100644 app/Notifications/Server/HetznerDeletionFailed.php delete mode 100644 app/Notifications/Server/HighDiskUsage.php delete mode 100644 app/Notifications/Server/Reachable.php delete mode 100644 app/Notifications/Server/ServerPatchCheck.php delete mode 100644 app/Notifications/Server/TraefikVersionOutdated.php delete mode 100644 app/Notifications/Server/Unreachable.php delete mode 100644 app/Notifications/SslExpirationNotification.php delete mode 100644 app/Notifications/Test.php delete mode 100644 app/Notifications/TransactionalEmails/EmailChangeVerification.php delete mode 100644 app/Notifications/TransactionalEmails/InvitationLink.php delete mode 100644 app/Notifications/TransactionalEmails/ResetPassword.php delete mode 100644 app/Notifications/TransactionalEmails/Test.php delete mode 100644 app/Policies/ApiTokenPolicy.php delete mode 100644 app/Policies/ApplicationPolicy.php delete mode 100644 app/Policies/ApplicationPreviewPolicy.php delete mode 100644 app/Policies/ApplicationSettingPolicy.php delete mode 100644 app/Policies/CloudInitScriptPolicy.php delete mode 100644 app/Policies/CloudProviderTokenPolicy.php delete mode 100644 app/Policies/DatabasePolicy.php delete mode 100644 app/Policies/EnvironmentPolicy.php delete mode 100644 app/Policies/EnvironmentVariablePolicy.php delete mode 100644 app/Policies/GithubAppPolicy.php delete mode 100644 app/Policies/InstanceSettingsPolicy.php delete mode 100644 app/Policies/NotificationPolicy.php delete mode 100644 app/Policies/PrivateKeyPolicy.php delete mode 100644 app/Policies/ProjectPolicy.php delete mode 100644 app/Policies/ResourceCreatePolicy.php delete mode 100644 app/Policies/S3StoragePolicy.php delete mode 100644 app/Policies/ServerPolicy.php delete mode 100644 app/Policies/ServiceApplicationPolicy.php delete mode 100644 app/Policies/ServiceDatabasePolicy.php delete mode 100644 app/Policies/ServicePolicy.php delete mode 100644 app/Policies/SharedEnvironmentVariablePolicy.php delete mode 100644 app/Policies/StandaloneDockerPolicy.php delete mode 100644 app/Policies/SwarmDockerPolicy.php delete mode 100644 app/Policies/TeamPolicy.php delete mode 100644 app/Providers/AuthServiceProvider.php delete mode 100644 app/Providers/BroadcastServiceProvider.php delete mode 100644 app/Providers/ConfigurationServiceProvider.php delete mode 100644 app/Providers/DuskServiceProvider.php delete mode 100644 app/Providers/EventServiceProvider.php delete mode 100644 app/Providers/FortifyServiceProvider.php delete mode 100644 app/Providers/HorizonServiceProvider.php delete mode 100644 app/Providers/RouteServiceProvider.php delete mode 100644 app/Providers/TelescopeServiceProvider.php delete mode 100644 app/Repositories/CustomJobRepository.php delete mode 100644 app/Rules/DockerImageFormat.php delete mode 100644 app/Rules/ValidCloudInitYaml.php delete mode 100644 app/Rules/ValidGitBranch.php delete mode 100644 app/Rules/ValidGitRepositoryUrl.php delete mode 100644 app/Rules/ValidHostname.php delete mode 100644 app/Rules/ValidIpOrCidr.php delete mode 100644 app/Services/ChangelogService.php delete mode 100644 app/Services/ConfigurationGenerator.php delete mode 100644 app/Services/ConfigurationRepository.php delete mode 100644 app/Services/ContainerStatusAggregator.php delete mode 100644 app/Services/DockerImageParser.php delete mode 100644 app/Services/HetznerService.php delete mode 100644 app/Services/ProxyDashboardCacheService.php delete mode 100644 app/Support/ValidationPatterns.php delete mode 100644 app/Traits/AuthorizesResourceCreation.php delete mode 100644 app/Traits/CalculatesExcludedStatus.php delete mode 100644 app/Traits/ClearsGlobalSearchCache.php delete mode 100644 app/Traits/DeletesUserSessions.php delete mode 100644 app/Traits/EnvironmentVariableAnalyzer.php delete mode 100644 app/Traits/EnvironmentVariableProtection.php delete mode 100644 app/Traits/ExecuteRemoteCommand.php delete mode 100644 app/Traits/HasConfiguration.php delete mode 100644 app/Traits/HasNotificationSettings.php delete mode 100644 app/Traits/HasSafeStringAttribute.php delete mode 100644 app/Traits/SaveFromRedirect.php delete mode 100644 app/Traits/SshRetryable.php delete mode 100644 app/View/Components/Forms/Button.php delete mode 100644 app/View/Components/Forms/Checkbox.php delete mode 100644 app/View/Components/Forms/Datalist.php delete mode 100644 app/View/Components/Forms/EnvVarInput.php delete mode 100644 app/View/Components/Forms/Input.php delete mode 100644 app/View/Components/Forms/Select.php delete mode 100644 app/View/Components/Forms/Textarea.php delete mode 100644 app/View/Components/Modal.php delete mode 100644 app/View/Components/ResourceView.php delete mode 100644 app/View/Components/Services/Advanced.php delete mode 100644 app/View/Components/Services/Explanation.php delete mode 100644 app/View/Components/Services/Links.php delete mode 100644 app/View/Components/Status/Index.php delete mode 100644 app/View/Components/Status/Services.php delete mode 100644 backlog/config.yml delete mode 100644 backlog/tasks/task-00001 - Implement-Docker-build-caching-for-Coolify-staging-builds.md delete mode 100644 backlog/tasks/task-00001.01 - Add-BuildKit-cache-mounts-to-Dockerfile.md delete mode 100644 backlog/tasks/task-00001.02 - Configure-BuildX-and-registry-caching-for-AMD64-staging-builds.md delete mode 100644 backlog/tasks/task-00001.03 - Configure-BuildX-and-registry-caching-for-AARCH64-staging-builds.md delete mode 100644 backlog/tasks/task-00001.04 - Establish-build-time-baseline-measurements.md delete mode 100644 backlog/tasks/task-00001.05 - Validate-caching-implementation-and-measure-performance-improvements.md delete mode 100644 backlog/tasks/task-00001.06 - Document-cache-optimization-results-and-create-production-workflow-plan.md delete mode 100644 backlog/tasks/task-00002 - Fix-Docker-cleanup-irregular-scheduling-in-cloud-environment.md delete mode 100644 backlog/tasks/task-00003 - Simplify-resource-operations-UI-replace-boxes-with-dropdown-selections.md delete mode 100644 bootstrap/getHelperVersion.php delete mode 100644 bootstrap/getRealtimeVersion.php delete mode 100644 bootstrap/getVersion.php delete mode 100644 bootstrap/helpers/api.php delete mode 100644 bootstrap/helpers/applications.php delete mode 100644 bootstrap/helpers/constants.php delete mode 100644 bootstrap/helpers/databases.php delete mode 100644 bootstrap/helpers/docker.php delete mode 100644 bootstrap/helpers/domains.php delete mode 100644 bootstrap/helpers/github.php delete mode 100644 bootstrap/helpers/notifications.php delete mode 100644 bootstrap/helpers/parsers.php delete mode 100644 bootstrap/helpers/proxy.php delete mode 100644 bootstrap/helpers/remoteProcess.php delete mode 100644 bootstrap/helpers/services.php delete mode 100644 bootstrap/helpers/shared.php delete mode 100644 bootstrap/helpers/socialite.php delete mode 100644 bootstrap/helpers/subscriptions.php delete mode 100644 bootstrap/helpers/sudo.php delete mode 100644 bootstrap/helpers/timezone.php delete mode 100644 bootstrap/helpers/versions.php delete mode 100644 bootstrap/includeHelpers.php create mode 100644 bootstrap/providers.php delete mode 100644 cliff.toml delete mode 100644 conductor.json delete mode 100644 config/api.php delete mode 100644 config/broadcasting.php delete mode 100644 config/chunk-upload.php delete mode 100644 config/constants.php delete mode 100644 config/cors.php delete mode 100644 config/debugbar.php delete mode 100644 config/fortify.php delete mode 100644 config/hashing.php delete mode 100644 config/horizon.php delete mode 100644 config/livewire.php delete mode 100644 config/purify.php delete mode 100644 config/ray.php delete mode 100644 config/sanctum.php delete mode 100644 config/sentry.php delete mode 100644 config/subscription.php delete mode 100644 config/telescope.php delete mode 100644 config/testing.php delete mode 100644 config/view.php delete mode 100644 database/.gitignore delete mode 100644 database/factories/ApplicationFactory.php delete mode 100644 database/factories/ServerFactory.php delete mode 100644 database/factories/TeamFactory.php delete mode 100644 database/factories/UserFactory.php delete mode 100644 database/migrations/2014_10_12_000000_create_users_table.php delete mode 100644 database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php delete mode 100644 database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php delete mode 100644 database/migrations/2018_08_08_100000_create_telescope_entries_table.php delete mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php delete mode 100755 database/migrations/2023_03_20_112410_create_activity_log_table.php delete mode 100755 database/migrations/2023_03_20_112411_add_event_column_to_activity_log_table.php delete mode 100755 database/migrations/2023_03_20_112412_add_batch_uuid_column_to_activity_log_table.php delete mode 100644 database/migrations/2023_03_20_112809_create_sessions_table.php delete mode 100644 database/migrations/2023_03_20_112811_create_teams_table.php delete mode 100644 database/migrations/2023_03_20_112812_create_team_user_table.php delete mode 100644 database/migrations/2023_03_20_112813_create_team_invitations_table.php delete mode 100644 database/migrations/2023_03_20_112814_create_instance_settings_table.php delete mode 100644 database/migrations/2023_03_24_140711_create_servers_table.php delete mode 100644 database/migrations/2023_03_24_140712_create_server_settings_table.php delete mode 100644 database/migrations/2023_03_24_140853_create_private_keys_table.php delete mode 100644 database/migrations/2023_03_27_075351_create_projects_table.php delete mode 100644 database/migrations/2023_03_27_075443_create_project_settings_table.php delete mode 100644 database/migrations/2023_03_27_075444_create_environments_table.php delete mode 100644 database/migrations/2023_03_27_081716_create_applications_table.php delete mode 100644 database/migrations/2023_03_27_081717_create_application_settings_table.php delete mode 100644 database/migrations/2023_03_27_081718_create_application_previews_table.php delete mode 100644 database/migrations/2023_03_27_083621_create_services_table.php delete mode 100644 database/migrations/2023_03_27_085020_create_standalone_dockers_table.php delete mode 100644 database/migrations/2023_03_27_085022_create_swarm_dockers_table.php delete mode 100644 database/migrations/2023_03_28_062150_create_kubernetes_table.php delete mode 100644 database/migrations/2023_03_28_083723_create_github_apps_table.php delete mode 100644 database/migrations/2023_03_28_083726_create_gitlab_apps_table.php delete mode 100644 database/migrations/2023_04_03_111012_create_local_persistent_volumes_table.php delete mode 100644 database/migrations/2023_05_04_194548_create_environment_variables_table.php delete mode 100644 database/migrations/2023_05_17_104039_create_failed_jobs_table.php delete mode 100644 database/migrations/2023_05_24_083426_create_application_deployment_queues_table.php delete mode 100644 database/migrations/2023_06_22_131459_move_wildcard_to_server.php delete mode 100644 database/migrations/2023_06_23_084605_remove_wildcard_domain_from_instancesettings.php delete mode 100644 database/migrations/2023_06_23_110548_next_channel_updates.php delete mode 100644 database/migrations/2023_06_23_114131_change_env_var_value_length.php delete mode 100644 database/migrations/2023_06_23_114132_remove_default_redirect_from_instance_settings.php delete mode 100644 database/migrations/2023_06_23_114133_use_application_deployment_queues_as_activity.php delete mode 100644 database/migrations/2023_06_23_114134_add_disk_usage_percentage_to_servers.php delete mode 100644 database/migrations/2023_07_13_115117_create_subscriptions_table.php delete mode 100644 database/migrations/2023_07_13_120719_create_webhooks_table.php delete mode 100644 database/migrations/2023_07_13_120721_add_license_to_instance_settings.php delete mode 100644 database/migrations/2023_07_27_182013_smtp_discord_schemaless_to_normal.php delete mode 100644 database/migrations/2023_08_06_142951_add_description_field_to_applications_table.php delete mode 100644 database/migrations/2023_08_06_142952_remove_foreignId_environment_variables.php delete mode 100644 database/migrations/2023_08_06_142954_add_readonly_localpersistentvolumes.php delete mode 100644 database/migrations/2023_08_07_073651_create_s3_storages_table.php delete mode 100644 database/migrations/2023_08_07_142950_create_standalone_postgresqls_table.php delete mode 100644 database/migrations/2023_08_08_150103_create_scheduled_database_backups_table.php delete mode 100644 database/migrations/2023_08_10_113306_create_scheduled_database_backup_executions_table.php delete mode 100644 database/migrations/2023_08_10_201311_add_backup_notifications_to_teams.php delete mode 100644 database/migrations/2023_08_11_190528_add_dockerfile_to_applications_table.php delete mode 100644 database/migrations/2023_08_15_095902_create_waitlists_table.php delete mode 100644 database/migrations/2023_08_15_111125_update_users_table.php delete mode 100644 database/migrations/2023_08_15_111126_update_servers_add_unreachable_count_table.php delete mode 100644 database/migrations/2023_08_22_071048_add_boarding_to_teams.php delete mode 100644 database/migrations/2023_08_22_071049_update_webhooks_type.php delete mode 100644 database/migrations/2023_08_22_071050_update_subscriptions_stripe.php delete mode 100644 database/migrations/2023_08_22_071051_add_stripe_plan_to_subscriptions.php delete mode 100644 database/migrations/2023_08_22_071052_add_resend_as_email.php delete mode 100644 database/migrations/2023_08_22_071053_add_resend_as_email_to_teams.php delete mode 100644 database/migrations/2023_08_22_071054_add_stripe_reasons.php delete mode 100644 database/migrations/2023_08_22_071055_add_discord_notifications_to_teams.php delete mode 100644 database/migrations/2023_08_22_071056_update_telegram_notifications.php delete mode 100644 database/migrations/2023_08_22_071057_add_nixpkgsarchive_to_applications.php delete mode 100644 database/migrations/2023_08_22_071058_add_nixpkgsarchive_to_applications_remove.php delete mode 100644 database/migrations/2023_08_22_071059_add_stripe_trial_ended.php delete mode 100644 database/migrations/2023_08_22_071060_change_invitation_link_length.php delete mode 100644 database/migrations/2023_09_20_082541_update_services_table.php delete mode 100644 database/migrations/2023_09_20_082733_create_service_databases_table.php delete mode 100644 database/migrations/2023_09_20_082737_create_service_applications_table.php delete mode 100644 database/migrations/2023_09_20_083549_update_environment_variables_table.php delete mode 100644 database/migrations/2023_09_22_185356_create_local_file_volumes_table.php delete mode 100644 database/migrations/2023_09_23_111808_update_servers_with_cloudflared.php delete mode 100644 database/migrations/2023_09_23_111809_remove_destination_from_services_table.php delete mode 100644 database/migrations/2023_09_23_111811_update_service_applications_table.php delete mode 100644 database/migrations/2023_09_23_111812_update_service_databases_table.php delete mode 100644 database/migrations/2023_09_23_111813_update_users_databases_table.php delete mode 100644 database/migrations/2023_09_23_111814_update_local_file_volumes_table.php delete mode 100644 database/migrations/2023_09_23_111815_add_healthcheck_disable_to_apps_table.php delete mode 100644 database/migrations/2023_09_23_111816_add_destination_to_services_table.php delete mode 100644 database/migrations/2023_09_23_111817_use_instance_email_settings_by_default.php delete mode 100644 database/migrations/2023_09_23_111818_set_notifications_on_by_default.php delete mode 100644 database/migrations/2023_09_23_111819_add_server_emails.php delete mode 100644 database/migrations/2023_10_08_111819_add_server_unreachable_count.php delete mode 100644 database/migrations/2023_10_10_100320_update_s3_storages_table.php delete mode 100644 database/migrations/2023_10_10_113144_add_dockerfile_location_applications_table.php delete mode 100644 database/migrations/2023_10_12_132430_create_standalone_redis_table.php delete mode 100644 database/migrations/2023_10_12_132431_add_standalone_redis_to_environment_variables_table.php delete mode 100644 database/migrations/2023_10_12_132432_add_database_selection_to_backups.php delete mode 100644 database/migrations/2023_10_18_072519_add_custom_labels_applications_table.php delete mode 100644 database/migrations/2023_10_19_101331_create_standalone_mongodbs_table.php delete mode 100644 database/migrations/2023_10_19_101332_add_standalone_mongodb_to_environment_variables_table.php delete mode 100644 database/migrations/2023_10_24_103548_create_standalone_mysqls_table.php delete mode 100644 database/migrations/2023_10_24_120523_create_standalone_mariadbs_table.php delete mode 100644 database/migrations/2023_10_24_120524_add_standalone_mysql_to_environment_variables_table.php delete mode 100644 database/migrations/2023_10_24_124934_add_is_shown_once_to_environment_variables_table.php delete mode 100644 database/migrations/2023_11_01_100437_add_restart_to_deployment_queue.php delete mode 100644 database/migrations/2023_11_07_123731_add_target_build_dockerfile.php delete mode 100644 database/migrations/2023_11_08_112815_add_custom_config_standalone_postgresql.php delete mode 100644 database/migrations/2023_11_09_133332_add_public_port_to_service_databases.php delete mode 100644 database/migrations/2023_11_12_180605_change_fqdn_to_longer_field.php delete mode 100644 database/migrations/2023_11_13_133059_add_sponsorship_disable.php delete mode 100644 database/migrations/2023_11_14_103450_add_manual_webhook_secret.php delete mode 100644 database/migrations/2023_11_14_121416_add_git_type.php delete mode 100644 database/migrations/2023_11_16_101819_add_high_disk_usage_notification.php delete mode 100644 database/migrations/2023_11_16_220647_add_log_drains.php delete mode 100644 database/migrations/2023_11_17_160437_add_drain_log_enable_by_service.php delete mode 100644 database/migrations/2023_11_20_094628_add_gpu_settings.php delete mode 100644 database/migrations/2023_11_21_121920_add_additional_destinations_to_apps.php delete mode 100644 database/migrations/2023_11_24_080341_add_docker_compose_location.php delete mode 100644 database/migrations/2023_11_28_143533_add_fields_to_swarm_dockers.php delete mode 100644 database/migrations/2023_11_29_075937_change_swarm_properties.php delete mode 100644 database/migrations/2023_12_01_091723_save_logs_view_settings.php delete mode 100644 database/migrations/2023_12_01_095356_add_custom_fluentd_config_for_logdrains.php delete mode 100644 database/migrations/2023_12_08_162228_add_soft_delete_services.php delete mode 100644 database/migrations/2023_12_11_103611_add_realtime_connection_problem.php delete mode 100644 database/migrations/2023_12_13_110214_add_soft_deletes.php delete mode 100644 database/migrations/2023_12_17_155616_add_custom_docker_compose_start_command.php delete mode 100644 database/migrations/2023_12_18_093514_add_swarm_related_things.php delete mode 100644 database/migrations/2023_12_19_124111_add_swarm_cluster_grouping.php delete mode 100644 database/migrations/2023_12_30_134507_add_description_to_environments.php delete mode 100644 database/migrations/2023_12_31_173041_create_scheduled_tasks_table.php delete mode 100644 database/migrations/2024_01_01_231053_create_scheduled_task_executions_table.php delete mode 100644 database/migrations/2024_01_02_113855_add_raw_compose_deployment.php delete mode 100644 database/migrations/2024_01_12_123422_update_cpuset_limits.php delete mode 100644 database/migrations/2024_01_15_084609_add_custom_dns_server.php delete mode 100644 database/migrations/2024_01_16_115005_add_build_server_enable.php delete mode 100644 database/migrations/2024_01_21_130328_add_docker_network_to_services.php delete mode 100755 database/migrations/2024_01_23_095832_add_manual_webhook_secret_bitbucket.php delete mode 100644 database/migrations/2024_01_23_113129_create_shared_environment_variables_table.php delete mode 100644 database/migrations/2024_01_24_095449_add_concurrent_number_of_builds_per_server.php delete mode 100644 database/migrations/2024_01_25_073212_add_server_id_to_queues.php delete mode 100644 database/migrations/2024_01_27_164724_add_application_name_and_deployment_url_to_queue.php delete mode 100644 database/migrations/2024_01_29_072322_change_env_variable_length.php delete mode 100644 database/migrations/2024_01_29_145200_add_custom_docker_run_options.php delete mode 100644 database/migrations/2024_02_01_111228_create_tags_table.php delete mode 100644 database/migrations/2024_02_05_105215_add_destination_to_app_deployments.php delete mode 100644 database/migrations/2024_02_06_132748_add_additional_destinations.php delete mode 100644 database/migrations/2024_02_08_075523_add_post_deployment_to_applications.php delete mode 100644 database/migrations/2024_02_08_112304_add_dynamic_timeout_for_deployments.php delete mode 100644 database/migrations/2024_02_15_101921_add_consistent_application_container_name.php delete mode 100644 database/migrations/2024_02_15_192025_add_is_gzip_enabled_to_services.php delete mode 100644 database/migrations/2024_02_20_165045_add_permissions_to_github_app.php delete mode 100644 database/migrations/2024_02_22_090900_add_only_this_server_deployment.php delete mode 100644 database/migrations/2024_02_23_143119_add_custom_server_limits_to_teams_ultimate.php delete mode 100644 database/migrations/2024_02_25_222150_add_server_force_disabled_field.php delete mode 100644 database/migrations/2024_03_04_092244_add_gzip_enabled_and_stripprefix_settings.php delete mode 100644 database/migrations/2024_03_07_115054_add_notifications_notification_disable.php delete mode 100644 database/migrations/2024_03_08_180457_nullable_password.php delete mode 100644 database/migrations/2024_03_11_150013_create_oauth_settings.php delete mode 100644 database/migrations/2024_03_14_214402_add_multiline_envs.php delete mode 100644 database/migrations/2024_03_18_101440_add_version_of_envs.php delete mode 100644 database/migrations/2024_03_22_080914_remove_popup_notifications.php delete mode 100644 database/migrations/2024_03_26_122110_remove_realtime_notifications.php delete mode 100644 database/migrations/2024_03_28_114620_add_watch_paths_to_apps.php delete mode 100644 database/migrations/2024_04_09_095517_make_custom_docker_commands_longer.php delete mode 100644 database/migrations/2024_04_10_071920_create_standalone_keydbs_table.php delete mode 100644 database/migrations/2024_04_10_082220_create_standalone_dragonflies_table.php delete mode 100644 database/migrations/2024_04_10_091519_create_standalone_clickhouses_table.php delete mode 100644 database/migrations/2024_04_10_124015_add_permission_local_file_volumes.php delete mode 100644 database/migrations/2024_04_12_092337_add_config_hash_to_other_resources.php delete mode 100644 database/migrations/2024_04_15_094703_add_literal_variables.php delete mode 100644 database/migrations/2024_04_16_083919_add_service_type_on_creation.php delete mode 100644 database/migrations/2024_04_17_132541_add_rollback_queues.php delete mode 100644 database/migrations/2024_04_25_073615_add_docker_network_to_application_settings.php delete mode 100644 database/migrations/2024_04_29_111956_add_custom_hc_indicator_apps.php delete mode 100644 database/migrations/2024_05_06_093236_add_custom_name_to_application_settings.php delete mode 100644 database/migrations/2024_05_07_124019_add_server_metrics.php delete mode 100644 database/migrations/2024_05_10_085215_make_stripe_comment_longer.php delete mode 100644 database/migrations/2024_05_15_091757_add_commit_message_to_app_deployment_queue.php delete mode 100644 database/migrations/2024_05_15_151236_add_container_escape_toggle.php delete mode 100644 database/migrations/2024_05_17_082012_add_env_sorting_toggle.php delete mode 100644 database/migrations/2024_05_21_125739_add_scheduled_tasks_notification_to_teams.php delete mode 100644 database/migrations/2024_05_22_103942_change_pre_post_deployment_commands_length_in_applications.php delete mode 100644 database/migrations/2024_05_23_091713_add_gitea_webhook_to_applications.php delete mode 100644 database/migrations/2024_06_05_101019_add_docker_compose_pr_domains.php delete mode 100644 database/migrations/2024_06_06_103938_change_pr_issue_commend_id_type.php delete mode 100644 database/migrations/2024_06_11_081614_add_www_non_www_redirect.php delete mode 100644 database/migrations/2024_06_18_105948_move_server_metrics.php delete mode 100644 database/migrations/2024_06_20_102551_add_server_api_sentinel.php delete mode 100644 database/migrations/2024_06_21_143358_add_api_deployment_type.php delete mode 100644 database/migrations/2024_06_22_081140_alter_instance_settings_add_instance_name.php delete mode 100644 database/migrations/2024_06_25_184323_update_db.php delete mode 100644 database/migrations/2024_07_01_115528_add_is_api_allowed_and_iplist.php delete mode 100644 database/migrations/2024_07_05_120217_remove_unique_from_tag_names.php delete mode 100644 database/migrations/2024_07_11_083719_application_compose_versions.php delete mode 100644 database/migrations/2024_07_17_123828_add_is_container_labels_readonly.php delete mode 100644 database/migrations/2024_07_18_110424_create_application_settings_is_preserve_repository_enabled.php delete mode 100644 database/migrations/2024_07_18_123458_add_force_cleanup_server.php delete mode 100644 database/migrations/2024_07_19_132617_disable_healtcheck_by_default.php delete mode 100644 database/migrations/2024_07_23_112710_add_validation_logs_to_servers.php delete mode 100644 database/migrations/2024_08_05_142659_add_update_frequency_settings.php delete mode 100644 database/migrations/2024_08_07_155324_add_proxy_label_chooser.php delete mode 100644 database/migrations/2024_08_09_215659_add_server_cleanup_fields_to_server_settings_table.php delete mode 100644 database/migrations/2024_08_12_131659_add_local_file_volume_based_on_git.php delete mode 100644 database/migrations/2024_08_12_155023_add_timezone_to_server_and_instance_settings.php delete mode 100644 database/migrations/2024_08_14_183120_add_order_to_environment_variables_table.php delete mode 100644 database/migrations/2024_08_15_115907_add_build_server_id_to_deployment_queue.php delete mode 100644 database/migrations/2024_08_16_105649_add_custom_docker_options_to_dbs.php delete mode 100644 database/migrations/2024_08_27_090528_add_compose_parsing_version_to_services.php delete mode 100644 database/migrations/2024_09_05_085700_add_helper_version_to_instance_settings.php delete mode 100644 database/migrations/2024_09_06_062534_change_server_cleanup_to_forced.php delete mode 100644 database/migrations/2024_09_07_185402_change_cleanup_schedule.php delete mode 100644 database/migrations/2024_09_08_130756_update_server_settings_default_timezone.php delete mode 100644 database/migrations/2024_09_16_111428_encrypt_existing_private_keys.php delete mode 100644 database/migrations/2024_09_17_111226_add_ssh_key_fingerprint_to_private_keys_table.php delete mode 100644 database/migrations/2024_09_22_165240_add_advanced_options_to_cleanup_options_to_servers_settings_table.php delete mode 100644 database/migrations/2024_09_26_083441_disable_api_by_default.php delete mode 100644 database/migrations/2024_10_03_095427_add_dump_all_to_standalone_postgresqls.php delete mode 100644 database/migrations/2024_10_10_081444_remove_constraint_from_service_applications_fqdn.php delete mode 100644 database/migrations/2024_10_11_114331_add_required_env_variables.php delete mode 100644 database/migrations/2024_10_14_090416_update_metrics_token_in_server_settings.php delete mode 100644 database/migrations/2024_10_15_172139_add_is_shared_to_environment_variables.php delete mode 100644 database/migrations/2024_10_16_120026_move_redis_password_to_envs.php delete mode 100644 database/migrations/2024_10_16_192133_add_confirmation_settings_to_instance_settings_table.php delete mode 100644 database/migrations/2024_10_17_093722_add_soft_delete_to_servers.php delete mode 100644 database/migrations/2024_10_22_105745_add_server_disk_usage_threshold.php delete mode 100644 database/migrations/2024_10_22_121223_add_server_disk_usage_notification.php delete mode 100644 database/migrations/2024_10_29_093927_add_is_sentinel_debug_enabled_to_server_settings.php delete mode 100644 database/migrations/2024_10_30_074601_rename_token_permissions.php delete mode 100644 database/migrations/2024_11_02_213214_add_last_online_at_to_resources.php delete mode 100644 database/migrations/2024_11_11_125335_add_custom_nginx_configuration_to_static.php delete mode 100644 database/migrations/2024_11_11_125366_add_index_to_activity_log.php delete mode 100644 database/migrations/2024_11_22_124742_add_uuid_to_environments_table.php delete mode 100644 database/migrations/2024_12_05_091823_add_disable_build_cache_advanced_option.php delete mode 100644 database/migrations/2024_12_05_212355_create_email_notification_settings_table.php delete mode 100644 database/migrations/2024_12_05_212416_create_discord_notification_settings_table.php delete mode 100644 database/migrations/2024_12_05_212440_create_telegram_notification_settings_table.php delete mode 100644 database/migrations/2024_12_05_212546_migrate_email_notification_settings_from_teams_table.php delete mode 100644 database/migrations/2024_12_05_212631_migrate_discord_notification_settings_from_teams_table.php delete mode 100644 database/migrations/2024_12_05_212705_migrate_telegram_notification_settings_from_teams_table.php delete mode 100644 database/migrations/2024_12_06_142014_create_slack_notification_settings_table.php delete mode 100644 database/migrations/2024_12_09_105711_drop_waitlists_table.php delete mode 100644 database/migrations/2024_12_10_122142_encrypt_instance_settings_email_columns.php delete mode 100644 database/migrations/2024_12_10_122143_drop_resale_license.php delete mode 100644 database/migrations/2024_12_11_135026_create_pushover_notification_settings_table.php delete mode 100644 database/migrations/2024_12_11_161418_add_authentik_base_url_to_oauth_settings_table.php delete mode 100644 database/migrations/2024_12_13_103007_encrypt_resend_api_key_in_instance_settings.php delete mode 100644 database/migrations/2024_12_16_134437_add_resourceable_columns_to_environment_variables_table.php delete mode 100644 database/migrations/2024_12_17_140637_add_server_disk_usage_check_frequency_to_server_settings_table.php delete mode 100644 database/migrations/2024_12_23_142402_update_email_encryption_values.php delete mode 100644 database/migrations/2025_01_05_050736_add_network_aliases_to_applications_table.php delete mode 100644 database/migrations/2025_01_08_154008_switch_up_readonly_labels.php delete mode 100644 database/migrations/2025_01_10_135244_add_horizon_job_details_to_queue.php delete mode 100644 database/migrations/2025_01_13_130238_add_backup_retention_fields_to_scheduled_database_backups_table.php delete mode 100644 database/migrations/2025_01_15_130416_create_docker_cleanup_executions_table.php delete mode 100644 database/migrations/2025_01_16_110406_change_commit_message_to_text_in_application_deployment_queues.php delete mode 100644 database/migrations/2025_01_16_130238_add_finished_at_to_executions_tables.php delete mode 100644 database/migrations/2025_01_21_125205_update_finished_at_timestamps_if_not_set.php delete mode 100644 database/migrations/2025_01_22_101105_remove_wrongly_created_envs.php delete mode 100644 database/migrations/2025_01_27_102616_add_ssl_fields_to_database_tables.php delete mode 100644 database/migrations/2025_01_27_153741_create_ssl_certificates_table.php delete mode 100644 database/migrations/2025_01_30_125223_encrypt_local_file_volumes_fields.php delete mode 100644 database/migrations/2025_02_27_125249_add_index_to_scheduled_task_executions.php delete mode 100644 database/migrations/2025_03_01_112617_add_stripe_past_due.php delete mode 100644 database/migrations/2025_03_14_140150_add_storage_deletion_tracking_to_backup_executions.php delete mode 100644 database/migrations/2025_03_21_104103_disable_discord_here.php delete mode 100644 database/migrations/2025_03_26_104103_disable_mongodb_ssl_by_default.php delete mode 100644 database/migrations/2025_03_29_204400_revert_some_local_volume_encryption.php delete mode 100644 database/migrations/2025_03_31_124212_add_specific_spa_configuration.php delete mode 100644 database/migrations/2025_04_01_124212_stripe_comment_nullable.php delete mode 100644 database/migrations/2025_04_17_110026_add_application_http_basic_auth_fields.php delete mode 100644 database/migrations/2025_04_30_134146_add_is_migrated_to_services.php delete mode 100644 database/migrations/2025_05_26_100258_add_server_patch_notifications.php delete mode 100644 database/migrations/2025_05_29_100258_add_terminal_enabled_to_server_settings.php delete mode 100644 database/migrations/2025_06_06_073345_create_server_previous_ip.php delete mode 100644 database/migrations/2025_06_16_123532_change_sentinel_on_by_default.php delete mode 100644 database/migrations/2025_06_25_131350_add_is_sponsorship_popup_enabled_to_instance_settings_table.php delete mode 100644 database/migrations/2025_06_26_131350_optimize_activity_log_indexes.php delete mode 100644 database/migrations/2025_07_14_191016_add_deleted_at_to_application_previews_table.php delete mode 100644 database/migrations/2025_07_16_202201_add_timeout_to_scheduled_database_backups_table.php delete mode 100644 database/migrations/2025_08_07_142403_create_user_changelog_reads_table.php delete mode 100644 database/migrations/2025_08_17_102422_add_disable_local_backup_to_scheduled_database_backups_table.php delete mode 100644 database/migrations/2025_08_18_104146_add_email_change_fields_to_users_table.php delete mode 100644 database/migrations/2025_08_18_154244_change_env_sorting_default_to_false.php delete mode 100644 database/migrations/2025_08_21_080234_add_git_shallow_clone_to_application_settings_table.php delete mode 100644 database/migrations/2025_09_05_142446_add_pr_deployments_public_enabled_to_application_settings.php delete mode 100644 database/migrations/2025_09_10_172952_remove_is_readonly_from_local_persistent_volumes_table.php delete mode 100644 database/migrations/2025_09_10_173300_drop_webhooks_table.php delete mode 100644 database/migrations/2025_09_10_173402_drop_kubernetes_table.php delete mode 100644 database/migrations/2025_09_11_143432_remove_is_build_time_from_environment_variables_table.php delete mode 100644 database/migrations/2025_09_11_150344_add_is_buildtime_only_to_environment_variables_table.php delete mode 100644 database/migrations/2025_09_17_081112_add_use_build_secrets_to_application_settings.php delete mode 100644 database/migrations/2025_09_18_080152_add_runtime_and_buildtime_to_environment_variables_table.php delete mode 100644 database/migrations/2025_10_03_154100_update_clickhouse_image.php delete mode 100644 database/migrations/2025_10_07_120723_add_s3_uploaded_to_scheduled_database_backup_executions_table.php delete mode 100644 database/migrations/2025_10_08_181125_create_cloud_provider_tokens_table.php delete mode 100644 database/migrations/2025_10_08_185203_add_hetzner_server_id_to_servers_table.php delete mode 100644 database/migrations/2025_10_09_095905_add_cloud_provider_token_id_to_servers_table.php delete mode 100644 database/migrations/2025_10_09_113602_add_hetzner_server_status_to_servers_table.php delete mode 100644 database/migrations/2025_10_09_125036_add_is_validating_to_servers_table.php delete mode 100644 database/migrations/2025_11_02_161923_add_dev_helper_version_to_instance_settings.php delete mode 100644 database/migrations/2025_11_09_000001_add_timeout_to_scheduled_tasks_table.php delete mode 100644 database/migrations/2025_11_09_000002_improve_scheduled_task_executions_tracking.php delete mode 100644 database/migrations/2025_11_10_112500_add_restart_tracking_to_applications_table.php delete mode 100644 database/migrations/2025_11_12_130931_add_traefik_version_tracking_to_servers_table.php delete mode 100644 database/migrations/2025_11_12_131252_add_traefik_outdated_to_email_notification_settings.php delete mode 100644 database/migrations/2025_11_12_133400_add_traefik_outdated_thread_id_to_telegram_notification_settings.php delete mode 100644 database/migrations/2025_11_14_114632_add_traefik_outdated_info_to_servers_table.php delete mode 100644 database/migrations/2025_11_16_000001_create_webhook_notification_settings_table.php delete mode 100644 database/migrations/2025_11_16_000002_create_cloud_init_scripts_table.php delete mode 100644 database/migrations/2025_11_17_092707_add_traefik_outdated_to_notification_settings.php delete mode 100644 database/migrations/2025_11_18_083747_cleanup_dockerfile_data_for_non_dockerfile_buildpacks.php delete mode 100644 database/migrations/2025_11_26_124200_add_build_cache_settings_to_application_settings.php delete mode 100644 database/seeders/ApplicationSeeder.php delete mode 100644 database/seeders/ApplicationSettingsSeeder.php delete mode 100644 database/seeders/CaSslCertSeeder.php delete mode 100644 database/seeders/DatabaseSeeder.php delete mode 100644 database/seeders/DisableTwoStepConfirmationSeeder.php delete mode 100644 database/seeders/GithubAppSeeder.php delete mode 100644 database/seeders/GitlabAppSeeder.php delete mode 100644 database/seeders/InstanceSettingsSeeder.php delete mode 100644 database/seeders/LocalPersistentVolumeSeeder.php delete mode 100644 database/seeders/OauthSettingSeeder.php delete mode 100644 database/seeders/PersonalAccessTokenSeeder.php delete mode 100644 database/seeders/PopulateSshKeysDirectorySeeder.php delete mode 100644 database/seeders/PrivateKeySeeder.php delete mode 100644 database/seeders/ProductionSeeder.php delete mode 100644 database/seeders/ProjectSeeder.php delete mode 100644 database/seeders/RootUserSeeder.php delete mode 100644 database/seeders/S3StorageSeeder.php delete mode 100644 database/seeders/SentinelSeeder.php delete mode 100644 database/seeders/ServerSeeder.php delete mode 100644 database/seeders/ServerSettingSeeder.php delete mode 100644 database/seeders/SharedEnvironmentVariableSeeder.php delete mode 100644 database/seeders/StandaloneDockerSeeder.php delete mode 100644 database/seeders/StandalonePostgresqlSeeder.php delete mode 100644 database/seeders/StandaloneRedisSeeder.php delete mode 100644 database/seeders/TeamSeeder.php delete mode 100644 database/seeders/UserSeeder.php rename docker/development/etc/s6-overlay/s6-rc.d/horizon/dependencies.d/init-setup => database/seeders/local/.gitkeep (100%) delete mode 100644 docker-compose.dev.yml delete mode 100644 docker-compose.prod.yml delete mode 100644 docker-compose.windows.yml delete mode 100644 docker-compose.yml delete mode 100644 docker/coolify-helper/Dockerfile delete mode 100644 docker/coolify-realtime/Dockerfile delete mode 100644 docker/coolify-realtime/package-lock.json delete mode 100644 docker/coolify-realtime/package.json delete mode 100644 docker/coolify-realtime/soketi-entrypoint.sh delete mode 100755 docker/coolify-realtime/terminal-server.js delete mode 100644 docker/development/Dockerfile delete mode 100644 docker/development/etc/nginx/conf.d/custom.conf delete mode 100644 docker/development/etc/nginx/site-opts.d/http.conf delete mode 100644 docker/development/etc/php/conf.d/zzz-custom-php.ini delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/horizon/run delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/horizon/type delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/init-setup/type delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/init-setup/up delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/scheduler-worker/run delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/scheduler-worker/type delete mode 100644 docker/development/etc/s6-overlay/s6-rc.d/user/contents.d/scheduler-worker delete mode 100644 docker/production/Dockerfile delete mode 100644 docker/production/entrypoint.d/99-debug-mode.sh delete mode 100644 docker/production/etc/nginx/conf.d/custom.conf delete mode 100644 docker/production/etc/nginx/site-opts.d/http.conf delete mode 100644 docker/production/etc/php/conf.d/zzz-custom-php.ini delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/db-migration/type delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/db-migration/up delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/horizon/dependencies.d/init-script delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/horizon/run delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/horizon/type delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-script/dependencies.d/init-seeder delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-script/type delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-script/up delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-seeder/dependencies.d/db-migration delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-seeder/type delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/init-seeder/up delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/scheduler-worker/dependencies.d/init-script delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/scheduler-worker/run delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/scheduler-worker/type delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/user/contents.d/db-migration delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/user/contents.d/horizon delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/user/contents.d/init-script delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/user/contents.d/init-seeder delete mode 100644 docker/production/etc/s6-overlay/s6-rc.d/user/contents.d/scheduler-worker delete mode 100644 docker/testing-host/Dockerfile delete mode 100644 hooks/pre-commit delete mode 100644 jean.json delete mode 100644 lang/ar.json delete mode 100644 lang/az.json delete mode 100644 lang/cs.json delete mode 100644 lang/de.json delete mode 100644 lang/en.json delete mode 100644 lang/en/passwords.php delete mode 100644 lang/es.json delete mode 100644 lang/fa.json delete mode 100644 lang/fr.json delete mode 100644 lang/id.json delete mode 100644 lang/it.json delete mode 100644 lang/ja.json delete mode 100644 lang/no.json delete mode 100644 lang/pl.json delete mode 100644 lang/pt-br.json delete mode 100644 lang/pt.json delete mode 100644 lang/ro.json delete mode 100644 lang/tr.json delete mode 100644 lang/vi.json delete mode 100644 lang/zh-cn.json delete mode 100644 lang/zh-tw.json delete mode 100644 openapi.json delete mode 100644 openapi.yaml delete mode 100644 other/logos/advin.png delete mode 100644 other/logos/appwrite.svg delete mode 100644 other/logos/arcjet.svg delete mode 100644 other/logos/bc.png delete mode 100644 other/logos/blacksmith.svg delete mode 100644 other/logos/branddev.png delete mode 100644 other/logos/ccc-logo.webp delete mode 100644 other/logos/codext.jpg delete mode 100644 other/logos/fractal.png delete mode 100644 other/logos/fractal.svg delete mode 100644 other/logos/glueops.webp delete mode 100644 other/logos/hetzner.jpg delete mode 100644 other/logos/hostinger.svg delete mode 100644 other/logos/internetgarden.ico delete mode 100644 other/logos/jobscollider.svg delete mode 100644 other/logos/juxtdigital.png delete mode 100644 other/logos/latitude.svg delete mode 100644 other/logos/logto.webp delete mode 100644 other/logos/massivegrid.svg delete mode 100644 other/logos/quant.svg delete mode 100644 other/logos/saasykit.png delete mode 100644 other/logos/saasykit.webp delete mode 100644 other/logos/supaguide.png delete mode 100644 other/logos/tigris.svg delete mode 100644 other/logos/trieve_bg.png delete mode 100644 other/logos/ubicloud.svg delete mode 100644 other/nightly/.env.production delete mode 100644 other/nightly/docker-compose.prod.yml delete mode 100644 other/nightly/docker-compose.windows.yml delete mode 100644 other/nightly/docker-compose.yml delete mode 100755 other/nightly/install.sh delete mode 100644 other/nightly/upgrade.sh delete mode 100644 other/nightly/versions.json delete mode 100644 package-lock.json delete mode 100644 phpunit.dusk.xml delete mode 100644 pint.json delete mode 100644 postcss.config.cjs delete mode 100644 public/coolify-logo-dev-transparent.png delete mode 100644 public/coolify-logo-dev-transparent.svg delete mode 100644 public/coolify-logo-monochrome.png delete mode 100644 public/coolify-logo-monochrome.svg delete mode 100644 public/coolify-logo-red.png delete mode 100644 public/coolify-logo-red.svg delete mode 100644 public/coolify-logo.svg delete mode 100644 public/coolify-transparent.png delete mode 100644 public/ente-photos-icon-green.png rename docker/development/etc/s6-overlay/s6-rc.d/scheduler-worker/dependencies.d/init-setup => public/favicon.ico (100%) delete mode 100644 public/heart.png delete mode 100644 public/js/apexcharts.js delete mode 100644 public/js/dropzone.js delete mode 100644 public/js/echo.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/base/browser/ui/codicons/codicon/codicon.ttf delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/base/worker/workerMain.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/abap/abap.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/apex/apex.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/azcli/azcli.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/bat/bat.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/bicep/bicep.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/cameligo/cameligo.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/clojure/clojure.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/coffee/coffee.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/cpp/cpp.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/csharp/csharp.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/csp/csp.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/css/css.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/cypher/cypher.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/dart/dart.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/dockerfile/dockerfile.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/ecl/ecl.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/elixir/elixir.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/flow9/flow9.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/freemarker2/freemarker2.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/fsharp/fsharp.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/go/go.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/graphql/graphql.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/handlebars/handlebars.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/hcl/hcl.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/html/html.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/ini/ini.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/java/java.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/javascript/javascript.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/julia/julia.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/kotlin/kotlin.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/less/less.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/lexon/lexon.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/liquid/liquid.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/lua/lua.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/m3/m3.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/markdown/markdown.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/mdx/mdx.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/mips/mips.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/msdax/msdax.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/mysql/mysql.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/objective-c/objective-c.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/pascal/pascal.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/pascaligo/pascaligo.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/perl/perl.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/pgsql/pgsql.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/php/php.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/pla/pla.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/postiats/postiats.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/powerquery/powerquery.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/powershell/powershell.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/protobuf/protobuf.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/pug/pug.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/python/python.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/qsharp/qsharp.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/r/r.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/razor/razor.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/redis/redis.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/redshift/redshift.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/restructuredtext/restructuredtext.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/ruby/ruby.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/rust/rust.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/sb/sb.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/scala/scala.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/scheme/scheme.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/scss/scss.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/shell/shell.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/solidity/solidity.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/sophia/sophia.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/sparql/sparql.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/sql/sql.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/st/st.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/swift/swift.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/systemverilog/systemverilog.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/tcl/tcl.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/twig/twig.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/typescript/typescript.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/typespec/typespec.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/vb/vb.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/wgsl/wgsl.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/xml/xml.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/basic-languages/yaml/yaml.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/editor/editor.main.css delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/editor/editor.main.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/css/cssMode.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/html/htmlMode.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/html/htmlWorker.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/json/jsonMode.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/json/jsonWorker.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/typescript/tsMode.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/language/typescript/tsWorker.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/loader.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.de.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.es.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.fr.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.it.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.ja.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.ko.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.ru.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.zh-cn.js delete mode 100644 public/js/monaco-editor-0.52.2/min/vs/nls.messages.zh-tw.js delete mode 100644 public/js/purify.min.js delete mode 100644 public/js/pusher.js delete mode 100644 public/svgs/activepieces.png delete mode 100644 public/svgs/actualbudget.png delete mode 100644 public/svgs/affine.svg delete mode 100644 public/svgs/anythingllm.svg delete mode 100644 public/svgs/apprise.png delete mode 100644 public/svgs/appsmith.svg delete mode 100644 public/svgs/appwrite.svg delete mode 100644 public/svgs/argilla.png delete mode 100644 public/svgs/audiobookshelf.svg delete mode 100644 public/svgs/authentik.png delete mode 100644 public/svgs/azimutt.png delete mode 100644 public/svgs/babybuddy.png delete mode 100644 public/svgs/beszel.svg delete mode 100644 public/svgs/bitcoin.svg delete mode 100644 public/svgs/bitwarden.svg delete mode 100644 public/svgs/bluesky.svg delete mode 100644 public/svgs/bookstack.png delete mode 100644 public/svgs/browserless.svg delete mode 100644 public/svgs/budge.png delete mode 100644 public/svgs/budibase.svg delete mode 100644 public/svgs/bugsink.svg delete mode 100644 public/svgs/calcom.svg delete mode 100644 public/svgs/calibre-web.svg delete mode 100644 public/svgs/cap.svg delete mode 100644 public/svgs/castopod.svg delete mode 100644 public/svgs/changedetection.png delete mode 100644 public/svgs/chaskiq.png delete mode 100644 public/svgs/chatwoot.svg delete mode 100644 public/svgs/checkmate.png delete mode 100644 public/svgs/chroma.svg delete mode 100644 public/svgs/classicpress.svg delete mode 100644 public/svgs/clickhouse.svg delete mode 100644 public/svgs/cloudbeaver.svg delete mode 100644 public/svgs/cloudflared.svg delete mode 100755 public/svgs/cockpit.svg delete mode 100644 public/svgs/code-server.svg delete mode 100644 public/svgs/coder.svg delete mode 100644 public/svgs/codimd.png delete mode 100644 public/svgs/convertx.png delete mode 100644 public/svgs/convex.svg delete mode 100644 public/svgs/coolify-logo.svg delete mode 100644 public/svgs/coolify.png delete mode 100644 public/svgs/cryptgeon.png delete mode 100644 public/svgs/cyberchef.jpeg delete mode 100644 public/svgs/dashy.png delete mode 100644 public/svgs/default.webp delete mode 100644 public/svgs/denoKV.svg delete mode 100644 public/svgs/dify.png delete mode 100644 public/svgs/directus.svg delete mode 100644 public/svgs/diun.svg delete mode 100644 public/svgs/docker-registry.png delete mode 100644 public/svgs/docker.svg delete mode 100644 public/svgs/docmost.png delete mode 100644 public/svgs/documenso.png delete mode 100644 public/svgs/docuseal.png delete mode 100644 public/svgs/dokuwiki.png delete mode 100644 public/svgs/dolibarr.png delete mode 100644 public/svgs/dozzle.svg delete mode 100644 public/svgs/drizzle.jpeg delete mode 100644 public/svgs/drupal.svg delete mode 100644 public/svgs/duplicati.webp delete mode 100644 public/svgs/easyappointments.png delete mode 100644 public/svgs/edgedb.svg delete mode 100644 public/svgs/elasticsearch.svg delete mode 100644 public/svgs/emby.png delete mode 100644 public/svgs/ente-photos.svg delete mode 100644 public/svgs/ente.png delete mode 100644 public/svgs/evolution-api.png delete mode 100644 public/svgs/evolution-api.svg delete mode 100644 public/svgs/excalidraw.svg delete mode 100644 public/svgs/external-link.svg delete mode 100644 public/svgs/faraday.png delete mode 100644 public/svgs/fider.svg delete mode 100644 public/svgs/filebrowser.svg delete mode 100644 public/svgs/fileflows.svg delete mode 100644 public/svgs/firefly.svg delete mode 100644 public/svgs/firefox.svg delete mode 100644 public/svgs/flipt.svg delete mode 100644 public/svgs/flowise.png delete mode 100644 public/svgs/forgejo.svg delete mode 100644 public/svgs/formbricks.png delete mode 100644 public/svgs/foundryvtt.png delete mode 100644 public/svgs/freescout.png delete mode 100644 public/svgs/freshrss.png delete mode 100644 public/svgs/getoutline.jpeg delete mode 100644 public/svgs/ghost.svg delete mode 100644 public/svgs/git.svg delete mode 100644 public/svgs/gitea.svg delete mode 100644 public/svgs/github-runner.png delete mode 100644 public/svgs/github.svg delete mode 100644 public/svgs/gitlab.svg delete mode 100644 public/svgs/glance.png delete mode 100644 public/svgs/glances.png delete mode 100644 public/svgs/glitchtip.png delete mode 100644 public/svgs/gotenberg.png delete mode 100644 public/svgs/gotify.png delete mode 100644 public/svgs/gowa.svg delete mode 100644 public/svgs/grafana.svg delete mode 100644 public/svgs/gramps-web.svg delete mode 100644 public/svgs/grist.svg delete mode 100644 public/svgs/grocy.svg delete mode 100644 public/svgs/heimdall.svg delete mode 100644 public/svgs/hetzner.svg delete mode 100644 public/svgs/heyform.svg delete mode 100644 public/svgs/homarr.svg delete mode 100644 public/svgs/home-assistant.svg delete mode 100644 public/svgs/homebox.svg delete mode 100644 public/svgs/homepage.png delete mode 100644 public/svgs/hoppscotch.png delete mode 100644 public/svgs/immich.svg delete mode 100644 public/svgs/infisical.png delete mode 100644 public/svgs/internal-link.svg delete mode 100644 public/svgs/interviewpal.svg delete mode 100644 public/svgs/invoiceninja.png delete mode 100644 public/svgs/it-tools.svg delete mode 100644 public/svgs/jellyfin.svg delete mode 100644 public/svgs/jenkins.svg delete mode 100644 public/svgs/jitsi.svg delete mode 100644 public/svgs/joomla.svg delete mode 100644 public/svgs/joplin.png delete mode 100644 public/svgs/jupyter.svg delete mode 100644 public/svgs/karakeep.svg delete mode 100644 public/svgs/keycloak.svg delete mode 100644 public/svgs/kimai.svg delete mode 100644 public/svgs/kuzzle.png delete mode 100644 public/svgs/labelstudio.png delete mode 100644 public/svgs/langfuse.svg delete mode 100755 public/svgs/leantime.svg delete mode 100644 public/svgs/librechat.svg delete mode 100644 public/svgs/libreoffice.svg delete mode 100644 public/svgs/libretranslate.svg delete mode 100644 public/svgs/limesurvey.svg delete mode 100644 public/svgs/listmonk.svg delete mode 100644 public/svgs/litellm.svg delete mode 100644 public/svgs/litequeen.svg delete mode 100644 public/svgs/lobe-chat.png delete mode 100644 public/svgs/logto_dark.svg delete mode 100644 public/svgs/lowcoder.svg delete mode 100644 public/svgs/macos.svg delete mode 100644 public/svgs/mailpit.svg delete mode 100644 public/svgs/mariadb.svg delete mode 100644 public/svgs/marimo.svg delete mode 100644 public/svgs/martin.png delete mode 100644 public/svgs/matrix.svg delete mode 100644 public/svgs/mattermost.svg delete mode 100644 public/svgs/mautic.svg delete mode 100644 public/svgs/maybe.svg delete mode 100644 public/svgs/mealie.png delete mode 100644 public/svgs/mediawiki.ico delete mode 100644 public/svgs/meilisearch.svg delete mode 100644 public/svgs/memos.png delete mode 100644 public/svgs/metabase.svg delete mode 100644 public/svgs/metamcp.png delete mode 100644 public/svgs/mindsdb.svg delete mode 100644 public/svgs/minecraft.svg delete mode 100644 public/svgs/miniflux.svg delete mode 100644 public/svgs/minio.svg delete mode 100644 public/svgs/mixpost.svg delete mode 100644 public/svgs/mongodb.svg delete mode 100644 public/svgs/moodle.png delete mode 100644 public/svgs/mosquitto.svg delete mode 100644 public/svgs/mysql.svg delete mode 100644 public/svgs/n8n.png delete mode 100644 public/svgs/navidrome.svg delete mode 100644 public/svgs/neon.svg delete mode 100644 public/svgs/netbird.png delete mode 100644 public/svgs/newapi.png delete mode 100644 public/svgs/nextcloud.svg delete mode 100644 public/svgs/nexus.png delete mode 100644 public/svgs/nitropage.svg delete mode 100644 public/svgs/nocodb.svg delete mode 100644 public/svgs/nodebb.svg delete mode 100644 public/svgs/ntfy.svg delete mode 100644 public/svgs/observium.webp delete mode 100644 public/svgs/odoo.svg delete mode 100644 public/svgs/ollama.svg delete mode 100644 public/svgs/once-campfire.png delete mode 100644 public/svgs/onedev.svg delete mode 100644 public/svgs/onetimesecret.svg delete mode 100644 public/svgs/openpanel.svg delete mode 100644 public/svgs/openwebui.svg delete mode 100644 public/svgs/opnform.svg delete mode 100644 public/svgs/orangehrm.svg delete mode 100644 public/svgs/organizr.png delete mode 100644 public/svgs/osticket.png delete mode 100644 public/svgs/overseerr.svg delete mode 100644 public/svgs/owncloud.svg delete mode 100644 public/svgs/pairdrop.png delete mode 100644 public/svgs/palworld.svg delete mode 100644 public/svgs/pangolin-logo.png delete mode 100644 public/svgs/paperless.svg delete mode 100644 public/svgs/passbolt.svg delete mode 100644 public/svgs/paymenter.svg delete mode 100644 public/svgs/penpot.svg delete mode 100644 public/svgs/peppermint.png delete mode 100644 public/svgs/pgbackweb.png delete mode 100644 public/svgs/phpmyadmin.svg delete mode 100644 public/svgs/pihole.svg delete mode 100644 public/svgs/pingvinshare.svg delete mode 100644 public/svgs/plane.svg delete mode 100644 public/svgs/plex.svg delete mode 100644 public/svgs/plunk.svg delete mode 100644 public/svgs/pocketbase.svg delete mode 100644 public/svgs/pocketid-logo.png delete mode 100644 public/svgs/portainer.png delete mode 100644 public/svgs/postgres.svg delete mode 100644 public/svgs/postgresql.svg delete mode 100644 public/svgs/postgresus.svg delete mode 100644 public/svgs/posthog.svg delete mode 100644 public/svgs/postiz.svg delete mode 100644 public/svgs/prefect.png delete mode 100644 public/svgs/privatebin.svg delete mode 100644 public/svgs/prowlarr.svg delete mode 100644 public/svgs/pterodactyl.png delete mode 100644 public/svgs/qbittorrent.svg delete mode 100644 public/svgs/qdrant.png delete mode 100644 public/svgs/rabbitmq.svg delete mode 100644 public/svgs/radarr.svg delete mode 100644 public/svgs/rallly.svg delete mode 100644 public/svgs/readeck.svg delete mode 100644 public/svgs/redis.svg delete mode 100644 public/svgs/redisinsight.png delete mode 100644 public/svgs/redlib.svg delete mode 100644 public/svgs/rivet.svg delete mode 100644 public/svgs/rocketchat.svg delete mode 100644 public/svgs/rxresume.svg delete mode 100644 public/svgs/rybbit.svg delete mode 100644 public/svgs/ryot.svg delete mode 100644 public/svgs/seafile.svg delete mode 100644 public/svgs/searxng.svg delete mode 100644 public/svgs/sequin.svg delete mode 100644 public/svgs/signoz.svg delete mode 100644 public/svgs/siyuan.svg delete mode 100644 public/svgs/soketi.jpeg delete mode 100644 public/svgs/sonarr.svg delete mode 100644 public/svgs/sparkyfitness.svg delete mode 100644 public/svgs/statusnook.svg delete mode 100644 public/svgs/stirling.png delete mode 100644 public/svgs/strapi.svg delete mode 100644 public/svgs/supabase.svg delete mode 100644 public/svgs/superset.svg delete mode 100644 public/svgs/supertokens.svg delete mode 100644 public/svgs/swetrix.svg delete mode 100644 public/svgs/syncthing.svg delete mode 100644 public/svgs/tailscale.svg delete mode 100644 public/svgs/teable.png delete mode 100644 public/svgs/tolgee.svg delete mode 100644 public/svgs/traccar.png delete mode 100644 public/svgs/transmission.svg delete mode 100644 public/svgs/trigger.avif delete mode 100644 public/svgs/trigger.png delete mode 100644 public/svgs/triliumnext.svg delete mode 100644 public/svgs/twenty.svg delete mode 100644 public/svgs/typesense.png delete mode 100644 public/svgs/umami.svg delete mode 100644 public/svgs/unleash.svg delete mode 100644 public/svgs/unsend.svg delete mode 100644 public/svgs/unstructured.png delete mode 100644 public/svgs/uptime-kuma.svg delete mode 100644 public/svgs/vert.jpg delete mode 100644 public/svgs/vert.png delete mode 100644 public/svgs/vikunja.svg delete mode 100644 public/svgs/vvveb.svg delete mode 100644 public/svgs/wakapi.svg delete mode 100644 public/svgs/weaviate.png delete mode 100644 public/svgs/web-check.png delete mode 100644 public/svgs/weblate.webp delete mode 100644 public/svgs/whoogle-search.png delete mode 100644 public/svgs/whoogle.png delete mode 100644 public/svgs/wikijs.svg delete mode 100644 public/svgs/windmill.svg delete mode 100644 public/svgs/windows.svg delete mode 100644 public/svgs/wireguard.svg delete mode 100644 public/svgs/wordpress.svg delete mode 100644 public/svgs/yamtrack.svg delete mode 100644 public/svgs/zep.png delete mode 100644 public/svgs/zipline.png delete mode 100644 public/vendor/horizon/app-dark.css delete mode 100644 public/vendor/horizon/app.css delete mode 100644 public/vendor/horizon/app.js delete mode 100644 public/vendor/horizon/img/favicon.png delete mode 100644 public/vendor/horizon/img/horizon.svg delete mode 100644 public/vendor/horizon/img/sprite.svg delete mode 100644 public/vendor/horizon/mix-manifest.json delete mode 100644 public/vendor/telescope/app-dark.css delete mode 100644 public/vendor/telescope/app.css delete mode 100644 public/vendor/telescope/app.js delete mode 100644 public/vendor/telescope/favicon.ico delete mode 100644 public/vendor/telescope/mix-manifest.json delete mode 100644 rector.php delete mode 100644 resources/css/fonts.css delete mode 100644 resources/css/utilities.css delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-100.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-200.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-300.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-500.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-600.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-700.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-800.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-900.woff2 delete mode 100644 resources/fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-regular.woff2 delete mode 100644 resources/js/app.js rename docker/development/etc/s6-overlay/s6-rc.d/user/contents.d/horizon => resources/js/app.ts (100%) delete mode 100644 resources/js/terminal.js delete mode 100644 resources/views/auth/confirm-password.blade.php delete mode 100644 resources/views/auth/forgot-password.blade.php delete mode 100644 resources/views/auth/login.blade.php delete mode 100644 resources/views/auth/register.blade.php delete mode 100644 resources/views/auth/reset-password.blade.php delete mode 100644 resources/views/auth/two-factor-challenge.blade.php delete mode 100644 resources/views/auth/verify-email.blade.php delete mode 100644 resources/views/components/applications/advanced.blade.php delete mode 100644 resources/views/components/applications/links.blade.php delete mode 100644 resources/views/components/banner.blade.php delete mode 100644 resources/views/components/boarding-progress.blade.php delete mode 100644 resources/views/components/boarding-step.blade.php delete mode 100644 resources/views/components/callout.blade.php delete mode 100644 resources/views/components/chevron-down.blade.php delete mode 100644 resources/views/components/confirm-modal.blade.php delete mode 100644 resources/views/components/domain-conflict-modal.blade.php delete mode 100644 resources/views/components/dropdown.blade.php delete mode 100644 resources/views/components/emails/footer.blade.php delete mode 100644 resources/views/components/emails/header.blade.php delete mode 100644 resources/views/components/emails/layout.blade.php delete mode 100644 resources/views/components/environment-variable-warning.blade.php delete mode 100644 resources/views/components/external-link.blade.php delete mode 100644 resources/views/components/forms/button.blade.php delete mode 100644 resources/views/components/forms/checkbox.blade.php delete mode 100644 resources/views/components/forms/copy-button.blade.php delete mode 100644 resources/views/components/forms/datalist.blade.php delete mode 100644 resources/views/components/forms/env-var-input.blade.php delete mode 100644 resources/views/components/forms/input.blade.php delete mode 100644 resources/views/components/forms/monaco-editor.blade.php delete mode 100644 resources/views/components/forms/select.blade.php delete mode 100644 resources/views/components/forms/textarea.blade.php delete mode 100644 resources/views/components/git-icon.blade.php delete mode 100644 resources/views/components/helper.blade.php delete mode 100644 resources/views/components/highlighted.blade.php delete mode 100644 resources/views/components/internal-link.blade.php delete mode 100644 resources/views/components/layout-simple.blade.php delete mode 100644 resources/views/components/layout.blade.php delete mode 100644 resources/views/components/limit-reached.blade.php delete mode 100644 resources/views/components/loading-on-button.blade.php delete mode 100644 resources/views/components/loading.blade.php delete mode 100644 resources/views/components/modal-confirmation.blade.php delete mode 100644 resources/views/components/modal-input.blade.php delete mode 100644 resources/views/components/modal.blade.php delete mode 100644 resources/views/components/navbar.blade.php delete mode 100644 resources/views/components/notification/navbar.blade.php delete mode 100644 resources/views/components/page-loading.blade.php delete mode 100644 resources/views/components/popup-small.blade.php delete mode 100644 resources/views/components/popup.blade.php delete mode 100644 resources/views/components/pricing-plans.blade.php delete mode 100644 resources/views/components/resource-view.blade.php delete mode 100644 resources/views/components/resources/breadcrumbs.blade.php delete mode 100644 resources/views/components/security/navbar.blade.php delete mode 100644 resources/views/components/server/sidebar-proxy.blade.php delete mode 100644 resources/views/components/server/sidebar-security.blade.php delete mode 100644 resources/views/components/server/sidebar.blade.php delete mode 100644 resources/views/components/services/advanced.blade.php delete mode 100644 resources/views/components/services/links.blade.php delete mode 100644 resources/views/components/settings/navbar.blade.php delete mode 100644 resources/views/components/settings/sidebar.blade.php delete mode 100644 resources/views/components/slide-over.blade.php delete mode 100644 resources/views/components/status/degraded.blade.php delete mode 100644 resources/views/components/status/index.blade.php delete mode 100644 resources/views/components/status/restarting.blade.php delete mode 100644 resources/views/components/status/running.blade.php delete mode 100644 resources/views/components/status/services.blade.php delete mode 100644 resources/views/components/status/stopped.blade.php delete mode 100644 resources/views/components/team/navbar.blade.php delete mode 100644 resources/views/components/toast.blade.php delete mode 100644 resources/views/components/use-magic-bar.blade.php delete mode 100644 resources/views/components/version.blade.php delete mode 100644 resources/views/emails/application-deployment-failed.blade.php delete mode 100644 resources/views/emails/application-deployment-success.blade.php delete mode 100644 resources/views/emails/application-status-changes.blade.php delete mode 100644 resources/views/emails/backup-failed.blade.php delete mode 100644 resources/views/emails/backup-success-with-s3-warning.blade.php delete mode 100644 resources/views/emails/backup-success.blade.php delete mode 100644 resources/views/emails/before-trial-conversion.blade.php delete mode 100644 resources/views/emails/container-restarted.blade.php delete mode 100644 resources/views/emails/container-stopped.blade.php delete mode 100644 resources/views/emails/daily-backup.blade.php delete mode 100644 resources/views/emails/docker-cleanup-failed.blade.php delete mode 100644 resources/views/emails/docker-cleanup-success.blade.php delete mode 100644 resources/views/emails/email-change-verification.blade.php delete mode 100644 resources/views/emails/email-verification.blade.php delete mode 100644 resources/views/emails/help.blade.php delete mode 100644 resources/views/emails/hetzner-deletion-failed.blade.php delete mode 100644 resources/views/emails/high-disk-usage.blade.php delete mode 100644 resources/views/emails/invitation-link.blade.php delete mode 100644 resources/views/emails/reset-password.blade.php delete mode 100644 resources/views/emails/s3-connection-error.blade.php delete mode 100644 resources/views/emails/scheduled-task-failed.blade.php delete mode 100644 resources/views/emails/scheduled-task-success.blade.php delete mode 100644 resources/views/emails/server-force-disabled.blade.php delete mode 100644 resources/views/emails/server-force-enabled.blade.php delete mode 100644 resources/views/emails/server-lost-connection.blade.php delete mode 100644 resources/views/emails/server-patches-error.blade.php delete mode 100644 resources/views/emails/server-patches.blade.php delete mode 100644 resources/views/emails/server-revived.blade.php delete mode 100644 resources/views/emails/ssl-certificate-renewed.blade.php delete mode 100644 resources/views/emails/subscription-invoice-failed.blade.php delete mode 100644 resources/views/emails/test.blade.php delete mode 100644 resources/views/emails/traefik-version-outdated.blade.php delete mode 100644 resources/views/emails/trial-ended.blade.php delete mode 100644 resources/views/emails/trial-ends-soon.blade.php delete mode 100644 resources/views/emails/updates.blade.php delete mode 100644 resources/views/errors/400.blade.php delete mode 100644 resources/views/errors/401.blade.php delete mode 100644 resources/views/errors/402.blade.php delete mode 100644 resources/views/errors/403.blade.php delete mode 100644 resources/views/errors/404.blade.php delete mode 100644 resources/views/errors/419.blade.php delete mode 100644 resources/views/errors/429.blade.php delete mode 100644 resources/views/errors/500.blade.php delete mode 100644 resources/views/errors/503.blade.php delete mode 100644 resources/views/layouts/app.blade.php delete mode 100644 resources/views/layouts/base.blade.php delete mode 100644 resources/views/layouts/boarding.blade.php delete mode 100644 resources/views/layouts/simple.blade.php delete mode 100644 resources/views/livewire/activity-monitor.blade.php delete mode 100644 resources/views/livewire/admin/index.blade.php delete mode 100644 resources/views/livewire/boarding/index.blade.php delete mode 100644 resources/views/livewire/dashboard.blade.php delete mode 100644 resources/views/livewire/deployments-indicator.blade.php delete mode 100644 resources/views/livewire/destination/index.blade.php delete mode 100644 resources/views/livewire/destination/new/docker.blade.php delete mode 100644 resources/views/livewire/destination/show.blade.php delete mode 100644 resources/views/livewire/force-password-reset.blade.php delete mode 100644 resources/views/livewire/global-search.blade.php delete mode 100644 resources/views/livewire/help.blade.php delete mode 100644 resources/views/livewire/layout-popups.blade.php delete mode 100644 resources/views/livewire/navbar-delete-team.blade.php delete mode 100644 resources/views/livewire/notifications/discord.blade.php delete mode 100644 resources/views/livewire/notifications/email.blade.php delete mode 100644 resources/views/livewire/notifications/pushover.blade.php delete mode 100644 resources/views/livewire/notifications/slack.blade.php delete mode 100644 resources/views/livewire/notifications/telegram.blade.php delete mode 100644 resources/views/livewire/notifications/webhook.blade.php delete mode 100644 resources/views/livewire/profile/index.blade.php delete mode 100644 resources/views/livewire/project/add-empty.blade.php delete mode 100644 resources/views/livewire/project/application/advanced.blade.php delete mode 100644 resources/views/livewire/project/application/configuration.blade.php delete mode 100644 resources/views/livewire/project/application/deployment-navbar.blade.php delete mode 100644 resources/views/livewire/project/application/deployment/index.blade.php delete mode 100644 resources/views/livewire/project/application/deployment/show.blade.php delete mode 100644 resources/views/livewire/project/application/destination.blade.php delete mode 100644 resources/views/livewire/project/application/general.blade.php delete mode 100644 resources/views/livewire/project/application/heading.blade.php delete mode 100644 resources/views/livewire/project/application/preview/form.blade.php delete mode 100644 resources/views/livewire/project/application/previews-compose.blade.php delete mode 100644 resources/views/livewire/project/application/previews.blade.php delete mode 100644 resources/views/livewire/project/application/rollback.blade.php delete mode 100644 resources/views/livewire/project/application/source.blade.php delete mode 100644 resources/views/livewire/project/application/swarm.blade.php delete mode 100644 resources/views/livewire/project/clone-me.blade.php delete mode 100644 resources/views/livewire/project/database/backup-edit.blade.php delete mode 100644 resources/views/livewire/project/database/backup-executions.blade.php delete mode 100644 resources/views/livewire/project/database/backup-now.blade.php delete mode 100644 resources/views/livewire/project/database/backup/execution.blade.php delete mode 100644 resources/views/livewire/project/database/backup/index.blade.php delete mode 100644 resources/views/livewire/project/database/clickhouse/general.blade.php delete mode 100644 resources/views/livewire/project/database/configuration.blade.php delete mode 100644 resources/views/livewire/project/database/create-scheduled-backup.blade.php delete mode 100644 resources/views/livewire/project/database/dragonfly/general.blade.php delete mode 100644 resources/views/livewire/project/database/heading.blade.php delete mode 100644 resources/views/livewire/project/database/import.blade.php delete mode 100644 resources/views/livewire/project/database/init-script.blade.php delete mode 100644 resources/views/livewire/project/database/keydb/general.blade.php delete mode 100644 resources/views/livewire/project/database/mariadb/general.blade.php delete mode 100644 resources/views/livewire/project/database/mongodb/general.blade.php delete mode 100644 resources/views/livewire/project/database/mysql/general.blade.php delete mode 100644 resources/views/livewire/project/database/postgresql/general.blade.php delete mode 100644 resources/views/livewire/project/database/redis/general.blade.php delete mode 100644 resources/views/livewire/project/database/scheduled-backups.blade.php delete mode 100644 resources/views/livewire/project/delete-environment.blade.php delete mode 100644 resources/views/livewire/project/delete-project.blade.php delete mode 100644 resources/views/livewire/project/edit.blade.php delete mode 100644 resources/views/livewire/project/environment-edit.blade.php delete mode 100644 resources/views/livewire/project/index.blade.php delete mode 100644 resources/views/livewire/project/new/docker-compose.blade.php delete mode 100644 resources/views/livewire/project/new/docker-image.blade.php delete mode 100644 resources/views/livewire/project/new/empty-project.blade.php delete mode 100644 resources/views/livewire/project/new/github-private-repository-deploy-key.blade.php delete mode 100644 resources/views/livewire/project/new/github-private-repository.blade.php delete mode 100644 resources/views/livewire/project/new/public-git-repository.blade.php delete mode 100644 resources/views/livewire/project/new/select.blade.php delete mode 100644 resources/views/livewire/project/new/simple-dockerfile.blade.php delete mode 100644 resources/views/livewire/project/resource/create.blade.php delete mode 100644 resources/views/livewire/project/resource/environment-select.blade.php delete mode 100644 resources/views/livewire/project/resource/index.blade.php delete mode 100644 resources/views/livewire/project/service/configuration.blade.php delete mode 100644 resources/views/livewire/project/service/database.blade.php delete mode 100644 resources/views/livewire/project/service/edit-compose.blade.php delete mode 100644 resources/views/livewire/project/service/edit-domain.blade.php delete mode 100644 resources/views/livewire/project/service/file-storage.blade.php delete mode 100644 resources/views/livewire/project/service/heading.blade.php delete mode 100644 resources/views/livewire/project/service/index.blade.php delete mode 100644 resources/views/livewire/project/service/service-application-view.blade.php delete mode 100644 resources/views/livewire/project/service/stack-form.blade.php delete mode 100644 resources/views/livewire/project/service/storage.blade.php delete mode 100644 resources/views/livewire/project/shared/configuration-checker.blade.php delete mode 100644 resources/views/livewire/project/shared/danger.blade.php delete mode 100644 resources/views/livewire/project/shared/destination.blade.php delete mode 100644 resources/views/livewire/project/shared/environment-variable/add.blade.php delete mode 100644 resources/views/livewire/project/shared/environment-variable/all.blade.php delete mode 100644 resources/views/livewire/project/shared/environment-variable/show.blade.php delete mode 100644 resources/views/livewire/project/shared/execute-container-command.blade.php delete mode 100644 resources/views/livewire/project/shared/get-logs.blade.php delete mode 100644 resources/views/livewire/project/shared/health-checks.blade.php delete mode 100644 resources/views/livewire/project/shared/logs.blade.php delete mode 100644 resources/views/livewire/project/shared/metrics.blade.php delete mode 100644 resources/views/livewire/project/shared/resource-limits.blade.php delete mode 100644 resources/views/livewire/project/shared/resource-operations.blade.php delete mode 100644 resources/views/livewire/project/shared/scheduled-task/add.blade.php delete mode 100644 resources/views/livewire/project/shared/scheduled-task/all.blade.php delete mode 100644 resources/views/livewire/project/shared/scheduled-task/executions.blade.php delete mode 100644 resources/views/livewire/project/shared/scheduled-task/show.blade.php delete mode 100644 resources/views/livewire/project/shared/storages/all.blade.php delete mode 100644 resources/views/livewire/project/shared/storages/show.blade.php delete mode 100644 resources/views/livewire/project/shared/tags.blade.php delete mode 100644 resources/views/livewire/project/shared/terminal.blade.php delete mode 100644 resources/views/livewire/project/shared/upload-config.blade.php delete mode 100644 resources/views/livewire/project/shared/webhooks.blade.php delete mode 100644 resources/views/livewire/project/show.blade.php delete mode 100644 resources/views/livewire/security/api-tokens.blade.php delete mode 100644 resources/views/livewire/security/cloud-init-script-form.blade.php delete mode 100644 resources/views/livewire/security/cloud-init-scripts.blade.php delete mode 100644 resources/views/livewire/security/cloud-provider-token-form.blade.php delete mode 100644 resources/views/livewire/security/cloud-provider-tokens.blade.php delete mode 100644 resources/views/livewire/security/cloud-tokens.blade.php delete mode 100644 resources/views/livewire/security/private-key/create.blade.php delete mode 100644 resources/views/livewire/security/private-key/index.blade.php delete mode 100644 resources/views/livewire/security/private-key/show.blade.php delete mode 100644 resources/views/livewire/server/advanced.blade.php delete mode 100644 resources/views/livewire/server/ca-certificate/show.blade.php delete mode 100644 resources/views/livewire/server/charts.blade.php delete mode 100644 resources/views/livewire/server/cloud-provider-token/show.blade.php delete mode 100644 resources/views/livewire/server/cloudflare-tunnel.blade.php delete mode 100644 resources/views/livewire/server/create.blade.php delete mode 100644 resources/views/livewire/server/delete.blade.php delete mode 100644 resources/views/livewire/server/destinations.blade.php delete mode 100644 resources/views/livewire/server/docker-cleanup-executions.blade.php delete mode 100644 resources/views/livewire/server/docker-cleanup.blade.php delete mode 100644 resources/views/livewire/server/index.blade.php delete mode 100644 resources/views/livewire/server/log-drains.blade.php delete mode 100644 resources/views/livewire/server/navbar.blade.php delete mode 100644 resources/views/livewire/server/new/by-hetzner.blade.php delete mode 100644 resources/views/livewire/server/new/by-ip.blade.php delete mode 100644 resources/views/livewire/server/private-key/show.blade.php delete mode 100644 resources/views/livewire/server/proxy.blade.php delete mode 100644 resources/views/livewire/server/proxy/dynamic-configuration-navbar.blade.php delete mode 100644 resources/views/livewire/server/proxy/dynamic-configurations.blade.php delete mode 100644 resources/views/livewire/server/proxy/logs.blade.php delete mode 100644 resources/views/livewire/server/proxy/new-dynamic-configuration.blade.php delete mode 100644 resources/views/livewire/server/proxy/show.blade.php delete mode 100644 resources/views/livewire/server/resources.blade.php delete mode 100644 resources/views/livewire/server/security/patches.blade.php delete mode 100644 resources/views/livewire/server/security/terminal-access.blade.php delete mode 100644 resources/views/livewire/server/show.blade.php delete mode 100644 resources/views/livewire/server/validate-and-install.blade.php delete mode 100644 resources/views/livewire/settings-backup.blade.php delete mode 100644 resources/views/livewire/settings-dropdown.blade.php delete mode 100644 resources/views/livewire/settings-email.blade.php delete mode 100644 resources/views/livewire/settings-oauth.blade.php delete mode 100644 resources/views/livewire/settings/advanced.blade.php delete mode 100644 resources/views/livewire/settings/index.blade.php delete mode 100644 resources/views/livewire/settings/updates.blade.php delete mode 100644 resources/views/livewire/shared-variables/environment/index.blade.php delete mode 100644 resources/views/livewire/shared-variables/environment/show.blade.php delete mode 100644 resources/views/livewire/shared-variables/index.blade.php delete mode 100644 resources/views/livewire/shared-variables/project/index.blade.php delete mode 100644 resources/views/livewire/shared-variables/project/show.blade.php delete mode 100644 resources/views/livewire/shared-variables/team/index.blade.php delete mode 100644 resources/views/livewire/source/github/change.blade.php delete mode 100644 resources/views/livewire/source/github/create.blade.php delete mode 100644 resources/views/livewire/storage/create.blade.php delete mode 100644 resources/views/livewire/storage/form.blade.php delete mode 100644 resources/views/livewire/storage/index.blade.php delete mode 100644 resources/views/livewire/storage/show.blade.php delete mode 100644 resources/views/livewire/subscription/actions.blade.php delete mode 100644 resources/views/livewire/subscription/index.blade.php delete mode 100644 resources/views/livewire/subscription/pricing-plans.blade.php delete mode 100644 resources/views/livewire/subscription/show.blade.php delete mode 100644 resources/views/livewire/switch-team.blade.php delete mode 100644 resources/views/livewire/tags/deployments.blade.php delete mode 100644 resources/views/livewire/tags/show.blade.php delete mode 100644 resources/views/livewire/team/admin-view.blade.php delete mode 100644 resources/views/livewire/team/create.blade.php delete mode 100644 resources/views/livewire/team/index.blade.php delete mode 100644 resources/views/livewire/team/invitations.blade.php delete mode 100644 resources/views/livewire/team/invite-link.blade.php delete mode 100644 resources/views/livewire/team/member.blade.php delete mode 100644 resources/views/livewire/team/member/index.blade.php delete mode 100644 resources/views/livewire/terminal/index.blade.php delete mode 100644 resources/views/livewire/upgrade.blade.php delete mode 100644 resources/views/livewire/verify-email.blade.php delete mode 100644 resources/views/server/create.blade.php delete mode 100644 resources/views/source/all.blade.php delete mode 100644 resources/views/source/github/show.blade.php delete mode 100644 resources/views/vendor/mail/html/button.blade.php delete mode 100644 resources/views/vendor/mail/html/footer.blade.php delete mode 100644 resources/views/vendor/mail/html/header.blade.php delete mode 100644 resources/views/vendor/mail/html/layout.blade.php delete mode 100644 resources/views/vendor/mail/html/message.blade.php delete mode 100644 resources/views/vendor/mail/html/panel.blade.php delete mode 100644 resources/views/vendor/mail/html/subcopy.blade.php delete mode 100644 resources/views/vendor/mail/html/table.blade.php delete mode 100644 resources/views/vendor/mail/html/themes/default.css delete mode 100644 resources/views/vendor/mail/text/button.blade.php delete mode 100644 resources/views/vendor/mail/text/footer.blade.php delete mode 100644 resources/views/vendor/mail/text/header.blade.php delete mode 100644 resources/views/vendor/mail/text/layout.blade.php delete mode 100644 resources/views/vendor/mail/text/message.blade.php delete mode 100644 resources/views/vendor/mail/text/panel.blade.php delete mode 100644 resources/views/vendor/mail/text/subcopy.blade.php delete mode 100644 resources/views/vendor/mail/text/table.blade.php delete mode 100644 routes/api.php delete mode 100644 routes/channels.php delete mode 100644 routes/webhooks.php rename docker/development/etc/s6-overlay/s6-rc.d/user/contents.d/init-setup => scripts/.gitkeep (100%) delete mode 100644 scripts/cloud_upgrade.sh delete mode 100755 scripts/conductor-setup.sh delete mode 100755 scripts/install.sh delete mode 100755 scripts/run delete mode 100644 scripts/sync_volume.sh delete mode 100644 scripts/upgrade.sh rename {changelogs => storage/app/private}/.gitignore (100%) rename storage/{debugbar => framework/cache/data}/.gitignore (100%) delete mode 100644 storage/pail/.gitignore delete mode 100644 templates/compose/activepieces.yaml delete mode 100644 templates/compose/actualbudget.yaml delete mode 100644 templates/compose/affine.yaml delete mode 100644 templates/compose/anythingllm.yaml delete mode 100644 templates/compose/apprise-api.yaml delete mode 100644 templates/compose/appsmith.yaml delete mode 100644 templates/compose/appwrite.yaml delete mode 100644 templates/compose/argilla.yaml delete mode 100644 templates/compose/audiobookshelf.yaml delete mode 100644 templates/compose/authentik.yaml delete mode 100644 templates/compose/azimutt.yaml delete mode 100644 templates/compose/babybuddy.yaml delete mode 100644 templates/compose/beszel.yaml delete mode 100644 templates/compose/bitcoin-core.yaml delete mode 100644 templates/compose/bluesky-pds.yaml delete mode 100644 templates/compose/bookstack.yaml delete mode 100644 templates/compose/browserless.yaml delete mode 100644 templates/compose/budge.yaml delete mode 100644 templates/compose/budibase.yaml delete mode 100644 templates/compose/bugsink.yaml delete mode 100644 templates/compose/calcom.yaml delete mode 100644 templates/compose/calibre-web.yaml delete mode 100644 templates/compose/cap.yaml delete mode 100644 templates/compose/castopod.yaml delete mode 100644 templates/compose/changedetection.yaml delete mode 100644 templates/compose/chaskiq.yaml delete mode 100644 templates/compose/chatwoot.yaml delete mode 100644 templates/compose/checkmate.yaml delete mode 100644 templates/compose/chroma.yaml delete mode 100644 templates/compose/classicpress-with-mariadb.yaml delete mode 100644 templates/compose/classicpress-with-mysql.yaml delete mode 100644 templates/compose/classicpress-without-database.yaml delete mode 100644 templates/compose/cloudbeaver.yaml delete mode 100644 templates/compose/cloudflared.yaml delete mode 100644 templates/compose/cockpit.yaml delete mode 100644 templates/compose/code-server.yaml delete mode 100644 templates/compose/coder.yaml delete mode 100644 templates/compose/codimd.yaml delete mode 100644 templates/compose/convertx.yml delete mode 100644 templates/compose/convex.yaml delete mode 100644 templates/compose/cryptgeon.yaml delete mode 100644 templates/compose/cyberchef.yaml delete mode 100644 templates/compose/dashy.yaml delete mode 100644 templates/compose/denoKV.yaml delete mode 100644 templates/compose/dify.yaml delete mode 100644 templates/compose/directus-with-postgresql.yaml delete mode 100644 templates/compose/directus.yaml delete mode 100644 templates/compose/diun.yaml delete mode 100644 templates/compose/docker-registry.yaml delete mode 100644 templates/compose/docmost.yaml delete mode 100644 templates/compose/documenso.yaml delete mode 100644 templates/compose/docuseal-with-postgres.yaml delete mode 100644 templates/compose/docuseal.yaml delete mode 100644 templates/compose/dokuwiki.yaml delete mode 100644 templates/compose/dolibarr.yaml delete mode 100644 templates/compose/dozzle-with-auth.yaml delete mode 100644 templates/compose/dozzle.yaml delete mode 100644 templates/compose/drizzle-gateway.yaml delete mode 100644 templates/compose/drupal-with-postgresql.yaml delete mode 100644 templates/compose/duplicati.yaml delete mode 100644 templates/compose/easyappointments.yaml delete mode 100644 templates/compose/edgedb.yaml delete mode 100644 templates/compose/elasticsearch-with-kibana.yaml delete mode 100644 templates/compose/elasticsearch.yaml delete mode 100644 templates/compose/emby.yaml delete mode 100644 templates/compose/embystat.yaml delete mode 100644 templates/compose/ente-photos-with-s3.yaml delete mode 100644 templates/compose/ente-photos.yaml delete mode 100644 templates/compose/evolution-api.yaml delete mode 100644 templates/compose/excalidraw.yaml delete mode 100644 templates/compose/faraday.yaml delete mode 100644 templates/compose/fider.yaml delete mode 100644 templates/compose/filebrowser.yaml delete mode 100644 templates/compose/fileflows.yaml delete mode 100644 templates/compose/firefly.yaml delete mode 100644 templates/compose/firefox.yaml delete mode 100644 templates/compose/flipt.yaml delete mode 100644 templates/compose/flowise-with-databases.yaml delete mode 100644 templates/compose/flowise.yaml delete mode 100644 templates/compose/forgejo-with-mariadb.yaml delete mode 100644 templates/compose/forgejo-with-mysql.yaml delete mode 100644 templates/compose/forgejo-with-postgresql.yaml delete mode 100644 templates/compose/forgejo-with-runner-with-mariadb.yaml delete mode 100644 templates/compose/forgejo-with-runner-with-mysql.yaml delete mode 100644 templates/compose/forgejo-with-runner-with-postgresql.yaml delete mode 100644 templates/compose/forgejo-with-runner.yaml delete mode 100644 templates/compose/forgejo.yaml delete mode 100644 templates/compose/formbricks.yaml delete mode 100644 templates/compose/foundryvtt.yaml delete mode 100644 templates/compose/freescout.yaml delete mode 100644 templates/compose/freshrss-with-mariadb.yaml delete mode 100644 templates/compose/freshrss-with-mysql.yaml delete mode 100644 templates/compose/freshrss-with-postgresql.yaml delete mode 100644 templates/compose/freshrss.yaml delete mode 100644 templates/compose/getoutline.yaml delete mode 100644 templates/compose/ghost.yaml delete mode 100644 templates/compose/gitea-with-mariadb.yaml delete mode 100644 templates/compose/gitea-with-mysql.yaml delete mode 100644 templates/compose/gitea-with-postgresql.yaml delete mode 100644 templates/compose/gitea.yaml delete mode 100644 templates/compose/github-runner.yaml delete mode 100644 templates/compose/gitlab.yaml delete mode 100644 templates/compose/glance.yaml delete mode 100644 templates/compose/glances.yaml delete mode 100644 templates/compose/glitchtip.yaml delete mode 100644 templates/compose/gotenberg.yaml delete mode 100644 templates/compose/gotify.yaml delete mode 100644 templates/compose/gowa.yaml delete mode 100644 templates/compose/grafana-with-postgresql.yaml delete mode 100644 templates/compose/grafana.yaml delete mode 100644 templates/compose/gramps-web.yaml delete mode 100644 templates/compose/grist.yaml delete mode 100644 templates/compose/grocy.yaml delete mode 100644 templates/compose/heimdall.yaml delete mode 100644 templates/compose/heyform.yaml delete mode 100644 templates/compose/homarr.yaml delete mode 100644 templates/compose/home-assistant.yaml delete mode 100644 templates/compose/homebox.yaml delete mode 100644 templates/compose/homepage.yaml delete mode 100644 templates/compose/hoppscotch.yaml delete mode 100644 templates/compose/huly.yaml delete mode 100644 templates/compose/immich.yaml delete mode 100644 templates/compose/infisical.yaml delete mode 100644 templates/compose/invoice-ninja.yaml delete mode 100644 templates/compose/it-tools.yaml delete mode 100644 templates/compose/jellyfin.yaml delete mode 100644 templates/compose/jenkins.yaml delete mode 100644 templates/compose/jitsi.yaml delete mode 100644 templates/compose/joomla-with-mariadb.yaml delete mode 100644 templates/compose/joplin.yaml delete mode 100644 templates/compose/jupyter-notebook-python.yaml delete mode 100644 templates/compose/karakeep.yaml delete mode 100644 templates/compose/keycloak-with-postgres.yaml delete mode 100644 templates/compose/keycloak.yaml delete mode 100644 templates/compose/kimai.yaml delete mode 100644 templates/compose/kuzzle.yaml delete mode 100644 templates/compose/labelstudio.yaml delete mode 100644 templates/compose/langfuse.yaml delete mode 100644 templates/compose/leantime.yaml delete mode 100644 templates/compose/librechat.yaml delete mode 100644 templates/compose/libreoffice.yaml delete mode 100644 templates/compose/libretranslate.yaml delete mode 100644 templates/compose/limesurvey.yaml delete mode 100644 templates/compose/listmonk.yaml delete mode 100644 templates/compose/litellm.yaml delete mode 100644 templates/compose/litequeen.yaml delete mode 100644 templates/compose/lobe-chat.yaml delete mode 100644 templates/compose/logto.yaml delete mode 100644 templates/compose/lowcoder.yaml delete mode 100644 templates/compose/macos.yaml delete mode 100644 templates/compose/mailpit.yaml delete mode 100644 templates/compose/marimo.yml delete mode 100644 templates/compose/martin.yaml delete mode 100644 templates/compose/matrix.yaml delete mode 100644 templates/compose/mattermost.yaml delete mode 100644 templates/compose/mautic5.yaml delete mode 100644 templates/compose/maybe.yaml delete mode 100644 templates/compose/mealie.yaml delete mode 100644 templates/compose/mediawiki.yaml delete mode 100644 templates/compose/meilisearch.yaml delete mode 100644 templates/compose/memos.yaml delete mode 100644 templates/compose/metabase.yaml delete mode 100644 templates/compose/metamcp.yaml delete mode 100644 templates/compose/metube.yaml delete mode 100644 templates/compose/mindsdb.yaml delete mode 100644 templates/compose/minecraft.yaml delete mode 100644 templates/compose/miniflux.yaml delete mode 100644 templates/compose/minio-community-edition.yaml delete mode 100644 templates/compose/minio.yaml delete mode 100644 templates/compose/mixpost.yaml delete mode 100644 templates/compose/moodle.yaml delete mode 100644 templates/compose/mosquitto.yaml delete mode 100644 templates/compose/n8n-with-postgres-and-worker.yaml delete mode 100644 templates/compose/n8n-with-postgresql.yaml delete mode 100644 templates/compose/n8n.yaml delete mode 100644 templates/compose/navidrome.yaml delete mode 100644 templates/compose/neon-ws-proxy.yaml delete mode 100644 templates/compose/netbird-client.yaml delete mode 100644 templates/compose/newapi.yaml delete mode 100644 templates/compose/newt-pangolin.yaml delete mode 100644 templates/compose/next-image-transformation.yaml delete mode 100644 templates/compose/nextcloud-with-mariadb.yaml delete mode 100644 templates/compose/nextcloud-with-mysql.yaml delete mode 100644 templates/compose/nextcloud-with-postgres.yaml delete mode 100644 templates/compose/nextcloud.yaml delete mode 100644 templates/compose/nexus-arm.yaml delete mode 100644 templates/compose/nexus.yaml delete mode 100644 templates/compose/nitropage-with-postgresql.yaml delete mode 100644 templates/compose/nitropage.yaml delete mode 100644 templates/compose/nocodb.yaml delete mode 100644 templates/compose/nodebb.yaml delete mode 100644 templates/compose/ntfy.yaml delete mode 100644 templates/compose/observium.yaml delete mode 100644 templates/compose/odoo.yaml delete mode 100644 templates/compose/ollama-with-open-webui.yaml delete mode 100644 templates/compose/once-campfire.yaml delete mode 100644 templates/compose/onedev.yaml delete mode 100644 templates/compose/onetimesecret.yaml delete mode 100644 templates/compose/open-webui.yaml delete mode 100644 templates/compose/openpanel.yaml delete mode 100644 templates/compose/opnform.yaml delete mode 100644 templates/compose/orangehrm.yaml delete mode 100644 templates/compose/organizr.yaml delete mode 100644 templates/compose/osticket.yaml delete mode 100644 templates/compose/overseerr.yaml delete mode 100644 templates/compose/owncloud.yaml delete mode 100644 templates/compose/pairdrop.yaml delete mode 100644 templates/compose/palworld.yaml delete mode 100644 templates/compose/paperless.yaml delete mode 100644 templates/compose/passbolt.yaml delete mode 100644 templates/compose/paymenter.yaml delete mode 100644 templates/compose/penpot.yaml delete mode 100644 templates/compose/peppermint.yaml delete mode 100644 templates/compose/pgadmin.yaml delete mode 100644 templates/compose/pgbackweb.yaml delete mode 100644 templates/compose/phpmyadmin.yaml delete mode 100644 templates/compose/pi-hole.yaml delete mode 100644 templates/compose/pingvinshare-with-clamav.yaml delete mode 100644 templates/compose/pingvinshare.yaml delete mode 100644 templates/compose/plane.yaml delete mode 100644 templates/compose/plausible.yaml delete mode 100644 templates/compose/plex.yaml delete mode 100644 templates/compose/plunk.yaml delete mode 100644 templates/compose/pocket-id-with-postgresql.yaml delete mode 100644 templates/compose/pocket-id.yaml delete mode 100644 templates/compose/pocketbase.yaml delete mode 100644 templates/compose/portainer.yaml delete mode 100644 templates/compose/postgresus.yaml delete mode 100644 templates/compose/posthog.yaml delete mode 100644 templates/compose/postiz.yaml delete mode 100644 templates/compose/prefect.yaml delete mode 100644 templates/compose/privatebin.yaml delete mode 100644 templates/compose/prowlarr.yaml delete mode 100644 templates/compose/proxyscotch.yaml delete mode 100644 templates/compose/pterodactyl-panel.yaml delete mode 100644 templates/compose/pterodactyl-with-wings.yaml delete mode 100644 templates/compose/qbittorrent.yaml delete mode 100644 templates/compose/qdrant.yaml delete mode 100644 templates/compose/rabbitmq.yaml delete mode 100644 templates/compose/radarr.yaml delete mode 100644 templates/compose/rallly.yaml delete mode 100644 templates/compose/reactive-resume.yaml delete mode 100644 templates/compose/readeck.yaml delete mode 100644 templates/compose/redis-insight.yaml delete mode 100644 templates/compose/redlib.yaml delete mode 100644 templates/compose/rivet-engine.yaml delete mode 100644 templates/compose/rocketchat.yaml delete mode 100644 templates/compose/rybbit.yaml delete mode 100644 templates/compose/ryot.yaml delete mode 100644 templates/compose/seafile.yaml delete mode 100644 templates/compose/searxng.yaml delete mode 100644 templates/compose/sequin.yaml delete mode 100644 templates/compose/shlink.yaml delete mode 100644 templates/compose/signoz.yaml delete mode 100644 templates/compose/siyuan.yaml delete mode 100644 templates/compose/slash.yaml delete mode 100644 templates/compose/snapdrop.yaml delete mode 100644 templates/compose/soketi.yaml delete mode 100644 templates/compose/sonarqube.yaml delete mode 100644 templates/compose/sonarr.yaml delete mode 100644 templates/compose/sparkyfitness.yaml delete mode 100644 templates/compose/statusnook.yaml delete mode 100644 templates/compose/stirling-pdf.yaml delete mode 100644 templates/compose/strapi.yaml delete mode 100644 templates/compose/supabase.yaml delete mode 100644 templates/compose/superset-with-postgresql.yaml delete mode 100644 templates/compose/supertokens-with-mysql.yaml delete mode 100644 templates/compose/supertokens-with-postgresql.yaml delete mode 100644 templates/compose/swetrix.yaml delete mode 100644 templates/compose/syncthing.yaml delete mode 100644 templates/compose/tailscale-client.yaml delete mode 100644 templates/compose/teable.yaml delete mode 100644 templates/compose/tolgee.yaml delete mode 100644 templates/compose/traccar.yaml delete mode 100644 templates/compose/transmission.yaml delete mode 100644 templates/compose/trigger-with-external-database.yaml delete mode 100644 templates/compose/trigger.yaml delete mode 100644 templates/compose/triliumnext.yaml delete mode 100644 templates/compose/twenty.yaml delete mode 100644 templates/compose/typesense.yaml delete mode 100644 templates/compose/umami.yaml delete mode 100644 templates/compose/unleash-with-postgresql.yaml delete mode 100644 templates/compose/unleash-without-database.yaml delete mode 100644 templates/compose/unsend.yaml delete mode 100644 templates/compose/unstructured.yaml delete mode 100644 templates/compose/uptime-kuma.yaml delete mode 100644 templates/compose/vaultwarden.yaml delete mode 100644 templates/compose/vert.yaml delete mode 100644 templates/compose/vikunja-with-postgresql.yaml delete mode 100644 templates/compose/vikunja.yaml delete mode 100644 templates/compose/vvveb-with-mariadb.yaml delete mode 100644 templates/compose/vvveb-with-mysql.yaml delete mode 100644 templates/compose/vvveb.yaml delete mode 100644 templates/compose/wakapi.yaml delete mode 100644 templates/compose/weaviate.yaml delete mode 100644 templates/compose/web-check.yaml delete mode 100644 templates/compose/weblate.yaml delete mode 100644 templates/compose/whoogle.yaml delete mode 100644 templates/compose/wikijs.yaml delete mode 100644 templates/compose/windmill.yaml delete mode 100644 templates/compose/windows.yaml delete mode 100644 templates/compose/wings.yaml delete mode 100644 templates/compose/wireguard-easy.yaml delete mode 100644 templates/compose/wordpress-with-mariadb.yaml delete mode 100644 templates/compose/wordpress-with-mysql.yaml delete mode 100644 templates/compose/wordpress-without-database.yaml delete mode 100644 templates/compose/yamtrack-with-postgresql.yaml delete mode 100644 templates/compose/yamtrack.yaml delete mode 100644 templates/compose/zep.yaml delete mode 100644 templates/compose/zipline.yaml delete mode 100644 templates/service-templates-latest.json delete mode 100644 templates/service-templates.json delete mode 100644 templates/test-database-detection.yaml delete mode 100644 tests/Browser/LoginTest.php delete mode 100644 tests/Browser/Project/ProjectAddNewTest.php delete mode 100644 tests/Browser/Project/ProjectSearchTest.php delete mode 100644 tests/Browser/Project/ProjectTest.php delete mode 100644 tests/Browser/console/.gitignore delete mode 100644 tests/Browser/screenshots/.gitignore delete mode 100644 tests/Browser/source/.gitignore delete mode 100644 tests/CreatesApplication.php delete mode 100644 tests/DuskTestCase.php delete mode 100644 tests/Feature/ApplicationBuildpackCleanupTest.php delete mode 100644 tests/Feature/BuildpackSwitchCleanupTest.php delete mode 100644 tests/Feature/CheckTraefikVersionJobTest.php delete mode 100644 tests/Feature/CleanupRedisTest.php delete mode 100644 tests/Feature/CloudInitScriptTest.php delete mode 100644 tests/Feature/ConvertArraysTest.php delete mode 100644 tests/Feature/ConvertContainerEnvsToArray.php delete mode 100644 tests/Feature/ConvertingGitUrlsTest.php delete mode 100644 tests/Feature/CoolifyTaskRetryTest.php delete mode 100644 tests/Feature/DatabaseBackupCreationApiTest.php delete mode 100644 tests/Feature/DatabaseBackupJobTest.php delete mode 100644 tests/Feature/DeletesUserSessionsTest.php delete mode 100644 tests/Feature/DeploymentCancellationApiTest.php delete mode 100644 tests/Feature/DockerCustomCommandsTest.php delete mode 100644 tests/Feature/EnvironmentVariableSharedSpacingTest.php delete mode 100644 tests/Feature/ExecuteContainerCommandTest.php delete mode 100644 tests/Feature/GithubAppsListApiTest.php delete mode 100644 tests/Feature/GithubSourceChangeTest.php delete mode 100644 tests/Feature/GithubSourceCreateTest.php delete mode 100644 tests/Feature/HetznerServerCreationTest.php delete mode 100644 tests/Feature/IpAllowlistTest.php delete mode 100644 tests/Feature/LoginRateLimitIPTest.php delete mode 100644 tests/Feature/MultilineEnvironmentVariableTest.php delete mode 100644 tests/Feature/ServerPatchCheckNotificationTest.php delete mode 100644 tests/Feature/ServerSettingSentinelRestartTest.php delete mode 100644 tests/Feature/ServerSettingWasChangedTest.php delete mode 100644 tests/Feature/Service/EditDomainPortValidationTest.php delete mode 100644 tests/Feature/ServiceFqdnUpdatePathTest.php delete mode 100644 tests/Feature/StartupExecutionCleanupTest.php delete mode 100644 tests/Feature/TeamInvitationEmailNormalizationTest.php delete mode 100644 tests/Feature/TeamInvitationPrivilegeEscalationTest.php delete mode 100644 tests/Feature/TeamPolicyTest.php delete mode 100644 tests/Feature/TrustHostsMiddlewareTest.php delete mode 100644 tests/Feature/Utf8HandlingTest.php delete mode 100644 tests/Pest.php delete mode 100644 tests/TestCase.php delete mode 100644 tests/Traits/HandlesTestDatabase.php delete mode 100644 tests/Unit/Actions/Server/ValidatePrerequisitesTest.php delete mode 100644 tests/Unit/Actions/User/DeleteUserResourcesTest.php delete mode 100644 tests/Unit/AllExcludedContainersConsistencyTest.php delete mode 100644 tests/Unit/ApplicationComposeEditorLoadTest.php delete mode 100644 tests/Unit/ApplicationConfigurationChangeTest.php delete mode 100644 tests/Unit/ApplicationDeploymentCustomBuildCommandTest.php delete mode 100644 tests/Unit/ApplicationDeploymentEmptyEnvTest.php delete mode 100644 tests/Unit/ApplicationDeploymentErrorLoggingTest.php delete mode 100644 tests/Unit/ApplicationGitSecurityTest.php delete mode 100644 tests/Unit/ApplicationHealthcheckRemovalTest.php delete mode 100644 tests/Unit/ApplicationNetworkAliasesSyncTest.php delete mode 100644 tests/Unit/ApplicationParserStringableTest.php delete mode 100644 tests/Unit/ApplicationPortDetectionTest.php delete mode 100644 tests/Unit/ApplicationServiceEnvironmentVariablesTest.php delete mode 100644 tests/Unit/ApplicationSettingStaticCastTest.php delete mode 100644 tests/Unit/ApplicationWatchPathsTest.php delete mode 100644 tests/Unit/BashEnvEscapingTest.php delete mode 100644 tests/Unit/CheckForUpdatesJobTest.php delete mode 100644 tests/Unit/CheckTraefikVersionForServerJobTest.php delete mode 100644 tests/Unit/CheckTraefikVersionJobTest.php delete mode 100644 tests/Unit/CloudInitScriptValidationTest.php delete mode 100644 tests/Unit/ContainerHealthStatusTest.php delete mode 100644 tests/Unit/ContainerStatusAggregatorTest.php delete mode 100644 tests/Unit/CoolifyTaskCleanupTest.php delete mode 100644 tests/Unit/DatabaseBackupSecurityTest.php delete mode 100644 tests/Unit/DatalistComponentTest.php delete mode 100644 tests/Unit/DeploymentExceptionTest.php delete mode 100644 tests/Unit/DockerComposeEmptyStringPreservationTest.php delete mode 100644 tests/Unit/DockerComposeEmptyTopLevelSectionsTest.php delete mode 100644 tests/Unit/DockerComposeLabelParsingTest.php delete mode 100644 tests/Unit/DockerComposeRawContentRemovalTest.php delete mode 100644 tests/Unit/DockerComposeRawSeparationTest.php delete mode 100644 tests/Unit/DockerImageAutoParseTest.php delete mode 100644 tests/Unit/DockerImageParserTest.php delete mode 100644 tests/Unit/DockerfileArgInsertionTest.php delete mode 100644 tests/Unit/EnvVarInputComponentTest.php delete mode 100644 tests/Unit/ExcludeFromHealthCheckTest.php delete mode 100644 tests/Unit/FileStorageSecurityTest.php delete mode 100644 tests/Unit/FormatBytesTest.php delete mode 100644 tests/Unit/FormatContainerStatusTest.php delete mode 100644 tests/Unit/GetContainersStatusServiceAggregationTest.php delete mode 100644 tests/Unit/GitLsRemoteParsingTest.php delete mode 100644 tests/Unit/GlobalSearchNewImageQuickActionTest.php delete mode 100644 tests/Unit/HetznerDeletionFailedNotificationTest.php delete mode 100644 tests/Unit/HetznerSshKeysTest.php delete mode 100644 tests/Unit/Livewire/ApplicationGeneralPreviewTest.php delete mode 100644 tests/Unit/Livewire/BoardingPrerequisitesTest.php delete mode 100644 tests/Unit/Livewire/Database/S3RestoreTest.php delete mode 100644 tests/Unit/Livewire/EnvironmentVariableAutocompleteTest.php delete mode 100644 tests/Unit/Notifications/Channels/EmailChannelTest.php delete mode 100644 tests/Unit/NotifyOutdatedTraefikServersJobTest.php delete mode 100644 tests/Unit/ParseCommandsByLineForSudoTest.php delete mode 100644 tests/Unit/ParseDockerVolumeStringTest.php delete mode 100644 tests/Unit/PathTraversalSecurityTest.php delete mode 100644 tests/Unit/Policies/PrivateKeyPolicyTest.php delete mode 100644 tests/Unit/Policies/S3StoragePolicyTest.php delete mode 100644 tests/Unit/PostgresqlInitScriptSecurityTest.php delete mode 100644 tests/Unit/PreSaveValidationTest.php delete mode 100644 tests/Unit/PrivateKeyStorageTest.php delete mode 100644 tests/Unit/Project/Database/ImportCheckFileButtonTest.php delete mode 100644 tests/Unit/ProxyConfigurationSecurityTest.php delete mode 100644 tests/Unit/ProxyCustomCommandsTest.php delete mode 100644 tests/Unit/ProxyHelperTest.php delete mode 100644 tests/Unit/RestartCountTrackingTest.php delete mode 100644 tests/Unit/RestoreJobFinishedNullServerTest.php delete mode 100644 tests/Unit/RestoreJobFinishedSecurityTest.php delete mode 100644 tests/Unit/RestoreJobFinishedShellEscapingTest.php delete mode 100644 tests/Unit/Rules/ValidCloudInitYamlTest.php delete mode 100644 tests/Unit/S3RestoreSecurityTest.php delete mode 100644 tests/Unit/S3RestoreTest.php delete mode 100644 tests/Unit/S3StorageTest.php delete mode 100644 tests/Unit/ScheduledJobManagerLockTest.php delete mode 100644 tests/Unit/ScheduledJobsRetryConfigTest.php delete mode 100644 tests/Unit/ScheduledTaskJobTimeoutTest.php delete mode 100644 tests/Unit/ServerQueryScopeTest.php delete mode 100644 tests/Unit/ServerStatusAccessorTest.php delete mode 100644 tests/Unit/ServiceApplicationPrerequisitesTest.php delete mode 100644 tests/Unit/ServiceConfigurationRefreshTest.php delete mode 100644 tests/Unit/ServiceExcludedStatusTest.php delete mode 100644 tests/Unit/ServiceNameSecurityTest.php delete mode 100644 tests/Unit/ServiceParserImageUpdateTest.php delete mode 100644 tests/Unit/ServiceParserPathDuplicationTest.php delete mode 100644 tests/Unit/ServiceParserPortDetectionLogicTest.php delete mode 100644 tests/Unit/ServicePortSpecificVariablesTest.php delete mode 100644 tests/Unit/ServiceRequiredPortTest.php delete mode 100644 tests/Unit/SshRetryMechanismTest.php delete mode 100644 tests/Unit/StartProxyTest.php delete mode 100644 tests/Unit/StartupExecutionCleanupTest.php delete mode 100644 tests/Unit/StopProxyTest.php delete mode 100644 tests/Unit/StripCoolifyCustomFieldsTest.php delete mode 100644 tests/Unit/TimescaleDbDetectionTest.php delete mode 100644 tests/Unit/UpdateComposeAbbreviatedVariablesTest.php delete mode 100644 tests/Unit/UpdateCoolifyTest.php delete mode 100644 tests/Unit/ValidGitRepositoryUrlTest.php delete mode 100644 tests/Unit/ValidHostnameTest.php delete mode 100644 tests/Unit/ValidateShellSafePathTest.php delete mode 100644 tests/Unit/VolumeArrayFormatSecurityTest.php delete mode 100644 tests/Unit/VolumeSecurityTest.php delete mode 100644 tests/Unit/WindowsPathVolumeTest.php delete mode 100644 todos/service-database-deployment-logging.md delete mode 100644 versions.json diff --git a/.AI_INSTRUCTIONS_SYNC.md b/.AI_INSTRUCTIONS_SYNC.md deleted file mode 100644 index b268064af..000000000 --- a/.AI_INSTRUCTIONS_SYNC.md +++ /dev/null @@ -1,41 +0,0 @@ -# AI Instructions Synchronization Guide - -**This file has moved!** - -All AI documentation and synchronization guidelines are now in the `.ai/` directory. - -## New Locations - -- **Sync Guide**: [.ai/meta/sync-guide.md](.ai/meta/sync-guide.md) -- **Maintaining Docs**: [.ai/meta/maintaining-docs.md](.ai/meta/maintaining-docs.md) -- **Documentation Hub**: [.ai/README.md](.ai/README.md) - -## Quick Overview - -All AI instructions are now organized in `.ai/` directory: - -``` -.ai/ -├── README.md # Navigation hub -├── core/ # Project information -├── development/ # Dev workflows -├── patterns/ # Code patterns -└── meta/ # Documentation guides -``` - -### For AI Assistants - -- **Claude Code**: Use `CLAUDE.md` (references `.ai/` files) -- **Cursor IDE**: Use `.cursor/rules/coolify-ai-docs.mdc` (references `.ai/` files) -- **All Tools**: Browse `.ai/` directory for detailed documentation - -### Key Principles - -1. **Single Source of Truth**: Each piece of information exists in ONE file only -2. **Cross-Reference**: Other files reference the source, don't duplicate -3. **Organized by Topic**: Core, Development, Patterns, Meta -4. **Version Consistency**: All versions in `.ai/core/technology-stack.md` - -## For More Information - -See [.ai/meta/sync-guide.md](.ai/meta/sync-guide.md) for complete synchronization guidelines and [.ai/meta/maintaining-docs.md](.ai/meta/maintaining-docs.md) for documentation maintenance instructions. diff --git a/.ai/README.md b/.ai/README.md deleted file mode 100644 index ea7812496..000000000 --- a/.ai/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# Coolify AI Documentation - -Welcome to the Coolify AI documentation hub. This directory contains all AI assistant instructions organized by topic for easy navigation and maintenance. - -## Quick Start - -- **For Claude Code**: Start with [CLAUDE.md in root directory](../CLAUDE.md) -- **For Cursor IDE**: Check `.cursor/rules/coolify-ai-docs.mdc` which references this directory -- **For Other AI Tools**: Continue reading below - -## Documentation Structure - -### 📚 Core Documentation -Essential project information and architecture: - -- **[Technology Stack](core/technology-stack.md)** - All versions, packages, and dependencies (Laravel 12.4.1, PHP 8.4.7, etc.) -- **[Project Overview](core/project-overview.md)** - What Coolify is and how it works -- **[Application Architecture](core/application-architecture.md)** - System design and component relationships -- **[Deployment Architecture](core/deployment-architecture.md)** - How deployments work end-to-end, including Coolify Docker Compose extensions (custom fields) - -### 💻 Development -Day-to-day development practices: - -- **[Workflow](development/development-workflow.md)** - Development setup, commands, and daily workflows -- **[Testing Patterns](development/testing-patterns.md)** - How to write and run tests (Unit vs Feature, Docker requirements) -- **[Laravel Boost](development/laravel-boost.md)** - Laravel-specific guidelines and best practices - -### 🎨 Patterns -Code patterns and best practices by domain: - -- **[Database Patterns](patterns/database-patterns.md)** - Eloquent, migrations, relationships -- **[Frontend Patterns](patterns/frontend-patterns.md)** - Livewire, Alpine.js, Tailwind CSS -- **[Security Patterns](patterns/security-patterns.md)** - Authentication, authorization, security best practices -- **[Form Components](patterns/form-components.md)** - Enhanced form components with authorization -- **[API & Routing](patterns/api-and-routing.md)** - API design, routing conventions, REST patterns - -### 📖 Meta -Documentation about documentation: - -- **[Maintaining Docs](meta/maintaining-docs.md)** - How to update and improve this documentation -- **[Sync Guide](meta/sync-guide.md)** - Keeping documentation synchronized across tools - -## Quick Decision Tree - -**What do you need help with?** - -### Running Commands -→ [development/development-workflow.md](development/development-workflow.md) -- Frontend: `npm run dev`, `npm run build` -- Backend: `php artisan serve`, `php artisan migrate` -- Tests: Docker for Feature tests, mocking for Unit tests -- Code quality: `./vendor/bin/pint`, `./vendor/bin/phpstan` - -### Writing Tests -→ [development/testing-patterns.md](development/testing-patterns.md) -- **Unit tests**: No database, use mocking, run outside Docker -- **Feature tests**: Can use database, must run inside Docker -- Command: `docker exec coolify php artisan test` - -### Building UI -→ [patterns/frontend-patterns.md](patterns/frontend-patterns.md) or [patterns/form-components.md](patterns/form-components.md) -- Livewire components with server-side state -- Alpine.js for client-side interactivity -- Tailwind CSS 4.1.4 for styling -- Form components with built-in authorization - -### Database Work -→ [patterns/database-patterns.md](patterns/database-patterns.md) -- Eloquent ORM patterns -- Migration best practices -- Relationship definitions -- Query optimization - -### Security & Auth -→ [patterns/security-patterns.md](patterns/security-patterns.md) -- Team-based access control -- Policy and gate patterns -- Form authorization (canGate, canResource) -- API security - -### Laravel-Specific Questions -→ [development/laravel-boost.md](development/laravel-boost.md) -- Laravel 12 patterns -- Livewire 3 best practices -- Pest testing patterns -- Laravel conventions - -### Docker Compose Extensions -→ [core/deployment-architecture.md](core/deployment-architecture.md#coolify-docker-compose-extensions) -- Custom fields: `exclude_from_hc`, `content`, `isDirectory` -- How to use inline file content -- Health check exclusion patterns -- Volume creation control - -### Version Numbers -→ [core/technology-stack.md](core/technology-stack.md) -- **Single source of truth** for all version numbers -- Don't duplicate versions elsewhere, reference this file - -## Navigation Tips - -1. **Start broad**: Begin with project-overview or ../CLAUDE.md -2. **Get specific**: Navigate to topic-specific files for details -3. **Cross-reference**: Files link to related topics -4. **Single source**: Version numbers and critical data exist in ONE place only - -## For AI Assistants - -### Important Patterns to Follow - -**Testing Commands:** -- Unit tests: `./vendor/bin/pest tests/Unit` (no database, outside Docker) -- Feature tests: `docker exec coolify php artisan test` (requires database, inside Docker) -- NEVER run Feature tests outside Docker - they will fail with database connection errors - -**Version Numbers:** -- Always use exact versions from [technology-stack.md](core/technology-stack.md) -- Laravel 12.4.1, PHP 8.4.7, Tailwind 4.1.4 -- Don't use "v12" or "8.4" - be precise - -**Form Authorization:** -- ALWAYS include `canGate` and `:canResource` on form components -- See [form-components.md](patterns/form-components.md) for examples - -**Livewire Components:** -- MUST have exactly ONE root element -- See [frontend-patterns.md](patterns/frontend-patterns.md) for details - -**Code Style:** -- Run `./vendor/bin/pint` before finalizing changes -- Follow PSR-12 standards -- Use PHP 8.4 features (constructor promotion, typed properties, etc.) - -## Contributing - -When updating documentation: -1. Read [meta/maintaining-docs.md](meta/maintaining-docs.md) -2. Follow the single source of truth principle -3. Update cross-references when moving content -4. Test all links work -5. Run Pint on markdown files if applicable - -## Questions? - -- **Claude Code users**: Check [../CLAUDE.md](../CLAUDE.md) first -- **Cursor IDE users**: Check `.cursor/rules/coolify-ai-docs.mdc` -- **Documentation issues**: See [meta/maintaining-docs.md](meta/maintaining-docs.md) -- **Sync issues**: See [meta/sync-guide.md](meta/sync-guide.md) diff --git a/.ai/core/application-architecture.md b/.ai/core/application-architecture.md deleted file mode 100644 index 64038d139..000000000 --- a/.ai/core/application-architecture.md +++ /dev/null @@ -1,604 +0,0 @@ -# Coolify Application Architecture - -## Laravel Project Structure - -### **Core Application Directory** ([app/](mdc:app)) - -``` -app/ -├── Actions/ # Business logic actions (Action pattern) -├── Console/ # Artisan commands -├── Contracts/ # Interface definitions -├── Data/ # Data Transfer Objects (Spatie Laravel Data) -├── Enums/ # Enumeration classes -├── Events/ # Event classes -├── Exceptions/ # Custom exception classes -├── Helpers/ # Utility helper classes -├── Http/ # HTTP layer (Controllers, Middleware, Requests) -├── Jobs/ # Background job classes -├── Listeners/ # Event listeners -├── Livewire/ # Livewire components (Frontend) -├── Models/ # Eloquent models (Domain entities) -├── Notifications/ # Notification classes -├── Policies/ # Authorization policies -├── Providers/ # Service providers -├── Repositories/ # Repository pattern implementations -├── Services/ # Service layer classes -├── Traits/ # Reusable trait classes -└── View/ # View composers and creators -``` - -## Core Domain Models - -### **Infrastructure Management** - -#### **[Server.php](mdc:app/Models/Server.php)** (46KB, 1343 lines) -- **Purpose**: Physical/virtual server management -- **Key Relationships**: - - `hasMany(Application::class)` - Deployed applications - - `hasMany(StandalonePostgresql::class)` - Database instances - - `belongsTo(Team::class)` - Team ownership -- **Key Features**: - - SSH connection management - - Resource monitoring - - Proxy configuration (Traefik/Caddy) - - Docker daemon interaction - -#### **[Application.php](mdc:app/Models/Application.php)** (74KB, 1734 lines) -- **Purpose**: Application deployment and management -- **Key Relationships**: - - `belongsTo(Server::class)` - Deployment target - - `belongsTo(Environment::class)` - Environment context - - `hasMany(ApplicationDeploymentQueue::class)` - Deployment history -- **Key Features**: - - Git repository integration - - Docker build and deployment - - Environment variable management - - SSL certificate handling - -#### **[Service.php](mdc:app/Models/Service.php)** (58KB, 1325 lines) -- **Purpose**: Multi-container service orchestration -- **Key Relationships**: - - `hasMany(ServiceApplication::class)` - Service components - - `hasMany(ServiceDatabase::class)` - Service databases - - `belongsTo(Environment::class)` - Environment context -- **Key Features**: - - Docker Compose generation - - Service dependency management - - Health check configuration - -### **Team & Project Organization** - -#### **[Team.php](mdc:app/Models/Team.php)** (8.9KB, 308 lines) -- **Purpose**: Multi-tenant team management -- **Key Relationships**: - - `hasMany(User::class)` - Team members - - `hasMany(Project::class)` - Team projects - - `hasMany(Server::class)` - Team servers -- **Key Features**: - - Resource limits and quotas - - Team-based access control - - Subscription management - -#### **[Project.php](mdc:app/Models/Project.php)** (4.3KB, 156 lines) -- **Purpose**: Project organization and grouping -- **Key Relationships**: - - `hasMany(Environment::class)` - Project environments - - `belongsTo(Team::class)` - Team ownership -- **Key Features**: - - Environment isolation - - Resource organization - -#### **[Environment.php](mdc:app/Models/Environment.php)** -- **Purpose**: Environment-specific configuration -- **Key Relationships**: - - `hasMany(Application::class)` - Environment applications - - `hasMany(Service::class)` - Environment services - - `belongsTo(Project::class)` - Project context - -### **Database Management Models** - -#### **Standalone Database Models** -- **[StandalonePostgresql.php](mdc:app/Models/StandalonePostgresql.php)** (11KB, 351 lines) -- **[StandaloneMysql.php](mdc:app/Models/StandaloneMysql.php)** (11KB, 351 lines) -- **[StandaloneMariadb.php](mdc:app/Models/StandaloneMariadb.php)** (10KB, 337 lines) -- **[StandaloneMongodb.php](mdc:app/Models/StandaloneMongodb.php)** (12KB, 370 lines) -- **[StandaloneRedis.php](mdc:app/Models/StandaloneRedis.php)** (12KB, 394 lines) -- **[StandaloneKeydb.php](mdc:app/Models/StandaloneKeydb.php)** (11KB, 347 lines) -- **[StandaloneDragonfly.php](mdc:app/Models/StandaloneDragonfly.php)** (11KB, 347 lines) -- **[StandaloneClickhouse.php](mdc:app/Models/StandaloneClickhouse.php)** (10KB, 336 lines) - -**Common Features**: -- Database configuration management -- Backup scheduling and execution -- Connection string generation -- Health monitoring - -### **Configuration & Settings** - -#### **[EnvironmentVariable.php](mdc:app/Models/EnvironmentVariable.php)** (7.6KB, 219 lines) -- **Purpose**: Application environment variable management -- **Key Features**: - - Encrypted value storage - - Build-time vs runtime variables - - Shared variable inheritance - -#### **[InstanceSettings.php](mdc:app/Models/InstanceSettings.php)** (3.2KB, 124 lines) -- **Purpose**: Global Coolify instance configuration -- **Key Features**: - - FQDN and port configuration - - Auto-update settings - - Security configurations - -## Architectural Patterns - -### **Action Pattern** ([app/Actions/](mdc:app/Actions)) - -Using [lorisleiva/laravel-actions](mdc:composer.json) for business logic encapsulation: - -```php -// Example Action structure -class DeployApplication extends Action -{ - public function handle(Application $application): void - { - // Business logic for deployment - } - - public function asJob(Application $application): void - { - // Queue job implementation - } -} -``` - -**Key Action Categories**: -- **Application/**: Deployment and management actions -- **Database/**: Database operations -- **Server/**: Server management actions -- **Service/**: Service orchestration actions - -### **Repository Pattern** ([app/Repositories/](mdc:app/Repositories)) - -Data access abstraction layer: -- Encapsulates database queries -- Provides testable data layer -- Abstracts complex query logic - -### **Service Layer** ([app/Services/](mdc:app/Services)) - -Business logic services: -- External API integrations -- Complex business operations -- Cross-cutting concerns - -## Data Flow Architecture - -### **Request Lifecycle** - -1. **HTTP Request** → [routes/web.php](mdc:routes/web.php) -2. **Middleware** → Authentication, authorization -3. **Livewire Component** → [app/Livewire/](mdc:app/Livewire) -4. **Action/Service** → Business logic execution -5. **Model/Repository** → Data persistence -6. **Response** → Livewire reactive update - -### **Background Processing** - -1. **Job Dispatch** → Queue system (Redis) -2. **Job Processing** → [app/Jobs/](mdc:app/Jobs) -3. **Action Execution** → Business logic -4. **Event Broadcasting** → Real-time updates -5. **Notification** → User feedback - -## Security Architecture - -### **Multi-Tenant Isolation** - -```php -// Team-based query scoping -class Application extends Model -{ - public function scopeOwnedByCurrentTeam($query) - { - return $query->whereHas('environment.project.team', function ($q) { - $q->where('id', currentTeam()->id); - }); - } -} -``` - -### **Authorization Layers** - -1. **Team Membership** → User belongs to team -2. **Resource Ownership** → Resource belongs to team -3. **Policy Authorization** → [app/Policies/](mdc:app/Policies) -4. **Environment Isolation** → Project/environment boundaries - -### **Data Protection** - -- **Environment Variables**: Encrypted at rest -- **SSH Keys**: Secure storage and transmission -- **API Tokens**: Sanctum-based authentication -- **Audit Logging**: [spatie/laravel-activitylog](mdc:composer.json) - -## Configuration Hierarchy - -### **Global Configuration** -- **[InstanceSettings](mdc:app/Models/InstanceSettings.php)**: System-wide settings -- **[config/](mdc:config)**: Laravel configuration files - -### **Team Configuration** -- **[Team](mdc:app/Models/Team.php)**: Team-specific settings -- **[ServerSetting](mdc:app/Models/ServerSetting.php)**: Server configurations - -### **Project Configuration** -- **[ProjectSetting](mdc:app/Models/ProjectSetting.php)**: Project settings -- **[Environment](mdc:app/Models/Environment.php)**: Environment variables - -### **Application Configuration** -- **[ApplicationSetting](mdc:app/Models/ApplicationSetting.php)**: App-specific settings -- **[EnvironmentVariable](mdc:app/Models/EnvironmentVariable.php)**: Runtime configuration - -## Event-Driven Architecture - -### **Event Broadcasting** ([app/Events/](mdc:app/Events)) - -Real-time updates using Laravel Echo and WebSockets: - -```php -// Example event structure -class ApplicationDeploymentStarted implements ShouldBroadcast -{ - public function broadcastOn(): array - { - return [ - new PrivateChannel("team.{$this->application->team->id}"), - ]; - } -} -``` - -### **Event Listeners** ([app/Listeners/](mdc:app/Listeners)) - -- Deployment status updates -- Resource monitoring alerts -- Notification dispatching -- Audit log creation - -## Database Design Patterns - -### **Polymorphic Relationships** - -```php -// Environment variables can belong to multiple resource types -class EnvironmentVariable extends Model -{ - public function resource(): MorphTo - { - return $this->morphTo(); - } -} -``` - -### **Team-Based Soft Scoping** - -All major resources include team-based query scoping: - -```php -// Automatic team filtering -$applications = Application::ownedByCurrentTeam()->get(); -$servers = Server::ownedByCurrentTeam()->get(); -``` - -### **Configuration Inheritance** - -Environment variables cascade from: -1. **Shared Variables** → Team-wide defaults -2. **Project Variables** → Project-specific overrides -3. **Application Variables** → Application-specific values - -## Integration Patterns - -### **Git Provider Integration** - -Abstracted git operations supporting: -- **GitHub**: [app/Models/GithubApp.php](mdc:app/Models/GithubApp.php) -- **GitLab**: [app/Models/GitlabApp.php](mdc:app/Models/GitlabApp.php) -- **Bitbucket**: Webhook integration -- **Gitea**: Self-hosted Git support - -### **Docker Integration** - -- **Container Management**: Direct Docker API communication -- **Image Building**: Dockerfile and Buildpack support -- **Network Management**: Custom Docker networks -- **Volume Management**: Persistent storage handling - -### **SSH Communication** - -- **[phpseclib/phpseclib](mdc:composer.json)**: Secure SSH connections -- **Multiplexing**: Connection pooling for efficiency -- **Key Management**: [PrivateKey](mdc:app/Models/PrivateKey.php) model - -## Testing Architecture - -### **Test Structure** ([tests/](mdc:tests)) - -``` -tests/ -├── Feature/ # Integration tests -├── Unit/ # Unit tests -├── Browser/ # Dusk browser tests -├── Traits/ # Test helper traits -├── Pest.php # Pest configuration -└── TestCase.php # Base test case -``` - -### **Testing Patterns** - -- **Feature Tests**: Full request lifecycle testing -- **Unit Tests**: Individual class/method testing -- **Browser Tests**: End-to-end user workflows -- **Database Testing**: Factories and seeders - -## Performance Considerations - -### **Query Optimization** - -- **Eager Loading**: Prevent N+1 queries -- **Query Scoping**: Team-based filtering -- **Database Indexing**: Optimized for common queries - -### **Caching Strategy** - -- **Redis**: Session and cache storage -- **Model Caching**: Frequently accessed data -- **Query Caching**: Expensive query results - -### **Background Processing** - -- **Queue Workers**: Horizon-managed job processing -- **Job Batching**: Related job grouping -- **Failed Job Handling**: Automatic retry logic - -## Container Status Monitoring System - -### **Overview** - -Container health status is monitored and updated through **multiple independent paths**. When modifying status logic, **ALL paths must be updated** to ensure consistency. - -### **Critical Implementation Locations** - -#### **1. SSH-Based Status Updates (Scheduled)** -**File**: [app/Actions/Docker/GetContainersStatus.php](mdc:app/Actions/Docker/GetContainersStatus.php) -**Method**: `aggregateApplicationStatus()` (lines 487-540) -**Trigger**: Scheduled job or manual refresh -**Frequency**: Every minute (via `ServerCheckJob`) - -**Status Aggregation Logic**: -```php -// Tracks multiple status flags -$hasRunning = false; -$hasRestarting = false; -$hasUnhealthy = false; -$hasUnknown = false; // ⚠️ CRITICAL: Must track unknown -$hasExited = false; -// ... more states - -// Priority: restarting > degraded > running (unhealthy > unknown > healthy) -if ($hasRunning) { - if ($hasUnhealthy) return 'running (unhealthy)'; - elseif ($hasUnknown) return 'running (unknown)'; - else return 'running (healthy)'; -} -``` - -#### **2. Sentinel-Based Status Updates (Real-time)** -**File**: [app/Jobs/PushServerUpdateJob.php](mdc:app/Jobs/PushServerUpdateJob.php) -**Method**: `aggregateMultiContainerStatuses()` (lines 269-298) -**Trigger**: Sentinel push updates from remote servers -**Frequency**: Every ~30 seconds (real-time) - -**Status Aggregation Logic**: -```php -// ⚠️ MUST match GetContainersStatus logic -$hasRunning = false; -$hasUnhealthy = false; -$hasUnknown = false; // ⚠️ CRITICAL: Added to fix bug - -foreach ($relevantStatuses as $status) { - if (str($status)->contains('running')) { - $hasRunning = true; - if (str($status)->contains('unhealthy')) $hasUnhealthy = true; - if (str($status)->contains('unknown')) $hasUnknown = true; // ⚠️ CRITICAL - } -} - -// Priority: unhealthy > unknown > healthy -if ($hasRunning) { - if ($hasUnhealthy) $aggregatedStatus = 'running (unhealthy)'; - elseif ($hasUnknown) $aggregatedStatus = 'running (unknown)'; - else $aggregatedStatus = 'running (healthy)'; -} -``` - -#### **3. Multi-Server Status Aggregation** -**File**: [app/Actions/Shared/ComplexStatusCheck.php](mdc:app/Actions/Shared/ComplexStatusCheck.php) -**Method**: `resource()` (lines 48-210) -**Purpose**: Aggregates status across multiple servers for applications -**Used by**: Applications with multiple destinations - -**Key Features**: -- Aggregates statuses from main + additional servers -- Handles excluded containers (`:excluded` suffix) -- Calculates overall application health from all containers - -**Status Format with Excluded Containers**: -```php -// When all containers excluded from health checks: -return 'running:unhealthy:excluded'; // Container running but unhealthy, monitoring disabled -return 'running:unknown:excluded'; // Container running, health unknown, monitoring disabled -return 'running:healthy:excluded'; // Container running and healthy, monitoring disabled -return 'degraded:excluded'; // Some containers down, monitoring disabled -return 'exited:excluded'; // All containers stopped, monitoring disabled -``` - -#### **4. Service-Level Status Aggregation** -**File**: [app/Models/Service.php](mdc:app/Models/Service.php) -**Method**: `complexStatus()` (lines 176-288) -**Purpose**: Aggregates status for multi-container services -**Used by**: Docker Compose services - -**Status Calculation**: -```php -// Aggregates status from all service applications and databases -// Handles excluded containers separately -// Returns status with :excluded suffix when all containers excluded -if (!$hasNonExcluded && $complexStatus === null && $complexHealth === null) { - // All services excluded - calculate from excluded containers - return "{$excludedStatus}:excluded"; -} -``` - -### **Status Flow Diagram** - -``` -┌─────────────────────────────────────────────────────────────┐ -│ Container Status Sources │ -└─────────────────────────────────────────────────────────────┘ - │ - ┌────────────────────┼────────────────────┐ - │ │ │ - ▼ ▼ ▼ -┌───────────────┐ ┌─────────────────┐ ┌──────────────┐ -│ SSH-Based │ │ Sentinel-Based │ │ Multi-Server │ -│ (Scheduled) │ │ (Real-time) │ │ Aggregation │ -├───────────────┤ ├─────────────────┤ ├──────────────┤ -│ ServerCheck │ │ PushServerUp- │ │ ComplexStatus│ -│ Job │ │ dateJob │ │ Check │ -│ │ │ │ │ │ -│ Every ~1min │ │ Every ~30sec │ │ On demand │ -└───────┬───────┘ └────────┬────────┘ └──────┬───────┘ - │ │ │ - └────────────────────┼────────────────────┘ - │ - ▼ - ┌───────────────────────┐ - │ Application/Service │ - │ Status Property │ - └───────────────────────┘ - │ - ▼ - ┌───────────────────────┐ - │ UI Display (Livewire) │ - └───────────────────────┘ -``` - -### **Status Priority System** - -All status aggregation locations **MUST** follow the same priority: - -**For Running Containers**: -1. **unhealthy** - Container has failing health checks -2. **unknown** - Container health status cannot be determined -3. **healthy** - Container is healthy - -**For Non-Running States**: -1. **restarting** → `degraded (unhealthy)` -2. **running + exited** → `degraded (unhealthy)` -3. **dead/removing** → `degraded (unhealthy)` -4. **paused** → `paused` -5. **created/starting** → `starting` -6. **exited** → `exited (unhealthy)` - -### **Excluded Containers** - -When containers have `exclude_from_hc: true` flag or `restart: no`: - -**Behavior**: -- Status is still calculated from container state -- `:excluded` suffix is appended to indicate monitoring disabled -- UI shows "(Monitoring Disabled)" badge -- Action buttons respect the actual container state - -**Format**: `{actual-status}:excluded` -**Examples**: `running:unknown:excluded`, `degraded:excluded`, `exited:excluded` - -**All-Excluded Scenario**: -When ALL containers are excluded from health checks: -- All three status update paths (PushServerUpdateJob, GetContainersStatus, ComplexStatusCheck) **MUST** calculate status from excluded containers -- Status is returned with `:excluded` suffix (e.g., `running:healthy:excluded`) -- **NEVER** skip status updates - always calculate from excluded containers -- This ensures consistent status regardless of which update mechanism runs -- Shared logic is in `app/Traits/CalculatesExcludedStatus.php` - -### **Important Notes for Developers** - -✅ **Container Status Aggregation Service**: - -The container status aggregation logic is centralized in `App\Services\ContainerStatusAggregator`. - -**Status Format Standard**: -- **Backend/Storage**: Colon format (`running:healthy`, `degraded:unhealthy`) -- **UI/Display**: Transform to human format (`Running (Healthy)`, `Degraded (Unhealthy)`) - -1. **Using the ContainerStatusAggregator Service**: - - Import `App\Services\ContainerStatusAggregator` in any class needing status aggregation - - Two methods available: - - `aggregateFromStrings(Collection $statusStrings, int $maxRestartCount = 0)` - For pre-formatted status strings - - `aggregateFromContainers(Collection $containers, int $maxRestartCount = 0)` - For raw Docker container objects - - Returns colon format: `running:healthy`, `degraded:unhealthy`, etc. - - Automatically handles crash loop detection via `$maxRestartCount` parameter - -2. **State Machine Priority** (handled by service): - - Restarting → `degraded:unhealthy` (highest priority) - - Crash loop (exited with restarts) → `degraded:unhealthy` - - Mixed state (running + exited) → `degraded:unhealthy` - - Running → `running:unhealthy` / `running:unknown` / `running:healthy` - - Dead/Removing → `degraded:unhealthy` - - Paused → `paused:unknown` - - Starting/Created → `starting:unknown` - - Exited → `exited:unhealthy` (lowest priority) - -3. **Test both update paths**: - - Run unit tests: `./vendor/bin/pest tests/Unit/ContainerStatusAggregatorTest.php` - - Run integration tests: `./vendor/bin/pest tests/Unit/` - - Test SSH updates (manual refresh) - - Test Sentinel updates (wait 30 seconds) - -4. **Handle excluded containers**: - - All containers excluded (`exclude_from_hc: true`) - Use `CalculatesExcludedStatus` trait - - Mixed excluded/non-excluded containers - Filter then use `ContainerStatusAggregator` - - Containers with `restart: no` - Treated same as `exclude_from_hc: true` - -5. **Use shared trait for excluded containers**: - - Import `App\Traits\CalculatesExcludedStatus` in status calculation classes - - Use `getExcludedContainersFromDockerCompose()` to parse exclusions - - Use `calculateExcludedStatus()` for full Docker inspect objects (ComplexStatusCheck) - - Use `calculateExcludedStatusFromStrings()` for status strings (PushServerUpdateJob, GetContainersStatus) - -### **Related Tests** - -- **[tests/Unit/ContainerStatusAggregatorTest.php](mdc:tests/Unit/ContainerStatusAggregatorTest.php)**: Core state machine logic (42 comprehensive tests) -- **[tests/Unit/ContainerHealthStatusTest.php](mdc:tests/Unit/ContainerHealthStatusTest.php)**: Health status aggregation integration -- **[tests/Unit/PushServerUpdateJobStatusAggregationTest.php](mdc:tests/Unit/PushServerUpdateJobStatusAggregationTest.php)**: Sentinel update logic -- **[tests/Unit/ExcludeFromHealthCheckTest.php](mdc:tests/Unit/ExcludeFromHealthCheckTest.php)**: Excluded container handling - -### **Common Bugs to Avoid** - -✅ **Prevented by ContainerStatusAggregator Service**: -- ❌ **Old Bug**: Forgetting to track `$hasUnknown` flag → ✅ Now centralized in service -- ❌ **Old Bug**: Inconsistent priority across paths → ✅ Single source of truth -- ❌ **Old Bug**: Forgetting to update all 4 locations → ✅ Only one location to update - -**Still Relevant**: - -❌ **Bug**: Forgetting to filter excluded containers before aggregation -✅ **Fix**: Always use `CalculatesExcludedStatus` trait to filter before calling `ContainerStatusAggregator` - -❌ **Bug**: Not passing `$maxRestartCount` for crash loop detection -✅ **Fix**: Calculate max restart count from containers and pass to `aggregateFromStrings()`/`aggregateFromContainers()` - -❌ **Bug**: Not handling excluded containers with `:excluded` suffix -✅ **Fix**: Check for `:excluded` suffix in UI logic and button visibility diff --git a/.ai/core/deployment-architecture.md b/.ai/core/deployment-architecture.md deleted file mode 100644 index 927bdc8de..000000000 --- a/.ai/core/deployment-architecture.md +++ /dev/null @@ -1,666 +0,0 @@ -# Coolify Deployment Architecture - -## Deployment Philosophy - -Coolify orchestrates **Docker-based deployments** across multiple servers with automated configuration generation, zero-downtime deployments, and comprehensive monitoring. - -## Core Deployment Components - -### Deployment Models -- **[Application.php](mdc:app/Models/Application.php)** - Main application entity with deployment configurations -- **[ApplicationDeploymentQueue.php](mdc:app/Models/ApplicationDeploymentQueue.php)** - Deployment job orchestration -- **[Service.php](mdc:app/Models/Service.php)** - Multi-container service definitions -- **[Server.php](mdc:app/Models/Server.php)** - Target deployment infrastructure - -### Infrastructure Management -- **[PrivateKey.php](mdc:app/Models/PrivateKey.php)** - SSH key management for secure server access -- **[StandaloneDocker.php](mdc:app/Models/StandaloneDocker.php)** - Single container deployments -- **[SwarmDocker.php](mdc:app/Models/SwarmDocker.php)** - Docker Swarm orchestration - -## Deployment Workflow - -### 1. Source Code Integration -``` -Git Repository → Webhook → Coolify → Build & Deploy -``` - -#### Source Control Models -- **[GithubApp.php](mdc:app/Models/GithubApp.php)** - GitHub integration and webhooks -- **[GitlabApp.php](mdc:app/Models/GitlabApp.php)** - GitLab CI/CD integration - -#### Deployment Triggers -- **Git push** to configured branches -- **Manual deployment** via UI -- **Scheduled deployments** via cron -- **API-triggered** deployments - -### 2. Build Process -``` -Source Code → Docker Build → Image Registry → Deployment -``` - -#### Build Configurations -- **Dockerfile detection** and custom Dockerfile support -- **Buildpack integration** for framework detection -- **Multi-stage builds** for optimization -- **Cache layer** management for faster builds - -### 3. Deployment Orchestration -``` -Queue Job → Configuration Generation → Container Deployment → Health Checks -``` - -## Deployment Actions - -### Location: [app/Actions/](mdc:app/Actions) - -#### Application Deployment Actions -- **Application/** - Core application deployment logic -- **Docker/** - Docker container management -- **Service/** - Multi-container service orchestration -- **Proxy/** - Reverse proxy configuration - -#### Database Actions -- **Database/** - Database deployment and management -- Automated backup scheduling -- Connection management and health checks - -#### Server Management Actions -- **Server/** - Server provisioning and configuration -- SSH connection establishment -- Docker daemon management - -## Configuration Generation - -### Dynamic Configuration -- **[ConfigurationGenerator.php](mdc:app/Services/ConfigurationGenerator.php)** - Generates deployment configurations -- **[ConfigurationRepository.php](mdc:app/Services/ConfigurationRepository.php)** - Configuration management - -### Generated Configurations -#### Docker Compose Files -```yaml -# Generated docker-compose.yml structure -version: '3.8' -services: - app: - image: ${APP_IMAGE} - environment: - - ${ENV_VARIABLES} - labels: - - traefik.enable=true - - traefik.http.routers.app.rule=Host(`${FQDN}`) - volumes: - - ${VOLUME_MAPPINGS} - networks: - - coolify -``` - -#### Nginx Configurations -- **Reverse proxy** setup -- **SSL termination** with automatic certificates -- **Load balancing** for multiple instances -- **Custom headers** and routing rules - -## Container Orchestration - -### Docker Integration -- **[DockerImageParser.php](mdc:app/Services/DockerImageParser.php)** - Parse and validate Docker images -- **Container lifecycle** management -- **Resource allocation** and limits -- **Network isolation** and communication - -### Volume Management -- **[LocalFileVolume.php](mdc:app/Models/LocalFileVolume.php)** - Persistent file storage -- **[LocalPersistentVolume.php](mdc:app/Models/LocalPersistentVolume.php)** - Data persistence -- **Backup integration** for volume data - -### Network Configuration -- **Custom Docker networks** for isolation -- **Service discovery** between containers -- **Port mapping** and exposure -- **SSL/TLS termination** - -## Environment Management - -### Environment Isolation -- **[Environment.php](mdc:app/Models/Environment.php)** - Development, staging, production environments -- **[EnvironmentVariable.php](mdc:app/Models/EnvironmentVariable.php)** - Application-specific variables -- **[SharedEnvironmentVariable.php](mdc:app/Models/SharedEnvironmentVariable.php)** - Cross-application variables - -### Configuration Hierarchy -``` -Instance Settings → Server Settings → Project Settings → Application Settings -``` - -## Preview Environments - -### Git-Based Previews -- **[ApplicationPreview.php](mdc:app/Models/ApplicationPreview.php)** - Preview environment management -- **Automatic PR/MR previews** for feature branches -- **Isolated environments** for testing -- **Automatic cleanup** after merge/close - -### Preview Workflow -``` -Feature Branch → Auto-Deploy → Preview URL → Review → Cleanup -``` - -## SSL & Security - -### Certificate Management -- **[SslCertificate.php](mdc:app/Models/SslCertificate.php)** - SSL certificate automation -- **Let's Encrypt** integration for free certificates -- **Custom certificate** upload support -- **Automatic renewal** and monitoring - -### Security Patterns -- **Private Docker networks** for container isolation -- **SSH key-based** server authentication -- **Environment variable** encryption -- **Access control** via team permissions - -## Backup & Recovery - -### Database Backups -- **[ScheduledDatabaseBackup.php](mdc:app/Models/ScheduledDatabaseBackup.php)** - Automated database backups -- **[ScheduledDatabaseBackupExecution.php](mdc:app/Models/ScheduledDatabaseBackupExecution.php)** - Backup execution tracking -- **S3-compatible storage** for backup destinations - -### Application Backups -- **Volume snapshots** for persistent data -- **Configuration export** for disaster recovery -- **Cross-region replication** for high availability - -## Monitoring & Logging - -### Real-Time Monitoring -- **[ActivityMonitor.php](mdc:app/Livewire/ActivityMonitor.php)** - Live deployment monitoring -- **WebSocket-based** log streaming -- **Container health checks** and alerts -- **Resource usage** tracking - -### Deployment Logs -- **Build process** logging -- **Container startup** logs -- **Application runtime** logs -- **Error tracking** and alerting - -## Queue System - -### Background Jobs -Location: [app/Jobs/](mdc:app/Jobs) -- **Deployment jobs** for async processing -- **Server monitoring** jobs -- **Backup scheduling** jobs -- **Notification delivery** jobs - -### Queue Processing -- **Redis-backed** job queues -- **Laravel Horizon** for queue monitoring -- **Failed job** retry mechanisms -- **Queue worker** auto-scaling - -## Multi-Server Deployment - -### Server Types -- **Standalone servers** - Single Docker host -- **Docker Swarm** - Multi-node orchestration -- **Remote servers** - SSH-based deployment -- **Local development** - Docker Desktop integration - -### Load Balancing -- **Traefik integration** for automatic load balancing -- **Health check** based routing -- **Blue-green deployments** for zero downtime -- **Rolling updates** with configurable strategies - -## Deployment Strategies - -### Zero-Downtime Deployment -``` -Old Container → New Container Build → Health Check → Traffic Switch → Old Container Cleanup -``` - -### Blue-Green Deployment -- **Parallel environments** for safe deployments -- **Instant rollback** capability -- **Database migration** handling -- **Configuration synchronization** - -### Rolling Updates -- **Gradual instance** replacement -- **Configurable update** strategy -- **Automatic rollback** on failure -- **Health check** validation - -## API Integration - -### Deployment API -Routes: [routes/api.php](mdc:routes/api.php) -- **RESTful endpoints** for deployment management -- **Webhook receivers** for CI/CD integration -- **Status reporting** endpoints -- **Deployment triggering** via API - -### Authentication -- **Laravel Sanctum** API tokens -- **Team-based** access control -- **Rate limiting** for API calls -- **Audit logging** for API usage - -## Error Handling & Recovery - -### Deployment Failure Recovery -- **Automatic rollback** on deployment failure -- **Health check** failure handling -- **Container crash** recovery -- **Resource exhaustion** protection - -### Monitoring & Alerting -- **Failed deployment** notifications -- **Resource threshold** alerts -- **SSL certificate** expiry warnings -- **Backup failure** notifications - -## Performance Optimization - -### Build Optimization -- **Docker layer** caching -- **Multi-stage builds** for smaller images -- **Build artifact** reuse -- **Parallel build** processing - -### Docker Build Cache Preservation - -Coolify provides settings to preserve Docker build cache across deployments, addressing cache invalidation issues. - -#### The Problem - -By default, Coolify injects `ARG` statements into user Dockerfiles for build-time variables. This breaks Docker's cache mechanism because: -1. **ARG declarations invalidate cache** - Any change in ARG values after the `ARG` instruction invalidates all subsequent layers -2. **SOURCE_COMMIT changes every commit** - Causes full rebuilds even when code changes are minimal - -#### Application Settings - -Two toggles in **Advanced Settings** control this behavior: - -| Setting | Default | Description | -|---------|---------|-------------| -| `inject_build_args_to_dockerfile` | `true` | Controls whether Coolify adds `ARG` statements to Dockerfile | -| `include_source_commit_in_build` | `false` | Controls whether `SOURCE_COMMIT` is included in build context | - -**Database columns:** `application_settings.inject_build_args_to_dockerfile`, `application_settings.include_source_commit_in_build` - -#### Buildpack Coverage - -| Build Pack | ARG Injection | Method | -|------------|---------------|--------| -| **Dockerfile** | ✅ Yes | `add_build_env_variables_to_dockerfile()` | -| **Docker Compose** (with `build:`) | ✅ Yes | `modify_dockerfiles_for_compose()` | -| **PR Deployments** (Dockerfile only) | ✅ Yes | `add_build_env_variables_to_dockerfile()` | -| **Nixpacks** | ❌ No | Generates its own Dockerfile internally | -| **Static** | ❌ No | Uses internal Dockerfile | -| **Docker Image** | ❌ No | No build phase | - -#### How It Works - -**When `inject_build_args_to_dockerfile` is enabled (default):** -```dockerfile -# Coolify modifies your Dockerfile to add: -FROM node:20 -ARG MY_VAR=value -ARG COOLIFY_URL=... -ARG SOURCE_COMMIT=abc123 # (if include_source_commit_in_build is true) -# ... rest of your Dockerfile -``` - -**When `inject_build_args_to_dockerfile` is disabled:** -- Coolify does NOT modify the Dockerfile -- `--build-arg` flags are still passed (harmless without matching `ARG` in Dockerfile) -- User must manually add `ARG` statements for any build-time variables they need - -**When `include_source_commit_in_build` is disabled (default):** -- `SOURCE_COMMIT` is NOT included in build-time variables -- `SOURCE_COMMIT` is still available at **runtime** (in container environment) -- Docker cache preserved across different commits - -#### Recommended Configuration - -| Use Case | inject_build_args | include_source_commit | Cache Behavior | -|----------|-------------------|----------------------|----------------| -| Maximum cache preservation | `false` | `false` | Best cache retention | -| Need build-time vars, no commit | `true` | `false` | Cache breaks on var changes | -| Need commit at build-time | `true` | `true` | Cache breaks every commit | -| Manual ARG management | `false` | `true` | Cache preserved (no ARG in Dockerfile) | - -#### Implementation Details - -**Files:** -- `app/Jobs/ApplicationDeploymentJob.php`: - - `set_coolify_variables()` - Conditionally adds SOURCE_COMMIT to Docker build context based on `include_source_commit_in_build` setting - - `generate_coolify_env_variables(bool $forBuildTime)` - Distinguishes build-time vs. runtime variables; excludes cache-busting variables like SOURCE_COMMIT from build context unless explicitly enabled - - `generate_env_variables()` - Populates `$this->env_args` with build-time ARG values, respecting `include_source_commit_in_build` toggle - - `add_build_env_variables_to_dockerfile()` - Injects ARG statements into Dockerfiles after FROM instructions; skips injection if `inject_build_args_to_dockerfile` is disabled - - `modify_dockerfiles_for_compose()` - Applies ARG injection to Docker Compose service Dockerfiles; respects `inject_build_args_to_dockerfile` toggle -- `app/Models/ApplicationSetting.php` - Defines `inject_build_args_to_dockerfile` and `include_source_commit_in_build` boolean properties -- `app/Livewire/Project/Application/Advanced.php` - Livewire component providing UI bindings for cache preservation toggles -- `resources/views/livewire/project/application/advanced.blade.php` - Checkbox UI elements for user-facing toggles - -**Note:** Docker Compose services without a `build:` section (image-only) are automatically skipped. - -### Runtime Optimization -- **Container resource** limits -- **Auto-scaling** based on metrics -- **Connection pooling** for databases -- **CDN integration** for static assets - -## Compliance & Governance - -### Audit Trail -- **Deployment history** tracking -- **Configuration changes** logging -- **User action** auditing -- **Resource access** monitoring - -### Backup Compliance -- **Retention policies** for backups -- **Encryption at rest** for sensitive data -- **Cross-region** backup replication -- **Recovery testing** automation - -## Integration Patterns - -### CI/CD Integration -- **GitHub Actions** compatibility -- **GitLab CI** pipeline integration -- **Custom webhook** endpoints -- **Build status** reporting - -### External Services -- **S3-compatible** storage integration -- **External database** connections -- **Third-party monitoring** tools -- **Custom notification** channels - ---- - -## Coolify Docker Compose Extensions - -Coolify extends standard Docker Compose with custom fields (often called "magic fields") that provide Coolify-specific functionality. These extensions are processed during deployment and stripped before sending the final compose file to Docker, maintaining full compatibility with Docker's compose specification. - -### Overview - -**Why Custom Fields?** -- Enable Coolify-specific features without breaking Docker Compose compatibility -- Simplify configuration by embedding content directly in compose files -- Allow fine-grained control over health check monitoring -- Reduce external file dependencies - -**Processing Flow:** -1. User defines compose file with custom fields -2. Coolify parses and processes custom fields (creates files, stores settings) -3. Custom fields are stripped from final compose sent to Docker -4. Docker receives standard, valid compose file - -### Service-Level Extensions - -#### `exclude_from_hc` - -**Type:** Boolean -**Default:** `false` -**Purpose:** Exclude specific services from health check monitoring while still showing their status - -**Example Usage:** -```yaml -services: - watchtower: - image: containrrr/watchtower - exclude_from_hc: true # Don't monitor this service's health - - backup: - image: postgres:16 - exclude_from_hc: true # Backup containers don't need monitoring - restart: always -``` - -**Behavior:** -- Container status is still calculated from Docker state (running, exited, etc.) -- Status displays with `:excluded` suffix (e.g., `running:healthy:excluded`) -- UI shows "Monitoring Disabled" indicator -- Functionally equivalent to `restart: no` for health check purposes -- See [Container Status with All Excluded](application-architecture.md#container-status-when-all-containers-excluded) for detailed status handling - -**Use Cases:** -- Sidecar containers (watchtower, log collectors) -- Backup/maintenance containers -- One-time initialization containers -- Containers that intentionally restart frequently - -**Implementation:** -- Parsed: `bootstrap/helpers/parsers.php` -- Status logic: `app/Traits/CalculatesExcludedStatus.php` -- Validation: `tests/Unit/ExcludeFromHealthCheckTest.php` - -### Volume-Level Extensions - -Volume extensions only work with **long syntax** (array/object format), not short syntax (string format). - -#### `content` - -**Type:** String (supports multiline with `|` or `>`) -**Purpose:** Embed file content directly in compose file for automatic creation during deployment - -**Example Usage:** -```yaml -services: - app: - image: node:20 - volumes: - # Inline entrypoint script - - type: bind - source: ./entrypoint.sh - target: /app/entrypoint.sh - content: | - #!/bin/sh - set -e - echo "Starting application..." - npm run migrate - exec "$@" - - # Configuration file with environment variables - - type: bind - source: ./config.xml - target: /etc/app/config.xml - content: | - - - - ${DB_HOST} - ${DB_PORT} - - -``` - -**Behavior:** -- Content is written to the host at `source` path before container starts -- File is created with mode `644` (readable by all, writable by owner) -- Environment variables in content are interpolated at deployment time -- Content is stored in `LocalFileVolume` model (encrypted at rest) -- Original `docker_compose_raw` retains content for editing - -**Use Cases:** -- Entrypoint scripts -- Configuration files -- Environment-specific settings -- Small initialization scripts -- Templates that require dynamic content - -**Limitations:** -- Not suitable for large files (use git repo or external storage instead) -- Binary files not supported -- Changes require redeployment - -**Real-World Examples:** -- `templates/compose/traccar.yaml` - XML configuration file -- `templates/compose/supabase.yaml` - Multiple config files -- `templates/compose/chaskiq.yaml` - Entrypoint script - -**Implementation:** -- Parsed: `bootstrap/helpers/parsers.php` in `parseCompose()` function (handles `content` field extraction) -- Storage: `app/Models/LocalFileVolume.php` -- Validation: `tests/Unit/StripCoolifyCustomFieldsTest.php` - -#### `is_directory` / `isDirectory` - -**Type:** Boolean -**Default:** `true` (if neither `content` nor explicit flag provided) -**Purpose:** Indicate whether bind mount source should be created as directory or file - -**Example Usage:** -```yaml -services: - app: - volumes: - # Explicit file - - type: bind - source: ./config.json - target: /app/config.json - is_directory: false # Create as file - - # Explicit directory - - type: bind - source: ./logs - target: /var/log/app - is_directory: true # Create as directory - - # Auto-detected as file (has content) - - type: bind - source: ./script.sh - target: /entrypoint.sh - content: | - #!/bin/sh - echo "Hello" - # is_directory: false implied by content presence -``` - -**Behavior:** -- If `is_directory: true` → Creates directory with `mkdir -p` -- If `is_directory: false` → Creates empty file with `touch` -- If `content` provided → Implies `is_directory: false` -- If neither specified → Defaults to `true` (directory) - -**Naming Conventions:** -- `is_directory` (snake_case) - **Preferred**, consistent with PHP/Laravel conventions -- `isDirectory` (camelCase) - **Legacy support**, both work identically - -**Use Cases:** -- Disambiguating files vs directories when no content provided -- Ensuring correct bind mount type for Docker -- Pre-creating mount points before container starts - -**Implementation:** -- Parsed: `bootstrap/helpers/parsers.php` in `parseCompose()` function (handles `is_directory`/`isDirectory` field extraction) -- Storage: `app/Models/LocalFileVolume.php` (`is_directory` column) -- Validation: `tests/Unit/StripCoolifyCustomFieldsTest.php` - -### Custom Field Stripping - -**Function:** `stripCoolifyCustomFields()` in `bootstrap/helpers/docker.php` - -All custom fields are removed before the compose file is sent to Docker. This happens in two contexts: - -**1. Validation (User-Triggered)** -```php -// In validateComposeFile() - Edit Docker Compose modal -$yaml_compose = Yaml::parse($compose); -$yaml_compose = stripCoolifyCustomFields($yaml_compose); // Strip custom fields -// Send to docker compose config for validation -``` - -**2. Deployment (Automatic)** -```php -// In Service::parse() - During deployment -$docker_compose = parseCompose($docker_compose_raw); -// Custom fields are processed and then stripped -// Final compose sent to Docker has no custom fields -``` - -**What Gets Stripped:** -- Service-level: `exclude_from_hc` -- Volume-level: `content`, `isDirectory`, `is_directory` - -**What's Preserved:** -- All standard Docker Compose fields -- Environment variables -- Standard volume definitions (after custom fields removed) - -### Important Notes - -#### Long vs Short Volume Syntax - -**✅ Long Syntax (Works with Custom Fields):** -```yaml -volumes: - - type: bind - source: ./data - target: /app/data - content: "Hello" # ✅ Custom fields work here -``` - -**❌ Short Syntax (Custom Fields Ignored):** -```yaml -volumes: - - "./data:/app/data" # ❌ Cannot add custom fields to strings -``` - -#### Docker Compose Compatibility - -Custom fields are **Coolify-specific** and won't work with standalone `docker compose` CLI: - -```bash -# ❌ Won't work - Docker doesn't recognize custom fields -docker compose -f compose.yaml up - -# ✅ Works - Use Coolify's deployment (strips custom fields first) -# Deploy through Coolify UI or API -``` - -#### Editing Custom Fields - -When editing in "Edit Docker Compose" modal: -- Custom fields are preserved in the editor -- "Validate" button strips them temporarily for Docker validation -- "Save" button preserves them in `docker_compose_raw` -- They're processed again on next deployment - -### Template Examples - -See these templates for real-world usage: - -**Service Exclusions:** -- `templates/compose/budibase.yaml` - Excludes watchtower from monitoring -- `templates/compose/pgbackweb.yaml` - Excludes backup service -- `templates/compose/elasticsearch-with-kibana.yaml` - Excludes elasticsearch - -**Inline Content:** -- `templates/compose/traccar.yaml` - XML configuration (multiline) -- `templates/compose/supabase.yaml` - Multiple config files -- `templates/compose/searxng.yaml` - Settings file -- `templates/compose/invoice-ninja.yaml` - Nginx config - -**Directory Flags:** -- `templates/compose/paperless.yaml` - Explicit directory creation - -### Testing - -**Unit Tests:** -- `tests/Unit/StripCoolifyCustomFieldsTest.php` - Custom field stripping logic -- `tests/Unit/ExcludeFromHealthCheckTest.php` - Health check exclusion behavior -- `tests/Unit/ContainerStatusAggregatorTest.php` - Status aggregation with exclusions - -**Test Coverage:** -- ✅ All custom fields (exclude_from_hc, content, isDirectory, is_directory) -- ✅ Multiline content (YAML `|` syntax) -- ✅ Short vs long volume syntax -- ✅ Field stripping without data loss -- ✅ Standard Docker Compose field preservation diff --git a/.ai/core/project-overview.md b/.ai/core/project-overview.md deleted file mode 100644 index 59fda4868..000000000 --- a/.ai/core/project-overview.md +++ /dev/null @@ -1,156 +0,0 @@ -# Coolify Project Overview - -## What is Coolify? - -Coolify is an **open-source & self-hostable alternative to Heroku / Netlify / Vercel**. It's a comprehensive deployment platform that helps you manage servers, applications, and databases on your own hardware with just an SSH connection. - -## Core Mission - -**"Imagine having the ease of a cloud but with your own servers. That is Coolify."** - -- **No vendor lock-in** - All configurations saved to your servers -- **Self-hosted** - Complete control over your infrastructure -- **SSH-only requirement** - Works with VPS, Bare Metal, Raspberry PIs, anything -- **Docker-first** - Container-based deployment architecture - -## Key Features - -### 🚀 **Application Deployment** -- Git-based deployments (GitHub, GitLab, Bitbucket, Gitea) -- Docker & Docker Compose support -- Preview deployments for pull requests -- Zero-downtime deployments -- Build cache optimization - -### 🖥️ **Server Management** -- Multi-server orchestration -- Real-time monitoring and logs -- SSH key management -- Proxy configuration (Traefik/Caddy) -- Resource usage tracking - -### 🗄️ **Database Management** -- PostgreSQL, MySQL, MariaDB, MongoDB -- Redis, KeyDB, Dragonfly, ClickHouse -- Automated backups with S3 integration -- Database clustering support - -### 🔧 **Infrastructure as Code** -- Docker Compose generation -- Environment variable management -- SSL certificate automation -- Custom domain configuration - -### 👥 **Team Collaboration** -- Multi-tenant team organization -- Role-based access control -- Project and environment isolation -- Team-wide resource sharing - -### 📊 **Monitoring & Observability** -- Real-time application logs -- Server resource monitoring -- Deployment status tracking -- Webhook integrations -- Notification systems (Email, Discord, Slack, Telegram) - -## Target Users - -### **DevOps Engineers** -- Infrastructure automation -- Multi-environment management -- CI/CD pipeline integration - -### **Developers** -- Easy application deployment -- Development environment provisioning -- Preview deployments for testing - -### **Small to Medium Businesses** -- Cost-effective Heroku alternative -- Self-hosted control and privacy -- Scalable infrastructure management - -### **Agencies & Consultants** -- Client project isolation -- Multi-tenant management -- White-label deployment solutions - -## Business Model - -### **Open Source (Free)** -- Complete feature set -- Self-hosted deployment -- Community support -- No feature restrictions - -### **Cloud Version (Paid)** -- Managed Coolify instance -- High availability -- Premium support -- Email notifications included -- Same price as self-hosted server (~$4-5/month) - -## Architecture Philosophy - -### **Server-Side First** -- Laravel backend with Livewire frontend -- Minimal JavaScript footprint -- Real-time updates via WebSockets -- Progressive enhancement approach - -### **Docker-Native** -- Container-first deployment strategy -- Docker Compose orchestration -- Image building and registry integration -- Volume and network management - -### **Security-Focused** -- SSH-based server communication -- Environment variable encryption -- Team-based access isolation -- Audit logging and activity tracking - -## Project Structure - -``` -coolify/ -├── app/ # Laravel application core -│ ├── Models/ # Domain models (Application, Server, Service) -│ ├── Livewire/ # Frontend components -│ ├── Actions/ # Business logic actions -│ └── Jobs/ # Background job processing -├── resources/ # Frontend assets and views -├── database/ # Migrations and seeders -├── docker/ # Docker configuration -├── scripts/ # Installation and utility scripts -└── tests/ # Test suites (Pest, Dusk) -``` - -## Key Differentiators - -### **vs. Heroku** -- ✅ Self-hosted (no vendor lock-in) -- ✅ Multi-server support -- ✅ No usage-based pricing -- ✅ Full infrastructure control - -### **vs. Vercel/Netlify** -- ✅ Backend application support -- ✅ Database management included -- ✅ Multi-environment workflows -- ✅ Custom server infrastructure - -### **vs. Docker Swarm/Kubernetes** -- ✅ User-friendly web interface -- ✅ Git-based deployment workflows -- ✅ Integrated monitoring and logging -- ✅ No complex YAML configuration - -## Development Principles - -- **Simplicity over complexity** -- **Convention over configuration** -- **Security by default** -- **Developer experience focused** -- **Community-driven development** diff --git a/.ai/core/technology-stack.md b/.ai/core/technology-stack.md deleted file mode 100644 index b12534db7..000000000 --- a/.ai/core/technology-stack.md +++ /dev/null @@ -1,245 +0,0 @@ -# Coolify Technology Stack - -Complete technology stack, dependencies, and infrastructure components. - -## Backend Framework - -### **Laravel 12.4.1** (PHP Framework) -- **Purpose**: Core application framework -- **Key Features**: - - Eloquent ORM for database interactions - - Artisan CLI for development tasks - - Queue system for background jobs - - Event-driven architecture - -### **PHP 8.4.7** -- **Requirement**: `^8.4` in composer.json -- **Features Used**: - - Typed properties and return types - - Attributes for validation and configuration - - Match expressions - - Constructor property promotion - -## Frontend Stack - -### **Livewire 3.5.20** (Primary Frontend Framework) -- **Purpose**: Server-side rendering with reactive components -- **Location**: `app/Livewire/` -- **Key Components**: - - Dashboard - Main interface - - ActivityMonitor - Real-time monitoring - - MonacoEditor - Code editor - -### **Alpine.js** (Client-Side Interactivity) -- **Purpose**: Lightweight JavaScript for DOM manipulation -- **Integration**: Works seamlessly with Livewire components -- **Usage**: Declarative directives in Blade templates - -### **Tailwind CSS 4.1.4** (Styling Framework) -- **Configuration**: `postcss.config.cjs` -- **Extensions**: - - `@tailwindcss/forms` - Form styling - - `@tailwindcss/typography` - Content typography - - `tailwind-scrollbar` - Custom scrollbars - -### **Vue.js 3.5.13** (Component Framework) -- **Purpose**: Enhanced interactive components -- **Integration**: Used alongside Livewire for complex UI -- **Build Tool**: Vite with Vue plugin - -## Database & Caching - -### **PostgreSQL 15** (Primary Database) -- **Purpose**: Main application data storage -- **Features**: JSONB support, advanced indexing -- **Models**: `app/Models/` - -### **Redis 7** (Caching & Real-time) -- **Purpose**: - - Session storage - - Queue backend - - Real-time data caching - - WebSocket session management - -### **Supported Databases** (For User Applications) -- **PostgreSQL**: StandalonePostgresql -- **MySQL**: StandaloneMysql -- **MariaDB**: StandaloneMariadb -- **MongoDB**: StandaloneMongodb -- **Redis**: StandaloneRedis -- **KeyDB**: StandaloneKeydb -- **Dragonfly**: StandaloneDragonfly -- **ClickHouse**: StandaloneClickhouse - -## Authentication & Security - -### **Laravel Sanctum 4.0.8** -- **Purpose**: API token authentication -- **Usage**: Secure API access for external integrations - -### **Laravel Fortify 1.25.4** -- **Purpose**: Authentication scaffolding -- **Features**: Login, registration, password reset - -### **Laravel Socialite 5.18.0** -- **Purpose**: OAuth provider integration -- **Providers**: - - GitHub, GitLab, Google - - Microsoft Azure, Authentik, Discord, Clerk - - Custom OAuth implementations - -## Background Processing - -### **Laravel Horizon 5.30.3** -- **Purpose**: Queue monitoring and management -- **Features**: Real-time queue metrics, failed job handling - -### **Queue System** -- **Backend**: Redis-based queues -- **Jobs**: `app/Jobs/` -- **Processing**: Background deployment and monitoring tasks - -## Development Tools - -### **Build Tools** -- **Vite 6.2.6**: Modern build tool and dev server -- **Laravel Vite Plugin**: Laravel integration -- **PostCSS**: CSS processing pipeline - -### **Code Quality** -- **Laravel Pint**: PHP code style fixer -- **Rector**: PHP automated refactoring -- **PHPStan**: Static analysis tool - -### **Testing Framework** -- **Pest 3.8.0**: Modern PHP testing framework -- **Laravel Dusk**: Browser automation testing -- **PHPUnit**: Unit testing foundation - -## External Integrations - -### **Git Providers** -- **GitHub**: Repository integration and webhooks -- **GitLab**: Self-hosted and cloud GitLab support -- **Bitbucket**: Atlassian integration -- **Gitea**: Self-hosted Git service - -### **Cloud Storage** -- **AWS S3**: league/flysystem-aws-s3-v3 -- **SFTP**: league/flysystem-sftp-v3 -- **Local Storage**: File system integration - -### **Notification Services** -- **Email**: resend/resend-laravel -- **Discord**: Custom webhook integration -- **Slack**: Webhook notifications -- **Telegram**: Bot API integration -- **Pushover**: Push notifications - -### **Monitoring & Logging** -- **Sentry**: sentry/sentry-laravel - Error tracking -- **Laravel Ray**: spatie/laravel-ray - Debug tool -- **Activity Log**: spatie/laravel-activitylog - -## DevOps & Infrastructure - -### **Docker & Containerization** -- **Docker**: Container runtime -- **Docker Compose**: Multi-container orchestration -- **Docker Swarm**: Container clustering (optional) - -### **Web Servers & Proxies** -- **Nginx**: Primary web server -- **Traefik**: Reverse proxy and load balancer -- **Caddy**: Alternative reverse proxy - -### **Process Management** -- **S6 Overlay**: Process supervisor -- **Supervisor**: Alternative process manager - -### **SSL/TLS** -- **Let's Encrypt**: Automatic SSL certificates -- **Custom Certificates**: Manual SSL management - -## Terminal & Code Editing - -### **XTerm.js 5.5.0** -- **Purpose**: Web-based terminal emulator -- **Features**: SSH session management, real-time command execution -- **Addons**: Fit addon for responsive terminals - -### **Monaco Editor** -- **Purpose**: Code editor component -- **Features**: Syntax highlighting, auto-completion -- **Integration**: Environment variable editing, configuration files - -## API & Documentation - -### **OpenAPI/Swagger** -- **Documentation**: openapi.json (373KB) -- **Generator**: zircote/swagger-php -- **API Routes**: `routes/api.php` - -### **WebSocket Communication** -- **Laravel Echo**: Real-time event broadcasting -- **Pusher**: WebSocket service integration -- **Soketi**: Self-hosted WebSocket server - -## Package Management - -### **PHP Dependencies** (composer.json) -```json -{ - "require": { - "php": "^8.4", - "laravel/framework": "12.4.1", - "livewire/livewire": "^3.5.20", - "spatie/laravel-data": "^4.13.1", - "lorisleiva/laravel-actions": "^2.8.6" - } -} -``` - -### **JavaScript Dependencies** (package.json) -```json -{ - "devDependencies": { - "vite": "^6.2.6", - "tailwindcss": "^4.1.4", - "@vitejs/plugin-vue": "5.2.3" - }, - "dependencies": { - "@xterm/xterm": "^5.5.0", - "ioredis": "5.6.0" - } -} -``` - -## Configuration Files - -### **Build Configuration** -- **vite.config.js**: Frontend build setup -- **postcss.config.cjs**: CSS processing -- **rector.php**: PHP refactoring rules -- **pint.json**: Code style configuration - -### **Testing Configuration** -- **phpunit.xml**: Unit test configuration -- **phpunit.dusk.xml**: Browser test configuration -- **tests/Pest.php**: Pest testing setup - -## Version Requirements - -### **Minimum Requirements** -- **PHP**: 8.4+ -- **Node.js**: 18+ (for build tools) -- **PostgreSQL**: 15+ -- **Redis**: 7+ -- **Docker**: 20.10+ -- **Docker Compose**: 2.0+ - -### **Recommended Versions** -- **Ubuntu**: 22.04 LTS or 24.04 LTS -- **Memory**: 2GB+ RAM -- **Storage**: 20GB+ available space -- **Network**: Stable internet connection for deployments diff --git a/.ai/development/development-workflow.md b/.ai/development/development-workflow.md deleted file mode 100644 index 4ee376696..000000000 --- a/.ai/development/development-workflow.md +++ /dev/null @@ -1,648 +0,0 @@ -# Coolify Development Workflow - -## Development Environment Setup - -### Prerequisites -- **PHP 8.4+** - Latest PHP version for modern features -- **Node.js 18+** - For frontend asset compilation -- **Docker & Docker Compose** - Container orchestration -- **PostgreSQL 15** - Primary database -- **Redis 7** - Caching and queues - -### Local Development Setup - -#### Using Docker (Recommended) -```bash -# Clone the repository -git clone https://github.com/coollabsio/coolify.git -cd coolify - -# Copy environment configuration -cp .env.example .env - -# Start development environment -docker-compose -f docker-compose.dev.yml up -d - -# Install PHP dependencies -docker-compose exec app composer install - -# Install Node.js dependencies -docker-compose exec app npm install - -# Generate application key -docker-compose exec app php artisan key:generate - -# Run database migrations -docker-compose exec app php artisan migrate - -# Seed development data -docker-compose exec app php artisan db:seed -``` - -#### Native Development -```bash -# Install PHP dependencies -composer install - -# Install Node.js dependencies -npm install - -# Setup environment -cp .env.example .env -php artisan key:generate - -# Setup database -createdb coolify_dev -php artisan migrate -php artisan db:seed - -# Start development servers -php artisan serve & -npm run dev & -php artisan queue:work & -``` - -## Development Tools & Configuration - -### Code Quality Tools -- **[Laravel Pint](mdc:pint.json)** - PHP code style fixer -- **[Rector](mdc:rector.php)** - PHP automated refactoring (989B, 35 lines) -- **PHPStan** - Static analysis for type safety -- **ESLint** - JavaScript code quality - -### Development Configuration Files -- **[docker-compose.dev.yml](mdc:docker-compose.dev.yml)** - Development Docker setup (3.4KB, 126 lines) -- **[vite.config.js](mdc:vite.config.js)** - Frontend build configuration (1.0KB, 42 lines) -- **[.editorconfig](mdc:.editorconfig)** - Code formatting standards (258B, 19 lines) - -### Git Configuration -- **[.gitignore](mdc:.gitignore)** - Version control exclusions (522B, 40 lines) -- **[.gitattributes](mdc:.gitattributes)** - Git file handling (185B, 11 lines) - -## Development Workflow Process - -### 1. Feature Development -```bash -# Create feature branch -git checkout -b feature/new-deployment-strategy - -# Make changes following coding standards -# Run code quality checks -./vendor/bin/pint -./vendor/bin/rector process --dry-run -./vendor/bin/phpstan analyse - -# Run tests -./vendor/bin/pest -./vendor/bin/pest --coverage - -# Commit changes -git add . -git commit -m "feat: implement blue-green deployment strategy" -``` - -### 2. Code Review Process -```bash -# Push feature branch -git push origin feature/new-deployment-strategy - -# Create pull request with: -# - Clear description of changes -# - Screenshots for UI changes -# - Test coverage information -# - Breaking change documentation -``` - -### 3. Testing Requirements -- **Unit tests** for new models and services -- **Feature tests** for API endpoints -- **Browser tests** for UI changes -- **Integration tests** for deployment workflows - -## Coding Standards & Conventions - -### PHP Coding Standards -```php -// Follow PSR-12 coding standards -class ApplicationDeploymentService -{ - public function __construct( - private readonly DockerService $dockerService, - private readonly ConfigurationGenerator $configGenerator - ) {} - - public function deploy(Application $application): ApplicationDeploymentQueue - { - return DB::transaction(function () use ($application) { - $deployment = $application->deployments()->create([ - 'status' => 'queued', - 'commit_sha' => $application->getLatestCommitSha(), - ]); - - DeployApplicationJob::dispatch($deployment); - - return $deployment; - }); - } -} -``` - -### Laravel Best Practices -```php -// Use Laravel conventions -class Application extends Model -{ - // Mass assignment protection - protected $fillable = [ - 'name', 'git_repository', 'git_branch', 'fqdn' - ]; - - // Type casting - protected $casts = [ - 'environment_variables' => 'array', - 'build_pack' => BuildPack::class, - 'created_at' => 'datetime', - ]; - - // Relationships - public function server(): BelongsTo - { - return $this->belongsTo(Server::class); - } - - public function deployments(): HasMany - { - return $this->hasMany(ApplicationDeploymentQueue::class); - } -} -``` - -### Frontend Standards -```javascript -// Alpine.js component structure -document.addEventListener('alpine:init', () => { - Alpine.data('deploymentMonitor', () => ({ - status: 'idle', - logs: [], - - init() { - this.connectWebSocket(); - }, - - connectWebSocket() { - Echo.private(`application.${this.applicationId}`) - .listen('DeploymentStarted', (e) => { - this.status = 'deploying'; - }) - .listen('DeploymentCompleted', (e) => { - this.status = 'completed'; - }); - } - })); -}); -``` - -### CSS/Tailwind Standards -```html - -
-
-

- Application Status -

-
- -
-
-
-``` - -## Database Development - -### Migration Best Practices -```php -// Create descriptive migration files -class CreateApplicationDeploymentQueuesTable extends Migration -{ - public function up(): void - { - Schema::create('application_deployment_queues', function (Blueprint $table) { - $table->id(); - $table->foreignId('application_id')->constrained()->cascadeOnDelete(); - $table->string('status')->default('queued'); - $table->string('commit_sha')->nullable(); - $table->text('build_logs')->nullable(); - $table->text('deployment_logs')->nullable(); - $table->timestamp('started_at')->nullable(); - $table->timestamp('finished_at')->nullable(); - $table->timestamps(); - - $table->index(['application_id', 'status']); - $table->index('created_at'); - }); - } - - public function down(): void - { - Schema::dropIfExists('application_deployment_queues'); - } -} -``` - -### Model Factory Development -```php -// Create comprehensive factories for testing -class ApplicationFactory extends Factory -{ - protected $model = Application::class; - - public function definition(): array - { - return [ - 'name' => $this->faker->words(2, true), - 'fqdn' => $this->faker->domainName, - 'git_repository' => 'https://github.com/' . $this->faker->userName . '/' . $this->faker->word . '.git', - 'git_branch' => 'main', - 'build_pack' => BuildPack::NIXPACKS, - 'server_id' => Server::factory(), - 'environment_id' => Environment::factory(), - ]; - } - - public function withCustomDomain(): static - { - return $this->state(fn (array $attributes) => [ - 'fqdn' => $this->faker->domainName, - ]); - } -} -``` - -## API Development - -### Controller Standards -```php -class ApplicationController extends Controller -{ - public function __construct() - { - $this->middleware('auth:sanctum'); - $this->middleware('team.access'); - } - - public function index(Request $request): AnonymousResourceCollection - { - $applications = $request->user() - ->currentTeam - ->applications() - ->with(['server', 'environment', 'latestDeployment']) - ->paginate(); - - return ApplicationResource::collection($applications); - } - - public function store(StoreApplicationRequest $request): ApplicationResource - { - $application = $request->user() - ->currentTeam - ->applications() - ->create($request->validated()); - - return new ApplicationResource($application); - } - - public function deploy(Application $application): JsonResponse - { - $this->authorize('deploy', $application); - - $deployment = app(ApplicationDeploymentService::class) - ->deploy($application); - - return response()->json([ - 'message' => 'Deployment started successfully', - 'deployment_id' => $deployment->id, - ]); - } -} -``` - -### API Resource Development -```php -class ApplicationResource extends JsonResource -{ - public function toArray($request): array - { - return [ - 'id' => $this->id, - 'name' => $this->name, - 'fqdn' => $this->fqdn, - 'status' => $this->status, - 'git_repository' => $this->git_repository, - 'git_branch' => $this->git_branch, - 'build_pack' => $this->build_pack, - 'created_at' => $this->created_at, - 'updated_at' => $this->updated_at, - - // Conditional relationships - 'server' => new ServerResource($this->whenLoaded('server')), - 'environment' => new EnvironmentResource($this->whenLoaded('environment')), - 'latest_deployment' => new DeploymentResource($this->whenLoaded('latestDeployment')), - - // Computed attributes - 'deployment_url' => $this->getDeploymentUrl(), - 'can_deploy' => $this->canDeploy(), - ]; - } -} -``` - -## Livewire Component Development - -### Component Structure -```php -class ApplicationShow extends Component -{ - public Application $application; - public bool $showLogs = false; - - protected $listeners = [ - 'deployment.started' => 'refreshDeploymentStatus', - 'deployment.completed' => 'refreshDeploymentStatus', - ]; - - public function mount(Application $application): void - { - $this->authorize('view', $application); - $this->application = $application; - } - - public function deploy(): void - { - $this->authorize('deploy', $this->application); - - try { - app(ApplicationDeploymentService::class)->deploy($this->application); - - $this->dispatch('deployment.started', [ - 'application_id' => $this->application->id - ]); - - session()->flash('success', 'Deployment started successfully'); - } catch (Exception $e) { - session()->flash('error', 'Failed to start deployment: ' . $e->getMessage()); - } - } - - public function refreshDeploymentStatus(): void - { - $this->application->refresh(); - } - - public function render(): View - { - return view('livewire.application.show', [ - 'deployments' => $this->application - ->deployments() - ->latest() - ->limit(10) - ->get() - ]); - } -} -``` - -## Queue Job Development - -### Job Structure -```php -class DeployApplicationJob implements ShouldQueue -{ - use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - - public int $tries = 3; - public int $maxExceptions = 1; - - public function __construct( - public ApplicationDeploymentQueue $deployment - ) {} - - public function handle( - DockerService $dockerService, - ConfigurationGenerator $configGenerator - ): void { - $this->deployment->update(['status' => 'running', 'started_at' => now()]); - - try { - // Generate configuration - $config = $configGenerator->generateDockerCompose($this->deployment->application); - - // Build and deploy - $imageTag = $dockerService->buildImage($this->deployment->application); - $dockerService->deployContainer($this->deployment->application, $imageTag); - - $this->deployment->update([ - 'status' => 'success', - 'finished_at' => now() - ]); - - // Broadcast success - broadcast(new DeploymentCompleted($this->deployment)); - - } catch (Exception $e) { - $this->deployment->update([ - 'status' => 'failed', - 'error_message' => $e->getMessage(), - 'finished_at' => now() - ]); - - broadcast(new DeploymentFailed($this->deployment)); - - throw $e; - } - } - - public function backoff(): array - { - return [1, 5, 10]; - } - - public function failed(Throwable $exception): void - { - $this->deployment->update([ - 'status' => 'failed', - 'error_message' => $exception->getMessage(), - 'finished_at' => now() - ]); - } -} -``` - -## Testing Development - -### Test Structure -```php -// Feature test example -test('user can deploy application via API', function () { - $user = User::factory()->create(); - $application = Application::factory()->create([ - 'team_id' => $user->currentTeam->id - ]); - - // Mock external services - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andReturn('app:latest'); - $mock->shouldReceive('deployContainer')->andReturn(true); - }); - - $response = $this->actingAs($user) - ->postJson("/api/v1/applications/{$application->id}/deploy"); - - $response->assertStatus(200) - ->assertJson([ - 'message' => 'Deployment started successfully' - ]); - - expect($application->deployments()->count())->toBe(1); - expect($application->deployments()->first()->status)->toBe('queued'); -}); -``` - -## Documentation Standards - -### Code Documentation -```php -/** - * Deploy an application to the specified server. - * - * This method creates a new deployment queue entry and dispatches - * a background job to handle the actual deployment process. - * - * @param Application $application The application to deploy - * @param array $options Additional deployment options - * @return ApplicationDeploymentQueue The created deployment queue entry - * - * @throws DeploymentException When deployment cannot be started - * @throws ServerConnectionException When server is unreachable - */ -public function deploy(Application $application, array $options = []): ApplicationDeploymentQueue -{ - // Implementation -} -``` - -### API Documentation -```php -/** - * @OA\Post( - * path="/api/v1/applications/{application}/deploy", - * summary="Deploy an application", - * description="Triggers a new deployment for the specified application", - * operationId="deployApplication", - * tags={"Applications"}, - * security={{"bearerAuth":{}}}, - * @OA\Parameter( - * name="application", - * in="path", - * required=true, - * @OA\Schema(type="integer"), - * description="Application ID" - * ), - * @OA\Response( - * response=200, - * description="Deployment started successfully", - * @OA\JsonContent( - * @OA\Property(property="message", type="string"), - * @OA\Property(property="deployment_id", type="integer") - * ) - * ) - * ) - */ -``` - -## Performance Optimization - -### Database Optimization -```php -// Use eager loading to prevent N+1 queries -$applications = Application::with([ - 'server:id,name,ip', - 'environment:id,name', - 'latestDeployment:id,application_id,status,created_at' -])->get(); - -// Use database transactions for consistency -DB::transaction(function () use ($application) { - $deployment = $application->deployments()->create(['status' => 'queued']); - $application->update(['last_deployment_at' => now()]); - DeployApplicationJob::dispatch($deployment); -}); -``` - -### Caching Strategies -```php -// Cache expensive operations -public function getServerMetrics(Server $server): array -{ - return Cache::remember( - "server.{$server->id}.metrics", - now()->addMinutes(5), - fn () => $this->fetchServerMetrics($server) - ); -} -``` - -## Deployment & Release Process - -### Version Management -- **[versions.json](mdc:versions.json)** - Version tracking (355B, 19 lines) -- **[CHANGELOG.md](mdc:CHANGELOG.md)** - Release notes (187KB, 7411 lines) -- **[cliff.toml](mdc:cliff.toml)** - Changelog generation (3.2KB, 85 lines) - -### Release Workflow -```bash -# Create release branch -git checkout -b release/v4.1.0 - -# Update version numbers -# Update CHANGELOG.md -# Run full test suite -./vendor/bin/pest -npm run test - -# Create release commit -git commit -m "chore: release v4.1.0" - -# Create and push tag -git tag v4.1.0 -git push origin v4.1.0 - -# Merge to main -git checkout main -git merge release/v4.1.0 -``` - -## Contributing Guidelines - -### Pull Request Process -1. **Fork** the repository -2. **Create** feature branch from `main` -3. **Implement** changes with tests -4. **Run** code quality checks -5. **Submit** pull request with clear description -6. **Address** review feedback -7. **Merge** after approval - -### Code Review Checklist -- [ ] Code follows project standards -- [ ] Tests cover new functionality -- [ ] Documentation is updated -- [ ] No breaking changes without migration -- [ ] Performance impact considered -- [ ] Security implications reviewed - -### Issue Reporting -- Use issue templates -- Provide reproduction steps -- Include environment details -- Add relevant logs/screenshots -- Label appropriately diff --git a/.ai/development/laravel-boost.md b/.ai/development/laravel-boost.md deleted file mode 100644 index 7f5922d94..000000000 --- a/.ai/development/laravel-boost.md +++ /dev/null @@ -1,402 +0,0 @@ - -=== foundation rules === - -# Laravel Boost Guidelines - -The Laravel Boost guidelines are specifically curated by Laravel maintainers for this application. These guidelines should be followed closely to enhance the user's satisfaction building Laravel applications. - -## Foundational Context -This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions. - -- php - 8.4.7 -- laravel/fortify (FORTIFY) - v1 -- laravel/framework (LARAVEL) - v12 -- laravel/horizon (HORIZON) - v5 -- laravel/prompts (PROMPTS) - v0 -- laravel/sanctum (SANCTUM) - v4 -- laravel/socialite (SOCIALITE) - v5 -- livewire/livewire (LIVEWIRE) - v3 -- laravel/dusk (DUSK) - v8 -- laravel/pint (PINT) - v1 -- laravel/telescope (TELESCOPE) - v5 -- pestphp/pest (PEST) - v3 -- phpunit/phpunit (PHPUNIT) - v11 -- rector/rector (RECTOR) - v2 -- laravel-echo (ECHO) - v2 -- tailwindcss (TAILWINDCSS) - v4 -- vue (VUE) - v3 - - -## Conventions -- You must follow all existing code conventions used in this application. When creating or editing a file, check sibling files for the correct structure, approach, naming. -- Use descriptive names for variables and methods. For example, `isRegisteredForDiscounts`, not `discount()`. -- Check for existing components to reuse before writing a new one. - -## Verification Scripts -- Do not create verification scripts or tinker when tests cover that functionality and prove it works. Unit and feature tests are more important. - -## Application Structure & Architecture -- Stick to existing directory structure - don't create new base folders without approval. -- Do not change the application's dependencies without approval. - -## Frontend Bundling -- If the user doesn't see a frontend change reflected in the UI, it could mean they need to run `npm run build`, `npm run dev`, or `composer run dev`. Ask them. - -## Replies -- Be concise in your explanations - focus on what's important rather than explaining obvious details. - -## Documentation Files -- You must only create documentation files if explicitly requested by the user. - - -=== boost rules === - -## Laravel Boost -- Laravel Boost is an MCP server that comes with powerful tools designed specifically for this application. Use them. - -## Artisan -- Use the `list-artisan-commands` tool when you need to call an Artisan command to double check the available parameters. - -## URLs -- Whenever you share a project URL with the user you should use the `get-absolute-url` tool to ensure you're using the correct scheme, domain / IP, and port. - -## Tinker / Debugging -- You should use the `tinker` tool when you need to execute PHP to debug code or query Eloquent models directly. -- Use the `database-query` tool when you only need to read from the database. - -## Reading Browser Logs With the `browser-logs` Tool -- You can read browser logs, errors, and exceptions using the `browser-logs` tool from Boost. -- Only recent browser logs will be useful - ignore old logs. - -## Searching Documentation (Critically Important) -- Boost comes with a powerful `search-docs` tool you should use before any other approaches. This tool automatically passes a list of installed packages and their versions to the remote Boost API, so it returns only version-specific documentation specific for the user's circumstance. You should pass an array of packages to filter on if you know you need docs for particular packages. -- The 'search-docs' tool is perfect for all Laravel related packages, including Laravel, Inertia, Livewire, Filament, Tailwind, Pest, Nova, Nightwatch, etc. -- You must use this tool to search for Laravel-ecosystem documentation before falling back to other approaches. -- Search the documentation before making code changes to ensure we are taking the correct approach. -- Use multiple, broad, simple, topic based queries to start. For example: `['rate limiting', 'routing rate limiting', 'routing']`. -- Do not add package names to queries - package information is already shared. For example, use `test resource table`, not `filament 4 test resource table`. - -### Available Search Syntax -- You can and should pass multiple queries at once. The most relevant results will be returned first. - -1. Simple Word Searches with auto-stemming - query=authentication - finds 'authenticate' and 'auth' -2. Multiple Words (AND Logic) - query=rate limit - finds knowledge containing both "rate" AND "limit" -3. Quoted Phrases (Exact Position) - query="infinite scroll" - Words must be adjacent and in that order -4. Mixed Queries - query=middleware "rate limit" - "middleware" AND exact phrase "rate limit" -5. Multiple Queries - queries=["authentication", "middleware"] - ANY of these terms - - -=== php rules === - -## PHP - -- Always use curly braces for control structures, even if it has one line. - -### Constructors -- Use PHP 8 constructor property promotion in `__construct()`. - - public function __construct(public GitHub $github) { } -- Do not allow empty `__construct()` methods with zero parameters. - -### Type Declarations -- Always use explicit return type declarations for methods and functions. -- Use appropriate PHP type hints for method parameters. - - -protected function isAccessible(User $user, ?string $path = null): bool -{ - ... -} - - -## Comments -- Prefer PHPDoc blocks over comments. Never use comments within the code itself unless there is something _very_ complex going on. - -## PHPDoc Blocks -- Add useful array shape type definitions for arrays when appropriate. - -## Enums -- Typically, keys in an Enum should be TitleCase. For example: `FavoritePerson`, `BestLake`, `Monthly`. - - -=== laravel/core rules === - -## Do Things the Laravel Way - -- Use `php artisan make:` commands to create new files (i.e. migrations, controllers, models, etc.). You can list available Artisan commands using the `list-artisan-commands` tool. -- If you're creating a generic PHP class, use `artisan make:class`. -- Pass `--no-interaction` to all Artisan commands to ensure they work without user input. You should also pass the correct `--options` to ensure correct behavior. - -### Database -- Always use proper Eloquent relationship methods with return type hints. Prefer relationship methods over raw queries or manual joins. -- Use Eloquent models and relationships before suggesting raw database queries -- Avoid `DB::`; prefer `Model::query()`. Generate code that leverages Laravel's ORM capabilities rather than bypassing them. -- Generate code that prevents N+1 query problems by using eager loading. -- Use Laravel's query builder for very complex database operations. - -### Model Creation -- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using `list-artisan-commands` to check the available options to `php artisan make:model`. - -### APIs & Eloquent Resources -- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention. - -### Controllers & Validation -- Always create Form Request classes for validation rather than inline validation in controllers. Include both validation rules and custom error messages. -- Check sibling Form Requests to see if the application uses array or string based validation rules. - -### Queues -- Use queued jobs for time-consuming operations with the `ShouldQueue` interface. - -### Authentication & Authorization -- Use Laravel's built-in authentication and authorization features (gates, policies, Sanctum, etc.). - -### URL Generation -- When generating links to other pages, prefer named routes and the `route()` function. - -### Configuration -- Use environment variables only in configuration files - never use the `env()` function directly outside of config files. Always use `config('app.name')`, not `env('APP_NAME')`. - -### Testing -- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model. -- Faker: Use methods such as `$this->faker->word()` or `fake()->randomDigit()`. Follow existing conventions whether to use `$this->faker` or `fake()`. -- When creating tests, make use of `php artisan make:test [options] ` to create a feature test, and pass `--unit` to create a unit test. Most tests should be feature tests. - -### Vite Error -- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run `npm run build` or ask the user to run `npm run dev` or `composer run dev`. - - -=== laravel/v12 rules === - -## Laravel 12 - -- Use the `search-docs` tool to get version specific documentation. -- This project upgraded from Laravel 10 without migrating to the new streamlined Laravel file structure. -- This is **perfectly fine** and recommended by Laravel. Follow the existing structure from Laravel 10. We do not to need migrate to the new Laravel structure unless the user explicitly requests that. - -### Laravel 10 Structure -- Middleware typically lives in `app/Http/Middleware/` and service providers in `app/Providers/`. -- There is no `bootstrap/app.php` application configuration in a Laravel 10 structure: - - Middleware registration happens in `app/Http/Kernel.php` - - Exception handling is in `app/Exceptions/Handler.php` - - Console commands and schedule register in `app/Console/Kernel.php` - - Rate limits likely exist in `RouteServiceProvider` or `app/Http/Kernel.php` - -### Database -- When modifying a column, the migration must include all of the attributes that were previously defined on the column. Otherwise, they will be dropped and lost. -- Laravel 12 allows limiting eagerly loaded records natively, without external packages: `$query->latest()->limit(10);`. - -### Models -- Casts can and likely should be set in a `casts()` method on a model rather than the `$casts` property. Follow existing conventions from other models. - - -=== livewire/core rules === - -## Livewire Core -- Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests. -- Use the `php artisan make:livewire [Posts\\CreatePost]` artisan command to create new components -- State should live on the server, with the UI reflecting it. -- All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions. - -## Livewire Best Practices -- Livewire components require a single root element. -- Use `wire:loading` and `wire:dirty` for delightful loading states. -- Add `wire:key` in loops: - - ```blade - @foreach ($items as $item) -
- {{ $item->name }} -
- @endforeach - ``` - -- Prefer lifecycle hooks like `mount()`, `updatedFoo()`) for initialization and reactive side effects: - - - public function mount(User $user) { $this->user = $user; } - public function updatedSearch() { $this->resetPage(); } - - - -## Testing Livewire - - - Livewire::test(Counter::class) - ->assertSet('count', 0) - ->call('increment') - ->assertSet('count', 1) - ->assertSee(1) - ->assertStatus(200); - - - - - $this->get('/posts/create') - ->assertSeeLivewire(CreatePost::class); - - - -=== livewire/v3 rules === - -## Livewire 3 - -### Key Changes From Livewire 2 -- These things changed in Livewire 2, but may not have been updated in this application. Verify this application's setup to ensure you conform with application conventions. - - Use `wire:model.live` for real-time updates, `wire:model` is now deferred by default. - - Components now use the `App\Livewire` namespace (not `App\Http\Livewire`). - - Use `$this->dispatch()` to dispatch events (not `emit` or `dispatchBrowserEvent`). - - Use the `components.layouts.app` view as the typical layout path (not `layouts.app`). - -### New Directives -- `wire:show`, `wire:transition`, `wire:cloak`, `wire:offline`, `wire:target` are available for use. Use the documentation to find usage examples. - -### Alpine -- Alpine is now included with Livewire, don't manually include Alpine.js. -- Plugins included with Alpine: persist, intersect, collapse, and focus. - -### Lifecycle Hooks -- You can listen for `livewire:init` to hook into Livewire initialization, and `fail.status === 419` for the page expiring: - - -document.addEventListener('livewire:init', function () { - Livewire.hook('request', ({ fail }) => { - if (fail && fail.status === 419) { - alert('Your session expired'); - } - }); - - Livewire.hook('message.failed', (message, component) => { - console.error(message); - }); -}); - - - -=== pint/core rules === - -## Laravel Pint Code Formatter - -- You must run `vendor/bin/pint --dirty` before finalizing changes to ensure your code matches the project's expected style. -- Do not run `vendor/bin/pint --test`, simply run `vendor/bin/pint` to fix any formatting issues. - - -=== pest/core rules === - -## Pest - -### Testing -- If you need to verify a feature is working, write or update a Unit / Feature test. - -### Pest Tests -- All tests must be written using Pest. Use `php artisan make:test --pest `. -- You must not remove any tests or test files from the tests directory without approval. These are not temporary or helper files - these are core to the application. -- Tests should test all of the happy paths, failure paths, and weird paths. -- Tests live in the `tests/Feature` and `tests/Unit` directories. -- Pest tests look and behave like this: - -it('is true', function () { - expect(true)->toBeTrue(); -}); - - -### Running Tests -- Run the minimal number of tests using an appropriate filter before finalizing code edits. -- To run all tests: `php artisan test`. -- To run all tests in a file: `php artisan test tests/Feature/ExampleTest.php`. -- To filter on a particular test name: `php artisan test --filter=testName` (recommended after making a change to a related file). -- When the tests relating to your changes are passing, ask the user if they would like to run the entire test suite to ensure everything is still passing. - -### Pest Assertions -- When asserting status codes on a response, use the specific method like `assertForbidden` and `assertNotFound` instead of using `assertStatus(403)` or similar, e.g.: - -it('returns all', function () { - $response = $this->postJson('/api/docs', []); - - $response->assertSuccessful(); -}); - - -### Mocking -- Mocking can be very helpful when appropriate. -- When mocking, you can use the `Pest\Laravel\mock` Pest function, but always import it via `use function Pest\Laravel\mock;` before using it. Alternatively, you can use `$this->mock()` if existing tests do. -- You can also create partial mocks using the same import or self method. - -### Datasets -- Use datasets in Pest to simplify tests which have a lot of duplicated data. This is often the case when testing validation rules, so consider going with this solution when writing tests for validation rules. - - -it('has emails', function (string $email) { - expect($email)->not->toBeEmpty(); -})->with([ - 'james' => 'james@laravel.com', - 'taylor' => 'taylor@laravel.com', -]); - - - -=== tailwindcss/core rules === - -## Tailwind Core - -- Use Tailwind CSS classes to style HTML, check and use existing tailwind conventions within the project before writing your own. -- Offer to extract repeated patterns into components that match the project's conventions (i.e. Blade, JSX, Vue, etc..) -- Think through class placement, order, priority, and defaults - remove redundant classes, add classes to parent or child carefully to limit repetition, group elements logically -- You can use the `search-docs` tool to get exact examples from the official documentation when needed. - -### Spacing -- When listing items, use gap utilities for spacing, don't use margins. - - -
-
Superior
-
Michigan
-
Erie
-
-
- - -### Dark Mode -- If existing pages and components support dark mode, new pages and components must support dark mode in a similar way, typically using `dark:`. - - -=== tailwindcss/v4 rules === - -## Tailwind 4 - -- Always use Tailwind CSS v4 - do not use the deprecated utilities. -- `corePlugins` is not supported in Tailwind v4. -- In Tailwind v4, you import Tailwind using a regular CSS `@import` statement, not using the `@tailwind` directives used in v3: - - - - -### Replaced Utilities -- Tailwind v4 removed deprecated utilities. Do not use the deprecated option - use the replacement. -- Opacity values are still numeric. - -| Deprecated | Replacement | -|------------+--------------| -| bg-opacity-* | bg-black/* | -| text-opacity-* | text-black/* | -| border-opacity-* | border-black/* | -| divide-opacity-* | divide-black/* | -| ring-opacity-* | ring-black/* | -| placeholder-opacity-* | placeholder-black/* | -| flex-shrink-* | shrink-* | -| flex-grow-* | grow-* | -| overflow-ellipsis | text-ellipsis | -| decoration-slice | box-decoration-slice | -| decoration-clone | box-decoration-clone | - - -=== tests rules === - -## Test Enforcement - -- Every change must be programmatically tested. Write a new test or update an existing test, then run the affected tests to make sure they pass. -- Run the minimum number of tests needed to ensure code quality and speed. Use `php artisan test` with a specific filename or filter. -
\ No newline at end of file diff --git a/.ai/development/testing-patterns.md b/.ai/development/testing-patterns.md deleted file mode 100644 index 875de8b3b..000000000 --- a/.ai/development/testing-patterns.md +++ /dev/null @@ -1,648 +0,0 @@ -# Coolify Testing Architecture & Patterns - -> **Cross-Reference**: These detailed testing patterns align with the testing guidelines in **[CLAUDE.md](mdc:CLAUDE.md)**. Both documents share the same core principles about Docker execution and mocking preferences. - -## Testing Philosophy - -Coolify employs **comprehensive testing strategies** using modern PHP testing frameworks to ensure reliability of deployment operations, infrastructure management, and user interactions. - -### Test Execution Rules - -**CRITICAL**: Tests are categorized by database dependency: - -#### Unit Tests (`tests/Unit/`) -- **MUST NOT** use database connections -- **MUST** use mocking for models and external dependencies -- **CAN** run outside Docker: `./vendor/bin/pest tests/Unit` -- Purpose: Test isolated logic, helper functions, and business rules - -#### Feature Tests (`tests/Feature/`) -- **MAY** use database connections (factories, migrations, models) -- **MUST** run inside Docker container: `docker exec coolify php artisan test` -- **MUST** use `RefreshDatabase` trait if touching database -- Purpose: Test API endpoints, workflows, and integration scenarios - -**Rule of thumb**: If your test needs `Server::factory()->create()` or any database operation, it's a Feature test and MUST run in Docker. - -### Prefer Mocking Over Database - -When writing tests, always prefer mocking over real database operations: - -```php -// ❌ BAD: Unit test using database -it('extracts custom commands', function () { - $server = Server::factory()->create(['ip' => '1.2.3.4']); - $commands = extract_custom_proxy_commands($server, $yaml); - expect($commands)->toBeArray(); -}); - -// ✅ GOOD: Unit test using mocking -it('extracts custom commands', function () { - $server = Mockery::mock('App\Models\Server'); - $server->shouldReceive('proxyType')->andReturn('traefik'); - $commands = extract_custom_proxy_commands($server, $yaml); - expect($commands)->toBeArray(); -}); -``` - -**Design principles for testable code:** -- Use dependency injection instead of global state -- Create interfaces for external dependencies (SSH, Docker, etc.) -- Separate business logic from data persistence -- Make functions accept interfaces instead of concrete models when possible - -## Testing Framework Stack - -### Core Testing Tools -- **Pest PHP 3.8+** - Primary testing framework with expressive syntax -- **Laravel Dusk** - Browser automation and end-to-end testing -- **PHPUnit** - Underlying unit testing framework -- **Mockery** - Mocking and stubbing for isolated tests - -### Testing Configuration -- **[tests/Pest.php](mdc:tests/Pest.php)** - Pest configuration and global setup (1.5KB, 45 lines) -- **[tests/TestCase.php](mdc:tests/TestCase.php)** - Base test case class (163B, 11 lines) -- **[tests/CreatesApplication.php](mdc:tests/CreatesApplication.php)** - Application factory trait (375B, 22 lines) -- **[tests/DuskTestCase.php](mdc:tests/DuskTestCase.php)** - Browser testing setup (1.4KB, 58 lines) - -## Test Directory Structure - -### Test Organization -- **[tests/Feature/](mdc:tests/Feature)** - Feature and integration tests -- **[tests/Unit/](mdc:tests/Unit)** - Unit tests for isolated components -- **[tests/Browser/](mdc:tests/Browser)** - Laravel Dusk browser tests -- **[tests/Traits/](mdc:tests/Traits)** - Shared testing utilities - -## Unit Testing Patterns - -### Model Testing -```php -// Testing Eloquent models -test('application model has correct relationships', function () { - $application = Application::factory()->create(); - - expect($application->server)->toBeInstanceOf(Server::class); - expect($application->environment)->toBeInstanceOf(Environment::class); - expect($application->deployments)->toBeInstanceOf(Collection::class); -}); - -test('application can generate deployment configuration', function () { - $application = Application::factory()->create([ - 'name' => 'test-app', - 'git_repository' => 'https://github.com/user/repo.git' - ]); - - $config = $application->generateDockerCompose(); - - expect($config)->toContain('test-app'); - expect($config)->toContain('image:'); - expect($config)->toContain('networks:'); -}); -``` - -### Service Layer Testing -```php -// Testing service classes -test('configuration generator creates valid docker compose', function () { - $generator = new ConfigurationGenerator(); - $application = Application::factory()->create(); - - $compose = $generator->generateDockerCompose($application); - - expect($compose)->toBeString(); - expect(yaml_parse($compose))->toBeArray(); - expect($compose)->toContain('version: "3.8"'); -}); - -test('docker image parser validates image names', function () { - $parser = new DockerImageParser(); - - expect($parser->isValid('nginx:latest'))->toBeTrue(); - expect($parser->isValid('invalid-image-name'))->toBeFalse(); - expect($parser->parse('nginx:1.21'))->toEqual([ - 'registry' => 'docker.io', - 'namespace' => 'library', - 'repository' => 'nginx', - 'tag' => '1.21' - ]); -}); -``` - -### Action Testing -```php -// Testing Laravel Actions -test('deploy application action creates deployment queue', function () { - $application = Application::factory()->create(); - $action = new DeployApplicationAction(); - - $deployment = $action->handle($application); - - expect($deployment)->toBeInstanceOf(ApplicationDeploymentQueue::class); - expect($deployment->status)->toBe('queued'); - expect($deployment->application_id)->toBe($application->id); -}); - -test('server validation action checks ssh connectivity', function () { - $server = Server::factory()->create([ - 'ip' => '192.168.1.100', - 'port' => 22 - ]); - - $action = new ValidateServerAction(); - - // Mock SSH connection - $this->mock(SshConnection::class, function ($mock) { - $mock->shouldReceive('connect')->andReturn(true); - $mock->shouldReceive('execute')->with('docker --version')->andReturn('Docker version 20.10.0'); - }); - - $result = $action->handle($server); - - expect($result['ssh_connection'])->toBeTrue(); - expect($result['docker_installed'])->toBeTrue(); -}); -``` - -## Feature Testing Patterns - -### API Testing -```php -// Testing API endpoints -test('authenticated user can list applications', function () { - $user = User::factory()->create(); - $team = Team::factory()->create(); - $user->teams()->attach($team); - - $applications = Application::factory(3)->create([ - 'team_id' => $team->id - ]); - - $response = $this->actingAs($user) - ->getJson('/api/v1/applications'); - - $response->assertStatus(200) - ->assertJsonCount(3, 'data') - ->assertJsonStructure([ - 'data' => [ - '*' => ['id', 'name', 'fqdn', 'status', 'created_at'] - ] - ]); -}); - -test('user cannot access applications from other teams', function () { - $user = User::factory()->create(); - $otherTeam = Team::factory()->create(); - - $application = Application::factory()->create([ - 'team_id' => $otherTeam->id - ]); - - $response = $this->actingAs($user) - ->getJson("/api/v1/applications/{$application->id}"); - - $response->assertStatus(403); -}); -``` - -### Deployment Testing -```php -// Testing deployment workflows -test('application deployment creates docker containers', function () { - $application = Application::factory()->create([ - 'git_repository' => 'https://github.com/laravel/laravel.git', - 'git_branch' => 'main' - ]); - - // Mock Docker operations - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andReturn('app:latest'); - $mock->shouldReceive('createContainer')->andReturn('container_id'); - $mock->shouldReceive('startContainer')->andReturn(true); - }); - - $deployment = $application->deploy(); - - expect($deployment->status)->toBe('queued'); - - // Process the deployment job - $this->artisan('queue:work --once'); - - $deployment->refresh(); - expect($deployment->status)->toBe('success'); -}); - -test('failed deployment triggers rollback', function () { - $application = Application::factory()->create(); - - // Mock failed deployment - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andThrow(new DeploymentException('Build failed')); - }); - - $deployment = $application->deploy(); - - $this->artisan('queue:work --once'); - - $deployment->refresh(); - expect($deployment->status)->toBe('failed'); - expect($deployment->error_message)->toContain('Build failed'); -}); -``` - -### Webhook Testing -```php -// Testing webhook endpoints -test('github webhook triggers deployment', function () { - $application = Application::factory()->create([ - 'git_repository' => 'https://github.com/user/repo.git', - 'git_branch' => 'main' - ]); - - $payload = [ - 'ref' => 'refs/heads/main', - 'repository' => [ - 'clone_url' => 'https://github.com/user/repo.git' - ], - 'head_commit' => [ - 'id' => 'abc123', - 'message' => 'Update application' - ] - ]; - - $response = $this->postJson("/webhooks/github/{$application->id}", $payload); - - $response->assertStatus(200); - - expect($application->deployments()->count())->toBe(1); - expect($application->deployments()->first()->commit_sha)->toBe('abc123'); -}); - -test('webhook validates payload signature', function () { - $application = Application::factory()->create(); - - $payload = ['invalid' => 'payload']; - - $response = $this->postJson("/webhooks/github/{$application->id}", $payload); - - $response->assertStatus(400); -}); -``` - -## Browser Testing (Laravel Dusk) - -### End-to-End Testing -```php -// Testing complete user workflows -test('user can create and deploy application', function () { - $user = User::factory()->create(); - $server = Server::factory()->create(['team_id' => $user->currentTeam->id]); - - $this->browse(function (Browser $browser) use ($user, $server) { - $browser->loginAs($user) - ->visit('/applications/create') - ->type('name', 'Test Application') - ->type('git_repository', 'https://github.com/laravel/laravel.git') - ->type('git_branch', 'main') - ->select('server_id', $server->id) - ->press('Create Application') - ->assertPathIs('/applications/*') - ->assertSee('Test Application') - ->press('Deploy') - ->waitForText('Deployment started', 10) - ->assertSee('Deployment started'); - }); -}); - -test('user can monitor deployment logs in real-time', function () { - $user = User::factory()->create(); - $application = Application::factory()->create(['team_id' => $user->currentTeam->id]); - - $this->browse(function (Browser $browser) use ($user, $application) { - $browser->loginAs($user) - ->visit("/applications/{$application->id}") - ->press('Deploy') - ->waitForText('Deployment started') - ->click('@logs-tab') - ->waitFor('@deployment-logs') - ->assertSee('Building Docker image') - ->waitForText('Deployment completed', 30); - }); -}); -``` - -### UI Component Testing -```php -// Testing Livewire components -test('server status component updates in real-time', function () { - $user = User::factory()->create(); - $server = Server::factory()->create(['team_id' => $user->currentTeam->id]); - - $this->browse(function (Browser $browser) use ($user, $server) { - $browser->loginAs($user) - ->visit("/servers/{$server->id}") - ->assertSee('Status: Online') - ->waitFor('@server-metrics') - ->assertSee('CPU Usage') - ->assertSee('Memory Usage') - ->assertSee('Disk Usage'); - - // Simulate server going offline - $server->update(['status' => 'offline']); - - $browser->waitForText('Status: Offline', 5) - ->assertSee('Status: Offline'); - }); -}); -``` - -## Database Testing Patterns - -### Migration Testing -```php -// Testing database migrations -test('applications table has correct structure', function () { - expect(Schema::hasTable('applications'))->toBeTrue(); - expect(Schema::hasColumns('applications', [ - 'id', 'name', 'fqdn', 'git_repository', 'git_branch', - 'server_id', 'environment_id', 'created_at', 'updated_at' - ]))->toBeTrue(); -}); - -test('foreign key constraints are properly set', function () { - $application = Application::factory()->create(); - - expect($application->server)->toBeInstanceOf(Server::class); - expect($application->environment)->toBeInstanceOf(Environment::class); - - // Test cascade deletion - $application->server->delete(); - expect(Application::find($application->id))->toBeNull(); -}); -``` - -### Factory Testing -```php -// Testing model factories -test('application factory creates valid models', function () { - $application = Application::factory()->create(); - - expect($application->name)->toBeString(); - expect($application->git_repository)->toStartWith('https://'); - expect($application->server_id)->toBeInt(); - expect($application->environment_id)->toBeInt(); -}); - -test('application factory can create with custom attributes', function () { - $application = Application::factory()->create([ - 'name' => 'Custom App', - 'git_branch' => 'develop' - ]); - - expect($application->name)->toBe('Custom App'); - expect($application->git_branch)->toBe('develop'); -}); -``` - -## Queue Testing - -### Job Testing -```php -// Testing background jobs -test('deploy application job processes successfully', function () { - $application = Application::factory()->create(); - $deployment = ApplicationDeploymentQueue::factory()->create([ - 'application_id' => $application->id, - 'status' => 'queued' - ]); - - $job = new DeployApplicationJob($deployment); - - // Mock external dependencies - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andReturn('app:latest'); - $mock->shouldReceive('deployContainer')->andReturn(true); - }); - - $job->handle(); - - $deployment->refresh(); - expect($deployment->status)->toBe('success'); -}); - -test('failed job is retried with exponential backoff', function () { - $application = Application::factory()->create(); - $deployment = ApplicationDeploymentQueue::factory()->create([ - 'application_id' => $application->id - ]); - - $job = new DeployApplicationJob($deployment); - - // Mock failure - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andThrow(new Exception('Network error')); - }); - - expect(fn() => $job->handle())->toThrow(Exception::class); - - // Job should be retried - expect($job->tries)->toBe(3); - expect($job->backoff())->toBe([1, 5, 10]); -}); -``` - -## Security Testing - -### Authentication Testing -```php -// Testing authentication and authorization -test('unauthenticated users cannot access protected routes', function () { - $response = $this->get('/dashboard'); - $response->assertRedirect('/login'); -}); - -test('users can only access their team resources', function () { - $user1 = User::factory()->create(); - $user2 = User::factory()->create(); - - $team1 = Team::factory()->create(); - $team2 = Team::factory()->create(); - - $user1->teams()->attach($team1); - $user2->teams()->attach($team2); - - $application = Application::factory()->create(['team_id' => $team1->id]); - - $response = $this->actingAs($user2) - ->get("/applications/{$application->id}"); - - $response->assertStatus(403); -}); -``` - -### Input Validation Testing -```php -// Testing input validation and sanitization -test('application creation validates required fields', function () { - $user = User::factory()->create(); - - $response = $this->actingAs($user) - ->postJson('/api/v1/applications', []); - - $response->assertStatus(422) - ->assertJsonValidationErrors(['name', 'git_repository', 'server_id']); -}); - -test('malicious input is properly sanitized', function () { - $user = User::factory()->create(); - - $response = $this->actingAs($user) - ->postJson('/api/v1/applications', [ - 'name' => '', - 'git_repository' => 'javascript:alert("xss")', - 'server_id' => 'invalid' - ]); - - $response->assertStatus(422); -}); -``` - -## Performance Testing - -### Load Testing -```php -// Testing application performance under load -test('application list endpoint handles concurrent requests', function () { - $user = User::factory()->create(); - $applications = Application::factory(100)->create(['team_id' => $user->currentTeam->id]); - - $startTime = microtime(true); - - $response = $this->actingAs($user) - ->getJson('/api/v1/applications'); - - $endTime = microtime(true); - $responseTime = ($endTime - $startTime) * 1000; // Convert to milliseconds - - $response->assertStatus(200); - expect($responseTime)->toBeLessThan(500); // Should respond within 500ms -}); -``` - -### Memory Usage Testing -```php -// Testing memory efficiency -test('deployment process does not exceed memory limits', function () { - $initialMemory = memory_get_usage(); - - $application = Application::factory()->create(); - $deployment = $application->deploy(); - - // Process deployment - $this->artisan('queue:work --once'); - - $finalMemory = memory_get_usage(); - $memoryIncrease = $finalMemory - $initialMemory; - - expect($memoryIncrease)->toBeLessThan(50 * 1024 * 1024); // Less than 50MB -}); -``` - -## Test Utilities and Helpers - -### Custom Assertions -```php -// Custom test assertions -expect()->extend('toBeValidDockerCompose', function () { - $yaml = yaml_parse($this->value); - - return $yaml !== false && - isset($yaml['version']) && - isset($yaml['services']) && - is_array($yaml['services']); -}); - -expect()->extend('toHaveValidSshConnection', function () { - $server = $this->value; - - try { - $connection = new SshConnection($server); - return $connection->test(); - } catch (Exception $e) { - return false; - } -}); -``` - -### Test Traits -```php -// Shared testing functionality -trait CreatesTestServers -{ - protected function createTestServer(array $attributes = []): Server - { - return Server::factory()->create(array_merge([ - 'name' => 'Test Server', - 'ip' => '127.0.0.1', - 'port' => 22, - 'team_id' => $this->user->currentTeam->id - ], $attributes)); - } -} - -trait MocksDockerOperations -{ - protected function mockDockerService(): void - { - $this->mock(DockerService::class, function ($mock) { - $mock->shouldReceive('buildImage')->andReturn('test:latest'); - $mock->shouldReceive('createContainer')->andReturn('container_123'); - $mock->shouldReceive('startContainer')->andReturn(true); - $mock->shouldReceive('stopContainer')->andReturn(true); - }); - } -} -``` - -## Continuous Integration Testing - -### GitHub Actions Integration -```yaml -# .github/workflows/tests.yml -name: Tests -on: [push, pull_request] -jobs: - test: - runs-on: ubuntu-latest - services: - postgres: - image: postgres:15 - env: - POSTGRES_PASSWORD: password - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - - uses: actions/checkout@v3 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.4 - - name: Install dependencies - run: composer install - - name: Run tests - run: ./vendor/bin/pest -``` - -### Test Coverage -```php -// Generate test coverage reports -test('application has adequate test coverage', function () { - $coverage = $this->getCoverageData(); - - expect($coverage['application'])->toBeGreaterThan(80); - expect($coverage['models'])->toBeGreaterThan(90); - expect($coverage['actions'])->toBeGreaterThan(85); -}); -``` diff --git a/.ai/meta/maintaining-docs.md b/.ai/meta/maintaining-docs.md deleted file mode 100644 index 1a1552399..000000000 --- a/.ai/meta/maintaining-docs.md +++ /dev/null @@ -1,172 +0,0 @@ -# Maintaining AI Documentation - -Guidelines for creating and maintaining AI documentation to ensure consistency and effectiveness across all AI tools (Claude Code, Cursor IDE, etc.). - -## Documentation Structure - -All AI documentation lives in the `.ai/` directory with the following structure: - -``` -.ai/ -├── README.md # Navigation hub -├── core/ # Core project information -├── development/ # Development practices -├── patterns/ # Code patterns and best practices -└── meta/ # Documentation maintenance guides -``` - -> **Note**: `CLAUDE.md` is in the repository root, not in the `.ai/` directory. - -## Required File Structure - -When creating new documentation files: - -```markdown -# Title - -Brief description of what this document covers. - -## Section 1 - -- **Main Points in Bold** - - Sub-points with details - - Examples and explanations - -## Section 2 - -### Subsection - -Content with code examples: - -```language -// ✅ DO: Show good examples -const goodExample = true; - -// ❌ DON'T: Show anti-patterns -const badExample = false; -``` -``` - -## File References - -- Use relative paths: `See [technology-stack.md](../core/technology-stack.md)` -- For code references: `` `app/Models/Application.php` `` -- Keep links working across different tools - -## Content Guidelines - -### DO: -- Start with high-level overview -- Include specific, actionable requirements -- Show examples of correct implementation -- Reference existing code when possible -- Keep documentation DRY by cross-referencing -- Use bullet points for clarity -- Include both DO and DON'T examples - -### DON'T: -- Create theoretical examples when real code exists -- Duplicate content across multiple files -- Use tool-specific formatting that won't work elsewhere -- Make assumptions about versions - specify exact versions - -## Rule Improvement Triggers - -Update documentation when you notice: -- New code patterns not covered by existing docs -- Repeated similar implementations across files -- Common error patterns that could be prevented -- New libraries or tools being used consistently -- Emerging best practices in the codebase - -## Analysis Process - -When updating documentation: -1. Compare new code with existing rules -2. Identify patterns that should be standardized -3. Look for references to external documentation -4. Check for consistent error handling patterns -5. Monitor test patterns and coverage - -## Rule Updates - -### Add New Documentation When: -- A new technology/pattern is used in 3+ files -- Common bugs could be prevented by documentation -- Code reviews repeatedly mention the same feedback -- New security or performance patterns emerge - -### Modify Existing Documentation When: -- Better examples exist in the codebase -- Additional edge cases are discovered -- Related documentation has been updated -- Implementation details have changed - -## Quality Checks - -Before committing documentation changes: -- [ ] Documentation is actionable and specific -- [ ] Examples come from actual code -- [ ] References are up to date -- [ ] Patterns are consistently enforced -- [ ] Cross-references work correctly -- [ ] Version numbers are exact and current - -## Continuous Improvement - -- Monitor code review comments -- Track common development questions -- Update docs after major refactors -- Add links to relevant documentation -- Cross-reference related docs - -## Deprecation - -When patterns become outdated: -1. Mark outdated patterns as deprecated -2. Remove docs that no longer apply -3. Update references to deprecated patterns -4. Document migration paths for old patterns - -## Synchronization - -### Single Source of Truth -- Each piece of information should exist in exactly ONE location -- Other files should reference the source, not duplicate it -- Example: Version numbers live in `core/technology-stack.md`, other files reference it - -### Cross-Tool Compatibility -- **CLAUDE.md**: Main instructions for Claude Code users (references `.ai/` files) -- **.cursor/rules/**: Single master file pointing to `.ai/` documentation -- **Both tools**: Should get same information from `.ai/` directory - -### When to Update What - -**Version Changes** (Laravel, PHP, packages): -1. Update `core/technology-stack.md` (single source) -2. Verify CLAUDE.md references it correctly -3. No other files should duplicate version numbers - -**Workflow Changes** (commands, setup): -1. Update `development/workflow.md` -2. Ensure CLAUDE.md quick reference is updated -3. Verify all cross-references work - -**Pattern Changes** (how to write code): -1. Update appropriate file in `patterns/` -2. Add/update examples from real codebase -3. Cross-reference from related docs - -## Documentation Files - -Keep documentation files only when explicitly needed. Don't create docs that merely describe obvious functionality - the code itself should be clear. - -## Breaking Changes - -When making breaking changes to documentation structure: -1. Update this maintaining-docs.md file -2. Update `.ai/README.md` navigation -3. Update CLAUDE.md references -4. Update `.cursor/rules/coolify-ai-docs.mdc` -5. Test all cross-references still work -6. Document the changes in sync-guide.md diff --git a/.ai/meta/sync-guide.md b/.ai/meta/sync-guide.md deleted file mode 100644 index ab9a45d1a..000000000 --- a/.ai/meta/sync-guide.md +++ /dev/null @@ -1,214 +0,0 @@ -# AI Instructions Synchronization Guide - -This document explains how AI instructions are organized and synchronized across different AI tools used with Coolify. - -## Overview - -Coolify maintains AI instructions with a **single source of truth** approach: - -1. **CLAUDE.md** - Main entry point for Claude Code (references `.ai/` directory) -2. **.cursor/rules/coolify-ai-docs.mdc** - Master reference file for Cursor IDE (references `.ai/` directory) -3. **.ai/** - Single source of truth containing all detailed documentation - -All AI tools (Claude Code, Cursor IDE, etc.) reference the same `.ai/` directory to ensure consistency. - -## Structure - -### CLAUDE.md (Root Directory) -- **Purpose**: Entry point for Claude Code with quick-reference guide -- **Format**: Single markdown file -- **Includes**: - - Quick-reference development commands - - High-level architecture overview - - Essential patterns and guidelines - - References to detailed `.ai/` documentation - -### .cursor/rules/coolify-ai-docs.mdc -- **Purpose**: Master reference file for Cursor IDE -- **Format**: Single .mdc file with frontmatter -- **Content**: Quick decision tree and references to `.ai/` directory -- **Note**: Replaces all previous topic-specific .mdc files - -### .ai/ Directory (Single Source of Truth) -- **Purpose**: All detailed, topic-specific documentation -- **Format**: Organized markdown files by category -- **Structure**: - ``` - .ai/ - ├── README.md # Navigation hub - ├── core/ # Project information - │ ├── technology-stack.md # Version numbers (SINGLE SOURCE OF TRUTH) - │ ├── project-overview.md - │ ├── application-architecture.md - │ └── deployment-architecture.md - ├── development/ # Development practices - │ ├── development-workflow.md - │ ├── testing-patterns.md - │ └── laravel-boost.md - ├── patterns/ # Code patterns - │ ├── database-patterns.md - │ ├── frontend-patterns.md - │ ├── security-patterns.md - │ ├── form-components.md - │ └── api-and-routing.md - └── meta/ # Documentation guides - ├── maintaining-docs.md - └── sync-guide.md (this file) - ``` -- **Used by**: All AI tools through CLAUDE.md or coolify-ai-docs.mdc - -## Cross-References - -All systems reference the `.ai/` directory as the source of truth: - -- **CLAUDE.md** → references `.ai/` files for detailed documentation -- **.cursor/rules/coolify-ai-docs.mdc** → references `.ai/` files for detailed documentation -- **.ai/README.md** → provides navigation to all documentation - -## Maintaining Consistency - -### 1. Core Principles (MUST be consistent) - -These are defined ONCE in `.ai/core/technology-stack.md`: -- Laravel version (currently Laravel 12.4.1) -- PHP version (8.4.7) -- All package versions (Livewire 3.5.20, Tailwind 4.1.4, etc.) - -**Exception**: CLAUDE.md is permitted to show essential version numbers as a quick reference for convenience. These must stay synchronized with `technology-stack.md`. When updating versions, update both locations. - -Other critical patterns defined in `.ai/`: -- Testing execution rules (Docker for Feature tests, mocking for Unit tests) -- Security patterns and authorization requirements -- Code style requirements (Pint, PSR-12) - -### 2. Where to Make Changes - -**For version numbers** (Laravel, PHP, packages): -1. Update `.ai/core/technology-stack.md` (single source of truth) -2. Update CLAUDE.md quick reference section (essential versions only) -3. Verify both files stay synchronized -4. Never duplicate version numbers in other locations - -**For workflow changes** (how to run commands, development setup): -1. Update `.ai/development/development-workflow.md` -2. Update quick reference in CLAUDE.md if needed -3. Verify `.cursor/rules/coolify-ai-docs.mdc` references are correct - -**For architectural patterns** (how code should be structured): -1. Update appropriate file in `.ai/core/` -2. Add cross-references from related docs -3. Update CLAUDE.md if it needs to highlight this pattern - -**For code patterns** (how to write code): -1. Update appropriate file in `.ai/patterns/` -2. Add examples from real codebase -3. Cross-reference from related docs - -**For testing patterns**: -1. Update `.ai/development/testing-patterns.md` -2. Ensure CLAUDE.md testing section references it - -### 3. Update Checklist - -When making significant changes: - -- [ ] Identify if change affects core principles (version numbers, critical patterns) -- [ ] Update primary location in `.ai/` directory -- [ ] Check if CLAUDE.md needs quick-reference update -- [ ] Verify `.cursor/rules/coolify-ai-docs.mdc` references are still accurate -- [ ] Update cross-references in related `.ai/` files -- [ ] Verify all relative paths work correctly -- [ ] Test links in markdown files -- [ ] Run: `./vendor/bin/pint` on modified files (if applicable) - -### 4. Common Inconsistencies to Watch - -- **Version numbers**: Should ONLY exist in `.ai/core/technology-stack.md` -- **Testing instructions**: Docker execution requirements must be consistent -- **File paths**: Ensure relative paths work from their location -- **Command syntax**: Docker commands, artisan commands must be accurate -- **Cross-references**: Links must point to current file locations - -## File Organization - -``` -/ -├── CLAUDE.md # Claude Code entry point -├── .AI_INSTRUCTIONS_SYNC.md # Redirect to this file -├── .cursor/ -│ └── rules/ -│ └── coolify-ai-docs.mdc # Cursor IDE master reference -└── .ai/ # SINGLE SOURCE OF TRUTH - ├── README.md # Navigation hub - ├── core/ # Project information - ├── development/ # Development practices - ├── patterns/ # Code patterns - └── meta/ # Documentation guides -``` - -## Recent Updates - -### 2025-11-18 - Documentation Consolidation -- ✅ Consolidated all documentation into `.ai/` directory -- ✅ Created single source of truth for version numbers -- ✅ Reduced CLAUDE.md from 719 to 319 lines -- ✅ Replaced 11 .cursor/rules/*.mdc files with single coolify-ai-docs.mdc -- ✅ Organized by topic: core/, development/, patterns/, meta/ -- ✅ Standardized version numbers (Laravel 12.4.1, PHP 8.4.7, Tailwind 4.1.4) -- ✅ Created comprehensive navigation with .ai/README.md - -### 2025-10-07 -- ✅ Added cross-references between CLAUDE.md and .cursor/rules/ -- ✅ Synchronized Laravel version (12) across all files -- ✅ Added comprehensive testing execution rules (Docker for Feature tests) -- ✅ Added test design philosophy (prefer mocking over database) -- ✅ Fixed inconsistencies in testing documentation - -## Maintenance Commands - -```bash -# Check for version inconsistencies (should only be in technology-stack.md) -# Note: CLAUDE.md is allowed to show quick reference versions -grep -r "Laravel 12" .ai/ CLAUDE.md .cursor/rules/coolify-ai-docs.mdc -grep -r "PHP 8.4" .ai/ CLAUDE.md .cursor/rules/coolify-ai-docs.mdc - -# Check for broken cross-references to old .mdc files -grep -r "\.cursor/rules/.*\.mdc" .ai/ CLAUDE.md - -# Format all documentation -./vendor/bin/pint CLAUDE.md .ai/**/*.md - -# Search for specific patterns across all docs -grep -r "pattern_to_check" CLAUDE.md .ai/ .cursor/rules/ - -# Verify all markdown links work (from repository root) -find .ai -name "*.md" -exec grep -H "\[.*\](.*)" {} \; -``` - -## Contributing - -When contributing documentation: - -1. **Check `.ai/` directory** for existing documentation -2. **Update `.ai/` files** - this is the single source of truth -3. **Use cross-references** - never duplicate content -4. **Update CLAUDE.md** if adding critical quick-reference information -5. **Verify `.cursor/rules/coolify-ai-docs.mdc`** still references correctly -6. **Test all links** work from their respective locations -7. **Update this sync-guide.md** if changing organizational structure -8. **Verify consistency** before submitting PR - -## Questions? - -If unsure about where to document something: - -- **Version numbers** → `.ai/core/technology-stack.md` (ONLY location) -- **Quick reference / commands** → CLAUDE.md + `.ai/development/development-workflow.md` -- **Detailed patterns / examples** → `.ai/patterns/[topic].md` -- **Architecture / concepts** → `.ai/core/[topic].md` -- **Development practices** → `.ai/development/[topic].md` -- **Documentation guides** → `.ai/meta/[topic].md` - -**Golden Rule**: Each piece of information exists in ONE location in `.ai/`, other files reference it. - -When in doubt, prefer detailed documentation in `.ai/` and lightweight references in CLAUDE.md and coolify-ai-docs.mdc. diff --git a/.ai/patterns/api-and-routing.md b/.ai/patterns/api-and-routing.md deleted file mode 100644 index ceaadaad5..000000000 --- a/.ai/patterns/api-and-routing.md +++ /dev/null @@ -1,469 +0,0 @@ -# Coolify API & Routing Architecture - -## Routing Structure - -Coolify implements **multi-layered routing** with web interfaces, RESTful APIs, webhook endpoints, and real-time communication channels. - -## Route Files - -### Core Route Definitions -- **[routes/web.php](mdc:routes/web.php)** - Web application routes (21KB, 362 lines) -- **[routes/api.php](mdc:routes/api.php)** - RESTful API endpoints (13KB, 185 lines) -- **[routes/webhooks.php](mdc:routes/webhooks.php)** - Webhook receivers (815B, 22 lines) -- **[routes/channels.php](mdc:routes/channels.php)** - WebSocket channel definitions (829B, 33 lines) -- **[routes/console.php](mdc:routes/console.php)** - Artisan command routes (592B, 20 lines) - -## Web Application Routing - -### Authentication Routes -```php -// Laravel Fortify authentication -Route::middleware('guest')->group(function () { - Route::get('/login', [AuthController::class, 'login']); - Route::get('/register', [AuthController::class, 'register']); - Route::get('/forgot-password', [AuthController::class, 'forgotPassword']); -}); -``` - -### Dashboard & Core Features -```php -// Main application routes -Route::middleware(['auth', 'verified'])->group(function () { - Route::get('/dashboard', Dashboard::class)->name('dashboard'); - Route::get('/projects', ProjectIndex::class)->name('projects'); - Route::get('/servers', ServerIndex::class)->name('servers'); - Route::get('/teams', TeamIndex::class)->name('teams'); -}); -``` - -### Resource Management Routes -```php -// Server management -Route::prefix('servers')->group(function () { - Route::get('/{server}', ServerShow::class)->name('server.show'); - Route::get('/{server}/edit', ServerEdit::class)->name('server.edit'); - Route::get('/{server}/logs', ServerLogs::class)->name('server.logs'); -}); - -// Application management -Route::prefix('applications')->group(function () { - Route::get('/{application}', ApplicationShow::class)->name('application.show'); - Route::get('/{application}/deployments', ApplicationDeployments::class); - Route::get('/{application}/environment-variables', ApplicationEnvironmentVariables::class); - Route::get('/{application}/logs', ApplicationLogs::class); -}); -``` - -## RESTful API Architecture - -### API Versioning -```php -// API route structure -Route::prefix('v1')->group(function () { - // Application endpoints - Route::apiResource('applications', ApplicationController::class); - Route::apiResource('servers', ServerController::class); - Route::apiResource('teams', TeamController::class); -}); -``` - -### Authentication & Authorization -```php -// Sanctum API authentication -Route::middleware('auth:sanctum')->group(function () { - Route::get('/user', function (Request $request) { - return $request->user(); - }); - - // Team-scoped resources - Route::middleware('team.access')->group(function () { - Route::apiResource('applications', ApplicationController::class); - }); -}); -``` - -### Application Management API -```php -// Application CRUD operations -Route::prefix('applications')->group(function () { - Route::get('/', [ApplicationController::class, 'index']); - Route::post('/', [ApplicationController::class, 'store']); - Route::get('/{application}', [ApplicationController::class, 'show']); - Route::patch('/{application}', [ApplicationController::class, 'update']); - Route::delete('/{application}', [ApplicationController::class, 'destroy']); - - // Deployment operations - Route::post('/{application}/deploy', [ApplicationController::class, 'deploy']); - Route::post('/{application}/restart', [ApplicationController::class, 'restart']); - Route::post('/{application}/stop', [ApplicationController::class, 'stop']); - Route::get('/{application}/logs', [ApplicationController::class, 'logs']); -}); -``` - -### Server Management API -```php -// Server operations -Route::prefix('servers')->group(function () { - Route::get('/', [ServerController::class, 'index']); - Route::post('/', [ServerController::class, 'store']); - Route::get('/{server}', [ServerController::class, 'show']); - Route::patch('/{server}', [ServerController::class, 'update']); - Route::delete('/{server}', [ServerController::class, 'destroy']); - - // Server actions - Route::post('/{server}/validate', [ServerController::class, 'validate']); - Route::get('/{server}/usage', [ServerController::class, 'usage']); - Route::post('/{server}/cleanup', [ServerController::class, 'cleanup']); -}); -``` - -### Database Management API -```php -// Database operations -Route::prefix('databases')->group(function () { - Route::get('/', [DatabaseController::class, 'index']); - Route::post('/', [DatabaseController::class, 'store']); - Route::get('/{database}', [DatabaseController::class, 'show']); - Route::patch('/{database}', [DatabaseController::class, 'update']); - Route::delete('/{database}', [DatabaseController::class, 'destroy']); - - // Database actions - Route::post('/{database}/backup', [DatabaseController::class, 'backup']); - Route::post('/{database}/restore', [DatabaseController::class, 'restore']); - Route::get('/{database}/logs', [DatabaseController::class, 'logs']); -}); -``` - -## Webhook Architecture - -### Git Integration Webhooks -```php -// GitHub webhook endpoints -Route::post('/webhooks/github/{application}', [GitHubWebhookController::class, 'handle']) - ->name('webhooks.github'); - -// GitLab webhook endpoints -Route::post('/webhooks/gitlab/{application}', [GitLabWebhookController::class, 'handle']) - ->name('webhooks.gitlab'); - -// Generic Git webhooks -Route::post('/webhooks/git/{application}', [GitWebhookController::class, 'handle']) - ->name('webhooks.git'); -``` - -### Deployment Webhooks -```php -// Deployment status webhooks -Route::post('/webhooks/deployment/{deployment}/success', [DeploymentWebhookController::class, 'success']); -Route::post('/webhooks/deployment/{deployment}/failure', [DeploymentWebhookController::class, 'failure']); -Route::post('/webhooks/deployment/{deployment}/progress', [DeploymentWebhookController::class, 'progress']); -``` - -### Third-Party Integration Webhooks -```php -// Monitoring webhooks -Route::post('/webhooks/monitoring/{server}', [MonitoringWebhookController::class, 'handle']); - -// Backup status webhooks -Route::post('/webhooks/backup/{backup}', [BackupWebhookController::class, 'handle']); - -// SSL certificate webhooks -Route::post('/webhooks/ssl/{certificate}', [SslWebhookController::class, 'handle']); -``` - -## WebSocket Channel Definitions - -### Real-Time Channels -```php -// Private channels for team members -Broadcast::channel('team.{teamId}', function ($user, $teamId) { - return $user->teams->contains('id', $teamId); -}); - -// Application deployment channels -Broadcast::channel('application.{applicationId}', function ($user, $applicationId) { - return $user->hasAccessToApplication($applicationId); -}); - -// Server monitoring channels -Broadcast::channel('server.{serverId}', function ($user, $serverId) { - return $user->hasAccessToServer($serverId); -}); -``` - -### Presence Channels -```php -// Team collaboration presence -Broadcast::channel('team.{teamId}.presence', function ($user, $teamId) { - if ($user->teams->contains('id', $teamId)) { - return ['id' => $user->id, 'name' => $user->name]; - } -}); -``` - -## API Controllers - -### Location: [app/Http/Controllers/Api/](mdc:app/Http/Controllers) - -#### Resource Controllers -```php -class ApplicationController extends Controller -{ - public function index(Request $request) - { - return ApplicationResource::collection( - $request->user()->currentTeam->applications() - ->with(['server', 'environment']) - ->paginate() - ); - } - - public function store(StoreApplicationRequest $request) - { - $application = $request->user()->currentTeam - ->applications() - ->create($request->validated()); - - return new ApplicationResource($application); - } - - public function deploy(Application $application) - { - $deployment = $application->deploy(); - - return response()->json([ - 'message' => 'Deployment started', - 'deployment_id' => $deployment->id - ]); - } -} -``` - -### API Responses & Resources -```php -// API Resource classes -class ApplicationResource extends JsonResource -{ - public function toArray($request) - { - return [ - 'id' => $this->id, - 'name' => $this->name, - 'fqdn' => $this->fqdn, - 'status' => $this->status, - 'git_repository' => $this->git_repository, - 'git_branch' => $this->git_branch, - 'created_at' => $this->created_at, - 'updated_at' => $this->updated_at, - 'server' => new ServerResource($this->whenLoaded('server')), - 'environment' => new EnvironmentResource($this->whenLoaded('environment')), - ]; - } -} -``` - -## API Authentication - -### Sanctum Token Authentication -```php -// API token generation -Route::post('/auth/tokens', function (Request $request) { - $request->validate([ - 'name' => 'required|string', - 'abilities' => 'array' - ]); - - $token = $request->user()->createToken( - $request->name, - $request->abilities ?? [] - ); - - return response()->json([ - 'token' => $token->plainTextToken, - 'abilities' => $token->accessToken->abilities - ]); -}); -``` - -### Team-Based Authorization -```php -// Team access middleware -class EnsureTeamAccess -{ - public function handle($request, Closure $next) - { - $teamId = $request->route('team'); - - if (!$request->user()->teams->contains('id', $teamId)) { - abort(403, 'Access denied to team resources'); - } - - return $next($request); - } -} -``` - -## Rate Limiting - -### API Rate Limits -```php -// API throttling configuration -RateLimiter::for('api', function (Request $request) { - return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); -}); - -// Deployment rate limiting -RateLimiter::for('deployments', function (Request $request) { - return Limit::perMinute(10)->by($request->user()->id); -}); -``` - -### Webhook Rate Limiting -```php -// Webhook throttling -RateLimiter::for('webhooks', function (Request $request) { - return Limit::perMinute(100)->by($request->ip()); -}); -``` - -## Route Model Binding - -### Custom Route Bindings -```php -// Custom model binding for applications -Route::bind('application', function ($value) { - return Application::where('uuid', $value) - ->orWhere('id', $value) - ->firstOrFail(); -}); - -// Team-scoped model binding -Route::bind('team_application', function ($value, $route) { - $teamId = $route->parameter('team'); - return Application::whereHas('environment.project', function ($query) use ($teamId) { - $query->where('team_id', $teamId); - })->findOrFail($value); -}); -``` - -## API Documentation - -### OpenAPI Specification -- **[openapi.json](mdc:openapi.json)** - API documentation (373KB, 8316 lines) -- **[openapi.yaml](mdc:openapi.yaml)** - YAML format documentation (184KB, 5579 lines) - -### Documentation Generation -```php -// Swagger/OpenAPI annotations -/** - * @OA\Get( - * path="/api/v1/applications", - * summary="List applications", - * tags={"Applications"}, - * security={{"bearerAuth":{}}}, - * @OA\Response( - * response=200, - * description="List of applications", - * @OA\JsonContent(type="array", @OA\Items(ref="#/components/schemas/Application")) - * ) - * ) - */ -``` - -## Error Handling - -### API Error Responses -```php -// Standardized error response format -class ApiExceptionHandler -{ - public function render($request, Throwable $exception) - { - if ($request->expectsJson()) { - return response()->json([ - 'message' => $exception->getMessage(), - 'error_code' => $this->getErrorCode($exception), - 'timestamp' => now()->toISOString() - ], $this->getStatusCode($exception)); - } - - return parent::render($request, $exception); - } -} -``` - -### Validation Error Handling -```php -// Form request validation -class StoreApplicationRequest extends FormRequest -{ - public function rules() - { - return [ - 'name' => 'required|string|max:255', - 'git_repository' => 'required|url', - 'git_branch' => 'required|string', - 'server_id' => 'required|exists:servers,id', - 'environment_id' => 'required|exists:environments,id' - ]; - } - - public function failedValidation(Validator $validator) - { - throw new HttpResponseException( - response()->json([ - 'message' => 'Validation failed', - 'errors' => $validator->errors() - ], 422) - ); - } -} -``` - -## Real-Time API Integration - -### WebSocket Events -```php -// Broadcasting deployment events -class DeploymentStarted implements ShouldBroadcast -{ - public $application; - public $deployment; - - public function broadcastOn() - { - return [ - new PrivateChannel("application.{$this->application->id}"), - new PrivateChannel("team.{$this->application->team->id}") - ]; - } - - public function broadcastWith() - { - return [ - 'deployment_id' => $this->deployment->id, - 'status' => 'started', - 'timestamp' => now() - ]; - } -} -``` - -### API Event Streaming -```php -// Server-Sent Events for real-time updates -Route::get('/api/v1/applications/{application}/events', function (Application $application) { - return response()->stream(function () use ($application) { - while (true) { - $events = $application->getRecentEvents(); - foreach ($events as $event) { - echo "data: " . json_encode($event) . "\n\n"; - } - usleep(1000000); // 1 second - } - }, 200, [ - 'Content-Type' => 'text/event-stream', - 'Cache-Control' => 'no-cache', - ]); -}); -``` diff --git a/.ai/patterns/database-patterns.md b/.ai/patterns/database-patterns.md deleted file mode 100644 index 1e40ea152..000000000 --- a/.ai/patterns/database-patterns.md +++ /dev/null @@ -1,324 +0,0 @@ -# Coolify Database Architecture & Patterns - -## Database Strategy - -Coolify uses **PostgreSQL 15** as the primary database with **Redis 7** for caching and real-time features. The architecture supports managing multiple external databases across different servers. - -## Primary Database (PostgreSQL) - -### Core Tables & Models - -#### User & Team Management -- **[User.php](mdc:app/Models/User.php)** - User authentication and profiles -- **[Team.php](mdc:app/Models/Team.php)** - Multi-tenant organization structure -- **[TeamInvitation.php](mdc:app/Models/TeamInvitation.php)** - Team collaboration invitations -- **[PersonalAccessToken.php](mdc:app/Models/PersonalAccessToken.php)** - API token management - -#### Infrastructure Management -- **[Server.php](mdc:app/Models/Server.php)** - Physical/virtual server definitions (46KB, complex) -- **[PrivateKey.php](mdc:app/Models/PrivateKey.php)** - SSH key management -- **[ServerSetting.php](mdc:app/Models/ServerSetting.php)** - Server-specific configurations - -#### Project Organization -- **[Project.php](mdc:app/Models/Project.php)** - Project containers for applications -- **[Environment.php](mdc:app/Models/Environment.php)** - Environment isolation (staging, production, etc.) -- **[ProjectSetting.php](mdc:app/Models/ProjectSetting.php)** - Project-specific settings - -#### Application Deployment -- **[Application.php](mdc:app/Models/Application.php)** - Main application entity (74KB, highly complex) -- **[ApplicationSetting.php](mdc:app/Models/ApplicationSetting.php)** - Application configurations -- **[ApplicationDeploymentQueue.php](mdc:app/Models/ApplicationDeploymentQueue.php)** - Deployment orchestration -- **[ApplicationPreview.php](mdc:app/Models/ApplicationPreview.php)** - Preview environment management - -#### Service Management -- **[Service.php](mdc:app/Models/Service.php)** - Service definitions (58KB, complex) -- **[ServiceApplication.php](mdc:app/Models/ServiceApplication.php)** - Service components -- **[ServiceDatabase.php](mdc:app/Models/ServiceDatabase.php)** - Service-attached databases - -## Database Type Support - -### Standalone Database Models -Each database type has its own dedicated model with specific configurations: - -#### SQL Databases -- **[StandalonePostgresql.php](mdc:app/Models/StandalonePostgresql.php)** - PostgreSQL instances -- **[StandaloneMysql.php](mdc:app/Models/StandaloneMysql.php)** - MySQL instances -- **[StandaloneMariadb.php](mdc:app/Models/StandaloneMariadb.php)** - MariaDB instances - -#### NoSQL & Analytics -- **[StandaloneMongodb.php](mdc:app/Models/StandaloneMongodb.php)** - MongoDB instances -- **[StandaloneClickhouse.php](mdc:app/Models/StandaloneClickhouse.php)** - ClickHouse analytics - -#### Caching & In-Memory -- **[StandaloneRedis.php](mdc:app/Models/StandaloneRedis.php)** - Redis instances -- **[StandaloneKeydb.php](mdc:app/Models/StandaloneKeydb.php)** - KeyDB instances -- **[StandaloneDragonfly.php](mdc:app/Models/StandaloneDragonfly.php)** - Dragonfly instances - -## Configuration Management - -### Environment Variables -- **[EnvironmentVariable.php](mdc:app/Models/EnvironmentVariable.php)** - Application-specific environment variables -- **[SharedEnvironmentVariable.php](mdc:app/Models/SharedEnvironmentVariable.php)** - Shared across applications - -### Settings Hierarchy -- **[InstanceSettings.php](mdc:app/Models/InstanceSettings.php)** - Global Coolify instance settings -- **[ServerSetting.php](mdc:app/Models/ServerSetting.php)** - Server-specific settings -- **[ProjectSetting.php](mdc:app/Models/ProjectSetting.php)** - Project-level settings -- **[ApplicationSetting.php](mdc:app/Models/ApplicationSetting.php)** - Application settings - -## Storage & Backup Systems - -### Storage Management -- **[S3Storage.php](mdc:app/Models/S3Storage.php)** - S3-compatible storage configurations -- **[LocalFileVolume.php](mdc:app/Models/LocalFileVolume.php)** - Local filesystem volumes -- **[LocalPersistentVolume.php](mdc:app/Models/LocalPersistentVolume.php)** - Persistent volume management - -### Backup Infrastructure -- **[ScheduledDatabaseBackup.php](mdc:app/Models/ScheduledDatabaseBackup.php)** - Automated backup scheduling -- **[ScheduledDatabaseBackupExecution.php](mdc:app/Models/ScheduledDatabaseBackupExecution.php)** - Backup execution tracking - -### Task Scheduling -- **[ScheduledTask.php](mdc:app/Models/ScheduledTask.php)** - Cron job management -- **[ScheduledTaskExecution.php](mdc:app/Models/ScheduledTaskExecution.php)** - Task execution history - -## Notification & Integration Models - -### Notification Channels -- **[EmailNotificationSettings.php](mdc:app/Models/EmailNotificationSettings.php)** - Email notifications -- **[DiscordNotificationSettings.php](mdc:app/Models/DiscordNotificationSettings.php)** - Discord integration -- **[SlackNotificationSettings.php](mdc:app/Models/SlackNotificationSettings.php)** - Slack integration -- **[TelegramNotificationSettings.php](mdc:app/Models/TelegramNotificationSettings.php)** - Telegram bot -- **[PushoverNotificationSettings.php](mdc:app/Models/PushoverNotificationSettings.php)** - Pushover notifications - -### Source Control Integration -- **[GithubApp.php](mdc:app/Models/GithubApp.php)** - GitHub App integration -- **[GitlabApp.php](mdc:app/Models/GitlabApp.php)** - GitLab integration - -### OAuth & Authentication -- **[OauthSetting.php](mdc:app/Models/OauthSetting.php)** - OAuth provider configurations - -## Docker & Container Management - -### Container Orchestration -- **[StandaloneDocker.php](mdc:app/Models/StandaloneDocker.php)** - Standalone Docker containers -- **[SwarmDocker.php](mdc:app/Models/SwarmDocker.php)** - Docker Swarm management - -### SSL & Security -- **[SslCertificate.php](mdc:app/Models/SslCertificate.php)** - SSL certificate management - -## Database Migration Strategy - -### Migration Location: [database/migrations/](mdc:database/migrations) - -#### Migration Patterns -```php -// Typical Coolify migration structure -Schema::create('applications', function (Blueprint $table) { - $table->id(); - $table->string('name'); - $table->string('fqdn')->nullable(); - $table->json('environment_variables')->nullable(); - $table->foreignId('destination_id'); - $table->foreignId('source_id'); - $table->timestamps(); -}); -``` - -### Schema Versioning -- **Incremental migrations** for database evolution -- **Data migrations** for complex transformations -- **Rollback support** for deployment safety - -## Eloquent Model Patterns - -### Base Model Structure -- **[BaseModel.php](mdc:app/Models/BaseModel.php)** - Common model functionality -- **UUID primary keys** for distributed systems -- **Soft deletes** for audit trails -- **Activity logging** with Spatie package - -### **CRITICAL: Mass Assignment Protection** -**When adding new database columns, you MUST update the model's `$fillable` array.** Without this, Laravel will silently ignore mass assignment operations like `Model::create()` or `$model->update()`. - -**Checklist for new columns:** -1. ✅ Create migration file -2. ✅ Run migration -3. ✅ **Add column to model's `$fillable` array** -4. ✅ Update any Livewire components that sync this property -5. ✅ Test that the column can be read and written - -**Example:** -```php -class Server extends BaseModel -{ - protected $fillable = [ - 'name', - 'ip', - 'port', - 'is_validating', // ← MUST add new columns here - ]; -} -``` - -### Relationship Patterns -```php -// Typical relationship structure in Application model -class Application extends Model -{ - public function server() - { - return $this->belongsTo(Server::class); - } - - public function environment() - { - return $this->belongsTo(Environment::class); - } - - public function deployments() - { - return $this->hasMany(ApplicationDeploymentQueue::class); - } - - public function environmentVariables() - { - return $this->hasMany(EnvironmentVariable::class); - } -} -``` - -### Model Traits -```php -// Common traits used across models -use SoftDeletes; -use LogsActivity; -use HasFactory; -use HasUuids; -``` - -## Caching Strategy (Redis) - -### Cache Usage Patterns -- **Session storage** - User authentication sessions -- **Queue backend** - Background job processing -- **Model caching** - Expensive query results -- **Real-time data** - WebSocket state management - -### Cache Keys Structure -``` -coolify:session:{session_id} -coolify:server:{server_id}:status -coolify:deployment:{deployment_id}:logs -coolify:user:{user_id}:teams -``` - -## Query Optimization Patterns - -### Eager Loading -```php -// Optimized queries with relationships -$applications = Application::with([ - 'server', - 'environment.project', - 'environmentVariables', - 'deployments' => function ($query) { - $query->latest()->limit(5); - } -])->get(); -``` - -### Chunking for Large Datasets -```php -// Processing large datasets efficiently -Server::chunk(100, function ($servers) { - foreach ($servers as $server) { - // Process server monitoring - } -}); -``` - -### Database Indexes -- **Primary keys** on all tables -- **Foreign key indexes** for relationships -- **Composite indexes** for common queries -- **Unique constraints** for business rules - -## Data Consistency Patterns - -### Database Transactions -```php -// Atomic operations for deployment -DB::transaction(function () { - $application = Application::create($data); - $application->environmentVariables()->createMany($envVars); - $application->deployments()->create(['status' => 'queued']); -}); -``` - -### Model Events -```php -// Automatic cleanup on model deletion -class Application extends Model -{ - protected static function booted() - { - static::deleting(function ($application) { - $application->environmentVariables()->delete(); - $application->deployments()->delete(); - }); - } -} -``` - -## Backup & Recovery - -### Database Backup Strategy -- **Automated PostgreSQL backups** via scheduled tasks -- **Point-in-time recovery** capability -- **Cross-region backup** replication -- **Backup verification** and testing - -### Data Export/Import -- **Application configurations** export/import -- **Environment variable** bulk operations -- **Server configurations** backup and restore - -## Performance Monitoring - -### Query Performance -- **Laravel Telescope** for development debugging -- **Slow query logging** in production -- **Database connection** pooling -- **Read replica** support for scaling - -### Metrics Collection -- **Database size** monitoring -- **Connection count** tracking -- **Query execution time** analysis -- **Cache hit rates** monitoring - -## Multi-Tenancy Pattern - -### Team-Based Isolation -```php -// Global scope for team-based filtering -class Application extends Model -{ - protected static function booted() - { - static::addGlobalScope('team', function (Builder $builder) { - if (auth()->user()) { - $builder->whereHas('environment.project', function ($query) { - $query->where('team_id', auth()->user()->currentTeam->id); - }); - } - }); - } -} -``` - -### Data Separation -- **Team-scoped queries** by default -- **Cross-team access** controls -- **Admin access** patterns -- **Data isolation** guarantees diff --git a/.ai/patterns/form-components.md b/.ai/patterns/form-components.md deleted file mode 100644 index 3ff1d0f81..000000000 --- a/.ai/patterns/form-components.md +++ /dev/null @@ -1,447 +0,0 @@ - -# Enhanced Form Components with Authorization - -## Overview - -Coolify's form components now feature **built-in authorization** that automatically handles permission-based UI control, dramatically reducing code duplication and improving security consistency. - -## Enhanced Components - -All form components now support the `canGate` authorization system: - -- **[Input.php](mdc:app/View/Components/Forms/Input.php)** - Text, password, and other input fields -- **[Select.php](mdc:app/View/Components/Forms/Select.php)** - Dropdown selection components -- **[Textarea.php](mdc:app/View/Components/Forms/Textarea.php)** - Multi-line text areas -- **[Checkbox.php](mdc:app/View/Components/Forms/Checkbox.php)** - Boolean toggle components -- **[Button.php](mdc:app/View/Components/Forms/Button.php)** - Action buttons - -## Authorization Parameters - -### Core Parameters -```php -public ?string $canGate = null; // Gate name: 'update', 'view', 'deploy', 'delete' -public mixed $canResource = null; // Resource model instance to check against -public bool $autoDisable = true; // Automatically disable if no permission -``` - -### How It Works -```php -// Automatic authorization logic in each component -if ($this->canGate && $this->canResource && $this->autoDisable) { - $hasPermission = Gate::allows($this->canGate, $this->canResource); - - if (! $hasPermission) { - $this->disabled = true; - // For Checkbox: also sets $this->instantSave = false; - } -} -``` - -## Usage Patterns - -### ✅ Recommended: Single Line Pattern - -**Before (Verbose, 6+ lines per element):** -```html -@can('update', $application) - - - Save -@else - - -@endcan -``` - -**After (Clean, 1 line per element):** -```html - - -Save -``` - -**Result: 90% code reduction!** - -### Component-Specific Examples - -#### Input Fields -```html - - - - - - - - -``` - -#### Select Dropdowns -```html - - - - - - - - - - @foreach($servers as $server) - - @endforeach - -``` - -#### Checkboxes with InstantSave -```html - - - - - - - - -``` - -#### Textareas -```html - - - - - -``` - -#### Buttons -```html - - - Save Configuration - - - - - Deploy Application - - - - - Delete Application - -``` - -## Advanced Usage - -### Custom Authorization Logic -```html - - -``` - -### Multiple Permission Checks -```html - - -``` - -### Conditional Resources -```html - - - {{ $isEditing ? 'Save Changes' : 'View Details' }} - -``` - -## Supported Gates - -### Resource-Level Gates -- `view` - Read access to resource details -- `update` - Modify resource configuration and settings -- `deploy` - Deploy, restart, or manage resource state -- `delete` - Remove or destroy resource -- `clone` - Duplicate resource to another location - -### Global Gates -- `createAnyResource` - Create new resources of any type -- `manageTeam` - Team administration permissions -- `accessServer` - Server-level access permissions - -## Supported Resources - -### Primary Resources -- `$application` - Application instances and configurations -- `$service` - Docker Compose services and components -- `$database` - Database instances (PostgreSQL, MySQL, etc.) -- `$server` - Physical or virtual server instances - -### Container Resources -- `$project` - Project containers and environments -- `$environment` - Environment-specific configurations -- `$team` - Team and organization contexts - -### Infrastructure Resources -- `$privateKey` - SSH private keys and certificates -- `$source` - Git sources and repositories -- `$destination` - Deployment destinations and targets - -## Component Behavior - -### Input Components (Input, Select, Textarea) -When authorization fails: -- **disabled = true** - Field becomes non-editable -- **Visual styling** - Opacity reduction and disabled cursor -- **Form submission** - Values are ignored in forms -- **User feedback** - Clear visual indication of restricted access - -### Checkbox Components -When authorization fails: -- **disabled = true** - Checkbox becomes non-clickable -- **instantSave = false** - Automatic saving is disabled -- **State preservation** - Current value is maintained but read-only -- **Visual styling** - Disabled appearance with reduced opacity - -### Button Components -When authorization fails: -- **disabled = true** - Button becomes non-clickable -- **Event blocking** - Click handlers are ignored -- **Visual styling** - Disabled appearance and cursor -- **Loading states** - Loading indicators are disabled - -## Migration Guide - -### Converting Existing Forms - -**Old Pattern:** -```html -
- @can('update', $application) - - ... - - Save - @else - - ... - - @endcan - -``` - -**New Pattern:** -```html -
- - ... - - Save - -``` - -### Gradual Migration Strategy - -1. **Start with new forms** - Use the new pattern for all new components -2. **Convert high-traffic areas** - Migrate frequently used forms first -3. **Batch convert similar forms** - Group similar authorization patterns -4. **Test thoroughly** - Verify authorization behavior matches expectations -5. **Remove old patterns** - Clean up legacy @can/@else blocks - -## Testing Patterns - -### Component Authorization Tests -```php -// Test authorization integration in components -test('input component respects authorization', function () { - $user = User::factory()->member()->create(); - $application = Application::factory()->create(); - - // Member should see disabled input - $component = Livewire::actingAs($user) - ->test(TestComponent::class, [ - 'canGate' => 'update', - 'canResource' => $application - ]); - - expect($component->get('disabled'))->toBeTrue(); -}); - -test('checkbox disables instantSave for unauthorized users', function () { - $user = User::factory()->member()->create(); - $application = Application::factory()->create(); - - $component = Livewire::actingAs($user) - ->test(CheckboxComponent::class, [ - 'instantSave' => true, - 'canGate' => 'update', - 'canResource' => $application - ]); - - expect($component->get('disabled'))->toBeTrue(); - expect($component->get('instantSave'))->toBeFalse(); -}); -``` - -### Integration Tests -```php -// Test full form authorization behavior -test('application form respects member permissions', function () { - $member = User::factory()->member()->create(); - $application = Application::factory()->create(); - - $this->actingAs($member) - ->get(route('application.edit', $application)) - ->assertSee('disabled') - ->assertDontSee('Save Configuration'); -}); -``` - -## Best Practices - -### Consistent Gate Usage -- Use `update` for configuration changes -- Use `deploy` for operational actions -- Use `view` for read-only access -- Use `delete` for destructive actions - -### Resource Context -- Always pass the specific resource being acted upon -- Use team context for creation permissions -- Consider nested resource relationships - -### Error Handling -- Provide clear feedback for disabled components -- Use helper text to explain permission requirements -- Consider tooltips for disabled buttons - -### Performance -- Authorization checks are cached per request -- Use eager loading for resource relationships -- Consider query optimization for complex permissions - -## Common Patterns - -### Application Configuration Forms -```html - - -... - -Save -``` - -### Service Configuration Forms -```html - - - - -Save - - - - - -@can('update', $service) - -@endcan -``` - -### Server Management Forms -```html - - -... -Delete Server -``` - -### Resource Creation Forms -```html - - -... -Create Application -``` \ No newline at end of file diff --git a/.ai/patterns/frontend-patterns.md b/.ai/patterns/frontend-patterns.md deleted file mode 100644 index 675881608..000000000 --- a/.ai/patterns/frontend-patterns.md +++ /dev/null @@ -1,696 +0,0 @@ -# Coolify Frontend Architecture & Patterns - -## Frontend Philosophy - -Coolify uses a **server-side first** approach with minimal JavaScript, leveraging Livewire for reactivity and Alpine.js for lightweight client-side interactions. - -## Core Frontend Stack - -### Livewire 3.5+ (Primary Framework) -- **Server-side rendering** with reactive components -- **Real-time updates** without page refreshes -- **State management** handled on the server -- **WebSocket integration** for live updates - -### Alpine.js (Client-Side Interactivity) -- **Lightweight JavaScript** for DOM manipulation -- **Declarative directives** in HTML -- **Component-like behavior** without build steps -- **Perfect companion** to Livewire - -### Tailwind CSS 4.1+ (Styling) -- **Utility-first** CSS framework -- **Custom design system** for deployment platform -- **Responsive design** built-in -- **Dark mode support** - -## Livewire Component Structure - -### Location: [app/Livewire/](mdc:app/Livewire) - -#### Core Application Components -- **[Dashboard.php](mdc:app/Livewire/Dashboard.php)** - Main dashboard interface -- **[ActivityMonitor.php](mdc:app/Livewire/ActivityMonitor.php)** - Real-time activity tracking -- **[MonacoEditor.php](mdc:app/Livewire/MonacoEditor.php)** - Code editor component - -#### Server Management -- **Server/** directory - Server configuration and monitoring -- Real-time server status updates -- SSH connection management -- Resource monitoring - -#### Project & Application Management -- **Project/** directory - Project organization -- Application deployment interfaces -- Environment variable management -- Service configuration - -#### Settings & Configuration -- **Settings/** directory - System configuration -- **[SettingsEmail.php](mdc:app/Livewire/SettingsEmail.php)** - Email notification setup -- **[SettingsOauth.php](mdc:app/Livewire/SettingsOauth.php)** - OAuth provider configuration -- **[SettingsBackup.php](mdc:app/Livewire/SettingsBackup.php)** - Backup configuration - -#### User & Team Management -- **Team/** directory - Team collaboration features -- **Profile/** directory - User profile management -- **Security/** directory - Security settings - -## Blade Template Organization - -### Location: [resources/views/](mdc:resources/views) - -#### Layout Structure -- **layouts/** - Base layout templates -- **components/** - Reusable UI components -- **livewire/** - Livewire component views - -#### Feature-Specific Views -- **server/** - Server management interfaces -- **auth/** - Authentication pages -- **emails/** - Email templates -- **errors/** - Error pages - -## Interactive Components - -### Monaco Editor Integration -- **Code editing** for configuration files -- **Syntax highlighting** for multiple languages -- **Live validation** and error detection -- **Integration** with deployment process - -### Terminal Emulation (XTerm.js) -- **Real-time terminal** access to servers -- **WebSocket-based** communication -- **Multi-session** support -- **Secure connection** through SSH - -### Real-Time Updates -- **WebSocket connections** via Laravel Echo -- **Live deployment logs** streaming -- **Server monitoring** with live metrics -- **Activity notifications** in real-time - -## Alpine.js Patterns - -### Common Directives Used -```html - -
- - - -``` - -## Tailwind CSS Patterns - -### Design System -- **Consistent spacing** using Tailwind scale -- **Color palette** optimized for deployment platform -- **Typography** hierarchy for technical content -- **Component classes** for reusable elements - -### Responsive Design -```html - -
- -
-``` - -### Dark Mode Support -```html - -
- -
-``` - -## Build Process - -### Vite Configuration ([vite.config.js](mdc:vite.config.js)) -- **Fast development** with hot module replacement -- **Optimized production** builds -- **Asset versioning** for cache busting -- **CSS processing** with PostCSS - -### Asset Compilation -```bash -# Development -npm run dev - -# Production build -npm run build -``` - -## State Management Patterns - -### Server-Side State (Livewire) -- **Component properties** for persistent state -- **Session storage** for user preferences -- **Database models** for application state -- **Cache layer** for performance - -### Client-Side State (Alpine.js) -- **Local component state** for UI interactions -- **Form validation** and user feedback -- **Modal and dropdown** state management -- **Temporary UI states** (loading, hover, etc.) - -## Real-Time Features - -### WebSocket Integration -```php -// Livewire component with real-time updates -class ActivityMonitor extends Component -{ - public function getListeners() - { - return [ - 'deployment.started' => 'refresh', - 'deployment.finished' => 'refresh', - 'server.status.changed' => 'updateServerStatus', - ]; - } -} -``` - -### Event Broadcasting -- **Laravel Echo** for client-side WebSocket handling -- **Pusher protocol** for real-time communication -- **Private channels** for user-specific events -- **Presence channels** for collaborative features - -## Performance Patterns - -### Lazy Loading -```php -// Livewire lazy loading -class ServerList extends Component -{ - public function placeholder() - { - return view('components.loading-skeleton'); - } -} -``` - -### Caching Strategies -- **Fragment caching** for expensive operations -- **Image optimization** with lazy loading -- **Asset bundling** and compression -- **CDN integration** for static assets - -## Enhanced Form Components - -### Built-in Authorization System -Coolify features **enhanced form components** with automatic authorization handling: - -```html - - - -Save - - -@can('update', $application) - -@else - -@endcan -``` - -### Authorization Parameters -```php -// Available on all form components (Input, Select, Textarea, Checkbox, Button) -public ?string $canGate = null; // Gate name: 'update', 'view', 'deploy', 'delete' -public mixed $canResource = null; // Resource model instance to check against -public bool $autoDisable = true; // Automatically disable if no permission (default: true) -``` - -### Benefits -- **90% code reduction** for authorization-protected forms -- **Consistent security** across all form components -- **Automatic disabling** for unauthorized users -- **Smart behavior** (disables instantSave on checkboxes for unauthorized users) - -For complete documentation, see **[form-components.md](.ai/patterns/form-components.md)** - -## Form Handling Patterns - -### Livewire Component Data Synchronization Pattern - -**IMPORTANT**: All Livewire components must use the **manual `syncData()` pattern** for synchronizing component properties with Eloquent models. - -#### Property Naming Convention -- **Component properties**: Use camelCase (e.g., `$gitRepository`, `$isStatic`) -- **Database columns**: Use snake_case (e.g., `git_repository`, `is_static`) -- **View bindings**: Use camelCase matching component properties (e.g., `id="gitRepository"`) - -#### The syncData() Method Pattern - -```php -use Livewire\Attributes\Validate; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; - -class MyComponent extends Component -{ - use AuthorizesRequests; - - public Application $application; - - // Properties with validation attributes - #[Validate(['required'])] - public string $name; - - #[Validate(['string', 'nullable'])] - public ?string $description = null; - - #[Validate(['boolean', 'required'])] - public bool $isStatic = false; - - public function mount() - { - $this->authorize('view', $this->application); - $this->syncData(); // Load from model - } - - public function syncData(bool $toModel = false): void - { - if ($toModel) { - $this->validate(); - - // Sync TO model (camelCase → snake_case) - $this->application->name = $this->name; - $this->application->description = $this->description; - $this->application->is_static = $this->isStatic; - - $this->application->save(); - } else { - // Sync FROM model (snake_case → camelCase) - $this->name = $this->application->name; - $this->description = $this->application->description; - $this->isStatic = $this->application->is_static; - } - } - - public function submit() - { - $this->authorize('update', $this->application); - $this->syncData(toModel: true); // Save to model - $this->dispatch('success', 'Saved successfully.'); - } -} -``` - -#### Validation with #[Validate] Attributes - -All component properties should have `#[Validate]` attributes: - -```php -// Boolean properties -#[Validate(['boolean'])] -public bool $isEnabled = false; - -// Required strings -#[Validate(['string', 'required'])] -public string $name; - -// Nullable strings -#[Validate(['string', 'nullable'])] -public ?string $description = null; - -// With constraints -#[Validate(['integer', 'min:1'])] -public int $timeout; -``` - -#### Benefits of syncData() Pattern - -- **Explicit Control**: Clear visibility of what's being synchronized -- **Type Safety**: #[Validate] attributes provide compile-time validation info -- **Easy Debugging**: Single method to check for data flow issues -- **Maintainability**: All sync logic in one place -- **Flexibility**: Can add custom logic (encoding, transformations, etc.) - -#### Creating New Form Components with syncData() - -#### Step-by-Step Component Creation Guide - -**Step 1: Define properties in camelCase with #[Validate] attributes** -```php -use Livewire\Attributes\Validate; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -use Livewire\Component; - -class MyFormComponent extends Component -{ - use AuthorizesRequests; - - // The model we're syncing with - public Application $application; - - // Component properties in camelCase with validation - #[Validate(['string', 'required'])] - public string $name; - - #[Validate(['string', 'nullable'])] - public ?string $gitRepository = null; - - #[Validate(['string', 'nullable'])] - public ?string $installCommand = null; - - #[Validate(['boolean'])] - public bool $isStatic = false; -} -``` - -**Step 2: Implement syncData() method** -```php -public function syncData(bool $toModel = false): void -{ - if ($toModel) { - $this->validate(); - - // Sync TO model (component camelCase → database snake_case) - $this->application->name = $this->name; - $this->application->git_repository = $this->gitRepository; - $this->application->install_command = $this->installCommand; - $this->application->is_static = $this->isStatic; - - $this->application->save(); - } else { - // Sync FROM model (database snake_case → component camelCase) - $this->name = $this->application->name; - $this->gitRepository = $this->application->git_repository; - $this->installCommand = $this->application->install_command; - $this->isStatic = $this->application->is_static; - } -} -``` - -**Step 3: Implement mount() to load initial data** -```php -public function mount() -{ - $this->authorize('view', $this->application); - $this->syncData(); // Load data from model to component properties -} -``` - -**Step 4: Implement action methods with authorization** -```php -public function instantSave() -{ - try { - $this->authorize('update', $this->application); - $this->syncData(toModel: true); // Save component properties to model - $this->dispatch('success', 'Settings saved.'); - } catch (\Throwable $e) { - return handleError($e, $this); - } -} - -public function submit() -{ - try { - $this->authorize('update', $this->application); - $this->syncData(toModel: true); // Save component properties to model - $this->dispatch('success', 'Changes saved successfully.'); - } catch (\Throwable $e) { - return handleError($e, $this); - } -} -``` - -**Step 5: Create Blade view with camelCase bindings** -```blade -
-
- - - - - - - - - - Save Changes - - -
-``` - -**Key Points**: -- Use `wire:model="camelCase"` and `id="camelCase"` in Blade views -- Component properties are camelCase, database columns are snake_case -- Always include authorization checks (`authorize()`, `canGate`, `canResource`) -- Use `instantSave` for checkboxes that save immediately without form submission - -#### Special Patterns - -**Pattern 1: Related Models (e.g., Application → Settings)** -```php -public function syncData(bool $toModel = false): void -{ - if ($toModel) { - $this->validate(); - - // Sync main model - $this->application->name = $this->name; - $this->application->save(); - - // Sync related model - $this->application->settings->is_static = $this->isStatic; - $this->application->settings->save(); - } else { - // From main model - $this->name = $this->application->name; - - // From related model - $this->isStatic = $this->application->settings->is_static; - } -} -``` - -**Pattern 2: Custom Encoding/Decoding** -```php -public function syncData(bool $toModel = false): void -{ - if ($toModel) { - $this->validate(); - - // Encode before saving - $this->application->custom_labels = base64_encode($this->customLabels); - $this->application->save(); - } else { - // Decode when loading - $this->customLabels = $this->application->parseContainerLabels(); - } -} -``` - -**Pattern 3: Error Rollback** -```php -public function submit() -{ - $this->authorize('update', $this->resource); - $original = $this->model->getOriginal(); - - try { - $this->syncData(toModel: true); - $this->dispatch('success', 'Saved successfully.'); - } catch (\Throwable $e) { - // Rollback on error - $this->model->setRawAttributes($original); - $this->model->save(); - $this->syncData(); // Reload from model - return handleError($e, $this); - } -} -``` - -#### Property Type Patterns - -**Required Strings** -```php -#[Validate(['string', 'required'])] -public string $name; // No ?, no default, always has value -``` - -**Nullable Strings** -```php -#[Validate(['string', 'nullable'])] -public ?string $description = null; // ?, = null, can be empty -``` - -**Booleans** -```php -#[Validate(['boolean'])] -public bool $isEnabled = false; // Always has default value -``` - -**Integers with Constraints** -```php -#[Validate(['integer', 'min:1'])] -public int $timeout; // Required - -#[Validate(['integer', 'min:1', 'nullable'])] -public ?int $port = null; // Nullable -``` - -#### Testing Checklist - -After creating a new component with syncData(), verify: - -- [ ] All checkboxes save correctly (especially `instantSave` ones) -- [ ] All form inputs persist to database -- [ ] Custom encoded fields (like labels) display correctly if applicable -- [ ] Form validation works for all fields -- [ ] No console errors in browser -- [ ] Authorization checks work (`@can` directives and `authorize()` calls) -- [ ] Error rollback works if exceptions occur -- [ ] Related models save correctly if applicable (e.g., Application + ApplicationSetting) - -#### Common Pitfalls to Avoid - -1. **snake_case in component properties**: Always use camelCase for component properties (e.g., `$gitRepository` not `$git_repository`) -2. **Missing #[Validate] attributes**: Every property should have validation attributes for type safety -3. **Forgetting to call syncData()**: Must call `syncData()` in `mount()` to load initial data -4. **Missing authorization**: Always use `authorize()` in methods and `canGate`/`canResource` in views -5. **View binding mismatch**: Use camelCase in Blade (e.g., `id="gitRepository"` not `id="git_repository"`) -6. **wire:model vs wire:model.live**: Use `.live` for `instantSave` checkboxes to avoid timing issues -7. **Validation sync**: If using `rules()` method, keep it in sync with `#[Validate]` attributes -8. **Related models**: Don't forget to save both main and related models in syncData() method - -### Livewire Forms -```php -class ServerCreateForm extends Component -{ - public $name; - public $ip; - - protected $rules = [ - 'name' => 'required|min:3', - 'ip' => 'required|ip', - ]; - - public function save() - { - $this->validate(); - // Save logic - } -} -``` - -### Real-Time Validation -- **Live validation** as user types -- **Server-side validation** rules -- **Error message** display -- **Success feedback** patterns - -## Component Communication - -### Parent-Child Communication -```php -// Parent component -$this->emit('serverCreated', $server->id); - -// Child component -protected $listeners = ['serverCreated' => 'refresh']; -``` - -### Cross-Component Events -- **Global events** for application-wide updates -- **Scoped events** for feature-specific communication -- **Browser events** for JavaScript integration - -## Error Handling & UX - -### Loading States -- **Skeleton screens** during data loading -- **Progress indicators** for long operations -- **Optimistic updates** with rollback capability - -### Error Display -- **Toast notifications** for user feedback -- **Inline validation** errors -- **Global error** handling -- **Retry mechanisms** for failed operations - -## Accessibility Patterns - -### ARIA Labels and Roles -```html - -``` - -### Keyboard Navigation -- **Tab order** management -- **Keyboard shortcuts** for power users -- **Focus management** in modals and forms -- **Screen reader** compatibility - -## Mobile Optimization - -### Touch-Friendly Interface -- **Larger tap targets** for mobile devices -- **Swipe gestures** where appropriate -- **Mobile-optimized** forms and navigation - -### Progressive Enhancement -- **Core functionality** works without JavaScript -- **Enhanced experience** with JavaScript enabled -- **Offline capabilities** where possible diff --git a/.ai/patterns/security-patterns.md b/.ai/patterns/security-patterns.md deleted file mode 100644 index ac1470ac9..000000000 --- a/.ai/patterns/security-patterns.md +++ /dev/null @@ -1,1100 +0,0 @@ -# Coolify Security Architecture & Patterns - -## Security Philosophy - -Coolify implements **defense-in-depth security** with multiple layers of protection including authentication, authorization, encryption, network isolation, and secure deployment practices. - -## Authentication Architecture - -### Multi-Provider Authentication -- **[Laravel Fortify](mdc:config/fortify.php)** - Core authentication scaffolding (4.9KB, 149 lines) -- **[Laravel Sanctum](mdc:config/sanctum.php)** - API token authentication (2.4KB, 69 lines) -- **[Laravel Socialite](mdc:config/services.php)** - OAuth provider integration - -### OAuth Integration -- **[OauthSetting.php](mdc:app/Models/OauthSetting.php)** - OAuth provider configurations -- **Supported Providers**: - - Google OAuth - - Microsoft Azure AD - - Clerk - - Authentik - - Discord - - GitHub (via GitHub Apps) - - GitLab - -### Authentication Models -```php -// User authentication with team-based access -class User extends Authenticatable -{ - use HasApiTokens, HasFactory, Notifiable; - - protected $fillable = [ - 'name', 'email', 'password' - ]; - - protected $hidden = [ - 'password', 'remember_token' - ]; - - protected $casts = [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - - public function teams(): BelongsToMany - { - return $this->belongsToMany(Team::class) - ->withPivot('role') - ->withTimestamps(); - } - - public function currentTeam(): BelongsTo - { - return $this->belongsTo(Team::class, 'current_team_id'); - } -} -``` - -## Authorization & Access Control - -### Enhanced Form Component Authorization System - -Coolify now features a **centralized authorization system** built into all form components (`Input`, `Select`, `Textarea`, `Checkbox`, `Button`) that automatically handles permission-based UI control. - -#### Component Authorization Parameters -```php -// Available on all form components -public ?string $canGate = null; // Gate name (e.g., 'update', 'view', 'delete') -public mixed $canResource = null; // Resource to check against (model instance) -public bool $autoDisable = true; // Auto-disable if no permission (default: true) -``` - -#### Smart Authorization Logic -```php -// Automatic authorization handling in component constructor -if ($this->canGate && $this->canResource && $this->autoDisable) { - $hasPermission = Gate::allows($this->canGate, $this->canResource); - - if (! $hasPermission) { - $this->disabled = true; - // For Checkbox: also disables instantSave - } -} -``` - -#### Usage Examples - -**✅ Recommended Pattern (Single Line):** -```html - - - - - - - - - - - - - - - Save Configuration - -``` - -**❌ Old Pattern (Verbose, Deprecated):** -```html - -@can('update', $application) - - Save -@else - -@endcan -``` - -#### Advanced Usage with Custom Control - -**Custom Authorization Logic:** -```html - - -``` - -**Multiple Permission Checks:** -```html - - -``` - -#### Supported Gates and Resources - -**Common Gates:** -- `view` - Read access to resource -- `update` - Modify resource configuration -- `deploy` - Deploy/restart resource -- `delete` - Remove resource -- `createAnyResource` - Create new resources - -**Resource Types:** -- `Application` - Application instances -- `Service` - Docker Compose services -- `Server` - Server instances -- `Project` - Project containers -- `Environment` - Environment contexts -- `Database` - Database instances - -#### Benefits - -**🔥 Massive Code Reduction:** -- **90% less code** for authorization-protected forms -- **Single line** instead of 6-12 lines per form element -- **No more @can/@else blocks** cluttering templates - -**🛡️ Consistent Security:** -- **Unified authorization logic** across all form components -- **Automatic disabling** for unauthorized users -- **Smart behavior** (like disabling instantSave on checkboxes) - -**🎨 Better UX:** -- **Consistent disabled styling** across all components -- **Proper visual feedback** for restricted access -- **Clean, professional interface** - -#### Implementation Details - -**Component Enhancement:** -```php -// Enhanced in all form components -use Illuminate\Support\Facades\Gate; - -public function __construct( - // ... existing parameters - public ?string $canGate = null, - public mixed $canResource = null, - public bool $autoDisable = true, -) { - // Handle authorization-based disabling - if ($this->canGate && $this->canResource && $this->autoDisable) { - $hasPermission = Gate::allows($this->canGate, $this->canResource); - - if (! $hasPermission) { - $this->disabled = true; - // For Checkbox: $this->instantSave = false; - } - } -} -``` - -**Backward Compatibility:** -- All existing form components continue to work unchanged -- New authorization parameters are optional -- Legacy @can/@else patterns still function but are discouraged - -### Custom Component Authorization Patterns - -When dealing with **custom Alpine.js components** or complex UI elements that don't use the standard `x-forms.*` components, manual authorization protection is required since the automatic `canGate` system only applies to enhanced form components. - -#### Common Custom Components Requiring Manual Protection - -**⚠️ Custom Components That Need Manual Authorization:** -- Custom dropdowns/selects with Alpine.js -- Complex form widgets with JavaScript interactions -- Multi-step wizards or dynamic forms -- Third-party component integrations -- Custom date/time pickers -- File upload components with drag-and-drop - -#### Manual Authorization Pattern - -**✅ Proper Manual Authorization:** -```html - -
-
- - -
- @can('update', $resource) - -
- -
- - -
-
- @else - -
- - - - -
- @endcan -
-``` - -#### Implementation Checklist - -When implementing authorization for custom components: - -**🔍 1. Identify Custom Components:** -- Look for Alpine.js `x-data` declarations -- Find components not using `x-forms.*` prefix -- Check for JavaScript-heavy interactions -- Review complex form widgets - -**🛡️ 2. Wrap with Authorization:** -- Use `@can('gate', $resource)` / `@else` / `@endcan` structure -- Provide full functionality in the `@can` block -- Create disabled/readonly version in the `@else` block - -**🎨 3. Design Disabled State:** -- Apply `readonly disabled` attributes to inputs -- Add `opacity-50 cursor-not-allowed` classes for visual feedback -- Remove interactive JavaScript behaviors -- Show current value or appropriate placeholder - -**🔒 4. Backend Protection:** -- Ensure corresponding Livewire methods check authorization -- Add `$this->authorize('gate', $resource)` in relevant methods -- Validate permissions before processing any changes - -#### Real-World Examples - -**Custom Date Range Picker:** -```html -@can('update', $application) -
- -
-@else -
- - -
-@endcan -``` - -**Multi-Select Component:** -```html -@can('update', $server) -
- -
-@else -
- @foreach($selectedValues as $value) -
- {{ $value }} -
- @endforeach -
-@endcan -``` - -**File Upload Widget:** -```html -@can('update', $application) -
- -
-@else -
-

File upload restricted

- @if($currentFile) -

Current: {{ $currentFile }}

- @endif -
-@endcan -``` - -#### Key Principles - -**🎯 Consistency:** -- Maintain similar visual styling between enabled/disabled states -- Use consistent disabled patterns across the application -- Apply the same opacity and cursor styling - -**🔐 Security First:** -- Always implement backend authorization checks -- Never rely solely on frontend hiding/disabling -- Validate permissions on every server action - -**💡 User Experience:** -- Show current values in disabled state when appropriate -- Provide clear visual feedback about restricted access -- Maintain layout stability between states - -**🚀 Performance:** -- Minimize Alpine.js initialization for disabled components -- Avoid loading unnecessary JavaScript for unauthorized users -- Use simple HTML structures for read-only states - -### Team-Based Multi-Tenancy -- **[Team.php](mdc:app/Models/Team.php)** - Multi-tenant organization structure (8.9KB, 308 lines) -- **[TeamInvitation.php](mdc:app/Models/TeamInvitation.php)** - Secure team collaboration -- **Role-based permissions** within teams -- **Resource isolation** by team ownership - -### Authorization Patterns -```php -// Team-scoped authorization middleware -class EnsureTeamAccess -{ - public function handle(Request $request, Closure $next): Response - { - $user = $request->user(); - $teamId = $request->route('team'); - - if (!$user->teams->contains('id', $teamId)) { - abort(403, 'Access denied to team resources'); - } - - // Set current team context - $user->switchTeam($teamId); - - return $next($request); - } -} - -// Resource-level authorization policies -class ApplicationPolicy -{ - public function view(User $user, Application $application): bool - { - return $user->teams->contains('id', $application->team_id); - } - - public function deploy(User $user, Application $application): bool - { - return $this->view($user, $application) && - $user->hasTeamPermission($application->team_id, 'deploy'); - } - - public function delete(User $user, Application $application): bool - { - return $this->view($user, $application) && - $user->hasTeamRole($application->team_id, 'admin'); - } -} -``` - -### Global Scopes for Data Isolation -```php -// Automatic team-based filtering -class Application extends Model -{ - protected static function booted(): void - { - static::addGlobalScope('team', function (Builder $builder) { - if (auth()->check() && auth()->user()->currentTeam) { - $builder->whereHas('environment.project', function ($query) { - $query->where('team_id', auth()->user()->currentTeam->id); - }); - } - }); - } -} -``` - -## API Security - -### Token-Based Authentication -```php -// Sanctum API token management -class PersonalAccessToken extends Model -{ - protected $fillable = [ - 'name', 'token', 'abilities', 'expires_at' - ]; - - protected $casts = [ - 'abilities' => 'array', - 'expires_at' => 'datetime', - 'last_used_at' => 'datetime', - ]; - - public function tokenable(): MorphTo - { - return $this->morphTo(); - } - - public function hasAbility(string $ability): bool - { - return in_array('*', $this->abilities) || - in_array($ability, $this->abilities); - } -} -``` - -### API Rate Limiting -```php -// Rate limiting configuration -RateLimiter::for('api', function (Request $request) { - return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); -}); - -RateLimiter::for('deployments', function (Request $request) { - return Limit::perMinute(10)->by($request->user()->id); -}); - -RateLimiter::for('webhooks', function (Request $request) { - return Limit::perMinute(100)->by($request->ip()); -}); -``` - -### API Input Validation -```php -// Comprehensive input validation -class StoreApplicationRequest extends FormRequest -{ - public function authorize(): bool - { - return $this->user()->can('create', Application::class); - } - - public function rules(): array - { - return [ - 'name' => 'required|string|max:255|regex:/^[a-zA-Z0-9\-_]+$/', - 'git_repository' => 'required|url|starts_with:https://', - 'git_branch' => 'required|string|max:100|regex:/^[a-zA-Z0-9\-_\/]+$/', - 'server_id' => 'required|exists:servers,id', - 'environment_id' => 'required|exists:environments,id', - 'environment_variables' => 'array', - 'environment_variables.*' => 'string|max:1000', - ]; - } - - public function prepareForValidation(): void - { - $this->merge([ - 'name' => strip_tags($this->name), - 'git_repository' => filter_var($this->git_repository, FILTER_SANITIZE_URL), - ]); - } -} -``` - -## SSH Security - -### Private Key Management -- **[PrivateKey.php](mdc:app/Models/PrivateKey.php)** - Secure SSH key storage (6.5KB, 247 lines) -- **Encrypted key storage** in database -- **Key rotation** capabilities -- **Access logging** for key usage - -### SSH Connection Security -```php -class SshConnection -{ - private string $host; - private int $port; - private string $username; - private PrivateKey $privateKey; - - public function __construct(Server $server) - { - $this->host = $server->ip; - $this->port = $server->port; - $this->username = $server->user; - $this->privateKey = $server->privateKey; - } - - public function connect(): bool - { - $connection = ssh2_connect($this->host, $this->port); - - if (!$connection) { - throw new SshConnectionException('Failed to connect to server'); - } - - // Use private key authentication - $privateKeyContent = decrypt($this->privateKey->private_key); - $publicKeyContent = decrypt($this->privateKey->public_key); - - if (!ssh2_auth_pubkey_file($connection, $this->username, $publicKeyContent, $privateKeyContent)) { - throw new SshAuthenticationException('SSH authentication failed'); - } - - return true; - } - - public function execute(string $command): string - { - // Sanitize command to prevent injection - $command = escapeshellcmd($command); - - $stream = ssh2_exec($this->connection, $command); - - if (!$stream) { - throw new SshExecutionException('Failed to execute command'); - } - - return stream_get_contents($stream); - } -} -``` - -## Container Security - -### Docker Security Patterns -```php -class DockerSecurityService -{ - public function createSecureContainer(Application $application): array - { - return [ - 'image' => $this->validateImageName($application->docker_image), - 'user' => '1000:1000', // Non-root user - 'read_only' => true, - 'no_new_privileges' => true, - 'security_opt' => [ - 'no-new-privileges:true', - 'apparmor:docker-default' - ], - 'cap_drop' => ['ALL'], - 'cap_add' => ['CHOWN', 'SETUID', 'SETGID'], // Minimal capabilities - 'tmpfs' => [ - '/tmp' => 'rw,noexec,nosuid,size=100m', - '/var/tmp' => 'rw,noexec,nosuid,size=50m' - ], - 'ulimits' => [ - 'nproc' => 1024, - 'nofile' => 1024 - ] - ]; - } - - private function validateImageName(string $image): string - { - // Validate image name against allowed registries - $allowedRegistries = ['docker.io', 'ghcr.io', 'quay.io']; - - $parser = new DockerImageParser(); - $parsed = $parser->parse($image); - - if (!in_array($parsed['registry'], $allowedRegistries)) { - throw new SecurityException('Image registry not allowed'); - } - - return $image; - } -} -``` - -### Network Isolation -```yaml -# Docker Compose security configuration -version: '3.8' -services: - app: - image: ${APP_IMAGE} - networks: - - app-network - security_opt: - - no-new-privileges:true - - apparmor:docker-default - read_only: true - tmpfs: - - /tmp:rw,noexec,nosuid,size=100m - cap_drop: - - ALL - cap_add: - - CHOWN - - SETUID - - SETGID - -networks: - app-network: - driver: bridge - internal: true - ipam: - config: - - subnet: 172.20.0.0/16 -``` - -## SSL/TLS Security - -### Certificate Management -- **[SslCertificate.php](mdc:app/Models/SslCertificate.php)** - SSL certificate automation -- **Let's Encrypt** integration for free certificates -- **Automatic renewal** and monitoring -- **Custom certificate** upload support - -### SSL Configuration -```php -class SslCertificateService -{ - public function generateCertificate(Application $application): SslCertificate - { - $domains = $this->validateDomains($application->getAllDomains()); - - $certificate = SslCertificate::create([ - 'application_id' => $application->id, - 'domains' => $domains, - 'provider' => 'letsencrypt', - 'status' => 'pending' - ]); - - // Generate certificate using ACME protocol - $acmeClient = new AcmeClient(); - $certData = $acmeClient->generateCertificate($domains); - - $certificate->update([ - 'certificate' => encrypt($certData['certificate']), - 'private_key' => encrypt($certData['private_key']), - 'chain' => encrypt($certData['chain']), - 'expires_at' => $certData['expires_at'], - 'status' => 'active' - ]); - - return $certificate; - } - - private function validateDomains(array $domains): array - { - foreach ($domains as $domain) { - if (!filter_var($domain, FILTER_VALIDATE_DOMAIN)) { - throw new InvalidDomainException("Invalid domain: {$domain}"); - } - - // Check domain ownership - if (!$this->verifyDomainOwnership($domain)) { - throw new DomainOwnershipException("Domain ownership verification failed: {$domain}"); - } - } - - return $domains; - } -} -``` - -## Environment Variable Security - -### Secure Configuration Management -```php -class EnvironmentVariable extends Model -{ - protected $fillable = [ - 'key', 'value', 'is_secret', 'application_id' - ]; - - protected $casts = [ - 'is_secret' => 'boolean', - 'value' => 'encrypted' // Automatic encryption for sensitive values - ]; - - public function setValueAttribute($value): void - { - // Automatically encrypt sensitive environment variables - if ($this->isSensitiveKey($this->key)) { - $this->attributes['value'] = encrypt($value); - $this->attributes['is_secret'] = true; - } else { - $this->attributes['value'] = $value; - } - } - - public function getValueAttribute($value): string - { - if ($this->is_secret) { - return decrypt($value); - } - - return $value; - } - - private function isSensitiveKey(string $key): bool - { - $sensitivePatterns = [ - 'PASSWORD', 'SECRET', 'KEY', 'TOKEN', 'API_KEY', - 'DATABASE_URL', 'REDIS_URL', 'PRIVATE', 'CREDENTIAL', - 'AUTH', 'CERTIFICATE', 'ENCRYPTION', 'SALT', 'HASH', - 'OAUTH', 'JWT', 'BEARER', 'ACCESS', 'REFRESH' - ]; - - foreach ($sensitivePatterns as $pattern) { - if (str_contains(strtoupper($key), $pattern)) { - return true; - } - } - - return false; - } -} -``` - -## Webhook Security - -### Webhook Signature Verification -```php -class WebhookSecurityService -{ - public function verifyGitHubSignature(Request $request, string $secret): bool - { - $signature = $request->header('X-Hub-Signature-256'); - - if (!$signature) { - return false; - } - - $expectedSignature = 'sha256=' . hash_hmac('sha256', $request->getContent(), $secret); - - return hash_equals($expectedSignature, $signature); - } - - public function verifyGitLabSignature(Request $request, string $secret): bool - { - $signature = $request->header('X-Gitlab-Token'); - - return hash_equals($secret, $signature); - } - - public function validateWebhookPayload(array $payload): array - { - // Sanitize and validate webhook payload - $validator = Validator::make($payload, [ - 'repository.clone_url' => 'required|url|starts_with:https://', - 'ref' => 'required|string|max:255', - 'head_commit.id' => 'required|string|size:40', // Git SHA - 'head_commit.message' => 'required|string|max:1000' - ]); - - if ($validator->fails()) { - throw new InvalidWebhookPayloadException('Invalid webhook payload'); - } - - return $validator->validated(); - } -} -``` - -## Input Sanitization & Validation - -### XSS Prevention -```php -class SecurityMiddleware -{ - public function handle(Request $request, Closure $next): Response - { - // Sanitize input data - $input = $request->all(); - $sanitized = $this->sanitizeInput($input); - $request->merge($sanitized); - - return $next($request); - } - - private function sanitizeInput(array $input): array - { - foreach ($input as $key => $value) { - if (is_string($value)) { - // Remove potentially dangerous HTML tags - $input[$key] = strip_tags($value, '


'); - - // Escape special characters - $input[$key] = htmlspecialchars($input[$key], ENT_QUOTES, 'UTF-8'); - } elseif (is_array($value)) { - $input[$key] = $this->sanitizeInput($value); - } - } - - return $input; - } -} -``` - -### SQL Injection Prevention -```php -// Always use parameterized queries and Eloquent ORM -class ApplicationRepository -{ - public function findByName(string $name): ?Application - { - // Safe: Uses parameter binding - return Application::where('name', $name)->first(); - } - - public function searchApplications(string $query): Collection - { - // Safe: Eloquent handles escaping - return Application::where('name', 'LIKE', "%{$query}%") - ->orWhere('description', 'LIKE', "%{$query}%") - ->get(); - } - - // NEVER do this - vulnerable to SQL injection - // public function unsafeSearch(string $query): Collection - // { - // return DB::select("SELECT * FROM applications WHERE name LIKE '%{$query}%'"); - // } -} -``` - -## Audit Logging & Monitoring - -### Activity Logging -```php -// Using Spatie Activity Log package -class Application extends Model -{ - use LogsActivity; - - protected static $logAttributes = [ - 'name', 'git_repository', 'git_branch', 'fqdn' - ]; - - protected static $logOnlyDirty = true; - - public function getDescriptionForEvent(string $eventName): string - { - return "Application {$this->name} was {$eventName}"; - } -} - -// Custom security events -class SecurityEventLogger -{ - public function logFailedLogin(string $email, string $ip): void - { - activity('security') - ->withProperties([ - 'email' => $email, - 'ip' => $ip, - 'user_agent' => request()->userAgent() - ]) - ->log('Failed login attempt'); - } - - public function logSuspiciousActivity(User $user, string $activity): void - { - activity('security') - ->causedBy($user) - ->withProperties([ - 'activity' => $activity, - 'ip' => request()->ip(), - 'timestamp' => now() - ]) - ->log('Suspicious activity detected'); - } -} -``` - -### Security Monitoring -```php -class SecurityMonitoringService -{ - public function detectAnomalousActivity(User $user): bool - { - // Check for unusual login patterns - $recentLogins = $user->activities() - ->where('description', 'like', '%login%') - ->where('created_at', '>=', now()->subHours(24)) - ->get(); - - // Multiple failed attempts - $failedAttempts = $recentLogins->where('description', 'Failed login attempt')->count(); - if ($failedAttempts > 5) { - $this->triggerSecurityAlert($user, 'Multiple failed login attempts'); - return true; - } - - // Login from new location - $uniqueIps = $recentLogins->pluck('properties.ip')->unique(); - if ($uniqueIps->count() > 3) { - $this->triggerSecurityAlert($user, 'Login from multiple IP addresses'); - return true; - } - - return false; - } - - private function triggerSecurityAlert(User $user, string $reason): void - { - // Send security notification - $user->notify(new SecurityAlertNotification($reason)); - - // Log security event - activity('security') - ->causedBy($user) - ->withProperties(['reason' => $reason]) - ->log('Security alert triggered'); - } -} -``` - -## Backup Security - -### Encrypted Backups -```php -class SecureBackupService -{ - public function createEncryptedBackup(ScheduledDatabaseBackup $backup): void - { - $database = $backup->database; - $dumpPath = $this->createDatabaseDump($database); - - // Encrypt backup file - $encryptedPath = $this->encryptFile($dumpPath, $backup->encryption_key); - - // Upload to secure storage - $this->uploadToSecureStorage($encryptedPath, $backup->s3Storage); - - // Clean up local files - unlink($dumpPath); - unlink($encryptedPath); - } - - private function encryptFile(string $filePath, string $key): string - { - $data = file_get_contents($filePath); - $encryptedData = encrypt($data, $key); - - $encryptedPath = $filePath . '.encrypted'; - file_put_contents($encryptedPath, $encryptedData); - - return $encryptedPath; - } -} -``` - -## Security Headers & CORS - -### Security Headers Configuration -```php -// Security headers middleware -class SecurityHeadersMiddleware -{ - public function handle(Request $request, Closure $next): Response - { - $response = $next($request); - - $response->headers->set('X-Content-Type-Options', 'nosniff'); - $response->headers->set('X-Frame-Options', 'DENY'); - $response->headers->set('X-XSS-Protection', '1; mode=block'); - $response->headers->set('Referrer-Policy', 'strict-origin-when-cross-origin'); - $response->headers->set('Permissions-Policy', 'geolocation=(), microphone=(), camera=()'); - - if ($request->secure()) { - $response->headers->set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains'); - } - - return $response; - } -} -``` - -### CORS Configuration -```php -// CORS configuration for API endpoints -return [ - 'paths' => ['api/*', 'webhooks/*'], - 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], - 'allowed_origins' => [ - 'https://app.coolify.io', - 'https://*.coolify.io' - ], - 'allowed_origins_patterns' => [], - 'allowed_headers' => ['*'], - 'exposed_headers' => [], - 'max_age' => 0, - 'supports_credentials' => true, -]; -``` - -## Security Testing - -### Security Test Patterns -```php -// Security-focused tests -test('prevents SQL injection in search', function () { - $user = User::factory()->create(); - $maliciousInput = "'; DROP TABLE applications; --"; - - $response = $this->actingAs($user) - ->getJson("/api/v1/applications?search={$maliciousInput}"); - - $response->assertStatus(200); - - // Verify applications table still exists - expect(Schema::hasTable('applications'))->toBeTrue(); -}); - -test('prevents XSS in application names', function () { - $user = User::factory()->create(); - $xssPayload = ''; - - $response = $this->actingAs($user) - ->postJson('/api/v1/applications', [ - 'name' => $xssPayload, - 'git_repository' => 'https://github.com/user/repo.git', - 'server_id' => Server::factory()->create()->id - ]); - - $response->assertStatus(422); -}); - -test('enforces team isolation', function () { - $user1 = User::factory()->create(); - $user2 = User::factory()->create(); - - $team1 = Team::factory()->create(); - $team2 = Team::factory()->create(); - - $user1->teams()->attach($team1); - $user2->teams()->attach($team2); - - $application = Application::factory()->create(['team_id' => $team1->id]); - - $response = $this->actingAs($user2) - ->getJson("/api/v1/applications/{$application->id}"); - - $response->assertStatus(403); -}); -``` diff --git a/.coolify-logo b/.coolify-logo deleted file mode 100644 index fe8daf698..000000000 --- a/.coolify-logo +++ /dev/null @@ -1,8 +0,0 @@ - _____ _ _ __ - / ____| | (_)/ _| - | | ___ ___ | |_| |_ _ _ - | | / _ \ / _ \| | | _| | | | - | |___| (_) | (_) | | | | | |_| | - \_____\___/ \___/|_|_|_| \__, | - __/ | - |___/ diff --git a/.cursor/mcp.json b/.cursor/mcp.json deleted file mode 100644 index 8c6715a15..000000000 --- a/.cursor/mcp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "mcpServers": { - "laravel-boost": { - "command": "php", - "args": [ - "artisan", - "boost:mcp" - ] - } - } -} \ No newline at end of file diff --git a/.cursor/rules/coolify-ai-docs.mdc b/.cursor/rules/coolify-ai-docs.mdc deleted file mode 100644 index d99cc1692..000000000 --- a/.cursor/rules/coolify-ai-docs.mdc +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Coolify AI Documentation -description: Master reference to all Coolify AI documentation in .ai/ directory -globs: **/* -alwaysApply: true ---- - -# Coolify AI Documentation - -All Coolify AI documentation has been consolidated in the **`.ai/`** directory for better organization and single source of truth. - -## Quick Start - -- **For Claude Code**: Start with `CLAUDE.md` in the root directory -- **For Cursor IDE**: Start with `.ai/README.md` for navigation -- **For All AI Tools**: Browse `.ai/` directory by topic - -## Documentation Structure - -All detailed documentation lives in `.ai/` with the following organization: - -### 📚 Core Documentation -- **[Technology Stack](.ai/core/technology-stack.md)** - All versions, packages, dependencies (SINGLE SOURCE OF TRUTH for versions) -- **[Project Overview](.ai/core/project-overview.md)** - What Coolify is, high-level architecture -- **[Application Architecture](.ai/core/application-architecture.md)** - System design, components, relationships -- **[Deployment Architecture](.ai/core/deployment-architecture.md)** - Deployment flows, Docker, proxies - -### 💻 Development -- **[Development Workflow](.ai/development/development-workflow.md)** - Dev setup, commands, daily workflows -- **[Testing Patterns](.ai/development/testing-patterns.md)** - How to write/run tests, Docker requirements -- **[Laravel Boost](.ai/development/laravel-boost.md)** - Laravel-specific guidelines (SINGLE SOURCE for Laravel Boost) - -### 🎨 Code Patterns -- **[Database Patterns](.ai/patterns/database-patterns.md)** - Eloquent, migrations, relationships -- **[Frontend Patterns](.ai/patterns/frontend-patterns.md)** - Livewire, Alpine.js, Tailwind CSS -- **[Security Patterns](.ai/patterns/security-patterns.md)** - Auth, authorization, security -- **[Form Components](.ai/patterns/form-components.md)** - Enhanced forms with authorization -- **[API & Routing](.ai/patterns/api-and-routing.md)** - API design, routing conventions - -### 📖 Meta -- **[Maintaining Docs](.ai/meta/maintaining-docs.md)** - How to update/improve documentation -- **[Sync Guide](.ai/meta/sync-guide.md)** - Keeping docs synchronized - -## Quick Decision Tree - -**What are you working on?** - -### Running Commands -→ `.ai/development/development-workflow.md` -- `npm run dev` / `npm run build` - Frontend -- `php artisan serve` / `php artisan migrate` - Backend -- `docker exec coolify php artisan test` - Feature tests (requires Docker) -- `./vendor/bin/pest tests/Unit` - Unit tests (no Docker needed) -- `./vendor/bin/pint` - Code formatting - -### Writing Tests -→ `.ai/development/testing-patterns.md` -- **Unit tests**: No database, use mocking, run outside Docker -- **Feature tests**: Can use database, MUST run inside Docker -- Critical: Docker execution requirements prevent database connection errors - -### Building UI -→ `.ai/patterns/frontend-patterns.md` + `.ai/patterns/form-components.md` -- Livewire 3.5.20 with server-side state -- Alpine.js for client interactions -- Tailwind CSS 4.1.4 styling -- Form components with `canGate` authorization - -### Database Work -→ `.ai/patterns/database-patterns.md` -- Eloquent ORM patterns -- Migration best practices -- Relationship definitions -- Query optimization - -### Security & Authorization -→ `.ai/patterns/security-patterns.md` + `.ai/patterns/form-components.md` -- Team-based access control -- Policy and gate patterns -- Form authorization (`canGate`, `canResource`) -- API security with Sanctum - -### Laravel-Specific -→ `.ai/development/laravel-boost.md` -- Laravel 12.4.1 patterns -- Livewire 3 best practices -- Pest testing patterns -- Laravel conventions - -### Version Numbers -→ `.ai/core/technology-stack.md` -- **SINGLE SOURCE OF TRUTH** for all version numbers -- Laravel 12.4.1, PHP 8.4.7, Tailwind 4.1.4, etc. -- Never duplicate versions - always reference this file - -## Critical Patterns (Always Follow) - -### Testing Commands -```bash -# Unit tests (no database, outside Docker) -./vendor/bin/pest tests/Unit - -# Feature tests (requires database, inside Docker) -docker exec coolify php artisan test -``` - -**NEVER** run Feature tests outside Docker - they will fail with database connection errors. - -### Form Authorization -ALWAYS include authorization on form components: -```blade - -``` - -### Livewire Components -MUST have exactly ONE root element. No exceptions. - -### Version Numbers -Use exact versions from `technology-stack.md`: -- ✅ Laravel 12.4.1 -- ❌ Laravel 12 or "v12" - -### Code Style -```bash -# Always run before committing -./vendor/bin/pint -``` - -## For AI Assistants - -### Important Notes -1. **Single Source of Truth**: Each piece of information exists in ONE location only -2. **Cross-Reference, Don't Duplicate**: Link to other files instead of copying content -3. **Version Precision**: Always use exact versions from `technology-stack.md` -4. **Docker for Feature Tests**: This is non-negotiable for database-dependent tests -5. **Form Authorization**: Security requirement, not optional - -### When to Use Which File -- **Quick commands**: `CLAUDE.md` or `development-workflow.md` -- **Detailed patterns**: Topic-specific files in `.ai/patterns/` -- **Testing**: `.ai/development/testing-patterns.md` -- **Laravel specifics**: `.ai/development/laravel-boost.md` -- **Versions**: `.ai/core/technology-stack.md` - -## Maintaining Documentation - -When updating documentation: -1. Read `.ai/meta/maintaining-docs.md` first -2. Follow single source of truth principle -3. Update cross-references when moving content -4. Test all links work -5. See `.ai/meta/sync-guide.md` for sync guidelines - -## Migration Note - -This file replaces all previous `.cursor/rules/*.mdc` files. All content has been migrated to `.ai/` directory for better organization and to serve as single source of truth for all AI tools (Claude Code, Cursor IDE, etc.). diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 6f3c903f0..000000000 --- a/.dockerignore +++ /dev/null @@ -1,38 +0,0 @@ -/.phpunit.cache -/node_modules -/public/build -/public/hot -/public/storage -/vendor -.env -.env.backup -.env.secrets -.phpunit.result.cache -Homestead.json -Homestead.yaml -auth.json -npm-debug.log -yarn-error.log -/.fleet -/.idea -/.vscode -/.npm -/.bash_history -/_data -.rnd -/.ssh -.ignition.json -.env.dusk.local -docker/coolify-realtime/node_modules - -/storage/*.key -/storage/app/backups -/storage/app/ssh/keys -/storage/app/ssh/mux -/storage/app/tmp -/storage/app/debugbar -/storage/logs -/storage/pail - - - diff --git a/.editorconfig b/.editorconfig index 8f0de65c5..a186cd207 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,5 +14,5 @@ trim_trailing_whitespace = false [*.{yml,yaml}] indent_size = 2 -[docker-compose.yml] +[compose.yaml] indent_size = 4 diff --git a/.env.development.example b/.env.development.example index d4daed4f7..d041aedb5 100644 --- a/.env.development.example +++ b/.env.development.example @@ -1,34 +1,22 @@ -# Coolify Configuration APP_ENV=local -APP_NAME="Coolify Development" -APP_ID=development -APP_KEY= +APP_DEBUG=true +APP_NAME=Coolify APP_URL=http://localhost APP_PORT=8000 -APP_DEBUG=true -SSH_MUX_ENABLED=true +APP_FORCE_HTTPS=false +APP_KEY= -# PostgreSQL Database Configuration -DB_DATABASE=coolify +DB_DATABASE=coolify-db DB_USERNAME=coolify -DB_PASSWORD=password +DB_PASSWORD=Password DB_HOST=host.docker.internal DB_PORT=5432 -# Ray Configuration -# Set to true to enable Ray -RAY_ENABLED=false -# Set custom ray port +REDIS_PASSWORD=Password + +RAY_ENABLED=true # RAY_PORT= -# Enable Laravel Telescope for debugging -TELESCOPE_ENABLED=false - -# Selenium Driver URL for Dusk -DUSK_DRIVER_URL=http://selenium:4444 - # Special Keys for Andras -# For cache purging BUNNY_API_KEY= -# For asset uploads BUNNY_STORAGE_API_KEY= diff --git a/.env.dusk.ci b/.env.dusk.ci deleted file mode 100644 index 9660de7b4..000000000 --- a/.env.dusk.ci +++ /dev/null @@ -1,15 +0,0 @@ -APP_ENV=production -APP_NAME="Coolify Staging" -APP_ID=development -APP_KEY= -APP_URL=http://localhost -APP_PORT=8000 -SSH_MUX_ENABLED=true - -# PostgreSQL Database Configuration -DB_DATABASE=coolify -DB_USERNAME=coolify -DB_PASSWORD=password -DB_HOST=localhost -DB_PORT=5432 - diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..c0660ea14 --- /dev/null +++ b/.env.example @@ -0,0 +1,65 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +# PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/.env.production b/.env.production deleted file mode 100644 index fe3c8370e..000000000 --- a/.env.production +++ /dev/null @@ -1,18 +0,0 @@ -APP_ID= -APP_NAME=Coolify -APP_KEY= - -DB_USERNAME=coolify -DB_PASSWORD= - -REDIS_PASSWORD= - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= - -ROOT_USERNAME= -ROOT_USER_EMAIL= -ROOT_USER_PASSWORD= - -REGISTRY_URL=ghcr.io diff --git a/.env.production.example b/.env.production.example new file mode 100644 index 000000000..697d75e42 --- /dev/null +++ b/.env.production.example @@ -0,0 +1,9 @@ +APP_NAME=Coolify +APP_URL= +APP_FORCE_HTTPS= +APP_KEY= + +DB_USERNAME= +DB_PASSWORD= + +REDIS_PASSWORD= diff --git a/.env.testing b/.env.testing new file mode 100644 index 000000000..5d07eeb65 --- /dev/null +++ b/.env.testing @@ -0,0 +1,14 @@ +APP_ENV=local +APP_DEBUG=true +APP_NAME="Coolify Development" +APP_URL=http://localhost +APP_PORT=8000 +APP_FORCE_HTTPS=false +APP_KEY= + +RAY_ENABLED=true +# RAY_PORT= + +# Special Keys for Andras +BUNNY_API_KEY= +BUNNY_STORAGE_API_KEY= diff --git a/.env.windows-docker-desktop.example b/.env.windows-docker-desktop.example deleted file mode 100644 index b067b4c5c..000000000 --- a/.env.windows-docker-desktop.example +++ /dev/null @@ -1,13 +0,0 @@ -IS_WINDOWS_DOCKER_DESKTOP=true - -APP_ID=coolify-windows-docker-desktop -APP_NAME=Coolify -APP_KEY=base64:ssTlCmrIE/q7whnKMvT6DwURikg69COzGsAwFVROm80= - -DB_USERNAME=coolify -DB_PASSWORD=coolify -REDIS_PASSWORD=coolify - -PUSHER_APP_ID=coolify -PUSHER_APP_KEY=coolify -PUSHER_APP_SECRET=coolify diff --git a/.gitattributes b/.gitattributes index c48a5898b..fcb21d396 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,4 +8,4 @@ /.github export-ignore CHANGELOG.md export-ignore -.styleci.yml export-ignore \ No newline at end of file +.styleci.yml export-ignore diff --git a/.github/FUNDING.yaml b/.github/FUNDING.yaml deleted file mode 100644 index 632a4655d..000000000 --- a/.github/FUNDING.yaml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: coollabsio -github: coollabsio diff --git a/.github/ISSUE_TEMPLATE/01_BUG_REPORT.yml b/.github/ISSUE_TEMPLATE/01_BUG_REPORT.yml deleted file mode 100644 index 42df4785e..000000000 --- a/.github/ISSUE_TEMPLATE/01_BUG_REPORT.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: 🐞 Bug Report -description: "File a new bug report." -title: "[Bug]: " -labels: ["🐛 Bug", "🔍 Triage"] -body: - - type: markdown - attributes: - value: | - > [!IMPORTANT] - > **Please ensure you are using the latest version of Coolify before submitting an issue, as the bug may have already been fixed in a recent update.** (Of course, if you're experiencing an issue on the latest version that wasn't present in a previous version, please let us know.) - - # 💎 Bounty Program (with [algora.io](https://console.algora.io/org/coollabsio/bounties/new)) - - If you would like to prioritize the issue resolution, consider adding a bounty to this issue through our [Bounty Program](https://console.algora.io/org/coollabsio/bounties/new). - - - type: textarea - attributes: - label: Error Message and Logs - description: Provide a detailed description of the error or exception you encountered, along with any relevant log output. - validations: - required: true - - - type: textarea - attributes: - label: Steps to Reproduce - description: Please provide a step-by-step guide to reproduce the issue. Be as detailed as possible, otherwise we may not be able to assist you. - value: | - 1. - 2. - 3. - 4. - validations: - required: true - - - type: input - attributes: - label: Example Repository URL - description: If applicable, provide a URL to a repository demonstrating the issue. - - - type: input - attributes: - label: Coolify Version - description: Please provide the Coolify version you are using. This can be found in the top left corner of your Coolify dashboard. - placeholder: "v4.0.0-beta.335" - validations: - required: true - - - type: dropdown - attributes: - label: Are you using Coolify Cloud? - options: - - "No (self-hosted)" - - "Yes (Coolify Cloud)" - validations: - required: true - - - type: input - attributes: - label: Operating System and Version (self-hosted) - description: Run `cat /etc/os-release` or `lsb_release -a` in your terminal and provide the operating system and version. - placeholder: "Ubuntu 22.04" - - - type: textarea - attributes: - label: Additional Information - description: Any other relevant details about the issue. diff --git a/.github/ISSUE_TEMPLATE/02_ENHANCEMENT_BOUNTY.yml b/.github/ISSUE_TEMPLATE/02_ENHANCEMENT_BOUNTY.yml deleted file mode 100644 index ef26125e0..000000000 --- a/.github/ISSUE_TEMPLATE/02_ENHANCEMENT_BOUNTY.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: 💎 Enhancement Bounty -description: "Propose a new feature, service, or improvement with an attached bounty." -title: "[Enhancement]: " -labels: ["✨ Enhancement", "🔍 Triage"] -body: - - type: markdown - attributes: - value: | - > [!IMPORTANT] - > **This issue template is exclusively for proposing new features, services, or improvements with an attached bounty.** Enhancements without a bounty can be discussed in the appropriate category of [Github Discussions](https://github.com/coollabsio/coolify/discussions). - - # 💎 Add a Bounty (with [algora.io](https://console.algora.io/org/coollabsio/bounties/new)) - - [Click here to add the required bounty](https://console.algora.io/org/coollabsio/bounties/new) - - - type: dropdown - attributes: - label: Request Type - description: Select the type of request you are making. - options: - - New Feature - - New Service - - Improvement - validations: - required: true - - - type: textarea - attributes: - label: Description - description: Provide a detailed description of the feature, improvement, or service you are proposing. - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 92c48e2d6..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,18 +0,0 @@ -blank_issues_enabled: false - -contact_links: - - name: 🤔 Questions and Community Support - url: https://coollabs.io/discord - about: If you have any questions, reach out to us on Discord inside the "#support" channel. - - - name: 💡 Feature Request - url: https://github.com/coollabsio/coolify/discussions/categories/feature-requests - about: Suggest a new feature for Coolify. - - - name: ⚙️ Service Request - url: https://github.com/coollabsio/coolify/discussions/categories/service-requests - about: Request a new service integration for Coolify. - - - name: 🔧 Improvements - url: https://github.com/coollabsio/coolify/discussions/categories/improvements - about: Suggest improvements to existing features for Coolify. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 5afe00a30..000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,13 +0,0 @@ -## Submit Checklist (REMOVE THIS SECTION BEFORE SUBMITTING) -- [ ] I have selected the `next` branch as the destination for my PR, not `main`. -- [ ] I have listed all changes in the `Changes` section. -- [ ] I have filled out the `Issues` section with the issue/discussion link(s) (if applicable). -- [ ] I have tested my changes. -- [ ] I have considered backwards compatibility. -- [ ] I have removed this checklist and any unused sections. - -## Changes -- - -## Issues -- fix # diff --git a/.github/workflows/chore-lock-closed-issues-discussions-and-prs.yml b/.github/workflows/chore-lock-closed-issues-discussions-and-prs.yml deleted file mode 100644 index 365842254..000000000 --- a/.github/workflows/chore-lock-closed-issues-discussions-and-prs.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Lock closed Issues, Discussions, and PRs - -on: - schedule: - - cron: '0 1 * * *' - -permissions: - issues: write - discussions: write - pull-requests: write - -jobs: - lock-threads: - runs-on: ubuntu-latest - steps: - - name: Lock threads after 30 days of inactivity - uses: dessant/lock-threads@v5 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - issue-inactive-days: '30' - discussion-inactive-days: '30' - pr-inactive-days: '30' diff --git a/.github/workflows/chore-manage-stale-issues-and-prs.yml b/.github/workflows/chore-manage-stale-issues-and-prs.yml deleted file mode 100644 index d61005549..000000000 --- a/.github/workflows/chore-manage-stale-issues-and-prs.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Manage Stale Issues and PRs - -on: - schedule: - - cron: '0 2 * * *' - -permissions: - issues: write - pull-requests: write - -jobs: - manage-stale: - runs-on: ubuntu-latest - steps: - - name: Manage stale issues and PRs - uses: actions/stale@v9 - id: stale - with: - stale-issue-message: 'This issue will be automatically closed in a few days if no response is received. Please provide an update with the requested information.' - stale-pr-message: 'This pull request requires attention. If no changes or response is received within the next few days, it will be automatically closed. Please update your PR or leave a comment with the requested information.' - close-issue-message: 'This issue has been automatically closed due to inactivity.' - close-pr-message: 'Thank you for your contribution. Due to inactivity, this PR was automatically closed. If you would like to continue working on this change in the future, feel free to reopen this PR or submit a new one.' - days-before-stale: 14 - days-before-close: 7 - stale-issue-label: '⏱︎ Stale' - stale-pr-label: '⏱︎ Stale' - only-labels: '💤 Waiting for feedback, 💤 Waiting for changes' - remove-stale-when-updated: true - operations-per-run: 100 - labels-to-remove-when-unstale: '⏱︎ Stale, 💤 Waiting for feedback, 💤 Waiting for changes' - close-issue-reason: 'not_planned' - exempt-all-milestones: false diff --git a/.github/workflows/chore-pr-comments.yml b/.github/workflows/chore-pr-comments.yml deleted file mode 100644 index 1d94bec81..000000000 --- a/.github/workflows/chore-pr-comments.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Add comment based on label -on: - pull_request_target: - types: - - labeled - -permissions: - pull-requests: write - -jobs: - add-comment: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - label: "⚙️ Service" - body: | - Hi @${{ github.event.pull_request.user.login }}! 👋 - - It appears to us that you are either adding a new service or making changes to an existing one. - We kindly ask you to also review and update the **Coolify Documentation** to include this new service or it's new configuration needs. - This will help ensure that our documentation remains accurate and up-to-date for all users. - - Coolify Docs Repository: https://github.com/coollabsio/coolify-docs - How to Contribute a new Service to the Docs: https://coolify.io/docs/get-started/contribute/service#adding-a-new-service-template-to-the-coolify-documentation - - label: "🛠️ Feature" - body: | - Hi @${{ github.event.pull_request.user.login }}! 👋 - - It appears to us that you are adding a new feature to Coolify. - We kindly ask you to also update the **Coolify Documentation** to include information about this new feature. - This will help ensure that our documentation remains accurate and up-to-date for all users. - - Coolify Docs Repository: https://github.com/coollabsio/coolify-docs - How to Contribute to the Docs: https://coolify.io/docs/get-started/contribute/documentation - # - label: "✨ Enhancement" - # body: | - # It appears to us that you are making an enhancement to Coolify. - # We kindly ask you to also review and update the Coolify Documentation to include information about this enhancement if applicable. - # This will help ensure that our documentation remains accurate and up-to-date for all users. - steps: - - name: Add comment - if: github.event.label.name == matrix.label - run: gh pr comment "$NUMBER" --body "$BODY" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - NUMBER: ${{ github.event.pull_request.number }} - BODY: ${{ matrix.body }} diff --git a/.github/workflows/chore-remove-labels-and-assignees-on-close.yml b/.github/workflows/chore-remove-labels-and-assignees-on-close.yml deleted file mode 100644 index 8ac199a08..000000000 --- a/.github/workflows/chore-remove-labels-and-assignees-on-close.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Remove Labels and Assignees on Issue Close - -on: - issues: - types: [closed] - pull_request: - types: [closed] - pull_request_target: - types: [closed] - -permissions: - issues: write - pull-requests: write - -jobs: - remove-labels-and-assignees: - runs-on: ubuntu-latest - steps: - - name: Remove labels and assignees - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const { owner, repo } = context.repo; - - async function processIssue(issueNumber, isFromPR = false, prBaseBranch = null) { - try { - if (isFromPR && prBaseBranch !== 'v4.x') { - return; - } - - const { data: currentLabels } = await github.rest.issues.listLabelsOnIssue({ - owner, - repo, - issue_number: issueNumber - }); - - const labelsToKeep = currentLabels - .filter(label => label.name === '⏱︎ Stale') - .map(label => label.name); - - await github.rest.issues.setLabels({ - owner, - repo, - issue_number: issueNumber, - labels: labelsToKeep - }); - - const { data: issue } = await github.rest.issues.get({ - owner, - repo, - issue_number: issueNumber - }); - - if (issue.assignees && issue.assignees.length > 0) { - await github.rest.issues.removeAssignees({ - owner, - repo, - issue_number: issueNumber, - assignees: issue.assignees.map(assignee => assignee.login) - }); - } - } catch (error) { - if (error.status !== 404) { - console.error(`Error processing issue ${issueNumber}:`, error); - } - } - } - - if (context.eventName === 'issues') { - await processIssue(context.payload.issue.number); - } - - if (context.eventName === 'pull_request' || context.eventName === 'pull_request_target') { - const pr = context.payload.pull_request; - await processIssue(pr.number); - if (pr.merged && pr.base.ref === 'v4.x' && pr.body) { - const issueReferences = pr.body.match(/#(\d+)/g); - if (issueReferences) { - for (const reference of issueReferences) { - const issueNumber = parseInt(reference.substring(1)); - await processIssue(issueNumber, true, pr.base.ref); - } - } - } - } diff --git a/.github/workflows/cleanup-ghcr-untagged.yml b/.github/workflows/cleanup-ghcr-untagged.yml deleted file mode 100644 index a86cedcb0..000000000 --- a/.github/workflows/cleanup-ghcr-untagged.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Cleanup Untagged GHCR Images - -on: - workflow_dispatch: - -permissions: - packages: write - -jobs: - cleanup-all-packages: - runs-on: ubuntu-latest - strategy: - matrix: - package: ['coolify', 'coolify-helper', 'coolify-realtime', 'coolify-testing-host'] - steps: - - name: Delete untagged ${{ matrix.package }} images - uses: actions/delete-package-versions@v5 - with: - package-name: ${{ matrix.package }} - package-type: 'container' - min-versions-to-keep: 0 - delete-only-untagged-versions: 'true' diff --git a/.github/workflows/coolify-helper-next.yml b/.github/workflows/coolify-helper-next.yml deleted file mode 100644 index fec54d54a..000000000 --- a/.github/workflows/coolify-helper-next.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: Coolify Helper Image Development - -on: - push: - branches: [ "next" ] - paths: - - .github/workflows/coolify-helper-next.yml - - docker/coolify-helper/Dockerfile - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify-helper" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getHelperVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/coolify-helper/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-${{ matrix.arch }} - labels: | - coolify.managed=true - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getHelperVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:next - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:next - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_DEV_RELEASE_CHANNEL }} - diff --git a/.github/workflows/coolify-helper.yml b/.github/workflows/coolify-helper.yml deleted file mode 100644 index 0c9996ec8..000000000 --- a/.github/workflows/coolify-helper.yml +++ /dev/null @@ -1,116 +0,0 @@ -name: Coolify Helper Image - -on: - push: - branches: [ "v4.x" ] - paths: - - .github/workflows/coolify-helper.yml - - docker/coolify-helper/Dockerfile - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify-helper" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getHelperVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/coolify-helper/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - labels: | - coolify.managed=true - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getHelperVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_PROD_RELEASE_CHANNEL }} - diff --git a/.github/workflows/coolify-production-build.yml b/.github/workflows/coolify-production-build.yml deleted file mode 100644 index 21871b103..000000000 --- a/.github/workflows/coolify-production-build.yml +++ /dev/null @@ -1,121 +0,0 @@ -name: Production Build (v4) - -on: - push: - branches: ["v4.x"] - paths-ignore: - - .github/workflows/coolify-helper.yml - - .github/workflows/coolify-helper-next.yml - - .github/workflows/coolify-realtime.yml - - .github/workflows/coolify-realtime-next.yml - - docker/coolify-helper/Dockerfile - - docker/coolify-realtime/Dockerfile - - docker/testing-host/Dockerfile - - templates/** - - CHANGELOG.md - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/production/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_PROD_RELEASE_CHANNEL }} diff --git a/.github/workflows/coolify-realtime-next.yml b/.github/workflows/coolify-realtime-next.yml deleted file mode 100644 index 7ab4dcc42..000000000 --- a/.github/workflows/coolify-realtime-next.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: Coolify Realtime Development - -on: - push: - branches: [ "next" ] - paths: - - .github/workflows/coolify-realtime-next.yml - - docker/coolify-realtime/Dockerfile - - docker/coolify-realtime/terminal-server.js - - docker/coolify-realtime/package.json - - docker/coolify-realtime/package-lock.json - - docker/coolify-realtime/soketi-entrypoint.sh - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify-realtime" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getRealtimeVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/coolify-realtime/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-${{ matrix.arch }} - labels: | - coolify.managed=true - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getRealtimeVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:next - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:next - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_DEV_RELEASE_CHANNEL }} diff --git a/.github/workflows/coolify-realtime.yml b/.github/workflows/coolify-realtime.yml deleted file mode 100644 index 5efe445c5..000000000 --- a/.github/workflows/coolify-realtime.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: Coolify Realtime - -on: - push: - branches: [ "v4.x" ] - paths: - - .github/workflows/coolify-realtime.yml - - docker/coolify-realtime/Dockerfile - - docker/coolify-realtime/terminal-server.js - - docker/coolify-realtime/package.json - - docker/coolify-realtime/package-lock.json - - docker/coolify-realtime/soketi-entrypoint.sh - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify-realtime" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getRealtimeVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/coolify-realtime/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-${{ matrix.arch }} - labels: | - coolify.managed=true - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Get Version - id: version - run: | - echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app php:8.2-alpine3.16 php bootstrap/getRealtimeVersion.php)"|xargs >> $GITHUB_OUTPUT - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_PROD_RELEASE_CHANNEL }} diff --git a/.github/workflows/coolify-staging-build.yml b/.github/workflows/coolify-staging-build.yml deleted file mode 100644 index 67b7b03e8..000000000 --- a/.github/workflows/coolify-staging-build.yml +++ /dev/null @@ -1,133 +0,0 @@ -name: Staging Build - -on: - push: - branches-ignore: - - v4.x - - v3.x - - '**v5.x**' - paths-ignore: - - .github/workflows/coolify-helper.yml - - .github/workflows/coolify-helper-next.yml - - .github/workflows/coolify-realtime.yml - - .github/workflows/coolify-realtime-next.yml - - docker/coolify-helper/Dockerfile - - docker/coolify-realtime/Dockerfile - - docker/testing-host/Dockerfile - - templates/** - - CHANGELOG.md - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Sanitize branch name for Docker tag - id: sanitize - run: | - # Replace slashes and other invalid characters with dashes - SANITIZED_NAME=$(echo "${{ github.ref_name }}" | sed 's/[\/]/-/g') - echo "tag=${SANITIZED_NAME}" >> $GITHUB_OUTPUT - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/production/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-${{ matrix.arch }} - cache-from: | - type=gha,scope=build-${{ matrix.arch }} - type=registry,ref=${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.arch }} - cache-to: type=gha,mode=max,scope=build-${{ matrix.arch }} - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Sanitize branch name for Docker tag - id: sanitize - run: | - # Replace slashes and other invalid characters with dashes - SANITIZED_NAME=$(echo "${{ github.ref_name }}" | sed 's/[\/]/-/g') - echo "tag=${SANITIZED_NAME}" >> $GITHUB_OUTPUT - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }} - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }} - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_DEV_RELEASE_CHANNEL }} diff --git a/.github/workflows/coolify-testing-host.yml b/.github/workflows/coolify-testing-host.yml deleted file mode 100644 index 24133887a..000000000 --- a/.github/workflows/coolify-testing-host.yml +++ /dev/null @@ -1,104 +0,0 @@ -name: Coolify Testing Host - -on: - push: - branches: [ "next" ] - paths: - - .github/workflows/coolify-testing-host.yml - - docker/testing-host/Dockerfile - -permissions: - contents: read - packages: write - -env: - GITHUB_REGISTRY: ghcr.io - DOCKER_REGISTRY: docker.io - IMAGE_NAME: "coollabsio/coolify-testing-host" - -jobs: - build-push: - strategy: - matrix: - include: - - arch: amd64 - platform: linux/amd64 - runner: ubuntu-24.04 - - arch: aarch64 - platform: linux/aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Build and Push Image (${{ matrix.arch }}) - uses: docker/build-push-action@v6 - with: - context: . - file: docker/testing-host/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-${{ matrix.arch }} - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-${{ matrix.arch }} - labels: | - coolify.managed=true - - merge-manifest: - runs-on: ubuntu-24.04 - needs: build-push - steps: - - uses: actions/checkout@v5 - with: - persist-credentials: false - - - uses: docker/setup-buildx-action@v3 - - - name: Login to ${{ env.GITHUB_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Login to ${{ env.DOCKER_REGISTRY }} - uses: docker/login-action@v3 - with: - registry: ${{ env.DOCKER_REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - - name: Create & publish manifest on ${{ env.GITHUB_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-amd64 \ - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-aarch64 \ - --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - name: Create & publish manifest on ${{ env.DOCKER_REGISTRY }} - run: | - docker buildx imagetools create \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-amd64 \ - ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest-aarch64 \ - --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest - - - uses: sarisia/actions-status-discord@v1 - if: always() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK_DEV_RELEASE_CHANNEL }} diff --git a/.github/workflows/generate-changelog.yml b/.github/workflows/generate-changelog.yml deleted file mode 100644 index 935a88721..000000000 --- a/.github/workflows/generate-changelog.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Generate Changelog - -on: - push: - branches: [ v4.x ] - workflow_dispatch: - -permissions: - contents: write - -jobs: - changelog: - name: Generate changelog - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Generate changelog - uses: orhun/git-cliff-action@v4 - with: - config: cliff.toml - args: --verbose - env: - OUTPUT: CHANGELOG.md - GITHUB_REPO: ${{ github.repository }} - - - name: Commit - run: | - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - git add CHANGELOG.md - git commit -m "docs: update changelog" - git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git v4.x diff --git a/.gitignore b/.gitignore index 935ea548e..5ac0f2a9c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,37 +4,21 @@ /public/hot /public/storage /storage/*.key +/storage/pail /vendor .env .env.backup -.env.secrets +.env.production +.phpactor.json .phpunit.result.cache Homestead.json Homestead.yaml -auth.json npm-debug.log yarn-error.log +/auth.json /.fleet /.idea +/.nova /.vscode -/.npm -/.bash_history -/_data -_testing_hosts/ -_volumes/ -.lesshst -psysh_history -.psql_history -_ide_helper.php -.gitignore -.phpstorm.meta.php -_ide_helper_models.php -.rnd -/.ssh -scripts/load-test/* -.ignition.json -.env.dusk.local -docker/coolify-realtime/node_modules +/.zed .DS_Store -CHANGELOG.md -/.workspaces diff --git a/.mcp.json b/.mcp.json deleted file mode 100644 index 8c6715a15..000000000 --- a/.mcp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "mcpServers": { - "laravel-boost": { - "command": "php", - "args": [ - "artisan", - "boost:mcp" - ] - } - } -} \ No newline at end of file diff --git a/.phpactor.json b/.phpactor.json deleted file mode 100644 index 4d42bbbc5..000000000 --- a/.phpactor.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "/phpactor.schema.json", - "language_server_phpstan.enabled": true -} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index b7c496e42..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,320 +0,0 @@ -# CLAUDE.md - -This file provides guidance to **Claude Code** (claude.ai/code) when working with code in this repository. - -> **Note for AI Assistants**: This file is specifically for Claude Code. All detailed documentation is in the `.ai/` directory. Both Claude Code and Cursor IDE use the same source files in `.ai/` for consistency. -> -> **Maintaining Instructions**: When updating AI instructions, see [.ai/meta/sync-guide.md](.ai/meta/sync-guide.md) and [.ai/meta/maintaining-docs.md](.ai/meta/maintaining-docs.md) for guidelines. - -## Project Overview - -Coolify is an open-source, self-hostable platform for deploying applications and managing servers - an alternative to Heroku/Netlify/Vercel. It's built with Laravel (PHP) and uses Docker for containerization. - -## Development Commands - -### Frontend Development -- `npm run dev` - Start Vite development server for frontend assets -- `npm run build` - Build frontend assets for production - -### Backend Development -Only run artisan commands inside "coolify" container when in development. -- `php artisan serve` - Start Laravel development server -- `php artisan migrate` - Run database migrations -- `php artisan queue:work` - Start queue worker for background jobs -- `php artisan horizon` - Start Laravel Horizon for queue monitoring -- `php artisan tinker` - Start interactive PHP REPL - -### Code Quality -- `./vendor/bin/pint` - Run Laravel Pint for code formatting -- `./vendor/bin/phpstan` - Run PHPStan for static analysis -- `./vendor/bin/pest tests/Unit` - Run unit tests only (no database, can run outside Docker) -- `./vendor/bin/pest` - Run ALL tests (includes Feature tests, may require database) - -### Running Tests -**IMPORTANT**: Tests that require database connections MUST be run inside the Docker container: -- **Inside Docker**: `docker exec coolify php artisan test` (for feature tests requiring database) -- **Outside Docker**: `./vendor/bin/pest tests/Unit` (for pure unit tests without database dependencies) -- Unit tests should use mocking and avoid database connections -- Feature tests that require database must be run in the `coolify` container - -## Architecture Overview - -### Technology Stack -- **Backend**: Laravel 12.4.1 (PHP 8.4.7) -- **Frontend**: Livewire 3.5.20 with Alpine.js and Tailwind CSS 4.1.4 -- **Database**: PostgreSQL 15 (primary), Redis 7 (cache/queues) -- **Real-time**: Soketi (WebSocket server) -- **Containerization**: Docker & Docker Compose -- **Queue Management**: Laravel Horizon 5.30.3 - -> **Note**: For complete version information and all dependencies, see [.ai/core/technology-stack.md](.ai/core/technology-stack.md) - -### Key Components - -#### Core Models -- `Application` - Deployed applications with Git integration (74KB, highly complex) -- `Server` - Remote servers managed by Coolify (46KB, complex) -- `Service` - Docker Compose services (58KB, complex) -- `Database` - Standalone database instances (PostgreSQL, MySQL, MongoDB, Redis, etc.) -- `Team` - Multi-tenancy support -- `Project` - Grouping of environments and resources -- `Environment` - Environment isolation (staging, production, etc.) - -#### Job System -- Uses Laravel Horizon for queue management -- Key jobs: `ApplicationDeploymentJob`, `ServerCheckJob`, `DatabaseBackupJob` -- `ServerManagerJob` and `ServerConnectionCheckJob` handle job scheduling - -#### Deployment Flow -1. Git webhook triggers deployment -2. `ApplicationDeploymentJob` handles build and deployment -3. Docker containers are managed on target servers -4. Proxy configuration (Nginx/Traefik) is updated - -#### Server Management -- SSH-based server communication via `ExecuteRemoteCommand` trait -- Docker installation and management -- Proxy configuration generation -- Resource monitoring and cleanup - -### Directory Structure -- `app/Actions/` - Domain-specific actions (Application, Database, Server, etc.) -- `app/Jobs/` - Background queue jobs -- `app/Livewire/` - Frontend components (full-stack with Livewire) -- `app/Models/` - Eloquent models -- `app/Rules/` - Custom validation rules -- `app/Http/Middleware/` - HTTP middleware -- `bootstrap/helpers/` - Helper functions for various domains -- `database/migrations/` - Database schema evolution -- `routes/` - Application routing (web.php, api.php, webhooks.php, channels.php) -- `resources/views/livewire/` - Livewire component views -- `tests/` - Pest tests (Feature and Unit) - -## Development Guidelines - -### Frontend Philosophy -Coolify uses a **server-side first** approach with minimal JavaScript: -- **Livewire** for server-side rendering with reactive components -- **Alpine.js** for lightweight client-side interactions -- **Tailwind CSS** for utility-first styling with dark mode support -- **Enhanced Form Components** with built-in authorization system -- Real-time updates via WebSocket without page refreshes - -### Form Authorization Pattern -**IMPORTANT**: When creating or editing forms, ALWAYS include authorization: - -#### For Form Components (Input, Select, Textarea, Checkbox, Button): -Use `canGate` and `canResource` attributes for automatic authorization: -```html - -... - -Save -``` - -#### For Modal Components: -Wrap with `@can` directives: -```html -@can('update', $resource) - ... - ... -@endcan -``` - -#### In Livewire Components: -Always add the `AuthorizesRequests` trait and check permissions: -```php -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; - -class MyComponent extends Component -{ - use AuthorizesRequests; - - public function mount() - { - $this->authorize('view', $this->resource); - } - - public function update() - { - $this->authorize('update', $this->resource); - // ... update logic - } -} -``` - -### Livewire Component Structure -- Components located in `app/Livewire/` -- Views in `resources/views/livewire/` -- State management handled on the server -- Use wire:model for two-way data binding -- Dispatch events for component communication -- **CRITICAL**: Livewire component views **MUST** have exactly ONE root element. ALL content must be contained within this single root element. Placing ANY elements (` - - - Networks - Fractal - - - - - - - \ No newline at end of file diff --git a/other/logos/glueops.webp b/other/logos/glueops.webp deleted file mode 100644 index d5acda999b9ead64addcf899fad51c1706798799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118280 zcmWhzV{|4u5Up+7cDLBtwr$&AZQHiFwQbw&);6|wU*C`X%ALs_Cg)_7B*nylW`Kdz zMTHd96gV_sfPjFIeikGo&^IKIpp1fqPA3o$@HZuy#O=4cwMg-`Wc-GN6Pc(=>bG30 zj?Z&cICNhebXvMZKYWIYY9B$XiB<~OtRlH&CBu?fCT=-z80pd!Y+QC}XA(;&Ne&od z5a}Fr?miSzE+&m+*Txj%C%4lEVarw2RnzzH#+4_0;#{QgWZr`OjQWU3+)AYdxV4dCFCpq)tQ%nAbnDo9|+XbK&j?`YXGy4KV8ajVj^ zd|tI|)>j$B0MQ3OkdL*N>c1`I+FrOUMJ9wWr#?vYa>#VfF%l?&pI8}57X5fZZKow+(;WOTD z-#yO&F0aRJbHYZzBFP&+aP(#i{QdXu)zr905SvNn!f#{~ll?y`RjWhb(rWhn2?=FH z3x&AmZq=Vgd&ysqNhD;u>m}ib5TJP)FUx;*&F#??Mf~hWB5bSpGkzCnSGz+3*XMGe zX!Cw7Z#%E+!R7PcEcD;xo$IWNwy~lpmb^Fe6Le&k836JAp1poMEJ%e$FpL#x#_oPl z2t}k-ndbYtD#|$^n~{;aWVd{b&_SnN%5vO2c+V0KcZj7x^vT;B%~x^u&D&%TB#k;} z0!ZgZ3ZC`0T=u-V*2j=Ve>^o125F4z{I0JY3XxpS+e|MpLVBO^Vc}5IA!W<`t0%&| zHu==Opm5w{Grhxc*>6zxnnkHfER?D9Jq$_!C;5HWs>RvHpnihLK!ufP>XrM46xv)V z#(d_5$t2~X_IF}Cef#UXCQay{=b_+`w4Jx;lH1=!5RTm z%NHlV;5@!#6PWSTHcz);LcPZ;uMq^Ji@S0~6=9=#Z0H=-TGaS43NRL$z{f?voDtUd zL}OH9V`BCyQOdHF6-jw}pPQrfRrRJs;pz2M((*_i)7lk<7faPpx+L!Peab5)u6Q~eSr`DQhD#U$ra@kmWa`{V+#clG7H?DOj9A~DP!JW?a_9`(q~>MxBT zbCPL4RmDc>lhG)3=&0`Uy)S($CmHxwYgU@;Uqziw#9nIB~!ZKQU=DFg-|1GGXnLw@WrKbfP*!Vt>RymR$%S@E=r z{H=sfZ22_xl5$5^;wc&bv6${-ZT3s=fmj?4SHAjtsA?hJuU6FN=yRA<*?6!rS4_n; z)!`dJnwdUNlkL{sGsUBI;%Ral?ym+Qz>|b-J+%?^a@n_>54rkt&G-H~-*hFHd*-y%AZ-{_ht$N0LQZjnja3A*^T1q`(@=&1yB zhN<85e6Nq7)7f1Shm|W|v5v65Jd%&pt+nN7jToA%et>^-=f4<*@Km`FynL4vY~mt2 zWP4*!l06TZ5lK4Yd>0rq9SDas?`J~z2`Bz3F1=>Y7$x2-r-UF`KHVr=OYwwddv91@ z$YE5C1x{oo#xK3V{AxTo-PkgEfm5nDYO8%dsv3)iR1PVw&~p`1Y4pQMlyQemoV(88 zw|A#%D1Jvqrgq|OV59$f&-jZXE=U9K4)BUa%(ypC^Iu|*sYjaka}YD;CL|tq_1=r~ zHd&yZ9wPmvZ^$U}J)DNS_5vwB9iiQ*VxsbGL4qf0E5@!aH*0NofFrTr7dPV`Z>TN; zBVJv@f>Y?ZH{5~JYEbptSDLxuDurTTo`ug$_#rP{JI4WfW+pHDAMwRoXoOhHP5fDR zC!zc?BFeQ+LMaJoFCDCyNBqcvpP<{ zGbs$guct}XQ9UG(@9Ao!;?D4R6osbwA%$OHQNAicgyFp`gU~z7_tJ{F&Qlhpz$(Uu zQJ#&r2h%uyrG`dYm9|Zfl0a?2;mlW#EJs?wsH>E)zWk3QfoIe`|IQ0hdyUR$SB?v!FJ5$>XeI%i zW=+znVIV5h5eGTk0ECTQ<3mp5@S4mVi}HHeh&4Y96}+f?S`6B` zjAM{}oG_&TS$7XDdW^&>naR9?MMn7%l@Ukrk(mUmKi+6C*dr;&Fk_<1+d=}?GteU2 zbBM!m#zY*80+4|jb5=7kkYLNnCg*P4#Cxgak%1UPokI^Rerr$>Fz^Smm`QqBRgblt z{8Nxej@PL8_D+HNj}o8)G3Gp=5+t!J7>AmNTLGqMsP{&=sFEQOoD56Br2N)}5`{hD zy)P#8QOpe~q3V)d%|(C1LGp6aj@%k!})Pp znkui5scniw_Z$#AD!~nja&?gCFq_nI1k2hhz@Q>d_%LKfq^VmEq#LK$L>Bq#xQB11fkI9eSvIAABSs}Cg( z#b`i46?=asRrr~l(V)fGa_L02O5U7$=)-4P(k326K7ZkW*x0|%u&MsOH7R2X<~ig# z|KoXe&|I0D%tr$&AAbwGoDd{SbUV|sV{!qprA7ZScZRo&nc346)3~gOuc$s60JQZl z(D!gtmIjEZa`su2E1>7ucmN*oRa{>7@D_$o0(1!J{CJ?Cj8t$`@8P-UI}DDFci*RP z`sPm__jdsH-wsuIk=4k4jqA%!xZ8(k0!t*6;;!dn8REGcw8Fn})VOySU`AJpJ+Kp( z-{+LmUtQg(Uu>rI%V7)Ha!AEhe^eg)uPtEusg^T51-G5_*+l54XY-_uvC6r#HPYx~ufPH* zay}aQK!f1Ey41Ab-%vxV5g~SznsO#(BR#~{^kP`!rSejT084yZmq%d}F0~5woa5dyypxPe%RhdXmy-yLY=!TXXdY{=pbr0A{IzO#rO57{-9~EAxt$O+-L~B>iEen;E z^{L+{lD*&rd%QU6W30?{q6X3kI@sWFH-?XXOn*}cLXqdZ-!EA~S)L~a>aWzfpH{i7 zdrP;Zn;U`E%XI67P`O%`V?t=A{rjy1(zx|B-vKQ7<6p>WvboJu=rT0fLVeK;CxC0d zt5*vgKqs-(TL zZ^F{ptgDLcC(?e|n;Oe9N#^Z}L1!7G2Lf3~r^$A4T_4LWu)n2KzV~S-c)m9FF~!-Wosg0K zm837Jff8ijZC-lZA5Ul9f1n;fG}j_i1|dl2_&r)hKP!%lSbG4owOyt$pjdQND^(*1 zkMJ`4TzCDC_jO$e0@W%NL9GLk_2iY;cJQn8z-SJ(LYz+5gQoK$9nmSx-1nI`OHCjS zDR2MsY31%4SX}``$xGkrpf=K-Auerpi2|TC-dA3lM5LEq8#pQCsTXlPoov7~zD8ua zYKYz2i#S(a=&b&@$tpwB`CkP+SNs*^cS<*W3W*#s=~lu16HpRr&6^ppx{+?kyQrXi z_OCPB06Uw9Qk*4umUO!I)V`wBUA-l_PiT$#3uPIqYkm2F1oTcp+MZ4V#M-d^LQj=+ z34Pv7{SKp&_~Ft4QUgATV#l)y*x55f$3%wOs_ePd^_K<`B_que#3M^*drA|0bK~KG zm4PfC^I0f`fflB66pv~t{wiS%aFx-?TvTShuN6z9(sPm80_o?KfiB(7Q(PsmdqqYB zdH3lu%+9PWS=}!RS@t(J0Utf~S}Q!U7`o3U8V$UprPxnxOFo>KE*0CRKbKM7aDa=|+PJ`*`r0fbfs zCt(x@8FY`E;=*vPLm5g7MW$K`Z;~h)R7s&($w-qo_EM_bK{)B}DsURKtGave^g1@b zi>?{rc|CobVE?2hVWx$wq^wY=Ovz*2Jt!bz|4BPIK@UylN=ug)h833En$rTIJsvB& z7lM9PWy{ggH!go)S%Qc%TRnVGpy^q3u}Z+OGR-UTH*LJyz91G+7tfNp^Y#lzpRNVN zn0e|qw;bDzd7@C>YQ*}hIV%=e!qWap1&{rWXT-p}4_zJY=vwDaQT<(95Xg-xTT&i_ zwNM7R(f8IqEaq2^7V|6R%`^;!cTODy)4FPrh2^^jnpiT?@r@)%-J_JI~ z&WMDKBdnn6kG)VIO~*Or_1tY7WhpZD1uXte9H3u_YY$XjVz<_@RB_W2PV>1;wNHs_ zPgh>z(A5}+Wc*vzC@1%o_~5G?MMGw^R}~HB{66tZlD(6Kgr?o|^VqiI;gs9pmUr+P zpV#xU2$fPU`)%R!o6C7&C<1jfhJe>6JWj3R35@<^RpRy00(&xl= z9Kf5X8UNQG_ySUPT@!NKmMq zzA`rJ>b)G@X(8mvQq(wptSS$v+|f>T`&`A&Hq&NjkD-rTnvx`sTCg<}N1iS6*a?6uP|P)3OhL&!@$W8X)oV zulj+Dg$a)hrZOGsGjlj1)HMfPi~!5l`F?6`MJxK&T3=*lKj4O5>xy?l?cBjbwf^bJ1I1@4Z) z@O0HzafcAt*V0Q6oFoO;SIWI>jx^oLB%KS17vjHr0s0p-^XxGdUR-E1@QMBVf7#f1 z$Lw4YI5{izYTr-3oKBqrB5f|mdDb}NG5M_Ia)j$m*VF+^PCaeo9nZUJyzp1VC7jJ9H0!#}D<}6F3w_Xm;E*Zx~OI`vnO~ zxitqcnY%}j1$>UsV=PWrtiNX(k})D5u8a8ZF(3eE47`UZ|gP_J#8(( z3}#RAu_{W(_3|?*zWKR%1qBjZ$q{X0>rEcA?=Y2DVGPkfsimJuMYYOU?EwLuY2u)X zccMahJ-L$z(rvA`R$-8Jov>vfDYn0TmW!aYV+8%%v;`Z;Bkhqy+4$T~E+Gox| zvYd~_yzWARJAoKOg1~RophR$``*bw<+5T9t=OZrc6@U(m3L=9FyROp;X~9rO(O~wp z`hWZNue})fQL`aRuqb6yIi7?BnVQS2J+|w7;Ca<&>1J~RJ5(IOb|pwJs$BG#n=8Zr z8y705*CWEef+gjtEq8mO(9DM!DOKF&10k|1&Qf{%f%g`SwXUEbNoP2_N~16=zv8SK zj^vyK)?AdN;fjNhF?H4&qtr?;qo$h!&2y0WwyGt`O%=0|S9Q4aVKF2>n8Bx? zv+L{0x=^+&3uBRJTRtrtg;pusN2JTpS@)=?cjg#FgOvjtkqM!(kn^tfw}vGvKc|QZ zGylKL{hjI4X1L4 zx#>pYc233|^9+Bdf9kr4w-x`~BUE*TUOw+at7NOXxKYe_5{rCR3?bry2hv>WNHdY? zo+1EDGW9gm-^@DY**U8EFi|!f%A%xP^(2_OeEC%go3~dok!HLlM?w$ye#K54#s3^Z z*N_m@Y$Xi;XOtL*e!Y2%k} zo2}7gy`}1fQk-X3Nep8QYE`-VqDktEHX1k3IzNWuxC;y0n(&TXjCIy?v>L9`l!=2Wor>V{%3#6a2LT;$DcrPSaT}gN;*pp1wdE3`|yoT9CfC zN~#lOI<&<%F5u9pKkAPetl?55MSN$rk+2jcdV7kChS3f_X~7~wAPGd@>g-ejj3@l9 zrs}IBDM1ft+RchpN+-ek$c#mS{jqF{v%3IRZZmliZ7?QT4TvPykBeFcId{8Kn5US7 z*6An)wDa#87ae0i6WI^9+{aeVL6rWwXMl(d8YFG%7gyTE#PuIoC6qsIG-(`f5-@G$*n(y z=OgL<1~TkGRT3aP_1RR9W(PIPP>~KsfbN^DbTR=cST_oz4D%wig1zt6Xkss!!Qk9>E@FJu2u<$L**Gh z4vH2mYo;72G6?-&zr0mvIfva&kwIIE5)RW)mnbz^wt^R>ipVdh0QC0L4?SHaqdcim z2f80xJNjF;hQS75At^#!<|E5)aKr-Gcmb>XJ;3 z+aAG2YpDx;1?HN{C_jBBLPf*~3X*nziK$FM$x@I#6!0UrfLfHj7icgviY~%oE;{8y zD~Okn>8BsLrzZs(lHSckuA|VUq9WoXfz0yYy(5GoViOcsiS<>&YH<2l6oW?qHA4S~ zYM>uxImpLWNMbYE1rAXehe~CZ_Yww?^2yj4AsQcw0222x{4X`8Xc^1=xz_F^JcQG4vl2zTKXc#eUXrH{TYjNN8W{@$ z#JukgCRjvW3l-tP$jE=v9aKD-aR+CTA)x9Fd>dXdZMw_%C6H-{y09e&#H#Hl znc!sqSK0#3{OQR9f}X$;$s&An{w6X;bk$0Qm0KDh^yt99ehG`9kpvPPgih1>HUSdq zGbb3iXC(z1?EYF$)o6bjW+}i?FXVYtpAHjWm}tFZy;f)Vi8GE&A~^H{7inmNLq+FZ z)-bN#hQOr)bT$N2|MEEj98tbqxT759x8=6yDJCZNci6{Tud_^)1Q~Q+Z+!5U9Ujed zwTY-yuWk?ooi>Q1PUt2Sp%@Pt{>Ja9Z1K0W588K?mg_;Dx@S9>|2bib;aV01)Y&xw zyK?Q9JVZIvkJrxB ze=IYad3gD*Cx6s(;Yc$IIj%X^9`64qiT|z0M2D~zKgn=&a<3GZhKMc{$#U=Kdw$RV z!P0Xb_I(T5mF@Tbu+shJvXTUeH|W4=FtqX>=E?J}ZPgwwRUl$^jM#Iu`UPtrx$L)7 z>sH3|F09TRjj%Sy+v;(8m2ax`T5JSGsTSF)_xa%4oO5H8+a6#Dpxv+Diri+fl701$ zBo=Ae@}1u@uHsrBo~9pR;{Lf^xY|Zm6Ck^e3RMuOhu;H!T@~x)oG0>858razjDer5 zcyW~j%Dn}^6DHmRbUxFV4Nuyw@;sRF5J_v=3ggO>^cC1d2|VPHZsh-5)2SP0APzp% z8Q#Z$e&V@I(O}X_M?HhJ?=JM@>`PPweBm|*Lv52*VP)IL0KfvK<3Z10+FwjvsCbqg zg8fWKbOj7?8TJO0t+~n)uEnYD0_*y_%1C5emj;i7Y0@u~`j24c%deuvItWX~ zkO#nEPsB297vS_?<6+(m^zDX+#nHI)5}w4Voxqv;3p3^^aGR#6Fc$+S*geNpvw7?1 z)}vjvk-o&|MrB;m=>=y93lXt(s{6L>jZ`I92r@q8$rVD z!Ql4RKK615mec-MeX zuLXEod{64NdaK5$BcVMpM>8zvxO6+uA^zpg5BhLNEq|=XZIZ~;**GRbk#%$`UFqDSkvP9qlp)!11s+!le&32Emfnc2Kq1fjN zF7U++&_5Xlkq!knj$(584fiUAW|JBOT(8n*nBU1XdrQ!!w@cQC(9!gnAW3cPFW$?3wI#UzEa3?jD|%P>REg9J($#lRZs76QSr z`LwkyV|eYy9TOb@i^>ILnmV+0>d1h$t|4{`2+_5fd<#)B{Mv=N%Whx9Gt+Da{Tsy1 zLUfH0PlEAba#6R4apn#8I&;bFnk3^XO^>N)*oJyJ`iW572l9QoYFX7UH{oG05|qdZ zQC({R=k?1UmWWIgZp{f`OIdx+Pd(5`)`x*!x%< z;b8#CD6&6X37rN`_mA}{J=*6A{ z3>=3~mYiDgr{N(BH9XLpdRe+*g5NxH%Dx(eAtdqyseqCJQ5@pR^3vn^mie3?VVm3y z0bn^N%<5B?6TX-g=u{ugKCnN5-m)HhV|OMzl!PoBSeua=LQrGJ{&U`VkR zhM)g!3YO9DcF)h}dl)k}`y-6Iw)fCH$rbyzS&$(p4s4DGO0QD<#*a#kC$VB^_R|y> z17#ajHxwZ>7b0SaY`{u}`sP>MYT2}QS7AlTVekk_b2DqT#>drz8$svE8?5}ASCZhP zAtm0b_iv}{WC$Qw0=IPiy^=x_8ldNazG`sl!u)tJxKoV)yX7v#Z{Nw1(JR(J;%gaV z1bI<9<^oL4=_a1w+CEtzZE0)dcCut=`Tp@POy!3bXG@g!eBb^tZ>yMG!|`@$3BtUK zLFsxi-@gPF9GoxfD{|+kse}efCfo`wXT-ldTxR#WE4jN_w}jgfaiBVCBhJv}bV`hV zuomFI!f)XMbmZqLlLPX+>88l@)@6i*Y1beZEe?H^`*Dq0gLv zJ&UVRyu+xd$aJ^`3KLtOr~9FUQ6paa!ak@$(S~2qL~sU>-_RpaQ>DSz2MrIMEY;{ErQi+=U%~puhzZodFW| z*X})rV9)cPJa;7l0y~iNrD{yBa^OI$i0l!qXqr(tks=o2KVuA*!+jzd7ZO`CoT$aX zefyT|%2n6)bHogD1U4wY)!|QX@#Xrdj5@XJoIPSrTp$h`+%7>Ve`^!2#l#-&{JscPa#;Ky$;)e1Ou73Y_TwTj4JO z+bUBb3Q{pYgiCV()b?&=katLO`yQ(n5-!X7{*X))Wl`Ec1rz9ELAI-1=-L~2RsRBym zd-++b^9ANaTJKN=G@u=EL*`E?WI+&kpZgDMZHxh+28=zLY8(GRC9;_mq6lG?g|zMC zL#kqKdy>|lBuMK-y{B2TE{TKy!eV^k`8QC9jqnVNJ0j~?B(HwNr?PjGSNH-M3pz3 zuBIwZ&mw>g)VFr#kBJHUD}PWczDWz0gaIY&kVy8uI4LQpPL@unCnXgzim*OQbwj3T z&kY!f$+r$#PZlE)7*7Hv(P#%+JyIkdNhI^16-$QKsS9{JuFQq8(&Hzl3>b)i1X$MY z{o9is5fE2s zJv=oNgZg}kQ1$3y4nex1Y-vbWj5=P$&}@2_?D}TLhEEYaAn2BeRZQ3<;O2NZJwK7~ z5E~z(d!rNoZYk7ACqW zMG+aJha1}}t~VS)F$PR79{xE<-t%@uXby^P4$b~Pt$slcvcPmlBi&KGA)}PVfJj@+ z)wjIzNB2oGbO*UxDH_nI5JLg_U}Jx#3h7$hg#tG(cBc*qoi?vipAIt!B1;3IJ19Hy ze+ve`Zu0-D8X zME-*NR4Y$37m~)8n~&A4<1iJmi+r~^!kU5tHYwM{&8!BC&U89Q6I=>QqH zdcv6mteFw8Cy4+Qn;J`&oj%Xo;#e?PJ%Vr;!_gX-p?u}=>J+p~Kkgiwy95IvM&9#< zfFak`!l9wKz0ot*Pr-k6;sb@hs`|_EuX$S3omF2}=*g5o0}@33zemghViMoq*&4`% z-{oudD=%bsy>lr%b}aS~9usNS5?zisKZ$QR&jMXbh(}NQfjPj5m9R*;>{2XBr{+Oa zek&w>f6V9i+J&-TJ?>2L6Qct2l-k}oCA`UyAoLSL{ndaKen<}k&_~!b%X=t#bzP)e zPfv_lY>49wIJvoXj%3kD4aaqG0KOSCKM5fm`thdxROYyboh$OKXXU9P{Gh)U76NE& zs$4mG0CL)AhdLy7hQCMO$|J7Fbs#K!TxaB-phGr zHDms}fw|Wcjwx*SKRQzqfvv@brJkWDWS~*t05lLSE-WMjF&!V{n^>ledp)~w1w&7H zqZyv!RBWgVTqQZ?NMaFAoI!}rpl{;SO{z=4& z&g6=W%fMG!IT#u3=qw&wvukHG5YH$~C2EoJr#!b<7@lrP-1`$>W;b0R0RBXd#zkd$ zJq+)cii4EBa!U@C(9qzGLO+w_!r<*+B@|Ld zra(uQxt*biAVprjaX-0<0!N#aj+*)WP>>aO@8jDUrNpk3);*S9v?eyH_a|unb%xDl z<`4)aODt0(QkVbXrBNs$Qx?IWLtThv@m%rjB@zspsUsqXP1D6Z=N++wO;Ztamhp$q zQ!NS)BB%ucnuJ7Sj<-q9=@NdlroF;wc;WJSW2`jqBXWWknWlq!+a*CgByxD*flh77 z-z9i(jvWLw1`5NbyMdUPIjFaNca*3&?U*dn2cLoXcL@12awB-|!xos*Lpl1x*u)%* z3ml{%C8yy4c_6s@M-vV3Ff#v6vN*HE7Jmy#Y3`@b1S2xdrtYH4S-M-2TYsTxL!IZq zM4|aS^ND~1P2Uh{Ah`LJVz}+DM_#KDQdK86GE40+`eB9lqDf=Pc|jJK>?0jUu{p0W zM6sw`K!7totpW+EcblWk-q<+33_I^qY`R;GD9o%#`K<}j75d$sJ^jqqzzlu@ss2bf2L=2-{B6k^6$F$nKbh+ARE0;zqf5AlEr81hJDcuYpHsw4UTs=?Sc;(qIwei>NW9oD}LR!3=So@M2J_YP+Y&4zEB~`OU1|1x4 z!%uA0RCojfor(YGAj2|n6&s-1Jt)x9K7KH*M>qPF-pM!dq|Yy!1TcQRW2aBiC7)~3 zNz59Vo?_=JxCg>z!y1xv*Y9F-r=zuc;s4o$4YH-s*D zhKtgCst7AQTlXtS*(UucI0doZU=kg0gy!nbYy@K_-;ibXC{LOvx;m0hYtMJ|+YBNq zBSeWeDFi#+d@P`827?KHSkqw~dilHBZXwNp#!S{F)8Yx-S1&RZ5>`Be&c1h#-z<3v zLQ2*X1J)`rWsf7UF^36XlhLzS~dG#;q7-%Szlge4q+vU zx#I&k>E`8);fuq}y!dptm$yVzHt#w^tlj_G2Fa=%@m}e5@=R*FUYqiE1Z3FBtWL2p zObpc25CXZjI7`bpU^^h+Rlg6FnRM-=-O`Pdy715!oKm)=r&50FfA&uqFgGe#3((6z z97@vQiKHI~SHPI}w|sZI6D$9AE8K#sx}&_)X)CE5zjNeI%OGDDs3LI zSV2u|)W3pJ>TvAd3C-R=s7g$qW)8=!zU@7}V@DL45rOmLCCX#uStq7R&e9sxsN@+e zLw)-XvBS=nJigqLm&wFfkZ@ppiSR(r(0-4V@oGq41YfTv8`sC_lRt3ka&VtgOn0E5 zTu^XCWW+~5S#HkK`8c*m&2izI)sFs1e^i~nFYUuCy%(IReu7nVp88K(ZT|LI^79WJ(DQ$*&%nVT&{PMYEPl>x;7BJqhKS&};CLJ9@ zsCW48jCakY$vc*N4I^{a7!N<eoyg{^Y}?W zU+8F`G4FI`rB?#1ep`+`_2pwVFgOS(MB!)k}m*96Ugk?Sgn_oZr#dj1BMtW<2)QexTor!@!=4=<`P)1J97= zhM)jwM=EQ##PdKbOv8tt9loUBX$6Ps+w5uwX7059AT=E5+u&MwhsT?=*Z3f4vaB=Z z9%o5^t95kzK#1iBf#ik)Nk|Yp$^eFo_%?)~pZrU|G7isteWT`X2Me~z*Bm>5i9ui^ z{W;T?N}9OS`5-Fw$+DzX5lF<9&1kjFeU zSt8Vs2`r=2Y+vM9AH|0}O09M)>wJ)Uxa3*F&&f{ua}Iwk5K--(JbH|GkAqDIoOhcG z60y-bQ=QD`*9j=7@apMi*{){|GR~ZLU$+yXmzZ&1?JZt}{18!>^p{h2aP$-EXYTOa z+d!FpZ0u?AwC)r5C{Di_$1Tw?*-cXieoZ>h`Qc>n0cJ@M5#Ya921mh+w*?uB7|2qB zHCraJcpzwSFVcC9H+B9dZgtDF-2~!^T?j!`!kJ~%B=SMhOwwj?*RYM19Hi0^qAq36 zCwD?I$b3w=rWRE-%?9+$?#t#Nta372Z~&6iphxJ(wPRos~ZFJ(9X0Jsi>X&u)xIrc7%n0EQP~i;|^P z!6$vVh!dsLeMWY+!vqAS4yMUfR5N7&BbM<5)t`V!`;aA#{3EzCp4)vY^uvAwzGrnb z3{w7I6wd>JXCWY+WxD3pSmj@o;x>6#IlVZt&f2cY0N$c%=t&>`qb&AaT^?mn>D9+v z>w{m+YsS8}(#h{BX5FJCs@^3g#$Ztuz9(vPLK_+6=qAJNoNf$vB%)KXO( zeTeA>T^{MUu#7ZG-L>8QU!yMQd(3n9Vohg8Sw#+}DtqTvy$zrHT}!(IBadfzi=rq5 zpi#Mw>GYEC3DyTo@Lf{Ns$-Hdu$Ei#F0rNwd{EnX#94HocOEPjQllY!rek4K!)TZ- zc3fPe4bea5euh_&(2H#A42$FPO1Yo@ysaGguH`?M?KE=xg z2W}#JOm2?af9f-caqJXr{M}#O{xEVQd_=(xUXNqdO#}C9LYC|#D@DLkD z2DJu!DNi0+xFl#7SxB9@$LldN*DC3xyNf|6k8Su*jQ%?w>E`o=$Kjjb<#*Nk9|E77Bv(lHN#31=yAde%1FY?#$Ci6O}tY;Nnu(UMvNYO3wDIMPUF z5iBt5FSuu@&w?}ZmO}8|H(eu(Za`>m#52*U%i7p052pfm%6*fqPJZb_&Xhe4F%91` z80?WYa0*`2?VrDR>-W}wl|hVoR>MN)a^?uRW8OO1I}f~q-#ya0KH+-(nHQaU84iJq z<4q?%(#`iS~>xpJ2g+Oy~{gC&|n}0z( zk3ZAGO!RabfZNmUON?;6@2|&dce7BtK4)Rit#F>YtAORcy)=oO?(|=MM_MF4Lvjmq zh9Nkhtfn#HgkX^2@sEtKSTKltgQVfJMd01d7UZf z&OX>|MeM8aD^Epyo!*fcl#tn`Kn@soWPK{6TtB`yN{-e&N-(ctZX{aH!SF(vf}6F> zU%ew8)^?GDhi`dM+on9sFDAD!o1m z7W-vwc)Waae=4AYPcODo)VN#Zz?f@X<0sqr+&Qr5uqiWuTU5s`nsW}xLuFMZsg;|5 zYC`;^zkhd6%uHYc*)Gn{{ua5DZjo4;je+dt_RwU>-bluuSQHPRwNdOnJSm$d@lxbm zX#ZXrGDs8=X^_$<|IS&3P4*T!P5CN41Dhjn#VsBW?%LYqrLdKxH!Mr|TcJ&xGNS@O z47xKo(O(`#8m(8wT7v-dRaWMA`k5^yrAZAiJlKFb34BFF3i`b;x~RxzFa2Hjl}01M zUf9O;7~}q?-mwlV?-Z&UURkDHpwE7pg=DWCBc(54J#3R$qFt2=^^bc@*wsR6slDZPN^zfsB?^al?6Qgb1R4*1q<`yrQ zsRu~%?GR%b=KT1Svru6)jsjUAg7~v zKL;?R0W#)dFk~Jj5GO3>)g`?{IE`N+ANZ<^VlN?AY89FBQuJTnxOyQ=Az(MQUpXT- zTu0w(^0%;FY*i$sOx5}l?(h%{HeDUoMltEeoOgb01%GMr7AvKU1NEoeBQP)_ZtVV9 zkg8pfr9p!0-&~>3M6o)YExyekf=9waZ*TLXz^%oj5X4nx>^#G$M^z@X7yEkiN5Z1s z*#A=ieL{%@nojB(xKbfC)yjTp&uadO8pvWy3S8O+w;Upj-ZkpLJK#*pf#x!0*Be4_ zZ=e%S{ZZMQKsD)tN9bQ1O#)hhqf;Yl#m`ZOZ`F$yfT@!Q5fgf3M`>tgqSI3{eS_-92aWnqBFMv4W~knrDF4a&c)G-fn$& zUp_6~UUTcV+>XmL7&RSwnW-&XRS34F1 z3Eisa@C_*XH?f7pO+m7Bun@1i1~jbd?#ZuQB6^bv|J-nduJkbz^`jz}lN|0^!@vVR zhnEjt$Q*OXS;5i6$E3Xb+VUzk;z)yau7cAQSQ5mT`e%`FdKrmew7`SX>&pzpjdGf5 zI{kFq3t!_UL1`vktX5}y14yE3LCH{O;&o1hjM%|89E8P&E(L!-2X#>5pT4i((ox3a zql<=ye&6njLnHPYyYeM1m@DX@ zwFX*!a^yp4GOVUXr%FUlT1Dh5b~lO9dCAq4!f!PMKqQH6ai5KUj#~G(A}fN)Tet?o zqEcVbBB(!!PQD5B@Y(M{OP9;(e}MM0z$4@XRr*;|(6Li;Idrucx7YX?O3pp#mWn1$ zH>p!19({(|S_Vw*joa&Y#*t_4SAiBTWr+gQ$9e?fxPNGXcuGhPu$=YBfAh--_OhWI zFhSm$(lzf0n2g8253lIKb##g{$>6nlIL0f5->4_9N&!X+HWI+d!lTbdUn4(~j3(@= z0g&PUB>>Y}PbBki~f)IlRq`Peczx~*)JC0_sLH`RL> z#Uf05qel0j@!IrAlL991H3)fcHYgo2WYhf^84Gzhk!1a{u|NI|B~Uu*MLc_HY^UqP zuUErI4*4!L5k#Rv4+HlBS=!yH%Lv768!*saC(!aCc!CpT$d0iXlQPBwo-MTnhR+Qs z9^gr~dISUmD@=Gx>UYk6$XH-C7Mr2(fd6d(DbWG2s8^hxg?tZcSaH%XGs%g8!mikP zsW#Fm!eS}PU;7hX)~C%#b1B&hGxm8lU0V z)sj~=^Y=L_SaDA1KOv8RbqiorfCgVVWlD1}LfeA0fuG7k$ z*HU}q5kurO6AIp+7k-Z$8`G8n4}uv_%Wy|h{j50zXh@lOCAb?2KLQo`O;_4xs8iko ztM9#fw$X{!)pE}Uy`_WeKCIFqW7^HCs_LN|r1=bOqqjV7Nml#n6QF*8I-bz?405?u z=aaxnW;R03tq8GU*QPU7#;?CRzssw>g+{BrFM>t3DFnoOvrRI>RvD`n-B~(h4o_x@ zfrPf&i{d`w+TF_X=M*0Ut6>`(TzD~qQkQD=NHputV;aO~i!pGs`!EjLU|9A|N*^t)M0xtjgN(w1lQym0zytYOxYM<#M3~|067; zA`o{HE#ouH0$Tq2KKr+ok?2ESOqAaAjsQWyUmjR7KN&-`wH)*?e$%-G*<2kDK6fd> zrHh5-a>ve)Z&iege}5Ie1oxe>*HbMyq_cneuLN977vKj?Zt|q^w6l}UeKiWUo_^yY zprtEwrmnhMrVEDvU)TBKZ`g4#(hTg3N$@9aG$e50VRrp3YsxrX_wcKnjCYNJ3_N^n zM*=UFR^uu^DvZlf%M_VFgzT2ps`W~fRBDxgzD7F{5-z9d_VJs^yE2_&8LFtC{Geyo zyzO7z5y1s-2v=11dh!VJ*x7SiY+z#zl4k8mfCI{+ zad6@BdS#-&sM2w|P1k+x_*(gx9EB7=vN=O9dG>Zdh4RZU);Wm=6%|*C6N<+cJKq^_ zL6x*qMlZSDVnI+qml&_-fLoj=WlDv3M93){tthq4*;y2YjsEbF;bX$K*&aOtk5kmo z5X_h%9FTdSkvK%c*^%q#5lJcb`>62)rDy}y1R{RWn$E1aj2%AqU=F8+7G{Y_qOz0z0QK0aB*X;H~ z85JF;6QY}5CFgg-JU|^sj{&lZ)j||qlp>@8zdi4xI%9s{ch2wBE&&X5u~Tz1q)g?8 zchq*@CP=R3g%>_=$U{=a{Po{i`lse-y?8q>jagP#*rarm)qn4~++pb@t zjvD^JS(mrhzqLuVP|n`IOt(MZztT^)hoVa2f-JXuSFJ<8e?vwAGoJpWP0Ze0Gg7?h zX3--pSx8N%A-a$L7EISOL}pO5gdp=>l0k6%z$CQX2pe}WN21Nd_HI`R0dy#GXU7)x zzBg&rErD(sCAR&4H#`>oz|$GARI3j(8;XsJeEu%sZ%et%TN#`PEMTp%hn<({qwNBxXqi$Foa_^-WQA zAe3Z_J0B^ILD6j7%_vZaOZ=H*S4s#dzO-Z6ry4Pigrl}bibJMkT7HzVZKxSu4Di+G^7 zNFu6Z(cVFQ3P7aiu?+1;{nl*tpo&sl8ktJ0CXGI@_OS8zP&|qwVdBRvvr3|pI{=^i zPnih#IR_J<6@tRYipOJxN>GGW;i{Cx&H2YvO6k~h*M>g*HKiZ*a%bc6r(_7DQpflf z&8_N*kY)TBPxCGss)Y_WdPdV7VO@;08%!%_<#7W?Z$O9P4(H3+o;} zEaS)Zbagqo5dr;+jlMPnXL(oZQ%JNg=2$EVci5SMziOIUjZ}F|0Z){CY7* z@oyP}s?ok3n%L zCs-wB!v%1T{|TO!7!tc3X1b|HL)*Fg_ZiRO(Tg-rLgO=qux=QF-QCxph#9`)yaF=Q z*jYWlI$b_pk>>Y*h#1tQd`z4s;x688oe2gOw%6p-w?#G+w@0S^bQSF2XUuhD#eVnU zVY!G6#BTV}41&URSP`f`rBNC;T{{s;Ly;d6Jt2nSI`Xe5zrX1t8y*DM`f<6lDBQb+V1`&Q_KdKBh4r;SUpYAntsO~e(E zB2q|S4l_(C(yNfsc0kDu1yf-PR_I{uMzR*&vm?8_((FGJbuh7}i1|BrI4}>w35UOZ2J-DOUiAeZwj$O2LVYpWnBXS z2NFt+X961~(Mw!Tg6wOYfpjO>gcQVC3Nzt7Iuj*4&=zZfxka}L&QAEoF_kCH-NhPDRD<@S6hK;uefg8ic#beCXp_qdwcNo7HeRoTHO#8Z`K(@g033 zB>W(6TL_FR2|ytUK`GRo{3RhM>(Cy&!g4B5iAPXpNhK&e&)~@2P0b!#zY=O-()ad7 z%2rcS+4hB|>NX#72d;+81BX)*i9m<^2cO_yG`v<3$*Nn1Gc=ZTQ|~Fw#TsVP(su)E zW((<3K^9wXejehJ2Va;K@vkweoR)ZEtT5<;Q)1X%kF-zZ4CnUx$p7IH*2ytWH|7`) z6W)3EBYa>aB~hOj5+R)-G5%27VSX26xJsXzFS~jN6*PmrXahaG-zfFFh&3`8Hrpa5 z{^TFPgT;*ql~!lHD|+;i2{+HTsEE8JR@=fsbvwP3toD*3AS?|M6m={2e6{47=m|yK za*Z(L5er?3L-ozgqPaz;Auq8@V;J6N1b>CZhbeAy?FTIY@IKY8AxMdru)O8l=#Gn+ zX4k>`=ApXH@bC!q-d2fUbl{T=a0c2I3#4gA?;4R8Xxs`=%()nB`R}Rb;m8V35@*tq z9m9t|*a^@*W^pQ6VSvlH0S}%K(WIwes;d(s7P+t$N0aZ$r@b2ySp_#>+k{=~_|j~V z5i(Mw>)0V{nV07KRhjYiDNP)^FJI$(O*d9W!Kl}(`1V51DClDaF1Cn zIW`nsLmQUTL2}Y=UU|HHbNo!IteApwH8({KNJ$DH)!UXzm1;tf(ifPos%ZA-&PI|S7i0bly@dX1tBFV)~#K)f65#CJ4rStp{e^6`=viN64R4=FKiNlMoLM$ zJ$RJo4<#ich2jU8Xh)Ps16RJIeE;}mOX;5UypZTI&ndK!QTS+{9y-1^MkEjxcm#jU zh+Au+^hy!v{b)IoB5%t>OP(48=@qKfDPviwj_GlwGaIFt1&HO{b#+@&YhfV&v%thHz zhRUGciI5JXKtW0o3yiH)QOi|(5l8sU2#c!V;Aj~972zurD!x!b2#v=H4gyTQZQ}?3 zGwEP_q2U)BEmXD5Z`DLB*ouOz9`o@2)t+fb^2$N) zNYwIxsBSC_d%!0Z$*4KwQ-bIqq%`59*)y8QuYrB>ZP90SgwfGUASc1sPD@ND2Yh*4 zO2Kkt1UN0C=(P{he zng%>fPxHb|>SR@bvdJuN0v2pzgkGA!AB7rhllhqK;%IS9`9N90=XSY0TNfGRvfFV^ zN^L4=bOWpchxhmJFFeBOk~6fD4noQ*ZTWLPzR0fsOm%VRcw-_1SNT!3#-SAbQPJmX zK6_cDE+acl&MbuEddx@UQ)qlCF!NKbWX~u(MtlQ&_P4jVBXw01Hg1<7dg(>CPiYsA z?FjM1t2!2DGU}tK2pEo-w1V&BIV7`r?;^wY@O!3k4(}hKv7V_q2TpE}{8%h0reVGL zcExyZf;Uu0JnZMP&NvroG;IsCy>@)RIW*}~r5tWQkqn>~5tZjrzfc3+G8AtQv|%NK zq#5dSmhuoGqIo-K`A6sSqrmT^-JTNvQMS>ql0pm@#X<$yPcL8$y~W+^heFdGXrg~u zYP^ONJoIXyYBLs>(8=bRn!K+703`RrLTRZGK zT&(Y|oL`*@6H1GEZ6Lkqr%v6s{4ScPiPzEK+-yKSni`$t-INoI8CS<+IBJ8MrnGSJ z?8Q1Y@#Jfi7tYM~KLuuO)}qq7R~0jfX3{K)Y`(j#utD}|SDY_nQ6?U)0UV#X?R?Lg zd%b|#+!yaaBU9e;fVxq6&_`hmGxW0i+ekt~}dl}rbUpPrpXiMXKA#X)&U89@O$ zVvzVvWh%bt6=Uc0$m)L$;QE0ReCCv{mS|3pu{rF;$_^)?13vH3ioo!AJ@y~T7=J&= zs$Mioq*skn|D*|k5GZpdEcd-9ujn8pPEZE(jhb4tj0=3Zx-ikM@c&E&)IG!prHf4< zJSv?snFGf{_hjFbmX0wBc5!i6@O03{0u;^fdXc9umM9Z2xOz4iW75mUsM=C;!-=ch zi>csD1fNp1;Y7}ohma@WeG0tnYFnaVW?LAs%0>&thA>sV8i20XUU|*o`-WHvN54wB z5KA{d-p4M~Yr+H5eqYx-<{g&}B@&FlyB4roX#X)S+=+Slr5D(I4+K{o2JuQS4tw!& zA>*x(%Gl?b;?3|Vp>i!}Q_O&jnSVp3lfIxF_?%dL9agM0VC);GVkbFI4@$R7Q#k;n zea8p+m;iwOX9)wiZg8Dy3yAMUXBx@yE$W^KfrqoPO%o7cR=o(=Drf+gt+E!aC{NGdqPl=c!%M`Pi)~RWr)Kw+5?)d16K4YP z-IDm(8RJ*9Rg{T18X-D%LGs*_~*Cf)3JHg0Z2$3KS*SnXMpJIQAt?*YVXOVO~f z;rOA&CDWB-9=LBpw*_a`>)m)4r$HV~Z5 zGyu&Z`U;XgF@UOG%f5$QE?vU%g~X!#-ai*j}-6cge?a}zK4Yk|VHn5`@!VV1*0mmc$OrPF^S?W_p8m(}VNko1p=_@!Qf zX5pViI962Aokqq`pg%ZR$RP2=`7Km!MM9RP89MN!(ZDX)`Cyv5VVJNn(Tu!eY+kQp zMZE@FUASppjo1O8DR!+FL6@tgMOyRO)XT#ri~YAM`gKo$hw=Ck1Ah?73^hGTL$=1a zqW!Oa;!m8=*NJ~9wH8lyqR??FXCQMI&(<4d9t>z0t!X?3bWjFZ6tx_k`fco{*4c{e-Owo^e3D zLP&57ntxd_jCM)H$tzfTZrl6OGZ`8D!!&QK%kCpYp4`Y86rM=M?#$e!6_zO5GC&v& zoXR1^iY2K_q%BQ!b)GTS3XA~&KuR339>9vhvpu9N>S(3B-c)v8l3g5q0C*ZU2YYBG z)6hNe1IvJH$)CnSyK7{E&wva(}uSLgg+HteAhn=90ZM;7 zga#F+=c8JwV6AP#i!!(16~R-fZ#U^8ez%Na0{n{+bNmE}M|B{O2OyMZZ3I(@`}#P4 z;s%2$Rd+Wc<=vEvy5yvVA)IZ22gaax4(UBW>^nia;6zl*hsNTIlO?s zE9a5EGHF&w^C?yf&H=O#fN^EayZJ;&s~pRTWh=L^Qw?$wTfU%Ch`T{W7#8HB>D4SA z+4x*Y7!m4X$$aYm4JAT@V2!;67|Zu~UD*Xp@|@&?yB>wV>*c&ijP9a}u>cTDYRZwl(pO1wTv?D)#qEu#F!cqN%}a1Wv!q%%hndAzrdt(F98M z8xG8%RV+qc#Orc=1|$O9vL6i6T%VY9tLvZ0SWDkPvo8SCsZMi$Myo-kA5BHfFD z<0m=5lh7h5{1}gXR@UdTD&?D2aapE;XbwFg;T#B%&ao7+XYKpk$UrK>e0QYj5A|pQ zWrYArax6q=rzkb6Gi3J<_ieakuQZ{wwAexELs!3p*)3ntxAD+mnFF z!Gm5$DCO+3Qz19;Ww<5e?OC7Az*zM-%bfcIbwnfB>BG(Lmx`l|;Q{kgvE0&qK%dQ1 zgo@U_bsKipvJ zql9+7Vx&h8bfhXG)@?C^^P6j!_;!1P%|~-mBAW+!v5IBlTl&&^JS-Hso1b3?>p0#K z7mt?Q&>|E4Tk&10!ZW>9&C2%rgtU%IcKBZ8mA8 z*FGU4e2F8{e2w`YGXyG6$d~aco3DubB_Z`ua_-;4k9M+xha8$X3 zMCkYN2iID(pW@wP(B&;X1o{YD5MI27OqAG89QjA7>RQ<)Y4!fs<%PpCOM;AQGUX+! zLOES8#jZMH;RMR@ujs#GiX!jl2M^;c-NA_wW{^0!mM{dwBNpTPe+BhRy&i;0I4{=6 zZs(;=lCx7o!CM3ULL2u%{wF+5wI{(O*STf0A(nBW#Vqm6wZF*+@+Cho{(Gf zNA07pi%H9+_{juNZ?hhJ3+CVf^ZRA%tf<|i>*$uUW&)0jj> z9iXa;Is`QFvcxcwra9o2AwT1QN}4IO#gEfrO|jTb`Gr-N{Q!}qU5&9A$eGgkIB&E3 z-50eq4X-wmS_!QcS@`%im#&4xzyx9Unp6b3_B_NF<>Tjt`raA8L0}k_F9SINewv^3 zI0_Zh&fPsR)FWw0=Dd4aFxN*LdEDYe3;ov;4yP%5T8jFFTr=T8u6fe1%!wE^e|C^1 zft;;hml5aipNpq{c=~JSD>(5_L~Yyj^UUw}dxIw4Opp-&r_s!|-+y+oRa~#a{(9Nc z864aPJNHBf;LiTr?K8x<%z5*1Y0l8vd|655lpka-?deYB@BZ&rKCl0amf(%wV4@F| zuuyOX0SYs)YC5WIP}l_Tw_6Y~0UzjAIR+2SlhSC;@yf0=rcjYS?=;%?Q5DFYV&e_& zt1DpvoEp=+*w>XBp+;U8`^zEaBj?>!m^*~^&|mV3I9Et)$|X0If5dI?F5gL5#4oYZ zg9Xxz!vW%MJ4iYPtlE;JI$q{|u{rKE+eUbS#k)@C%b~NIsvK2$-3v?gEz5S z&;8sAG5?zp&b~+YO2V@r)LZkszu(}GS$*O8aB?x+P5zt2&|-up(z0O=3mr24q0&Ug zKAKkJOV;hWLZ_34bNjs|*23u(aO;N@C^18)1aA5YH%{#1E6k&{np1bQsT1TL=l z?xBr^O4z%Aw(sUUDPNN!X%_hS_+g$`u8Q9BtLZ&(FPD`r(!#NWnDF$OV9Ww*tr~*jv3L`c-G;0aB{~=(LyY>w9x%}PWZvWW?DdC zzPAkT_T&1tZq8G&Z$I~eEoqj@MX9D5=ef?1Y!J1dI1cvQwF!8$V#?NhxrK9?E+6?- z6PHk3nE9pxrm$BY{Gd~diZ}p&%BwBYuni57&Qq2yK}GsBcOk#Dwes2V2_pXV)R`xr(}4iij!S0j)I* z(^aaG5HprY6FYa0#s7OFIk#0!HFRsMkhb@<#9dOmtg5@I1E_(!MNZhzaXwL5=5LQ$7F zoV(bT@CO!yjBd@pfK#gK`$1OEv^@r!TjYh1TDcR%3wv~fr9W!h;!j!2b+D4>3oh2& z`_73*Q7oYp3~ifsxjf|8hIfR;Ia*{^$|~#o@CABzSzc5b6-r8tD`S~@yt=KmQ5j2{ zGBBhEEI#;}`^ur9TQ<`6_MLvR_-yi99meI-IL0YstH#F3Cdd(s5E3CJ@LGcD)$ zD@{gu_2GHy#EN^82kLuKU|WrH325Gm*gMS7(Pbs2`re=`UETz^6gE@7AQfvT>K@oX zd)zzAR^ZAezEF_WhBA1px6VklN0ZDBXSUxDsVA8&M+=@?C;p~6#5vg_8uQH~&Ac!7 zoy=#C_(=MQ8Y?GiSmF4y(^JV7CH91_2k5CluNS{clM**a6-z~OjnPnD2wUJk{d@A6 zjqQdsdc>u1vO#-ZHyn$#c3_dikCpVdgl=1(j!bZZZWkG(AwB-$IOqVG*_=JyizNg_ zmWz*yc+anM$%Pc!WLBq}>x-DOo-Hb1Crx$=+vu>>fWBYA;&L8bD;mR%AQmQy1(biC zn~Su@UT2r6h|`Ls4$=1a%=n6WX=(&lNBu=*5i)cQQ|U?Qh%Mdvc3xf0#7&b@#>>V> zD|iwFKAZzZRT0U^4c+Gnc(G1X>OJBy`e^jJeKnc7yy}b*QCsx)ja3SyDl9lw)z9<# za8hfWDy#r}dj^C(&xms0X~xo2KeVW#FfJf-H-srJO`IDgUdq{e$9h}b)sLr+ z1l@I%vre3w66@CRSd@M@s4R{ln0c&^j{UvYXa4CmkyaUM@Z^PWKb#ds+1-~ozGRrX ztX?!Nrss4R>`Lbi%2wS+O*j%c-`42y#cwj9t~y4w8Rj5GS8Ez=T7S&Xso#A*BU^QE zJyS?jd)VWm&hgK>640|31|K@8^mBhNv2wN!DIow(T+DRwNOXBr5}@Ykb;fU^Hs_9B z_B2F9k@4}yiyyBn?9jkXD8xI$noF+UW)Fj}o&s#=D(oC5;EQo6@<6HT!qv$CbY22J zCbSosO9olx9RF)X6eCHFxTU%j$Bw&pQ~L7h$eCL5NpI*5+2x)=GU)L(cirNE>0&VlpLMVTi2-rg1GGTMoG6tmjh2s9m zusKzi7wVDH2gskH2%l>#q#(lNHgX?Ipqk?AqG6RDdMt0d$|y5#k3k9+^!Wk5*yLr5 zlVP?^ED~&Bbo@hHd^g`YrySU7vg@*hXN!9t6M?ap?jAb0WdSEtZ}gVwN~dc zpNNL+hWz_L5veK94=S^@7U9gA7WTPCGD*0iZAL+>xw+KP_n*A%@gTwK*YwDOz%TN8 znetC}JcR$0IQ6v0N2JOSvhA2VuvDd3se+21jA9yAm)XjT{6e-8JzLw5cx`^8!xY~R zAbBk93VfG>QTx(_=wh&Z{yDa-rH3}AK%iK;5>q&@;}cn)%OPe^ghNYH7;4l0g1Dmj zl{!jw(akswx2NMvEz!OBWl`z*ybneBX}%V0TANitKYlM-J2{8Qg+um=B4i_iDE;D5 zQ5~-@RR(ra>ilXuo9X-Uw`Hsh6pzxk#jkd|iHYue^`fZ&Giw?<*{DyG77tc$rXpA& zOrH&@o!x^iVSKKXtFbz^rE3_)-z#JKYqU&QvQmx*|GomJNiBWb`t!}l%9%SA>$VK@ zd3)V~^QZeJlrKIYahH~~--kV$Hl#D7Ev;Vz&C1Znr5=19De?&(IO8X@z=!c#VwHwd zwf|dS#i2j4LSMKMFQa*lpYc4J91R|5wQ;ha{1(?jQnkay9Dc)K1Fa3*)DpiGcAmO2YNz^yH;b<5 z2bs$K-}1N%Gi_}H8nZU+H7Ba*erDOWl9FQ^K`QJNzaYD`X8i%|*>om2RTc6gygi4f zMx>!Zo{9oYh^4!&8*7TFo|*rt6P2sLAm0{@sMG9a=iI>Y(twzjfFjfn_?$z|Nw41W z;LC_bOn2Yv_C3X$yd`6+?!P2T>})J6TZIQ_)d~X{ecTKrW+gR#H!xMC`29n~+ zSxr-tk0I4FM+|*PEBt{4j;=t-(T8uitFc#xR%UGz0k2A; z?t;MU%=$Pv=lPHP(FAi0c_W01(M;q&8u4-pxq4Nar|>?%SsmFR=a6E?a_)!ef;o|r zQ2-4FMjz?bZmePVF~K?*QL)5YPD?$N!OO|nIF@jz1v-ABPDgQH93)^M>>|oD-jcRo zd{y`$eB^?Qg~<@BCL$;fr%`WTjSSgkJ+Z(fxXl_Ex6fJSRAH;OfXBi_8Z3R@Fo1Kd zw@v}%rR;z9*I*@u|>2cmQjO zFMk^J_)SVzG%fodaD_0>%ME8x?_3rYh{tV{?UXRP0)G@3*nio>YA>=F-udzT02?f8 zepdPsEVFC=oclRPV}2rcqq*^y-`9!*^p9;CVvF@LATw4yH5Is|YtU5BpVtGg~|HZB&G^%jfXRkXFfoFl7;cw=+sVZ;a? z9U{c4ZLD`wD9$HROvamfHxH%@g@N`oqGI2ThtjcH9UbBXaq_;H6oA1xPxwv&yKmwj z+;5fYXa#vzc_;1^;E&~Q{2oUc@<&EU`!^Bm@dImm>jEZ*z1!T0=zj6#RRS1y5gdSD>rxTic99nngcM!`{@$6;~xZo9p}_ z0*M{uPTx3rMLOiE&zq+%9e$`MtD{d=2J|-^x+_GH?8%P$0+9y!-=5v!a-WcQ7taGZ zy~c8!AbP7;DfG-e!s%Ujf5d&g&Hc2t+#`~mtpM-}-rVtonop;&# zKq@B&Ju)a%Zg3`TkB%pgM?Lr`|Jr2t^6L^ zv3e<<2p%-&!@%;pMCJ>e3mVdPQMM287O&DJP3s;&;VOeq3lyS2f_cI<9tm8{8dtpB z<@o7X=0-rJ{yZbG;`X1{P1ONmMXz@_)1r_2E#*)SzK+SB2ZaxJ{yeT<3y9!~olTw> z$M*}df|1P(e6F^jd^(~%%?}C=6i=tiqDo2j#>|AbX_9Q0-<#qk#C;XT+CYe zOV7tsb~$bx4JQzaU7a_}=7I$>&e7vIQ*t(%n9rv!6-UWuQl(b&<8#{1I=UKZ&A~-6 z?SV2?U>!bTKoy$KMuWpv(Nn6E`Ao)Pjfl%E%1-zk0o<%0nOO2?uq7A2ArgC*x2)M# zNs_0NX|?z1YGB9K^cTL9FXV`ZLTj$5jmEFan5k{B){|zO=X1ZmitUHZUx^03{EWd| z-9dV>K?{0g|CS4<#qOvwSc;~z#wm>6;T~ePhO^qhmi{^ucq(X{tAuz{&IX^;QTwF% zC^1?`k`)j8&KbIJ({p45*9zxn&f_?-m)qyQX3CA4I(l?JACq{FQW?XfYsEtL*qpVW zg6At*uZ4d2`6#}zhD1Lq>&-gYyWScpqAVT(Td#kN>$M#Wy)`fY6 zy@2Pr?0xc<_2RzA1^Cyl+94RB!8j{%Ryh8?*`r!q&|OL{<6een*PqhtCL)m*OX~BN zf%WdZcMk`-Z+`>FzhARru(OJA!hGjE?QTtY)_z`M$k=3xqYNP}V#v{NmE+|}Z^a2y zU8lOmdL0@+#BuwX0-s*F+0FlHJjKY)+}8XP42OzqClbO`K~-#3@c_iX1X#P z)F8{~tym?uYa8jUp}t`ko(={W-xOnoe-*a5Byc$F%J>G!0PU%xfhpf6?qF?C4rdqr z-_HE)GeQ?_op!$;KSl(pG~X=!+5SPl=nl{%=Z*gidGLDvv-l>K+XXY>UAOY=^?=nE zCJn3#G+`n60KevVtfOubO-i1K&k%tJ$F8ecoq%JNw;kckF7*%={a5}bBCmTAjRgxI z#!c<)j}v)GfGI?8kUsj|cB|x&*Rv^i_2~fBt;r z(JmsIJ5|FNJ$fbl=cQalZ+z{QaP#(1q5Bmn;O&b0J?xu8)v+7IMtEL+a>?QLf^J7M z1#+9)w6elr@6jJ6`y9IGk0lBzeqDYKmyU~-di5SV#Y%xEOLb<8Kl>u$v&8~m)h)EO zmF2Ci%U1v0-usE><})&@T)K7c+X|ZlU7r>MPL8_|W=qcQv){lfTy5k`>|dN$OTh;T zbl+LWJlfZ{U0Mwi6BFyS$~EPybh-oj7VK9V&SnaR?E7S6TkbBHG;*?0q~2IgI#^n5UZqa*uvLzR+JJTBmmQ2+IdzNxhnSdHzvxr4&CSuGxo+KtqrL)m_?a3r zbJbOh*7(KLEe3j@Ni%zVP-rBbq!vB_%l+u}D0a$OAD?u(S7*TLI9a!ysqw1Q8hXEY zuRv5Bb3in~$?C!w=Jvz3Lyn1Or8nRCExk=*$$=3`Y;ZZH=(_<4$*hm)<@u%fEP}2Q zs6pTtxkoq=J&4;T3TAsJqMevsd&8)etlhDt`6h%{}FS)^b@FHUq3#S;Oc)Y z?$*nMnD-<~bFr^I%c!D(b&L+->LScu+XUS^0x_DT(sCX7GrsnQt@^{+0QYQe%=HHl zB&MXqq|2ujRJ6it-{5O>HP@bKVV4?FIv`8vE&UxFVEX>1Bu5(hR&pPjUyd?cikMd8 zukw8hIk=6odnpCCYn`?Lg7la48$+i3{Lpw2$@nT#h17Jo)Z{Z6Q(lfAuMFH+2-mz~ z)1$^7*IlYG4U!5r{@}(3BW6V<-^}zNVE=B4DQk7i!$6^4f(@ zAnsUAvISS|M6&24Ixnq%#__&9>_I3H5Nfd_nzT;~d%Moj!4+u9FSkuxJ;y!KtCZ`k ziFU>Jg`Aj1LbZ8fS0f+Z8&k<~7yi@qsy6QhvNRHT!rRK{9M}I8N$;Fgsd}MeDB`492ZTHK$V?v z-G`Aw8yA8m-*uQ4C1=&B+Vlwi<5lJUVxW0|t546%cXy+S3)cgj#i1Z`qZ)-&)%a&^ zFNQk)Lt9gfmaZrtaPw@9Y0pZbTckAsX6D+b+_Ytcdn0RNOF)=!sGio+UTdTc)euuI zzW|lDfDu(9WyQ)r5J|AWs{vZ=UWKR!`%C`a`;p6juHQe7ybmRh63=cmk;d@cJBWGi z7wBO>*YKilP?WiU4vKEbiliMMHZdDZz+HUVW_N`6m~?TFp=M2^{w(%*9@{rEga+Q%aE}X6uv;=eCjPEmq$o)l$Ca-$bfuqNO&Hl<~teP4F2wh$@I|GCB#cTsm|bNPSMS3ya9{=hdf=yP;-_PfV?&4|ECg@NQ9cs0 zNjM(lD6%T|lisuk2)yjoL>WgBI=ot;v2EjAMnK-@_}AQtOF>=}s-x;YFB6!J_KP$_ zQu0(fHh`=udCR1hgM|Txk_ui3k6lSp(aR&mvHptA5&H^RQ92i<`dbMsl(>pV@wq^f zV4az_tT?%H7hP7px8hyyfp)J_dfgho>BSmN`@7JB_lASN%ldzE)l^M@mCL@)-TpZ`UPt8A|9w|2;1fR{^5yn`>c)IwLIgM3Qr)NoUrU|UM;x|9Z zaVhl(rF$Z6C)=?ZPUUAw(AUd8#^nt8N$Gnr9hRs;8Is!2ILd}ezhzKvbj}!sZgvM^ z*!Spr*YP-ws85u9yH6A&!-;uy@1LGlnN#r^n!&$L>9VvpQ2%ovW%w7zk}h*o%wKv& zEHtFr;FJEe5k)1C%w=v`EILu8zpBc}fU9_v3*XbbI=LyYo7E@uTyFB4!c}7Z59_yj z^K3cfr!0Z&Ccw-47amM6v$9FjL;MGY@mAll&qk_CCo}Xb!J=G_fb&5u3b8+Oq8b*P zb*|Zj2mXI7B{d+T8hW?`#I28x=QQ0>1B;G&*-xmXYu(|4d5ax$a4n{-Bgd`7o~C=| z1!xb|r;xkQro2r}!)9lhD6Yx!VgFIWZbQCt=i|+;A58#}{h&uEj@)KrE4si(cG}eq zVP{pt3Ze7lNZ443FU@wu-@)8njlVQO6~lX}x2K6?;fD30gL!vrIp}Lnzh^D+|1wAz z^#6)zt{MHp^VGd2s}I@Wvc%pFGw57sO{{^(#){JGCea$#+OB1JH$#+nS2#u!gq2d> zogPL;kBvp_@1lMN7Mp)PxQQIhLsB|}^K&}s^z|FIgo_L_c!|H@5nv*_X-D8jJdj8h zP-g#V)7n7vphQLC@=96BYqI>tWal<( zN&>nrM7RUo+1lRKleVf+A-c?iNF%(9hI%N4{u?`rCOT#C9@HWbPzP{M`#;X+v=-LR zhpqoA3Mm$?Z@~lu9OIG$NZ% z;41g@X$o5ayc~8NL2pL?E&QM=K^1aY{#VdPhJ)E|foX+4U67(kWuQ_Nwa?^I0U_U= z7pZWSdU>r8_zb!(v;70vNzQmv4L4vhmSu0rcNC>kqBKypg&5w*s%&|g$x>=0dWMnf zzqZN18jdIlu{R(dXeGC`Pg%8#@j#>lO9lF2vTtjr z9F#7dwY|Sp%InmmYut;7yrvf&6alXb0^4LV8-%h4`is#)e;0Ds3yGW{UA#}2TaFbS z-($$Yu?eR~^jzP5Jg(^xfUtb@-4kQl6EogUq}YjSC48KJgqVLk>3r&h@!K)9LhPt= z9mXN>Hd&(D@S=(SLi1F^1cidGTTU(QI+VueNQZIykYnCyo8q?)2({`40sK#mMxe{Z zT}H76oW>zJo)xvo^64(x15l0W zjkiBxt^9`|D35&H@9l7W_g82t#Xrsb?VJO)tQ?f355Fh<`RJ+Ni#_?R0+k7N8Mp6? z%4$o74JAHx33?ip$dZ&PLhE|IA^}K+NoLm5li8_3y@1kxm_q|6_e^UXe&Fook1bdh z^2!&8zHL>QgQWR4y=>SzDf*w0$#iS3&>-?OsDgziDA!%oDT8KHacKGf*n6v}x`M7- z@Zj$51PJc#F2UU$f&>Zfc5v5V!6mr6b8vTe2@u>}PxJlv{`cO|qx-d=`elx_chz3C ztJbR8QnhBmEjPOC=3#AHTf_j4f@?fr{kbijxo@UfcZ2q9)|<9og|_>6A-qkueFa2* zU5O#w=ovUWyS*+tUd>nF(}*f}(%`hN5;BY>#D^i^WogVSEuQgv(d|KtDjVQH}9|)_$$TxLOb!+$lX%0L!ILRjElGjeH7o|4WO|l z^G~HvM!{m{Yb*9EBlMWJ8|D?uJqs8g9Bn0?lAI!>Ht@7_6Hw#$_d;Nj1vKW@AbMIE z;qw|X><>Xws{F}P&hxT~Y+4EEs`m*R7^VWLg$Qypw(iuPxaWJ1+k%{8aPo|cMW`V0 zGT-vio*8uKMcisTP2ybyKRJ}NPFuBIy<%Ki*ML4ql zStrG5`-$~8+lg+`d^`Lfk~xehSyiSl+z~bs^lPsATL+x6#1>f z_myoQWGePJ^72Fd$fqYajl&XfH^0S)`XNQ?O5o+#1Dy3c{UetTHf5C1 zIxF5pac}m35NWw83c(rnmv3WipJlCTuK_M?$Xsx|oO^&Ak4#zy+g+p?lrcnk%kCiS zL&Gyl_Jn}kdQFSaU}~WT%oqZI&|~vhPurL|djd~5jL}+aP!y5jnAgS%F|Z^*tT`vji{;O*e1ihWhpjG;SH*blVlc`OYP&-J5b0qntwqWQOD zTvgrFGK@^t2zT&1X%gkU%sCIC0);#G2_hX5;S5EMNMN%(M8D{wh;*LF53fMXM9&-V z1=^-~=Sujaz`nW8Lx=i3cH4fz7XWzQWI^<_Y`LR8dkYE)(haKOb#`VTKp&02JG8dq z&bf&=p9AAAF8m{p8g3_ZTiE=8r0*(*JG!zBLdgz=F#0UjaaFu;BUY&hdvK!hMlZCx zdKq@wi5_sS29AzwIYZYxezSehkas7pUc^_GTmhSt%r)sR< zC1GCXFJK1D;2_Y79#eb(452VF2hsm7LyVuMy|Zme>-Z2Arw<*`|T0(Q}|V z_=v!VKC|vzBlTQdna05em_Px}92tE^hbmTbn8Ywz>s5ct%)YW!E@&nx2Wr`{QaESoNK>#7$SddKqSP=DK$JEIWoV}BSX z%}pe`p0c5;!c_XZH0T|T(Nc;=jjjz8&&4&L8MUVGNwL~>lMnjkGbv6z72N#cspT^I zP&I^g-|95zh$UK6NO@-DG<7jiI&Bu%ZOU#u?02-nar076CI#SI)P7LvmAw=T1Zscn zkFL~MaA1IH(Yq(JDRM4`xvGdy&JVSj(up)Kt0!U7@Vn#<)c-o&%A|4hK-g2GwH=OI zp4N`(FO{*|q(bMX2J7E6X4I&p35tR8Pl>tLDG=w$AqUs~xCIm?b^Mo^};* zth@#lT9m&?Q8-ra$N7$9d)I!ss$@HzW#_VI-PQB9&@WCFwt~u8d=S%VHvt96u z4RlG_Qms<0ex&J?Kl#!qIT|dxKUWMI|^=# z>&KE?qp0Tc62z3I&3iB&lghDiEYQVGQBZys@m_^vM_=~b<7Ngig%lKf#nfCK@H~ro ze_{e@U^}tTfX$>@gVqEwEoZ~TEN;6{>BPOGdvGD}ZXKJ!(Tgf*JCJ^hU8U+m!xv~( z^`bb9K^g`#T(vFV32XV1=Vg|=50`aFp&PKV(?7z@)T*sScpW^R* z=(wh1LNvXiEzcE%xAKi!2b?Ok25JGIvD=2r?*dJmfA6R}+J(7O;^PapkL!WPibgsy zsby)GDS^gS9YfKnWq5ESJvGf6m3bB?#~^m;{e=I>v3v<@H+X+LF&Y^oit z^F3zOM!6#Wb*vpNO43h#8sK8fo*L=yg!t65ElsXKIbSCw2Tx|${u3aV`y<%LD z7Q)lwK8uj`?~Gels;i1c(9LHtpZ_^_v`;_IB*qtzJXV3mRgV=xT4k=v4g^n&8K*dn za+)nIFmX*&Er_4~;cxSeH+3QR^Q;?7H6pQXcCMdwN=5@YDeqFoHobL<_q`LGV`WN! z#tcOY=_w7waK=pv9+TR8=DKW8-B7@ZM6|}VHW$2OWnJ|63itfxIyZw- zTDp(IV^XM@{zl$2nzYMjZFurYBSg}=iVHW}&S`68v17HTtu~H%In}GQV`ZBWWPxhA|kTd>ek1VZv$D+j6DVrD$cY3|r$Up~(yEwtp9K(*>Q4=XlOXikf0qwuc3 z_{>H%J`JaG@7V37mf}*KTtjn3p&p0P<8Ehl~Jl1#M_2RsnA6*~HG25AX z`$uia>Xu!MMrh4Ap-ctfsatoUUf|3r%R&n9_B<&JH}5&OxdrNy2#nSAF`~~wPWZI_ z8Z~>;;5xj?)&sHpM#LoC6%eaP(E~Bg@xDZw1Es7DBi!0=(Rg#0?OV?eA>yD&S-FGJwyYPRzK>e`6c)STDq`W55lZw=^H$!e<|Aau*h@Z zM8|B1NPm^>;ouPp)Ji`|k!l&n*vTkrD~FLj-hDnl>k(My57bJt*(!cj|GJY?R7M(& zw0&PBv=LtS6`%*V7>UUQWAI@w+h6Kzx$WdX1_ z{0*8s!-eYf%r>{4{I*GOO3fV)6X#pL9Tk{L{Ne4|fWI?l9w0F;)nqa~XS!(Dlj$*0 zr=#-ojlapN0Qs%$ooP@!@E_^Bx56tvq=9$#t#!%~=wtdVCnX!&^PcUeJhWb`$Ly1( z6T9PC9NEmvjK{&SE>!tQPa6;DyS?amy?f`a$}RlP_Nd@sJJ8!D-k-a`D+t=ax9Hqj z^{C@|x_)@QWCfUc`P)Hi2UKT!Fi-N=V(0jvZNa9;19f}WLuX9 z(=)(XIkL4Rc}uYQCUPql(*hmBa62!dCfOp_h{MP6)&>}`5{Wa6z&5MtE?ut4VVAr{#48Dm&!ebn z{*Pj7?Ijrv&mN|=lsk0nKSdgi<3CtvHP#{v{JfFG@~xU3J@UKLMgP(FZPsD4^*%Eo zK6dO4gtS`?b}%KH_4Tk{U-*6DO=?yr9he_Ekq=H5nobR>mBAGXkL zfy6^X%4G&S-qyvw*(K3!*+=1Fee%P5oVbuvD_tXa{HPj)URR^vsEWtM!UT)WcAtq+ zP%m`QZ;&X%u+xvi_KQ(J>^Iwp-}`o$(w z$D@`XKAKAz(QS-T*1$TAX@SH6{;!!x%eRt=6zDKj|HKPtb#%PZJ&ind5m!Xy=4I79 z&;l~F^fF+Alak*eGpFkq)**8vbiNZ%KV3biB@%`5y>H{% zo19x%T#9enRn{)Ss*o1!p@~jJA}`rik09w7u|hR68yiW^J9L4&e*+6VN_UlvDI6~h z4Nq<`+i3bpF1XY|J@9%cJjenhzJg*BAwAvYQ2gY+H8#`r3$xS{e@}6;} zff3Iop2gMGkmCPPuk9R!TDfKh*GH=YZ)irytuHVq#{S6wOTE+>)w@ff`~LmNS9ovY z-oT6?wL@%y^t(Hz}wu81@g8l>=bmYVWNKnVYV!6+9O2#Aw$r=tN8~VGKVI~QJ4hMU4~N4NJ` zcyzUJ>?o~6=~YpM^GpV<*#Lf7@>2IP%<^QB40Lo&B4fNV!SU0;R=vX{QO!FoO!!K! zsR;FB^+K`lRo)88YSYLqfioGc#tCZ8O(~*wvFl%@Q~VZzz#YQ-aP*W0R@4yfD zF4r2Y0qtS4YuVK$30MfN97;i)0Ha?(c=_TeC7#@P7_kSj+!;xdaZj=k2ot^$r3OiUEYK&5d`=5QPM=csLtM19%GW?;EJF(cdj08LJSjjX04}0g zbzSODCz=f=`p@j`Xql5;9}2OaCJ+lTj^AbwFoIzcJ!T<#&s=ndL^+gVx;>6PqMh;$ z5~GW^i#?(PYU6K$l?w|2^j39f-^?P-FVQ1=Z%uT1-SvK0GlwQhadaWD=U2!ehXq`W zQqLc@1R=)5+JECOdn9Jb0pl)GWEt;zB#`1)g&JpcuT3B%=v@rq#PA$HW{i;C^-W0S zUARdq^zijVc!6$_aLK@L29H^Jg;`$Qp+FVl7WoOf=lVnxX!Ao@HY;rk_~9ElHmgE) z!61*agxf+x(Tsg8=TuopH83VdcsCTJbHgb`+$9}G*=L}_u#kad)C%KYY!9qNyX|OR zzA7oI8wec7Il_o#zTxNI{G6KHvdF6WU5l~X| zfv_CpyrX4Vl`(!g>mkVXZ}v?#wFjw{K<-)^*XJ#;8n!;qex=nEV%+fk23-`v)i)VU zP7kU?uzn)HasO(x%$WQ-`jI1n%ShR!Cj|lXv5l$Od=8|ji zZGIS<)_HTsH>A{Cak4e35-kGQL+Q+64JGSTD*nMsPF~x>*HlMwEHT$+KP$Urn*6CB z!r#0^J%iG)C0y$0c+;-MwmJq&)}xUp58cV*%MDa?$*#+W5GeNukN`qRZFy%8e}B1j zCGr`=0m@1K1x+nu<&L~A^!O4%0Gcn`@`O?bXj-T34dkRT0YDl*!I^1hh;p|$C%zO! z@H%}gocA)dXb~|7v#|hJdBKv@njRyMcw43LFPX##nwR`Rz}sUWyil*LMs*7iybTHg zJE5T$tQ``hXeNTy4h6x#=EWk)ordyg_eMaisp=Pp3ie;<&6>nUFW|xcxtXu47?hH| z2EjM_X93opv9HgoU!-GcIjHVrk3}Tk2i|?92THvUQDmLSo@%Dcv*N*C=!J$N_(>9) zVD)v*sS?*(au^qsQTp|OsF%pwwk3^ZLOmPNPW4@oNdA?O50+$Edm8dcQ|f`WQ|zVg zA$pOS2Yv#R>OsWz*!|2jmFn0-#&uq_EZ?862Jx4&=*4ij1ab9=DqGJ6%3=;qCu#1Z{t_ zi$Dz#%v>L}X4GjKXUDuu67BgWQqv$HTN|}$Nq)o$Z=L3Abf~Udo0O`ur?SGrx`^t+ zf5(Sjb;-bmnsy33^bAv?E~wL5?lQznEC-MLyYz;y#1=t2E;puMxw@z4yvTQozQhrR zo z!BCESW^G{C z2BWLV4^XO^3U~En*#MlEtg+>+QaU@a!iuxQjuJEPgBvapzJaQArZerO5;OYu!NsRs zC@1|4vEM8mhJy(_tr;=yka%}YmfbG*^sv&&*PH=E5eAD79NQm%5X)T>3-ih3DAMdn zExM{OaIl+l3hBC#LM{S}DqEIR#pXE4L_Qm8Me`m1v?`eaKEvqHN=qinu=ybQIyE6G z>ODI1S`a$uQHN)}tVT>~yn&A8*Q&u?xl`7;ud*io9mB2#_h6J!GfwicAex53n7>lk z6vVEN0l|FAeFg72<4rD&|)WI%wgRM11$J^ zmTgG)!J;|xUg<#)-ARBb64ZU4D4a#%T>SNbv)2J(dm$3|SK zNkW?1N0B2r{4Poj+s0Ca2~Ys>Ic-mKpmt;txn&dwTehPO@1;xvIrs-+N0kR`Xydm7 zL&TS0@~wTyj`#0qh)2c)9mI0DgT%)5>lx&-e0^;*JoW|nF^_EP^nASgUjE%hcC7Gw zD9jw|H{^jzZNB5(8cvKic!j^N@Rr4`M*rdyoOAQCX5KJ{`iYX)cnux7PVDP`$fA!L z7}u>GQt421AL=add`(2YxMy3#gkO{Kdy})IK_5HKX5+tSzG5Jv7-WAHSlDUp&hL!6 zq(h&8OQ~N?qp~&;6|PB|HQ=mp2TrDr_x@_lRL|d*inN?FvvJ%{qs>+0M-I6a=7WXf z-`rPMT0oyRYr)Sx()1nk;l7TUxM^7NXeJNBASEp_VTC^;an`Ym6-u`u-Bb0ip(+@3 zu&m1slKW6OP);t1jDSV+!ME$;NYB%!4sfpGgFi;8VO^otR*`y}$gPaSp3gGoSTV*B zgE1fT{MGkGQX#mG^kEGH$Dm31mijeGR7H7n+6XQwNIvKMQ2vNfSL2sa{)8Lj*Va5u zeq-lC4){|c2lnOA7qNeOy=jc`n9BwJ->dI%#b7DrJ(KD?#7uIJ%&R)%dQ)3NX;!s0 zzgKu9Hp#t06DeHZQjUpJ)Jyq}>s?@oX&=&l&Tr#HoPBqMFn=aR=?6VAGim)kaa=?v z$MPi}SyqBT^|oYNJdpkZXo|lklj;`@iPss{Xd{sj(<^l(Bl;W4n|@|N=K)dy79V<{ zT}qV9p#JJGfmB%mk}o-YXBu-1k|rj?Ep=a&N~7Pivwa^!|*)z58b(KcbxRPEPBAX`P`dh_9ijcb&b4 zSq>A$gWp6s%J5Rd`c^LCAM7;1AGXf$GYQc=D) z>&cN1+NgBjR)=N(cmVQ2F8o*)O(;yq-QvvR?-R@qd}-{7kG(TNtxX04MX2OYXw2Wg z_|grGw;hVnOzj zBD9b{`^y`e?t; z^}hh*u>&l*FbpIJ_U2@-pY97mBg#0Wfz>fk4802y6MLD(Ff%(;@d=w)j4(xbnoGSk z7EB2=KF?713?)qfPW~Z50kbARd1cW?Z>YNo8||d34oy`NwdgcaXCRns)drA}Yff^B zZtuu=;{uD90X)ciqqiXDSD%9}?Mh>D6#1f$Cc1ta6AT)(h9b}(z&R_2#SN)0qTe%c zs767*jUB^Cj-%0no?(u4>XhJu)XVw@-yIJp-xpz#Z131yi7}`C^Cx+Whz|AxlS!7y z9v39N-!M{Xu9ObW0CS<;uSF$>yjxAB9RrtI#?CIF{oCV@Fu(RpBo(7ZT|CJebE3DN zYMg}D)Ej_+ZE)!Bj6w4%Rt>?QJt@?@CnGZp^rlpHMLmv5z`FWYEtw%6Qfe5beEJYi zpf#+9kxaiIfnV<$s~3_5!P`_3$)E8>*4&%!{=a}QT(-%`@->K?%KEFVXG;^e^xDuL zHxBdY5#YqI+cD~~RJf~%Op7B|ra+~%KF_&?!^r2RsOE{r4X^t=w&5SLOT<2+G@1USJ4y^{Gmt2SzPub=_kea5t!7- z@1ArWJI!)yka1RBrY(iBJ>qOmO#K_yMQjO;S||-EF)5YUBiT}Cf3r)uW==dkW27HHHKvJR2r zNod`0tt2?VRMDa%DitH& z%q9D1UqG!STsN@5d8t+p~E8hmPDj*=K`83=ud9S74CZxrVh`Nz##qV zCKm$XdA@1YUCuyX??XW!?TNm-BE@@6c!S_Hf6rK5uc~x!uxti&v#iuELwgmX4!>Ny zCqa=3kXvjY?xS|GN!a9C#|^J=$2N&u>^^saHRaMGa}nyd$^@-Ig*7(kDqc>(x()Ea z{H!KfQBKAhhaep%m47=@N2F&)oVyq8do1K|bdhOkfh@a@=n%NHe)O7O59XR-q4rmR z6S9uDdsi=YcQ_YP1}QwxEXX#9>(42P$gds5G)q}1j(&y14vc7cYu7l%YR(zP+G!>f zh7>{OV9h^*`lguElxr|f+oh&d2UYmBag`03vR99u=RyDAtXCp_RzTn;eGkf%trxIP zU*Hk4bFCB5k)yUZ#k3%uWv&%5#-*muAlH>o5OC3jZqc4&jW8|_3GF143?BTx&yy^L zc)7q{8juhcxDcz^>s+r78$H8fuSbp2N(#%r3R_7-QbUg%RB~cXuu{^|FZ{e00RzMN z`4HSv&45KaeI1kS66yHH%%3>KeiQ??ZB1dX=Rs0chx*cgbS+5Xp*H*`W=ZUB zSPp;a)f-yJKx=D=^hrBuN$lLvG`&gI#7!2~szGKHev-0_In*%D1NwA4VjBBj4-1JN zT(fMEY3kc66%w+wZ&w^mYs}4ei=XNwCgTlIt@V_fzF;29TGsKco5lvXz3BvVs zs7K93VSGov80ShDo$pB}$Q4t+V#^1UCqpyVe{1nA6nb~C)mTSy+R z-f-5@a;F)!`cdUfhuS0pK4a20X8sN61#ct{6XwuFqQ2Ff#V9G*^F7rqFQ4(dKU)%T zy<4xwMh|~HUo?fkaw*G3d`8c85j?|KAaA7RVS(lBs?+!NNG^V}d(38ZY2S2GXVDzq zOkIkk3;nR}ARJ{=BGU0}78xfDZ8;qe_*%XH(sdDVvN*j&Cd;Csz#6c7FL5gD_gv=F zv83o4^tJRZD~;`nGEM2d16#967lgplc|Wgy@?zFHNy5 zYgYW9d@U1go|60S8sJ)({eEn0c4cZu*JIUM$AVMprDoA_Up!U`QgpfwdWN@nB~h~K z{dzMDMMMQc|Ph)ozu*=K(O%)Kd zc5u~&1-8qiLn<$r(ayc{W(2tg(3qh}4B>EuT44$#8kNja{RwZ!l*f;F7PmmyAe@%_ zGc9X_OD?n!snaKV8m*vu2cR5n$^K(aI@g~a`8CE~4ncm$flYyG+as~y_cyeM$5;O5xG3I3MB$J~YeilghM=r5nuH=xK>x7abEe{5LsF3j24L&y_zvR~) zVxuOR9G5S&TVhe!BO62YtYhn68QPHK;INOFd zJ&yNk$0G1#C5Md3c21p9xP0lN(fR%(;+GNslc$Q!kM|kGrPcCjmGDqXhofC5G zRMRtJ@X?S>E^U-#FEN{B?wN+w(}j=}$Dn@(cVskpO$$^Ro++o)L;h4Y4PI&cYQ6MNn8e~3GR42Ra)*SaPIRGD zjng4I$5F3cbp2N)5UgPdTv?8qotVr#Zgfqg#%>T_rP6&QW=Sb%%M{4cX%ju;L8RQt z$KL$qeW9vAvc2@rRUQ^;#U?gXLWiBYBKGzg zHKxu;Gq3b-Ks=WT6#2af6Puzlo)*;S7fiJs_Z5h;0YY?wgMfN;5RS6PZ0Wu|7vahb zP75%6E>MP0V0S_vd|-D1I|hA%r=$g#`!4nSShe*JuFkA`>j1Q8ArS{)pv!fBeVL+mce#g^RlPGX`;)TChn!H6%p0`YA;R(QVe)=;9hx~d@<;VKP3 z3{d*woG9yb+a_mXD*sd7Jm}37Q(knTwP7JdB_7!=u&C-h6ce`x^y@d|ezm|`aq#8g zKTMsCp=uS~JUd2xKv`4$!gpFv5WUVeH{S$gYay&YU_iucQ=^sj3nHWAXaXbdl@JRX z?1%&^eQ}_J6&eAf6N!r;GLYu99yTHDvwg)@t(to1d49Bw0lHyOmjK`V>DIAZKNJLY z4!Kt+0qIMrLOs_zKWv^B`XwxC=en4(Ar_QL&LGq>o1%Je{g=~$Mb&%9X7Bwm>jco` z2Zg>8X| zhKetTm0w+5hh6Gw^4E5oZt3ZzC2#teH7}J*7U)O;T`@gu>!Nt40=UYU5&5$TKl2+BsMFskubn4 zs)m5$CB1NyI&_q=7=kE$kxSei@e;;hjIe*S zI?Z}z`|U<Jp;`Egcloq5<{5idgSHL-Ka7w+sT29WhaYF;9 zXum~KObXbYt5(N-()kp>_|cRm!iPJ$=;&Y;!=x?is!eQ2(3O#fDRd^H&^=o5K6dpxURu zh+B{z^qA1-aLY@~-61u+V5UNr4PFWlU0477*3-AjEvyVWYA#oRp}M~pFCO(TW7iRo z>C`FLKl)A0h9kPar;Yz_!WvFTXxRT`o=I>uqfV5xRo@hQySN%tM?~8w{|NV;J*f`3 z@ZKCF8zo!`n>yp>uYHf`a!DNnlfcUnEyk=60~>u*>{DvAyG1ww^I$5YF{JYFnA%I9 z(I`})|DpZ;ALQH<9GSYOa19*p+}sY5cc`{c9iHf7nhOEN-l}A6a_VJwzV=;2+8v6@1BnKQ0Ub8xWi~y#OX#eHsDDvF1zT~>8Obm z315vy$x%Hob#UqMeA(2jOCd#12LFXbys+sgZ{%ptmQ_iCZ4S!0MQyp#%UF%FXDxRo z1gFmKQr%y)il9)p$=E32=WQo8LMq0I*{a5p!rr;|E!=YXbdHF{9;aoDa`}@fVeZ;y zYWt7;_7G4>J>fU|Wlz^qJ54M|t>r(PPJTDj4RwT~b3V`QzuwgZbxeM(#~ouDo%a1i z=X)St#PRlxKw_*L&6C%NUvL{egLQ5J`SSlYT+RVXH47e+J#zY_zlvmB-5AFM1)qTBP#;x>Uu&0|w*w@?Yrj_x zIE$Y6oz8Y9J*xLQuV1eylJsF!rK6I2S+)-u{w9RN-I)6E%r6Ow`7Th4#+PrCUJptm zVQiz!VO%1cAYrZ}`NqWk$~pdOE&++VndpLa4;Rn6_0P@LH`wv((!-m3 z7^E;PbAW1m$$UaSp3LX>e%ooAfnRTz8w%vg>zRi5KucLPa_at6$?d(AF7^*}0AZzL zxa9R5p^4@Nae#z&tqBzyB06{?7QOXG1zRUgfK+xKXJdJQ6=*(y!8P)>{<9@8rOoeq zadoLY1v1n(MIO(fayu`3$fbV|`G8hQf6giGE$t%w_CGz7*)b&!@T)TZ(Z zGE9Q^wl{s={(A;AWOaBkiCrP9U@HVG`lYA`D z$i3Dq-k;f+N3ez$1@_x{z%@+IttJ%Y(pj}Efp;L!3sx|M%K3e#v&Ezm^tk)$NVEox zqmO+*1jeKBAF!;D@B#$x#f^POnG!9TG$Cq&kKF?p?s2+`s@C11NpTi#qC^7KF8B(O?n=tT2F#4w?Mup`j<$qKE*5v7Hcxx7@8JQh_+>SsoN`! zL;ZX}8Tgm>?NR%{r%1)ZIK%Hc?Y@Z#LqRq^!{5pGv_xwHIxH=Ba@C*IF9a^w1S_x4 zfOYq)Q~_$jBg@>3#FX088k^3T=akEA0+fwwN#5k*$M>q9=Ws8qutW!p~X^JFTa{0x8exb0%#d=M$B2^if86 zivfhAB5$<~+KaKvmN(2F>2bM6xQ5FwEk+O#KKty8#DZIQT8t*AZ+>GL!rRWv0M1^Xc6dNIx`CTCuv-7_i}SDm zWD7mKnt=1o#}6>ynpR6RQFiuD-CrTexr`FTB&Ii2mfw+pg{N~woC~e{S7tn{0F15x zCS)%EHm?>|(Z82lD!67hk7ApB0MWiylAK)R!{N#OniWv+eGSL z^gb(nS0X4;dZGF*#_zOX;u$|=fULK3iGaq6x2zivJK)bvSLV2Q2oiPZ<|rUxtbf@e z99Cqb)Q13o>9Ss~z=gg4A-p*ONEnH$$%ju%Lcc{;Lh`x%{@RuIi>&9ADo`%ij($H2y#_JPg7SDz>OJ&aogKC>Jc7uHeP_%Wxa_)0+lg|>;a}gL0$0^Yt-z(9OOnu`-7>eY z+%#~vNEQ{9(HDHd8_R2Bc^w_v9ztU1sL!kOT)I9u%cG0F-CfEzM9v_!dt< z8PV+O_mJ=`1bB-GeBixpzoA{_g287m1cUxqui!_P8_+*+>&N2T`Bl6MDei0dlgJI( zdVrPxUvMZ`}pz%qCk_mTb4@S65Q_7Siz0tSO$n?4@FRxf1E0VAO0 zfO#;@>*5{M8^bfri}8iX0r&|V_n8TN3iU9*sr@wlM)nA@`+x|r05gF*-nCyoleo7p z18n`)0+PVLz*cXUuOKj3)ObN;8hisb2M2(`)1XrD#b-W8<28uZ1s5t zycT|sb`N?7Z~K29yyAZpesF-v4nO5QG;mHH*)!-*M;h?b_v)<#qc|(D3c{ z+4xiF3Jk#e@cIaN-9A5jGTvtK5XwzsnZer?X%3hI6Fmpt;N5pS1z>&beJr=4oj!gz z{17#qeX}H{62xDPTxPJ}%)9feY4FN-b(8S6&f~chd z@wmxvc(oa>Qo?i+Hj2lXXZb&Y0R+|^{=q&%nE(IosFcVhaDB`vBYS&=sb~YMRMR{o zn?_z^QWEdvlo*$Dd|&xm>cE9l*#atDo@(`F!<7?S-QfQLedV*VIQBL-j8YFoWCxw5 z65pd!RXF}1fTGNE2SRKh*MBTh2f>s%Y!B8h;ls>L&DpNVP&0mVO4zXPKvBCNj)wm2 z-VdysUiAs7x7;AlqtoV(P3G(O#s9Z{MqUMR_G5Knv!(mF0Br&dbjpEKYyL~h4>B{6 zHd5ow1qsu0Cs9EpS#r?!@@3+`prxir6e2w{TSHEEgwEZpxS2h8wSIK&XypvE;Mo;;vn{_a+ z893q?rzNPD8mHx%#Za-Syo#B~WZx2thqMa4`{DTCZt?|GHIK?B^UVOj{%0dRWMc^u zVnKlR!mJO@u9T3+L)+907=9r1tNQg+;iYtfK!(0_Xk2>H?N$%}v4J#l9U8(iupgjW)+hohQG?&5hJSDqC2 zC~fU4!iQ>5@vnXqx_MV=w|P%!J28ngvo-RECQ1^suIS|d25NH_=#c(_J(5HtLG-$V z-v4s)M7y~u6&gsZS(piCC&=;z}gU z=0l0;Y9lX)2`!wjuS{w5NwFnOu#SDXd*bjp4`UB`H3DGm5}n8X7mOTuFuWBQ6A()A z?94=KKED5#39JI6apNTMV5)k*b*=LVvoeqa*Z)_ikao=Z(M)k0v3j%U7of;@du&SA zYZ#d1R(?)oWYWmPsZ%_S`Gs7tcr_*wne1Dj9x@@qRCCs~216E#?vJ5fyTQ&TGDdd^ zKJCMb|90g;+p`?mD%V z_J7vE<`79|z&B5j(K)VM zlCMbg^QSRv>DV5(?|(-v|1N4UGDI^zPa!Gm(4JpLRd7KFkGCwpJ%rNVbNa6?^a&Ri zP~}TVcQUA`Qa=`&s7`bwB{K)KANh$@h)oGYKUZ~>oU|J~Fh}pH3!>pHEMFfI3Y!?6 z6ple9Xge^77YbT(>$ZFl3jAjX`LA*0KcFz0GK)W|OZsI!wHgQ+Z`l3%oHOcc8bC8x ztuXigpNw%>UyVRy_wkJtFZXl_I-Le#HvJ2w?ahxwEoS&A7$w$ zLfuob2+n(G$^lY~2-O2k%kl0aPnU+t>5@jerMtVNySuv^q`SMj1*AJArMtTugclXPZtwSco_Bn|KYyHK z?ZNP5ueIl#N6f`u{z@qQv$QJ-uK_4M0hD31$?7@adc%`lHU4tIGDQn2MK%IS=qx^$ z8mIw7sg-g7)z?cUyMbZhzUT8(e4xSKW$I;(*~3aB98XGxuE^Ng>^so(zHQ>&Ogu?6 zHf8TqGDA@E!h_&cwC$z2K4Z@)%xeeXd$NrBEx0Ud|ENYkN|L8*TD|+{S+y4?gtr*T zb>)6rrz~V%&4h<=uwF5~Np6J?N;RG~Oa{m29zpT`^TFU`M8uz`apT3`h0n_}XRW^y zH!Q3EH2NiUX2ffi_GbWqJ{WYUg<8#iWU~#qqhBD{TtC8s2Vky^$`h6NG}+ z*uB(l-W7?e5DUifR66m8;}RBv(}_H*Mp~5=nQk*w20mI$W=sE37~gPsUE1V!7tD4m z?Fi$x9;)-g10SM%GBxQM{rD1{LAe>-;xpg2P_@+jP$2bVe^oMnr3jOP?w4$`7ujHf zklF|~2}9^KNsb~Ut!03@@a{N3%%JC8EFy6BFS06yX8uzi20^r?ZIxwGkb|$?cLzZf z4PM^QwUa>Dj*eIU`DfP5SbWe<7)uO6$StG>KUKA_EPpNb>JElt5D2H@GWLigJ)UNH z72Ig>QDT{wdPw-4dqQ=dBxD#qZ`1SbJV0){2IFta>wd?T0eRtuN&vAk_WL(9uGLgG z%kSzTqy+kD(HS?DDlB9He81g%r`v(1IBavDC#uH>wxU&%;uZn_SxZbXYiIU+6cMR4 z#sZ&j;DJsPTu>Mm^UVCJE3x2}L-*49Cs&1wU zPL*V&?$s^5j-p&7ITo^Fu@jl8W0wB=Dqeg_)1Q`l*TQ3> zdV`L#GizB0B=m=)oQusf#L#RnRoD#wqASQ(+(0u+K1&t{-Pb!B{WA$ zQG*?kg4rsZpOa6fNf@|~atzOKR6f}WP~`lK?w8s-)ZB~vI8hKE2X>$>%qvYK;Bthg z?u)W1{WP8lhS(zf9XAJfG#!j7{(v_Wt4h_tz%E%wb#a_0>f!`$3;UB*A9C3!!Yj4tu6SufPr)%=hPuCC z&yXBOC?44@r@9ZWJ{?R!>MuO9qW5_Ng=~+~Bs@)Zn{Tqe1BvAEYhqCRRfELhU8Fcn z(B$@ru%xadqCuGi7;vHO$kQ99&ih1ZN3%KZwyCy{a$gC)1gGH-R|=e&9;xYf{cA zarW}s1jkk{G99Z;r==0`Zr-vS)1h)8Ykqifv_}AZG;2;#(f~BGt=5WCzA} z4Bp`Rs^Is0;K{n*-&7oUz*ldsMd(d@I6OUG*sYZN8s6C;{qr~ZgTQdE2PUvm_JDKz zN%>!(q9IAt|Ap-r%|iz_fxoU)qP95a+|yB29`^dE)g3C8+8IC|+vpAE%LioFWe!+f zP4je@PzE&PD^9ln(k1^L;4LaJY`L*H1A9-gF=0)`w_=29X%JJUD;+=~Y6&p!#qL!O zAf!H$>1M>jpCrPVQgXc$6FHA=@z=e$&xx@t!V0be&Asxo;IK)JqhEw9g>dmG`sMZR zL7~`bu>2vUxBAXW=RUmyZ9BF)`DUe+sdmiQ+%;L!wiljYoFiC~VW60wzzFvopRhWi z6m`C+D%^r0DyvZ-<5h(oZVT;d2N!}E?%g)j&i|zIJw2y8^K)nkDR4eNA?B%S)$0)I zQ6RQ&01K)eA$!i_m8Kx%-@G!Gy-L^}qog2ULxOmStZ%F1fhu3d0rIIIP47 z+$gPC+J2hCZLphE54jcxsfp2K& zz0wK1e`zyhZ$`z}GCGQD3wy{~3X7~e(rj9M&RN>lDBjO$d9I+=gB}}YA7!-$GJpQJIEtmEzd7YaHe|`#!64OYO%|)MTV;5-_jYWaqbhct(iPH6!C!>B8N1I^h5_`Sgap|V zP5D0Dgs(S8J;ioTOA+^FF{(1mnCn`*t*v9#P2h`>-F8-r7)>rbe-SERkzs#Pe@b~_ z?gvLK+gcYtZuLbQE!FuA_@n~g#t+?gG~*|L9H_rn&y?`19e|n7dQmn6Y<2R#XoUjP9Vf>VwFcV&V-g68#0~ID0Vv7wquf9c1#eQmuW02#9EUj zz?4p}E_?Iu>rZMJA=^k_=@e!7_GmjFW9R>=<^`r@pxM$TM_wmI|rh{WW*+q9a{`K zyO7Q`$4+{#XaiaQLzBxE^*s)So9_Ll#p#EX!+mf^C_+riu&13U1frD$sF*t~vHtI% zR2IMd)Sdc30-vE*nbiV#aB67bKRu05?|o5AOdM=XDOy$uP|Hj?Rpv1lu9U4

rSEnQb$)$}Oi2$otS<`Fwf_&xRw1OKLXi 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 d000000000000000000000000000000006$>r&j;~ diff --git a/other/logos/hetzner.jpg b/other/logos/hetzner.jpg deleted file mode 100644 index 9825cbd7a1aa8572034bed320c34d163842d0e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196793 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

Nw-=-u=g#ON-j?dVBJ!(1#=3D+ams z+doHNTQ_XZzAaa+e(}Z!#?Rh!IXiX1!Y7z%f!MMe+-^@~<)!@FQ`sqVnDe%|EmN}f zeqTNQzynvzyq|yg!l6@ehj_2<_3^p|FWq>`Iq0XSe!E}weSGpoi~o_l%=Xy6?T^1X zhnl-zH45E`TJP)o!oI;TUVO~1O*3|_eEQ;>);&0P>Nl_RmT$iO`MU?_esj;07jAs% zvu{>!y!C0r?cd$y8Zz4DQ62m8U3 zdp8Fr{(J_@{t%H$QKuVw|m}G`&B3E9{G9i#s!a0{Q0|0 zU*7SFW~=7QH$S>;%dAB$GN zJ?08CW%ls1@w)T&tJd3sn)DMNJ$y;>oH;$MKUrTJPTk+36{^0F7j*|Wa;`mD(l+rJNQTlUD>-QO-RP8v63 zTW$VOX87c}CqydmFMnmqos;Jb9s1BaQzlQjbII+)-tf)2XcT|NHDApBX2RF=PkrkZ zNY6b#{F*s2Gs-~9Tr*(+vD-Z^QC<<-C6@Wje}?<_cCq$eI2>Q8U^uZ*>F{K#Z&(Pdw+zj)HM zGn12)og21{-LJZAx8nM0Kw-w{Yi6~Njy-j04to0eRqf-R*!St4dnY|5Kk?xA$3438 z9+UU>d(>OUEIDQC`ybza@4NMVRo~NFM_m;Bsr&ekeP_*e`TBi!&!%ageZJS_`)o{o z`P{9a%~~}4@+;f-4m(1ym8M*;`~P07JG=V7Z&bz6pZ!JenXq(Y#Bd{f^*64a!=_C? zcEgSBPp@Bp!G4wJCu;ok^%s&cc`kK-c$ateXJ=l&`-Yb{oObJ~(V?-c)mLVI8hrOB zAMIIDeHh!Td*O$>Zs%X{jsNjHe#2XL&f2oi^!-g-t9Hj{3;jD*eDK}p>snviF{rZk z$9--49$xUtX(OLKAMHKlo;M?*aaYp$3G?QCJO&@K=45Q6F85_@nHGOx&kK+0*Gzlh zBHP{9cPTCXjUAr87Kns*igQWeF^IucWT?Xs=s$-Am6}(|=N_&bW2ch>Z{L z{&45d-TpGL{Ou=;i0eM9yxumCy4S@nS!-R=@3wVA`t@6N&CvNvCeK?mN!>dz;o9Y% zbvsvGG_CyE>wnv5d17yA@m$Wk`r-|HA6wP`e(BDw3zywJeD=tF-XHf388}xuMYDF2 z{{Fdpj!!LJ^XZ@kXTQ1finFI|ymZUj{i+MIS130>wDshHT=6S)-w_v$9=PL-ue__j zU9ibHfS>kC;Ec@!=iYe2I{PSc$JyIY8+YgYzs`zE^7b=4y76_EY&u~^RImwzW%D^}7YvG=Kk(WsFPhcu!WUoZ_uPHM$-mBB zFlTDl+ix2>9lz(50b5U9m|u3!yEK3ABjeTH-t%1 znOhdiPfUnR8Zf_p*ISqOzm@put6O&7yJw?xDe76SfdBUsQlFpNRvkL*ga|Tr?aX0c zq*C+ezzYTzKYHQD?+)8LQ@0;5c&IZwEt7_G(P@PJH{GcJMH={vYj%#_;#vH0e9X_= zmyExDqpdP_Yu9yD{HMy=`TK5|z)(?ZaDDrlb&+Sc_UnE9tcRBkcxlF(rymRM8#Lv$ z4dzvMvkM*`wEn|YCqD3W?n~nPb2sj|Uw`ZTlzRTm!CN*__1xT>ukJ@aty_h>`tH<+ zg3tXxE&uS8*H)u9jeqcwix+?T_|((3%#jxieekaj%vitIG$i)e$77~$9JbBazHrJM zan`qmQNGvTUbXF$r$tK`|z|^o}Kf~ zZ#dRwmkPYt!DbegQssD{A?@~2!Cu}9JFbp{gS`~~0Dh86L_ zgHKs9s{N+P-<FUjM=VYc{fB$pe zje9Dy^FTQ0iT$dHdn%*nUi{3Gy_q8lPzUnw{eL>QaIf^qqIDd@Fy0e?AW7mKrDZ*?7;+b+_$UvwF$QW#LaF?tQ!C^GEed z-gy~xgeCgz0ZVlLwVmt1zp@^@_GPTB-cgCU+Q*FD%q&?o3_7PgU`~BU;@OwCZFAnW ze&ufSdru^voc8wSO_PSD%irBt-1&Ot>({>8uiDN`{UGC?djAz1{rSGXnZN&RWaei9 zdqJw@($7m1K6CGUXX+!K`=9hrn0M#4>X|zSFMlKK{CYOj)jVs#JG=LM@x?`NT{r8Z zk8?N1miL4*V}}0t-nR25uiX3^GyKyp|F*$%(F1EPM9%D9yZNDoW4W)FQ0w!w8NmzNar5fBeM$r77uwuh*}^9$fuR?UfO4zWBOkNnmyQ)Rk|3bp742Y2#OJGn*}? z<&pHRr(R6YyOHk`-uLmu>jqjkZMA+XEN%-gwvI(t!8x9`d)| z>vu0YV$$t6=>CoCbpJZtzkerO{lCc0`nLM>m0RG?`a%ypnmtDzKI-OAHqYu#&v1;2 zta@+il=9d?m2Jr z2REl?EY@DJIR5n)AC-1pc>mi^zxDaTDKAcWXUoV-?biY}+mzT?>2Ud`^< z{nbf}*Lp_p9W&$x44F57JMrq|$+I?$Tii!`)z|@duUL+KysgxCo!h-~^+#swu9dHM zHSXT5-+SrO<#WHEbp8Kf?>*p}%(lH@X4G+1ltGHpM-Ui5M0ySANKvX7La0HCl+c6# zp<}1R0Ma2SC4q#1ln_E4q<1MHw9p~6fOP3!aORvlbMMT1&%Ez z)EgkDF-Rv{NEolHAGCaj?|si%Kus)Hem_nmp)3&X?jvk#6-HntdCe-0qLH)GYMi;` zFbAYCic=sjokTc@1V}0wICEcVJ=_pJa0vJKQ1kucrrnP3lCbBa#uqGSL@i zj&`GEB)De0>?#8O$6hVZPQSQkdY^B`i=@xRi%E;@l)e}_g=sFr*7EWO{U~^9b`J3+ zYyk50_20lT2Je3fKONI${M-2Ox8Ok`>HoiTvhu8oa~|zrd7!#Wz8c5?YRjf~`sn4f z8QTA#y9Hh{6b}Jht6H?&tWXiR+mDX%m_OAAnHYQ+rz^q1-cSIpNffOH*i6?yS0okp z3))@kg7EYPLI+19wgdpieiDe7Ko95Xwhog*ZVs6pWqROJd1rIy^umy-_IscyOiLA= zn`f-|MkHHR@9rz}8yyoh(K%E8i-Y-ZK5c`{@Yxw@m7dlhW8dlL&Mv-0)xDLofg8@- z{4kXIuq0WlX)((wl=I`b_+H4^4zGKD1g5A39XUB_o!T6>2B9!S`dy4mUqAzlR&H{s z^agcZMAtSH#Syst;Jg9%!+UB;p*~^{4+g`nClMG8xCH=kSN_n^rnM+{&L+*zD5?NA zpqf893ep6-O*cP(GEus;e}*U2!d3<4Aij*xv04T(FPhkBdqQzu)|WVcC`fLe{2(m7 z|1RhO_Ci=O#idU{$GusI1w@Kq$C02>5YEm?XLMNX#Evlhp)fpC%#M2sTbVX=gPJ}V zW#EYqaNaiG@a)@3b$*+KhgjvO4;`2_Duo=(=on4`w%i(PU)~$fzcOmF_N2MkPZS~_ zRC@0{*~xRWPk-QH#~9J(eZO?HbzHPtOPFbVk5m`aRW0$&Lk+RiBAq3cK6kQy1W3El zpyNqHlel=puHY>7*U8)e#>c7mo3C5%#4a`^Sts7xrxqX6#TeTch(EC=yhRi4o(}z> zPQWx4KpNHb+QI^g`y0VRp^F`&*plwiw)x%EfgO=dVp~>}P;%t5U?4k&?flG1&Nn)` z#}@fz=nIz$7jaQU-8Tu9GFk!IWxcW+Rwz`39=(&^yrW5o^%yiM9H;uEy&xc@%dEqm z;D{GwUn+62^|rMSOsq+i}6 z895J9faHEtsvA578rA`=F?<4b%d435^2@nf&1Zs0fd&`OQmG(FFY_>(H|@}k%N261 zxBHIHk1LKTkusHW5sk7ATR+r#g#~T*eOoNLZA#0%;bS4Q-sp^Xx+`4;yd7CSqY&*M z(3PiOwW8_Bk4O=4Q&pRVN`n}^KY`@~E*lT}@=Cyzr1hZe=Qk11D=r%^Y{@{X^Q`D3 zC;VndH|KVy9P4Q@0mAKHjqo2nzAjXT;Sl4>F;uPZW7D}j%WQnOxLCla=Nawcj9x=iw; zRlf1&$mD240n23lQx(~?p}%Uo)($^onmAIU;)T+z1nnp^*B_9PABAJbQ< z3BQx%)Y2eZNf>5mZZG~1H zIOh9T#ahm=c;Jh?o*rqY=XV-Gt+vp8Hro|xiOy`o)gQKcdEI=wANta);b_Bs3ph;0kED9`Q z3RDALu3%5%sqbxP8Xfx~uaPq>l#L=G>%O&qQ~feoPu6VC-p?2b%;+ub3v4tu8b|sK zFJw6D=o68-p^K~9TG`#g`@dL9^weCVbw5a`)V;gO#h)7zOp3T)Bhs+T_Mq2 z>2-1ZLSwAjO>ODUJj_`^u?3Optj*p}+t(nJO6DD-uWC+G>jzO2{|7YK5B5ItaSk`ARb9MI6MD$o&Vy&sj|`wOC+^G!)e4a z5D}3vn>QUb+(}{j93;Pf#s7RtM)Ef^AzyetepXlusUWW7`F5<{Hg`~F(bI?#?3l|j zUGRF)HOHTG`cdh$rH)QJ^$nW3Y*z~@sE)EQWPh)`MJe_tcRu)yLsZp&V`i3&P9 zQ-eFEgHA2lAbXztp80RS`A7!wv=nR}wR&>Q2mFk3vIG1?_V(B! zeiA`{q@x2cl6PdhDBPZ-_|RBfyDXjU;$ofI zwtE@+IVv6$rKU=;E^p=)yb%fWJ0F;XH10H=F^dvfY`$zZ=ZK)b9n>*NJ4%GdDaM#H zRl3Xqs2*F^&#lkrjU%m$k6bq%vDdxlGE4lrd&(^MY;Atuf)~24uSUf4=((&Qk7hxT zHzqhaPhXcJTm)ia=^;dW$mY+J+~M-lE)A=C43i#~J)~?%c-PHHwyNyURgG8GmL%nf zE_uuDxfpninW}2jOaq7o$jvB3|Kf{UtZz3S)w$Ye2C<5F?PW|N zI&{2tZu<6p_B~Aauy=iPw%<#E%5GZ(0&mg~c{|`6p7V=D*VkjK0)bDoxR5@YLf6yX({q_l)Q#URK>}?Gc#uIodS-w%WQxOGoZj)U$;0G#kyB8p5 zZssU0{k|jUmCfEEx0hPP8XUEyrFp^TWj?3XZPxAU5S1Z*4}SVk+Vt}Y<8H|Ui?PHC zo=7HBU2aDo(0*S2jk%G{1os9NVgKu^{jJ?B8uU>?n;LYY4co z4_u~&+*1Ow^tVhQT>aZuUO;Z2@cbkC%BWkuc~Qj4Ld4~0y7Yb7&bpLaw*$^q4ZQYE z);hB{)F~z${yiO?F-K?Wk>l3t^4c-oebHBI?}P4P#`bRwFyttHR^i_&+y`F)^2>xj z{UaGC=T5bzem+uzqqenj$M3G3Q8e1)@Ad;jfmbwwN-y#)4Ox&rcGx^KH>8cm^8uMb zG8~WgRX^0k_8`cz3(S7=)GUZk?TalQ^!OpjSv7RGmDXwf8FhAJu8hf67RKYa8=t-? z3tu3~k(E7^_a%CdepGai<_&ATMMozUxd7O4r(T(fS1Cpba;5EEtP#8wa4WFSQ!f$G zfBhC#oc84W5uHWssFjHdkmn+1efjdeSjlT?QGyC&n6**j1?kopLg^0sIS2`kPGVWa zLe59283H()3Rw!$GvU9P^SD*e=-mb&ya*%QweB#hNmepvsU>EQw2=UkT;!o1ZGA^60ghpgv7 zQR;*+OnalHC{Ua5rdnokOYpUvxg?COTQ?q`3UD=O>Egt;ztNrsRmN}+hn3?O()i-F z8;#WEl+u84-=3&x@}l$kVZ|5&PR_OD=FE%t$}1FRKhb->U={cR($(Ub_Mdvcs458g41ti9H;*$eX+?uJCmL)}fYiOg9a&OZsso_Gdb}EkxZh9Riy` zyU^Wt!AHO6DA9EsIPy}lmv8x)4!jrTxW!UBCx{Zh{U^fih#3dQmyxF);fA*|w`KZV zg7tD4x$b-|9hy8eKS{vn=Qbo%X(%7AMs&-j{z-E+}C>F_&(nh zCObYV$|xtYty!Gv%ZuwYpwU#AD)6epw>YoxH);kQI+9l#nwGWo40(Q5e)=cH|4&Yz zb+*4kDhNBkHUkDx05+9&U^5pkwM+2R5p3q>XBKG{iHoh@ec{o5$|A7Z6Eo|gvC?=a zI=QAC+#0>^pYL4p(SVKWN1k@x@YPbQT^<&Wv`#(n*T}=WtI=GX2@QRx~^|}?A)_Jn3Z`dBw zr5yV0D+TpxS^7Ki^a}6PbV$Eg&^=;k4RAanHuksbWKR5+_3w_?ZI4u9%oh%07iB;0 zKhqsh4uy>ohu<{zj8jkD+uH_jZA!9z4+g!Zqx0pl&**$TsN8d_FuT+aud}Ddy{BkT zLby&GYAoW9=|HCXyn!ca|No36trpWg-&Sp1CLca7dncSX+3E5o_TJc(!2^*W?Ckc9 zZ`_2^mZ0C+egrY46N2e0Ud_kE5v)^ngj1%^rByR6f+F>m^R=~pe#{kfn~u(bqt|a` zc37-cIOwsiuA=-VhrjNly+?=0#SAe(?mbHr>qmc55XNUjyGN|fyUtAuHbo!n^a_TZ z+QJLMW*Ao8Dl{7+S^W%pt4%*3sw32eF)?hy8ob-$`t}@ZS?cahj4RV#iU^EI#Wj!c z+Rl}}J})XzA<+7~SYM?aFlx3XYHzelaj;VfZS7@ct*C`XQ>-e?^5Gc&fz-~FOsEzP zjTEfc*8%DA*57#8%*&Uw4M3BmfnmZ=9x|hoLqEXDH*7Y%N?7wMp}FX=DS_nBCIJEQ z(9p=%(8$5W36wUC$1u$qpsD-x=hA!@>Xw*#MD@%FV){pt@3gE5B6D zpD0g9$0$h>TPY8S67!KHQ-GqkhI1=4{lkS!@zA>WqgQ&hs~9i8V{Ah&e731F$6X!*%cccBzbPUpV1=stmkIzxqV=B{L=$MYG zASdB>_quz~T|>jnW4h8Bnae>(Db=eb7p?YyPDDkv*g^(Jw(t%jHBJ;)4cLKoww_+Hx*^)G7NKWu&brv>)e z_t+1v_sYQ^J|KP$#&PFBg=S- z56FFV-G5-#9Nv0UciB@dpe=7J{&L}F&3(?=)$g_N0u{)-@#IEgL2%aN&E@!fBt%{& zzek6;`HWNpP@Cquz9bXKa{K>a#z*^amE?_J8K6#91tof=_H0>>07JQPc22jDWpsk@ zjkc&ud%HAe9dN%XJzVUxuE-4_0NlrDIP3rs-h`lhtB+Lb$*!(FMcr7Fv1c&54UlzG zi>eMGnT&1(zSP(S=?P+W41gSMbF5mnPiY3nolQNn?^(qIeKKxq-g@>?0J-ajZIhoi z3j$Yrs}GOqzUdvm{-*cjKVSZsRD;YFhBYCHif^80deuv}nF+IhJ6gqRY?@&#%z`~Y zM}&4A(^&~QQ=J+dw)POrl7er~ge_6*^ir&^BE>qkvbOz-qHV1JhQ1BA7Ov9%9>sW> zXLoVPZg?Q=@D@Ivi)X>>a0^g=x0+YEdn+h+u2$bv*UHzO<~{ynx>Pp6CHMhH(t?q> z`%O(Cx6;*dM3Z86mWk+97Jba+d!xBku?;Ji)ihd?;HjC|JXtL>MI~w6g_|Qu0Bp&1Z3uj8C)QsRI z)gUHPW-dB;si8t?U2Niy)%j1(el=opW@{<4R>ZB_OQ>62Z@qu5+1Yj@^gtzT_d?AX z9leeh?y6sSNc>D1FEoeln#SxGJ+PjGtrOk4od;HBgX(uxe!@*WTm*JiJ^ih;i+sL% z0i%^_yZm~~d9BTM$}e0)J9xBtO3A=k3ho@eh_=(o?erT8vxf_Qv~8KEkLgf`msy9$ z$5{3d^a@(@=eD(wwD9dQU7QaSe?`Y_Iyy1ax!J>Ud`78K^l1Bi(PfQ~wK(PajPd)Z zVQC%^Zj!8L=`BrjM$tC6JR$)WoGqN$E@m;4(p`!jUTXwqYDFS?UjXgwA#IqXxL12!pN#N50lpSm6V1x0yf*2EvYf zjaKbo)WWRgLi@C5XkZa&@l=;mbkm(3Wr}Poe4ml5ln;>icPSDZ5U#%M(;V};MVT@> zw|kS;?iEq-!6>oF0sg&4a4v(~x(eIb(fzb>{_$lEkKYvItCLcEzn=k1ovAzwSwR?b zr`58}+8?xwan&vih0C0X1Bs)RGE z#8YkpD|L)qtU1;UtgrS-GKwn}!Lb5M@V;P!d;_=w*2^Uc@;J2EO#B9t1jB=R<$<^; z#1Dd5G5SI4C?Ao>Wrck1;8ZiD$6%!q4L!PA+bO(H!j?&D21L?KN2A*z z`r1g~Z=M@p|C0yj#_Ipj$JYxI)vbZQ7`^z7k9QQ((N@eg1y0oA;=F`T z?$l`LpJ*ARh`G8k)R-E#jTOeJxk=!>y0efY%i9@-eh*vBixM-f1S&Fbg`%HC6&l)J zTfU5Z_4K5FKKpd#@Zp}H(M^&T3&nE~TeJE&7ZJO3hhI(e{uv#qg4agm4=hy2l-wM4 z?Aun=N$I9rEoq6W1@4lp4wbIjwIG%T5EJ87ZEb6&T4HebZ~DShyI;EG#sAj5VXdgE z;aKV>b1|{I(jRi~ohrEaika|Zh;ZnFH7duCOx|Qit$W4s@oZh&D*8B`wjbXpo-@|u z?IX^WjOJDRfo^eWpk7OsA&W#Vbe4CKtpZA?e6wha1?%fMJ}(}*ug_)u1Gbcijl#U_ zZ5lhg(bJIIgkdbuK$mq6>!9(0{lg`dOtpZf#yz%8CSsYRNtXHWCABO04WBVmM3zoz zns3RxEw3rskx41VAq8(2FUh2>N?d+#`iSOS-McH*zoDkDC-N3?R{E1}vk0Ua=M&Ru z`00y>>N)@Cf-or3%KB>jn3ptZ+R5Zq&S#`}rBZ=2`vB(Rb!OvBYCxBA!$J3R3sd(F z{Vu8%oPUM%Zz1{@bv20>fYbpkxte>rgR@I`MqeN4W-AkR%1+M^&esL&b<}MVF{WOD zL_37#A!o~zn`5L%QtO%Ni%_Jkt*mVl`CjmE##@%clL43B@xOIT`kysdAZ2@qcqp7D zpf7BZ?s!TB8;Htv^z@CpY&U^wVpB2=;Y}YFazbPB(`u59qQJbu!kN4%9xvd7lBCd7 zSX+qN!30c?wp-CX+_wypkAw5tra0Eei*qDRGD*HxOqzTx*Q`HoSHykN!_i1tMlHtr z^Q+gZZ)V|b+K%ka3$vJ-8J4Z@diC`m{@fUQABA|=Y2#LOf>G6HWa#wl)3%m;d6$fI zNKRX^3TN{bCV0&>O7+olf`B9mjEq-1I<|P3rI)S|FPVRWir$Q0;A+ZDb@H_^+P(2m zz8F|5TvZhHjN~vCbXMl-Fr_$3HdFp81<(=|7ZdYM-_kK1j?|L1?y*bJVDdsADqlH+*lFw<1iZr zxrn%qsu$=l#M`>Em<^V)7{E<(^21)ONx-F@`*GinsU?S0jVe~ZQURc6*ZUaV3v`8C zQFl!t=RN+QcaCMKt_V`Z65hwBGK~u~ty(%_q3?{u3>>wK`n{ zXn41CjRI_qKTx!g^Lboh>rFCIVvO4#RHC%N*9H-j{}oqfzuU51XjBr{?i`(pwCQwA zB6XT_^l+vDlVgFnPK&m%ki7Yf@?qMP|Hn9syEU*pw3SEYemc~S6qZ5y&4ip`^<+jK zO!@y{N?y3Y0P0HH=wzlRk9|+-n8QT{n5`ADwAaaJTo-i&uA|YszPvKwv{k_YxaVwI zn?rK?%_GW|Re*h>?*vEdur9j4@eYb3<>wO9v@UfGTm0h$g|Jyz8W!q16c5;ykEg|Z z(rcbAm*mYB_@yjl7&0F9Z19zts4+p{x}CaFH-aWRpfq*E=%#ujTFv>#cW4;P8AKDt-!vZV@Ib(aTRjw`TH zacCoIfa$HHWaCKcx}L&=WPIx)5G>FEW;UN#0|T($pVqB>+zz3ZDT*m`@*RGl0w`J@ zoyNkVC?|ILyr&RT_yNN_&6WQT$Gk7ak^s%~w!`8}>fl0!MCU$w_d}C}CBWF+F5l}+ z+@n}jRgtwdDYd$R0#^+2k@Q)T5o(%Qw*t@o46`nz>e^P-#3dF=dWHFbfa+Hp8m5ZKCIk z(*66oF1+MgH;(d8N8b$WUEY-Ha^hb~sVM|WW)M_+)R?=4Qw_8mh?0hzBtu4Sl6#7k zl`z6!(qg^K>Cs~UG=r*tAs1N!`aJ#$@pHK;=NV`bStU5N8>Q{nY{=q?9p(_%nR_=D8;zT}s)jav_c;)lUa8>`W zt0$xPf3SvIH;E%K4Q(a8KWxM@&(Q7T6!alwR zNp>=kstq@VXWq5lfU|31PZzjevMuu!x^6|N0*1LwAwo?{0>j^|=O!gBiD%fCSwHOA z0LFJ46RfrrH_eb};pk-|qmr(DfWfUVBj5uuc~@tHZKw9TcuPxswz%z+&ex0lTI`Y5 z1+1UP-AmhMRX2Ovb#dZo^pOp{>WY_oCH$ukXjcuedqA|^d-9dck#zRL8Ca@{SH5jW zOQ7xtqP4L+kQ_+cLlrQezZE$ zJ9*rLUw1RqH#r_3;aNf|TBcn6$c>qFkfxjbMW@CYQ zf85rzXVd7I?kpwn1jsmy=Z_lt^q(5+D~W*9${PUA?W|jS;wEPMJezyosL~HA_uxYi z*YUwa=Zjy3#&kXU!soA}BmTYkH%H0UH@ASf-}qhZ%@j`Kaq-Tvw(buwFcdFLURG~g za?UH^%_hc51CvKFoEHuJ(?G_YiQl{^*^!K&u2yyJF5(L8yQ~1*Eb5gf^dUzr{eYFa zGWnl8l^%BhIvEvvB0y%%0_iPiwCnV{VUC>CCw-jO8k=^Es1NVyHMzH-C4C$6-F~DL zV@iUWN1UEWdBuGjcS2hg=zh4+8@$!1zN)3R{NM<=hPa&pBIH5Aw%fML)6#la<^~s_ zw)zZ^k&&^A8rNI$^owSf2*h-=KIij&%ZVUq*saXETlDH@a%*kkd*S6)P_%dilvgA> zK|@$VE-7q>ppR8^&*Y)+vL&YoR8Y=a!koOC7E|x!nYK6#psSNh`4>LjwRltIZIs0J7wJ{8$j}*tjwtt?!PXIMelxl<&DFEe{HHsepgB zni^~L7q$NUWMXC_O_;#tDxH|&U@%!%%k`3}3$7j+JiJFsa_HV_il$+k`ZJZxN4;A0b;*Of3#5k?7X z@A9s!C1dI^-#c(ThHkFAGz%1Pqb810vG+Y*Y`Qz90-#mfFU*aXv2qqK0^aF?ss`;C$sr;z2cU|ep!D$@4)8mlcN6t{Uy-Z zS4;r+qa~d$yy@xE9#X+%b>Z)PPoHrA5L+|WY>^#3IEW$ zM@4b8b$M>oAug8a)Y$UDN4km8eYAVpw24zX=G`j?IOiJsQh`eFL0RAiP*ua zvcma#oY!d0R zMT+%y=tiIY`N^LByUEkUU9Fv&yC(8fVx2L==|!$_8w?RCN1g) zBjNnOd9+=J9Y=vwaEYv4Jjhd5QgS#XWHcm#_X}O?W+)!}#jHw86{7v~W!+LK8~MJ| zZ}41A&h2B)hVvuiE8y_(Y1rhuwoZ8FDr*}{b~5m-;+=h9}3q#Te2Z()@Bc9E+;)x`JN;$^e-Jd4*0 zm!y>n`kc9Qa{b>J(8F2zbxeEMme8btj0`-8^ zyTXUB$g;cgiE%3`y7M)SCw)NIVzgb>MH^OuOqB#_?GAOuE`2tMFPi;>$WP&m6y+nb z)BbQ;`%uDj>5)~qYgoYRc>r@z<(5T|bzKE|mq+GTTm53O8v#ARn5H|K@`ge}P9f!0kjzXbA{h|#-FR~(OA%u(;itOfKyt-mJ&384;v7Q4Po2qvEMD*7` zDZ3jY8lznGbT-=VCCEwhe2w2bT+FT7xd0fh2~*SMYS^mG>pRS?u8sX+BvmP`A5^ag zeOwc*cGRouXj#IhiGqtIV;KC*nL#}J1n4@esm;V+!a<9`C=x+Jdl$Aty0gF%O(We| zwEW$nPWwI92bSr3g@+?hLq{@1 zBiO>I4J)3|Fu~l9r74^vPibP$UhOQ>vh{iWco48CmC&7RDnbR@r}g`p>$qjdMj05Q zQOt(-su7_Zl`bMkhxCOA7W1>Wr=sE?iBEOmEiva1^E)cAv2zC(~fo z-{anQU>Hy5`wOdN`s zxEE`(N9(=9Vf8Fv>JwyTw`G#8Aj%u5^5Rhvm771<>dpI))853IZx?ds^S*bz?xx0k zFVaz;iG~oa&@#jV)x>qgU*5evJV!|D-$;}+u8cRY^~yt|7n4)aX!x8hd^BlK==K*& zo_)1L?mu<6i~%Vz=bP-V)#d0LW$RG$rl*tLybu>*9bd)hlW^XUz$lRC2g;wWW9&98 z>QA>Y#>L^=FoEzajLM6Gj6LN|7-_eGXe}Cpim?if=J3r$s8s~f7R+T@{hKYIsGv;BgjLS*w`8Ge5I%b$Y{UY-L2OFmH8xo!nht zL>^ogmT0!7@sR5ZOt8c2#d{NJg}`L>tCO-f^(re3)H%@}kVcg0F0KVAh$^Pdf&rfZOS=ut#lC5C z66K(k+|iXF-IBDU45hY_A+B=tkqJT1v17f%bT(gGNxVUaqH=c zL}38sM-!oU)yoA3UCLF2hl^*fA4X1&CLL#3G89pgw7d__-y(H>=cP+_}&PLkgNqA(^Wcaeh_v2 z1s!-&%HPvp!D0U60Qi5Cadzo#VLlGrV@4&4WtN-TM){s^Atl^HzFOepChAV%TEfDD z9B62L9{MIo_`n?5EmB&wp<&AkF2GK(mK9nx8dLE`Tl3{rKIk>**I*Y`9};{POJI)z z3-gLp%Au1PT=E@4-7lhN9g0#2E;NKdQiN~ct^Hu?#7P!zU{T9_s;9s8A=1XJ zsVU23Ad{E($&Ut^A;?>iEw4j8X*nKT4#BHL>CpmPG#X7q@8zZ0+S+-Yyx_JL28T*d zzbJGX=qa|ClU?~${oMN=QJHruir2F}l5QqQKbug@Rx1e~X&t$X5&S-gP1& zJCEQ(z#P+gR;Xm(tkR5RKH-1HNQp8&sFShpn(TL}S7Rh#MRcwE{YX$|^v-L{>J4u& z=nS7BEmr+kaQOe%JE!RAi1@D$Uwt^t!~0#5ytcd_GUd)#YEdQTw^t?PUO%7pl&0`E z_GGP^PomQS?`Dn`+U}UF_PO{icnbBnE>rIBVGF#SAh%{6^~zoGD}Y}fm%m5KJX*YghJ<>i(sA89F!UM#%WPDT4yZNIzr$|3TE z@mB~tv)XDg50#0G&BYHtj+pL$s0G#q-w*goxz*!jN7%Y6uMOTfgw{Nk{6}jmw>P$f zWA>9B_^U(qu56?A-t@<|idA!hIsIvp<*#o6M;YGv|o)PsCk+ zU9&_Vsp?DszQ}w=#sQ*yuXA2@+^{V(ak2E;^n+wS*`i=arpAe2ottT!4vg^ILnBEP zS%>PtHi=&4hwC~;rL3} zKy>}Uav4LF%zSptt-w!9IxkUQz-3;@PqD9MtdqF4SJg8x?mTz+KV~& zA4r&tHcPb&XJcC>{9djb3>bnmtIV&*-b15no(sA$GBQ2qy~aeY1hpa2D7J(HkBg`H zb7ru!5?%{9E26lL6!0ogTjL?GO7?1dScbIOuXXUx>o8Am?-DG$S(cVp`F0-mn(s4i zjxTq=Cq-xXEzd<`O+MW$G}4L+dP*zD*ZJJA)n$S1LwrYdumc~pW{34NWze~n)*IJ@ zb`q3C(9dHq9<&?(!hZ1o>-`{#;jSiXJ|wb7uPDoVwd;7mgBGle;e95SmFMh>Et80M z`ic?H`8^6j%j!6g-*=lc#eKe8QX13RKekf%oR*zdy613;eVh?E^oq-tZHlcGLIHK& z`nBz~yjRlF02XNg*L6{3PPR2K5@p3_%;|<>AHXq{hlJLB*K#$2Gv55yhLYT5S3pB} zZJaa*`qsUd7M88DBUPr=vb=p-dCB<(#Z5<_TX}O@pm}V3=5=yeBkYQYGZ(Sow$9Ov zB|T@NnEIh|exd9zr~*GNXl2Kp-C1F4-QRpRIt&Uu;rW;8((p&ILUWc~(9{{F5*=(1s)S`xCBT8Rai^qCZIbkBfKmlXC{hH!VEN$=C7t@3Ldw zD@=mZ{C(xdOA5?z5B5)^>+K3?01wallZjLO9$2sIIJ# z+Z?B@F6Uj{@x;xd{>*dl3G-t*nEm0la^Rz$wYb3p;o1$eex-N~%HnR;r@BW7xhp}V z!zuy6NmBkc+bZV{NYV`a`n!8I_6N6&1f$N3@5n@tTh3kNVFN^e2$Jr++iDOPSeT+h z&w6h98T_y_YiH2sg+`N}^{0$Z*n@QtPX=Z#`nPhqe-SJAFRA}8S~%g_aM#O+&f%`U z`fm;7uP49aPB6*B_09AFWui2jnnh+-qn^cTM}R1kb=@6`Hb1G6(B`;{&<$MI zML%$9G8R(l2F>q;ne{NWg}H@9h<^|tn+Oi#ZaC?o{z(~|z7Iw>-|JLcypnI?nU~~J zXe_lJe7@;nBgl#Hkp$9G%JaaK!v_@N^%<*#8LO_~!&qPUIFWruia^q;mRDsi^e`YH z$(?1PNiB2kcrl{yPDE%X+KN}6x$osPal1To{8O`IVZ=87gkSRl>oHvtxbpL|)(u*I zgM#i|g=4z`PXxtG?aqi4caSYc&ZA3(r$G3>0Ho!F9%Gq}62o;W_tN zrNfi;t2dH6)!sozWRu%~ZJ2YY*MJ1z#>GAn>#}1y$$f!`=w-WG$>CrtUUa7HTv%R8 z9_He1gjK#cLYGmJ(f0w{qmw7(cXTdp{@PCRJO#%V+!NMI8KmtE?P~-e8Taniv~2_) zH80uQ(`!e;zWnAdPs4vJNi?{JmSqlx<_dSo@)>*sG)0DSypEgaYP;kaZ_&7BCf46q zl9-tIVlvBJjQfX$7&$mDhPGsf7mP;<2PCg}nFK6k^%V<+r+m{vPC^SfR3{~f_gnS!KQwb2n1Zm5CXrA+lm3YTlojtaJ}HW1_#wl@mvVds?#e%WlDkQDcg8u@ zUXPm170-WT5?Qe6t|2WNN;PmQ^|H&9j|1%(i)y+#0rGgHYEnc_*>4yB&_oQ~CL2#o zEp6>Z7H%revp`T&Th&Os)GS^Ymx#WVn#Mwo+_PWoQ$O_EvQ(e-Sj*4Hl!J(167jyd zxjEk)7Mr}1V4M@*wo|?8izak|Xf%aZhe=9C;K8bh;dnw)vv1q(q{q}O|)vQlv59rx7pWdIik{fwlI)0#HDj?-CyumpcgdX z?aQHKy0YEG_tfhF__3*R&i#w{J(}~@8(Op8{L1seLur?%f5q>4+RW2vkkz7JOhal( z`#t$~*}|+BOPtI;2uA27g4C4mLoxUrq)fcN{wS1j6kPJ0^{B_5Xy>dZ)uGN5eq-<2 zW_T;i89OIAl*%%W+{(DZsM?^dcQd6Z%@;vB{axTys^=P_p^Cx#koV&+{hQO3fAx$1 zefxYLNssDNJE?djft@@#qH{Rp$ubmSQuR86Bep`3%5{UDlHiF4*Rgjr$>Lur71ur& z#xOF4>h{a1NLz)XZ=v~K1ieopjqE_vzmYi~LxB@cZa zP`>g;Z4B-Dh_}Byp#N<5`9-^{ZV#7eF*5uSnxCa@3OU?DX) z_ORspYnJvG&>qj`wiQkcM>?MqBwSpj6wJL-xvYWii_VVAj)EMP59uh^7&Ph|+UBOW zq`>V*^Erl(^}0#9^esPn8aUG}PsU!)ogbAS*CC??+V^ZH#qJ@$4! zavh7eG!_Kh1?e+JRI@4NbTra(GevZn_^VG_mrJphwVrWqO&&~I0(7;`>dmXlc+Fl&kHTb*)Ou z4;YUURmaKuR?P#dl&G3D`cA_N0@L$)-Q2vh6qUV|i?4Ntu<>i&=GELId7NB6OWWl; zrSJMQP&y{4h>u<_Gkpo6DXz9cX##T`nPyyeK;}7U0p29f8imY3q9PwB7(b3T84!=l zmwG=~O_Y}9$6Z0hudn$2K97Q%qmR{8ag(A34hG{ev>V>C3l2YVpOH~_Yn~-+23^5Y z`57Uu?ifQsuT*m*^o*-c%OY)GKF3C+x4Vddk#pYDzgOyiSI^Pk75v-5DM?6Xg=f@) z^6rlQ(f3yS;&H1(-%TnP~lHe%o)`s$F#`nbLmRvkxr7ft7?1R zSR{u|@_@`Koz6MIc(1Bz&b;&?v;%FwBf$54lkfW4GcDcQU*w$4-)1=2aw?%Z>INp6 zwnas6RtD}NMz4*<@YwCu_QNc4u_$qX{KJ!*zojg8W+|kW-^{2u%vMkg(@BFWn|}gN z%!!@uf3F2vq95*t<<7>I8CmJx6Uz4804Q?Q$rYadAyp%u;KvVQR+rZ0D!1vrTV38; z=9=aom6c~6E^i7^j5llO&=77M78*qgz@cb9cZI6+W{oRe4)JcDfaq+pPpejTMT<>33|BJ1G?3&u3jYyqlBgd(s2feXcS zQ$#Pe0RaMp>81$Zg}sxLWbb#6eec`ny_2)or%zf-(wcLPG1r=N%sIyR{~Mu?!NYHc z7F@sRz$KB2UdTz>hGaEx+HJH4nAQVS88`g5jt~c;@Ppnv9sEfSYQ-0Wv1TAEnRWyo zY$agmGnScqAujsXU9fA3nX<#+oyj13qp>k_-wsS!vw%sl_Po5AOs-9Su$sl9y*a-u z&M621{-Lp?C0jsbupzOkJRue-i7f8W@EBVQkN0dQ7bELHoz>J&6=(r2`af8Kj2^y?t@UiZFNjrR3Z^sxZj zFY+$vffBA;8d$wfRe8MQ7s~^Vdt_K?!amaA_#JxTq*wjq9FcfeAgA$4fbM{8#l37F zHJQ7L=0O+xpEj56ep|mrm~2oF)KT#LX4>r4UJakUeL8^nKP}olvtM@6=mTD$>MuW6 z^zFU{@B*)OJAP+YYOlQWo?|ELMW#%j6R;8*Hm)qoV%M-AO-3d^#(e2<5c_INb6rja1qC3Z1jv~G zNb4 z=Tm)`SN&8r*5};EdKnIF<(%a4@ahQgyz=)m`RsAR_O{>&I`qY6#fRDZhhl-ZFTx{6 ziffLptp_J><2^63W48R(-3Ppy0D~2w-$x2L11%D5(%QR}eO9M{!nxdchZzpf%ahl~ z!{Z_l^Gf4D;janXt%5xC@2}9SfIt3UAad@@%CnNK@e6j8f@{R>JM43&hkTs{&j!Zi~yqH9O%jxh4(VIxJxohJe^}Pb(qUF6%nJ=g=V6IP;8V z%sHQ)jZG|q9L-H0zW&{x>-(hRfA>xQ+;#t}^7gadysOpEatV^wI#mLh+_W--9z3a* z`0}Z!iK~yRaV+=M=iFDOH5L)coSc^ldDTHoG7gi`=xR!*c$2lI9NZP`mF9;rZ~_4% zjPi_WbaM+97FM1LCEp(vSZdE2CT&d=2L#w8G8Vb#BMJ9z2U_h2e~H$O;4XG>Gjgbb zltGkB@Qs(#Qyn&4bFv3f{v{I^eMc6e1naInOw6Ex%3wZ0Bq;+F$J3=#V&C@sA(G*&+u56$kEb*Qzcw_~k_H8@g}0S$UcYiWO>`7+c9#kSr{!>pU>^ zD%4|@5W)u7)g^0(cS*nShwCqZ)swm*@o@&b+YPGOY>S;|$nt%7GQ6sM56 zhh8v5rg5q5$kR7W-KnHiGbKNeZXDR3Hsipz@0Y5?9xo-ungsQlMyJP^45psi8ssjJ zUE&M@_hQ6sP`+M{D;nK%eK;>xw5*Z=9%|s_sF%n{yqgg3Bg4aO^z?F*kqP%zIVi=p z9`dHf@}|OO%gPx7)oP~|&w_7Oy_iqybS;lBh`y7KmS_UVYuEZU!sbwfT#N$s@l48# zpTGM}lF!-sba3;3TIzoZDZ*I=-kEvzf2f~J{H6AyLRTkT;Z#0PVQ0yE4l^t=+*oAw zUSukR%}(lj`I0x2pYh?mcr*t<3=(j_Qu44Jzs~gFm=&C-?kU3VvZx^ z!A?t2?SOWdf3$G1dr~ptP8%y|O38oS6GbHBp9za>UE|~{yR4(rRxg{e!7U2k4H`^oqezehAiFLk*tLD3l^hkEnAtrG$VmRdYCGXRy^@WZd4BJ+F z!R{?jkE)MU-d30gO#lICD*1C(HOGj3Ur*${+B=1K7%2QpU?s$7MfTdzm2E#-L#@g> zpC3^ATYBVF(oyEa0{C8z^rz$Q>=paR?UU#b)X5;@@`fo@3mi_wY1Z7;RU8tZp>4Ht(iYt(DSxQ-hk-ol> zX+xR~1{DlSZfryovjJLbRvu~&>3nu1CR}krO)jg>B#s;6zW{L1n#d_Yz-oY{08CnG zU!jGpcM0-~ejseu=vgxE(Xe24pQ^24rIKN2>0F!o+xHxyCVW)87VDuYpKoP#g1ri& z533X*g@+;^vB|Z%LMcfOAt8?i4hD$MB=H^oImgH%h6rf`-)@|2K#703bVI|I5$p@$ z%Stv;O9nv?AH;Nim>~Zq)F83$@A{1@R##2P5C;AbXI*bG}dmNT_-Fs$wT0 z84@0H-HUt2jx2$J=ge4^M_y!wEBnd#1yxgejBn88IOkd~I17wM{rG2Zu)v27it~I;5WafE0>gUDMn(?}lt)X-KxkR#`?47nR?NBW{Y!2Eok~E6EC8Us- zMobL%tqiT+6>8qOQ~X7`MQ-5apUVf1)s*!W5f%W>ghh#oaJRGtRWD|g-ZFay#N5w@wQn$6+;dkp22|vdh<4|Ht}#m zq({s+3KJ}`H-mH%7ITe0nUN!-*pFqM5@pQFTzu#&D~t6~pqX6Z5k~(sB3RLCXq>%d zL3xq0tg92j(m`~Q^z``~9(uEDQh7TT5OtdM(I)+B8d9pZ%Vo@dBVlaqo}K@!e>`EH#zLm5pet>0C_+gW zY?him6c+Ms9YiBTpftM;mDZEfD;o%9F@WZC{c#RA0@iMNucS&BNQi~Y3}T~#nPf7M z4_gPYRjPH}*3p&Y6yONyzVwH7`=4WPg2=e^Z3m-X+2Bee4MRwmf>L$Y#yZiCjv5t) zVRftsXtdG(pKq>hy(wB~PTaEBSvBn;PlZ-=lSbkt*||uXA+0>D=hVRmceOuiP_S%3 zYlU9gNg=6hUGtMv)#_f@W`E4#&(@*(>4Y*5iUI~dmwzc;c`!)jBTSuyssIa zo@cIr0JWX&^&qCY7K-*FMN8?Q(LuQps z3DmY`GK^4=($9)zFRRA2gDpTssr)ev{gwe|OI-swnw8T_|i+B;bP;jx3)RoX0bZ?lA=TtkncH;g1nws zNAJ#P2}ZiA4OMfFTGpl3T^3@NYGv2G=a|;|y0Ibp&N<2}X|4Ah0jD%ea~AAlSa~hu z*{9ZQggSr~jg`DuXQ#Sn3AS%f3%%#4I-F-?x=sf0)u;SA4sR7DP0IqTVx9FRC62H4 zNFm1n^4QV+okiGiC;*whTsgg;ZKb~g&`0h}zp)-Dew%MqbMW4K4%Sc8eP9|9fI;7c zt^Bl06xnQj&#{YGlJ8J`2^t5N#2=y&+(o^juzGmI=-4t~k|%rza=qsm}(VsR+K0VK=Wd zS8n;z?$J#Hp>s-TRTU=M>s?9sS*esQBcf;)hK-||uGvX*PK*4lEK8QmP|O~+goMjD z3ggjko|(_YhuSTB6!>Vi&aop{yvyE`^)G>qI4(T#3ewULc)oOG zb@E+n+AfnG_Hd;~C87FNGZ z8mf%%;%TCitC&bPx6DzbQ$`FyI26ozyU)9X&-5P#r31~YUv0OoB8K9h&op=<=A(ON z-{kfjVV@s&4XulIUMp8TB&M(O*&;(>>ReNyT(2_|_2uRR#~!_4 z5JS*t^pdW&kOE>?W^d`?Y5N)v_@S$?^OtdZNmLf0{ePHpe!P%i-!Y{nq8f&t?WkK0 zJCkyuy)^c+{<#~jq9;Un)Yg2wM|i%${B$P%zU(Tn24PEIb18)?oDoKfoK3yg0adZp zZ1&gyX_!vJN_;hJv3On1cXSAilOJ(gr_F<_Cl1q*60q5$KQvFir_|?NdU+IIRVgE{ zs{upRETGZObQTsJ8x4wK$*c9yAfdL+>Dn(zlcd*t6jQ(fXPTc~n-X~;F!9EkrY1m|nNX7r{qcG=T1b1k=#=zSB*M&olqNmZm$R#r% zEVT*3-Wrb6z1k!q611x zh_01RscKHnBE8bf1HF1p{61d1y?|$`SLaHSTn2do@U13T%y79>7@52*p9?*qNmugk z%LjNM!bB<+)K)Bkbg1~Ywzk$Eg?Ji2O7!ddU({FW#t~mNvPGtJf zrTapC(q=DOR8c&|NUzrQ7)03Et6W?Sy!bTW7_DP-k*LQx;eD{f~&kDhNUnMnHU)Olnv#GKoW>Z09iYe zS>Qgcqypm#c?*?Fi94NzTWENUc4{-GKUaH++I+Nn%?mU=Lo0_an5SW!+(v<1@2a;u zHUv)$N;nwfiNYSg{@mYkgF3=eu1;-S2_d6qgR471knU-75k@WsgVs&6aS5jbNL4^r z31B!vW6#np+a}Z&dR^r!ifl3TDkqc#kQ51EQi&XiNi5Lu)d3Qn!ahFq|5wh271P%n zu@xqG8~d<+wp;1!xMJiovcdc+MH$r?wB9{@0S0oJZMZDi^ffw6^4={q{M7PNLJL|g zGGVo_y;wdALfP1{N`3$YKz>OOIV!QyFZm1^X^VEp6_J-~CU%Iz*y?LAi6<^kaqiwf zSKIh!NDzG4xT3|hZA-sg6pyZ{^!>t>8@dazNb4}n2n0$g;SHRQ?oC|0MiF$0~zet9@{KKzx%aI{oK!gr!)WWH1;{^%qak*tnZ4W56hwL=cc$ZR>)|$_abXs zb2;x2|CLSRH~&!2YHqL6qas*KpVXna8QM?2>BH!axv6E}AeeMeqXr38TkA#{WgXc} zc?s2MiFZ{1c{2HGH6Vr|-!!B_h`T&gcDbLPd+Pa+_uQlL@1?eNmDWg)(8SOaEu_J0 zPx6M9B#~%>XZk_>m7R}XClKr%{VI#lYr)O(Ml=A<@_b!yr%gnym6@oCy{o-(oMMlO zV#{>%w@Lm$cr1ZX%p=U4Lt)R3X8MVn^~}3UgPj`WbP2)|7?jhVzx^5DY~Oo{_@7@+ zY907fi~Uts^8PE6p8u%Q6}`C)`@(8acUZey-%;3<9-l7cpny)A8pwXkgMojO96WW0 zk4N3lU*v0pNoO9GS12_*ruKxsd1Y#4YcaoS7t(?ejXDAIS&QjWoUJ^=$Rwz{-q11D z+vR1^<@g?hd4LqMyPT5m=7h4x?{+uAbSv4VcEt#_%!-|)OVvFv=LBjZLZ%p%u0dYV-FR)=eXuQtyHWQzC@Ml8(G_6 z2fHnJ}b`AA`~Fl9rIeCwGQ6rT?!xVe?M*yHqvTO_A)OwA4cT z_R&dmW~asZV~Dv^^f&Dr!NWppre;eMR? z#tFa7wlord%%I0SmkzEdsj68DOc}+WI)uJ5Gw!io#_waD(?PQDSiD9xy%)LfO;cRo zI=T@>-&9ve61N^tO_Um6_G;MJJf%9)dludlY~$6f~52+jb0qkNKzD zXZd8*xq4Twqmn50iC$4OPZ<+Y!H2J+57nOPg<4cpq}GjPMiSb!)Mc&mA3uc(i~Bjf zb^I=WZgXgP(~xY=%0D@xeZER!#Sh~XH14vR^MhnI;P>QfLAs}CcDJ`oe8~)lJNJ%Q zB9^`kJom0OHfqjd3(vPXo%=fRxqn`3c$REj-R3MyD8>la-)LvFVVh3Z&kbeq&I|oZ zf73W$80Ejq@P@oBvo04o(F>EZqit{BhgB%tu%bq<5ZtPNsHwdfe0yT17#&`^9ULV- z+`}c{?OYWPxXV0Csc{HZ-(b0PD!@;`ZI3PCgcq}W=EV^nqn_(V)kmw{q%-5IMDUdd z5`O+$Cb9>X3B9^#Sn_ftQ)Ffu5`3t!$$-E3O}5BH!`F*FL0E~*k){;rfo-mu{&98M zA*Ds<8KT^qe3b`Sp(SZ&E6(TkHNsWF%5F}QfYB&g{&?W}$3~Bk&Og(n;O)P8k8xVn zE{mrb@BZk;4d#ppKA)72PjE^*i%#Y5FIn(Mqp=6Im;6UTJ&JVRdcrwV66%E;u5F4) z7@Z3Q*fWjWASULQ>+2imjZIf^sr2UsQTnCXiPbi%PIrl7LyabuG5wOwV4FLAmd#He zfI1!AHIrGvGBV)mkhe(4Vm3KVWXL3oC>oU2@DA@{O_=T7xav&x<~J%p~ude|igl+LwP>@?-9zl}s%Z`@pukd$&>M zX`ktCiH+K}%KVv<-BTTGuU$ID*GQo3)qkp`&xv+;kQ==njN10|Uw65y?y!MqoEvtJ z4j$Zi@b1zZ{dSu_)wPc`dUJlibtRkV{iJ*g)O0E9i|3kHCe1{RQE7d_#eaFrG9Yr7 z;0qPiP;fx5=|ZgZ`e~F%A-(EsYBSbfBq~G;yI&|wCm^m%rK+pWt0Ou#s>X?)0k9fa z28AkusjXxuC&18$qdapC1?5u&1O~~81B#Bi^Iv-XGSpM&u!!*2oDQeb61?eaD3&e>{#ULlR-juG!EH_Qbrw$VFbYN>U+rXQufCDKu7N2)`G-k! z^|EfH0I7#&4XqEljOmuIzrxL))AQ0o<;$d@iRom>$G9Mf>7GVfAeu`AFhJzHM=oZUl9pBAeTDW(A@=!)Da5ptA9|($1gP8 ze~F$Zy5@P=B37S`Sq4NG4sZ0XzdpGdv#mwn%}23yeN2%uFRrTy4xviak z2FrqN*Vcib-E|5$ux^U|GB(I59p{_@?dUtgJp5-q$*5m-{*TDUUoA8XSmJ++si=|;*EYlRipqT0I}80V{Zg7 z0f8-z_eKC?V^d%R*wLKb20z)8=J2x?xd?<(lWa!RHRr#%@=aBg>X2$i zpTsqkgn4_oU_SsWa@|tvj7*Qcf{A&&;iCfPV9{N8e1~lnX{^!`Vq)3WU`gkSH#YXI zuU|C06KNY}HkHNSMx=m^W(fX~MQ$MS?qrp)frhCl6e3KN2|iP-kakh3)yQIMb@pkJ z!{$@RuY3eM=nshLdJELGs-AhHM^X3eFUf~TCdc26avCcJ_#^m|&){Q5sXEu!ywJ)t zx@NzB22{rF@3EnK;(Ye@>0ueJKNZ(GRMD3!MK+usHnmMp5hiknNn^h6Iqoe-pZ9uF z*o)2iW4`t|z17@pYEay=VcsA(C9xy&&^T9yW`>q$6}Gh#{xz>v#)p-Svy8yj?d}cj z-7kUZZqc_gl)4(JHFe&A^p{-o=^v><#FoX30yBQ(;BcsHZ{4o*)A9%vqNd%44J18^ zhDYAhs!cH~hiekOo>%2Qd+YULPYV(@0Fpdt>&x|!&VqD#>EX@-@M2`9pFV&jFO;*@ z&nCi0($w6a?EUqByM2!TP(uAZ$NC~@eQavJ`FIG8HJ#93(XqQ&wkYxTT743#^p6$o z`_^7X)f+y3)yMFDzjMH2y@WUS<%ZIUWfoQNFhzfaQetc(g3lZ#87!hNELWSujBQCI zdxY_{EwqXFXN>2~(wz?*kRPZjD{a}?Ro|Ik1K?+lwwZE4*XDA@Odh{}ehxd-L(h0A z<;NG&?Ncyd!($l1K((HW{Z>aTmsxUQ#!SV z_81^~IN#x@VmIZ*2P?AcT~kZ(XE(1&Bo=b(zv(eu)wuyAF)EB=N!NbdljoNA#Cw{4_=!U1QvX$u2vNP^SFc|=5;hJJ28)C|7?Aumi_u>!8MZ?)o~$9f)xXMI~^E+C+0SE4=mJZGj|Fcw`3_ve@Ot+bDtuwdq3Eu49MlzfbE?{9{9XIQm4k zuY=#$Opgzf^1{KH;qou_sv}toOJ=`}9tMz5qlk<1AA}Z|PG<=$52~iAL*`T7(j;%x(RC5y=j@;nPX#Ppmv1 zZScf5Q{zNwb#N*X+#`V*EB4JT2S;Tjv`FR5kVX8F(_;W|JxbQ=a|Rltv|k6Byd0Q8 zyNd#3s!S2$yH0X4W#M*G@Y>^2D>{| zo^sXYF+D;WS3oMjIh9^1OqjvpaCIye)^nvAj+#ZmiGh0Jz3R_5y6ibM1 zKnD-l($CoNu7>rNscZF_R(PP6u>@gxv}lSFQ330rG9{M`tL|+X`82Z$C4^!bkWro1 ziV)lVV1#ygxQdkp*`BXrx^K>`p$K5&T~PNODk0ongkP`(Cs2?CO1nZdT|jGIFs@W@bw|`qoOFEkI!H1H0ek z{RxqhnVL6+LUR+t%`+l-Nf#rNwj$NRL)U}~)aHwo7w4lY?*3T+V)|nkud8_8?kJ;n zc!ZXDKIsf?WT|R>aC~$VEs@BYvSd)a0M>uJy5R17~kS3o)nVdJI6cH=d7D!3^!k3}BLH1tm=GyyCT2 z@btElv?`W@HP~&shNn78chextEo)F3lMFaN@N%yH74yT$3-J>7)YO1La7-67eJ>Dv ztZgj&Lm>DV(n(nYa|yYZm~(y*I|~1CPr6g`zOBKk5@jbutKsVvE~N4yeAnBFka@}G zitLCz$KF+@n7$DH>Qx z|AM;Uva$=e>{nG@Zna>bi@mJl-47M06wL)AQYWmY&}&79<>yhQ zu1ac}CJFZV#Q~PK(Lo>Nrh$T_gx3Wo+WT$$@e)bO(u*b$)TG1FxcYPtvShq-kZ314 zAM4oSCRGxZiC*|H&|E^nW1l%W1p_ZJA#1k!-}W^1|Moz08<@&ixnzCS(Q{RCEVoj8 zXgAn$ed5d@=SpV+^a^3Md_>e#9emG6k@b4~9FqQKUB&*?f?y{kr8w2}<3vW4et&o@b;FL2eQfFfgZIDeA{pnIUWEd; z?6qUPBjR8M8GG6u&YzPJk4)*Hwl;)&N%R@|^|%AGP*?v3&g!jc#}QaqUwc;$l?P(k z$azbCOKG*WceA3q*u{Sk7CcJ}ZZz(Pn9Hf7JfB@+hTA!C0LZ936KZMiggdu%`P!s3 zcGk})N4G;g)N`C)_W>w?N0)M1BRJjJ=NUY?yWw9&gX|wJ2PWOKdFNa%)fg=ERyS|; zUWQfp=KS|N^q^bKeVPL9uM=MagGlAm)6w06*K8K2OAfC&=FC2g|f~+~IORx+dKy=N3B}^E_(m26aKA@lwJTAtPpF%0%_(EF<^Y zIg{JYA9A3@&fa|eAo)WMv;hxDRM7y)fd-Hs2tW=rkO&G@fwU0HKv{|~G+=|pAmYla zjq>^wHWaACsSa%p1UR`0dp0v~_BP<%zXpKUe8teG|2Vu%h`R6t`X=OL+H06@lPR1Og90kh`nSYROby?T)DL1vB%WR#z_GHD{MEh35Ud z=w2qFuz3%G-z6ut+3voc#ea`{a zXUIffUp}(hwtHf!ljGa2y<+?~g*%aV$H zo%{TS&SQ-SB%USHNvWaX~1Gmu|(7@nHBM$dkV40jZPokjd!7i*o|D8 zeb3@XNB@Jm@6$F@UU+u*G=xuAptpC_yL+}f9mumA+tXexjt^TSnkN-!J>Sq)hRq{) z1wB34)5Xw$ZT1RfO7^8|t;_Pcfbu1W%>`WTdyZ3z<-05W#Hz?$z)71vBR?)5dP3DU zq&Q-|*D?AY$~HQ5jy|gSo+Dx*)M)jrU#9xq92s?JZ8%)E?s>b6R?Qldl^0zbR8zQh zys|A<+cYg#YFvYIX8biHEpIGrE!eDXT+P9PeF(;I&>A(%Dx*Y99C{&DLDA^c1?eT8 zb#3qgr6cD$Krl6Phaq@*70KSkBn&MlmgqV;(N>i57#w&4+1ju3uE>*!uZ|Df#^LQ|;m6I(0V+0`xbZ80zx*T%{alep#s-KRMKPENcbIh>n*Cne4W0p9lfK zyE;6!=*3?!*KR+a{xB7mdr%v)j87;_k44N206jwxR(c@#eLxnneZ*kBYrehb(DWr4R3y(4Q z=U+A?NAiW~x`$TK{oG6YF4RHh940e2Qq<1V$ zZ-)dUU9bQ)U{iyqq5ZW1#Qbj*$ahV<&<5^RR#@~8SH{=#S}KnA@uhZN+h`4gti7Oe zAxz2?*PJdwxtPX1RsylmZJfR_`^M~S>Hr>5)ndG8qM&csb_PPaVRAyi@~ybStmLb# z%wCF*`{4}=Vu(?ET4SeJZ?LNGR^SOKCG^&8EAE<1JBdB+h<~ju zr}{-C$#V||c*4Ow;|JFLy=QoD6E792Vyd!4%Jk-uU;ytNRyWwnfPoCiUJ*akFYW|nlc^-Z^HG!fAoCZM5OpE)^iU6WHw;oUP(FM#OKLMy*tvd4`3k0ut& z51(|kVq6=H8!GJ`Ah<%peV|Y|&aZWJ9G0{Wc(PFs+5CRZNG4sCLiX zLdzNz-MbumY7k+UrAk3X()hakMRp5oDydS6DC*I-oJ~=cqoptfriG$`TYgbKnyg2g!8erDrb0-T03?Rw^*1%n3p5Hp zQj$4w2_VPIvZI+k!cQ*coq?PtJ{NdFKoPP2s!LY$Yx&WLqqjbiM*T;<|0++URv)Dk zVcocg0pn$UnLt>-Zn|$L^JyX0)C6Z+;aP4X-ZkI>GfS^Rs&x>omMNlyW>!}zraGr> zXA(T$7EVmW8+D2jo>(}}^`iLfve#M5w}^-d7p#CmYbU%JUc#$18> z+S8U%a`7BQ)}P1a(0>T`r@gaff#6DW+byK;I%?c_$Xc|G1^QZN>`kZj0Fx2zhu-`a zk-lYlOX)6Pnsz8(jpQs-zPRF92(g=xOUGy!-iS%E5I!$7C6N3h2ghHQ1L99Q`*?WZ za^PIOG*#A^>b2 zDpjbO=a8nmmJF1Cebjd)ctG&J%#q< zl^h@iUs6BHyL|2J!Efc|q93*UKbq^Ajjhu$ixeo2?C9`kIJzP>d^&i#(r9w(T&I~C zxvdro-|+9n+WbFk$49nGA}7MDHeu%T)<@JlYI6_?J=5BN15|cWr1HY@g`yN-V)id1 zvi<*-m+_zK+=oMp;?D>xUmypIT|!fzr$EkRl#EMLHPU+SI|swPb~U0gH%pr$@^e*DhAoB} z-5zdtJs@rORd^>6c63WihYLoEP#!(G>aSnwJ;IK+I1(DR+~OV>_W&!rd!ci;>+4y- z3y9A%V&-8#ge7uZw>Rxk=duAZ2W7fPO&jrL$B$h`r`-~7l0;42#h@GnvaLx7!G2+l z`*P-O{vs&cq^?<_Q^Oe#lvKPE^ia!!)uTsDrLs-F6fZe9908dhC8psC@PK4HIk}06 ziCz0n6E}J>aR1-V{a88tHH1;^-3}icRqs`n69OIR)Hh5c66$-sBr|#)HpCCO%OqvoT4#v=&@Lubotng@^PNv6nD!qvv(C$sd^jnm5K9R3Uz#C zIvrf`CLjpcovOBP{^|YmpMLq54buCkl1rVPz6=DX#!dN*j|8Qi9^2JRR9R3W%@B6K z>5cj!>4eFBIp4`YocXT_qd5F%J$7fn=hgz((Jdpr@PP3G^Tqs%giyxrsop4J^csZn zwfMC7cYnB&-yiJ%B;4D-XnN1@74h5tk<7XD4O`!PJ6yZy0V9N0bZ|d2dGD@yy_AWpvK(K38jYVSAI%w;gujJX zWvb+uoA#|}8bu`eSD|xoga%03w~T3*%De48(o@)mk-lIGT|R{O^v#=d$eXgYA%u{`ynbYqC*?QGRW(Yz#@%5i>gvMtGe!7g-c35? z53GJ%Z{Tlqh$}bYX;f@^GblsqEtfIui#{JjRLKJQ;|V$Ma(n9=C+jD8blQxKji3D_ zU|wa%JoE&#&#&TJVtddaicYHv#rZmE!oSQ-OqGE`VsU*CIUJ2;dZc*($v~@ooA5K^ zr8hei@cRuTXqxpv_+`ItBv+V?XU&9Xt>mIu2i`4j$tO@UVezb=z#!T^O4%(oTbvgK zCx{;l%=qrNTjq0i{@qRfyPN!P4-E|5@c%#QCjWZYx|@9}*9XjGbE_&bnbK}Zn)?uI1H~#kD!yYq%_Mk%)4|bqSvzfl`gNYT0 zrP_)Of3Sz(G=M@T&b9a;`(jU%0Hv_94^DmLhQr7ayhmaZYr4Rex6bn?{{njjX((JCA3V%~cf7m?{6zL5T8P~vbJfgkx9py%+Pyb=%UWn;W4`SoR zq;20y1R6}+zuGJ0*X`MuH;`6I7$ z?l&9Y2KfWcftV3=vd`&I^I{!G!!^*4vUoN;2xM>U8M-Aicy#dw+wl5G-02+^mSI+b)9B;hm%2}0;J{=;j)~&6 z;xM@$+pZm*qXT#3r1gRoG))%fo46&+b8v3efe!B z|J09rWgY*VIF(hg?r#$X`WEinI3(+yess>%uHkG^UttR7RpU@Ey9+ga+t4-qWXyBe>fBU*D@B7Mn z1{X#^fqxpFu@mu5u|Sm&Fg}#6E>0 zm*!a#f(xrnVk0-UPgHGPC|&D7Sdm4B8qS8~s$}&D;4O6$vQPkJQTLd)jE{6!QZ*4V zrPoKdkyF9HdR1f3qY>GBUoGjRV5*x_bj{C7hazb&<^T_SaUr|`f$FK0J;7sLpyzc?$sw~*|8zTJ0A$!;3BmFPJtP?c~_PK9Hk=3Tq#e&gWb+iKl{ zaswy+j&Yy;cZ~Z325X(Tn}TWEs6@|9?o_{L`GpA`dPVoe9u7=dmGDH$FPC(@%DpMM zb&yH{ApGBLvCWR2O?r8B6oQ~&jrHUNHQh-7Xs<)UxRsNJRhZ7j*>8R?l9~Gz&Ej-Y z-WVzDU~#2k*6x7pntDZ6S@o2O!wD!@TmkSsj=4AcC9|NGU;+sE+w_~H6~3F6n@2#ADg+$vx1|%Sd<;WA6j|hm zCI)+CB0nUXI7jW}ny8k@{t}h@L7shmwoUmcpW-2()LB8Y(}O|GJ``9rZ5xpGaRm>gDpJ0V zw(eLZ2Y5_6ck$Iiih^v+(nZ_H1 zAnC8g)#GF(Y3GWZR9c@r^itDymh!!xf!a#u*9fu+@SjO4ANDD-U807kDb5hY7KUaC zNVk}bOw0(tw^^0%uX4HGIRX4t2NR7BqfQeDIcp$@Y(OeVUZwNCf#4J(ds+pcY=yj=1|<$|9Zsl-K&3ZuGI9nZG376E7A1+v$jpeHr1O|q>(sZW&#s*@BfPpv zNLMSf?Cvco1zR=+pdigfqSwg3-J0_;(9qHP7xYT?7DTDQB3AA&rI!WGFKRU~B zh%6G;66k2_{WElEc3kGrLEp#bBc(>!HQ8Oy4SX@F-PCSL3g@C;L5 zIa}B>#v}dnr(v$^;Zg+yxsbD70bTJd6ENojA%kfGakgv%pD_@G0P$c4?^SUHO7xs4 z7+pK{o$~%@V=W_)UM*@RX4*m?+GQ($`ble~wp4hxhRs1c&L48N?@9Z{s<5R}+h|Jq z_LXUwmHyW;q=DQocVxV_zN@;(9CmeUEG{sgK!n2GkPD6cgav01Skd_|$lQ{?5X?kY z0yu4C`}jGl|Ha;WM>UyseZ$`O=!|0>1fKwpV6m;s^!BYyXS&_vp z?9p?X@}54XyE)X(cDJGlZT4g6PFnimiC1?6o*jCZ?&`*}F6P8!hVqQ7_*{%A{LC7; zd*ySTi0oai%&mJY_Pj1=U#OT+?Ta>V^XUek%Pu4_yezL0QV!PFd=vQKeN8-b zjBNEg38&w!MCtj%tBS6K$K7S2piaw;rpq_BW^lu+bK>0<+V9oRFYdnqsU32l9Z;Rd zUHbKiX;TG$hKwMYoG*#+O&ZTWBSG#2!oGjBZ+e98jeuuehZDOy8Z57;dFL`^s-&sr zz7OK=()%Ij5)Pte9K6){=Ye~95yH9Eyd!>c-;9!Gon?bl;(9ZVf*hW7=_w~DH#nB~ zYYk2}+mCUX^RJ^K@VS%=g_3kv$^|OFqT%q&k#96@#H#zX>n-}!j&x*}?5mt}RGR6q zmrNjjOfHlXOJOkG%szMM7e6MnFBrIN)QHpJ^_WV? z=%s7=NA|6=MacQoO<2r>_z}U}ST>GFa#YIYrc*)l63EtK*@KobyFtXT+>G;lBicr4 z;@C#RH6R6;g04m?jU*LkC-j>4NmUdx3X^sA4{a@T7f{!T#Q(x*|KC~L|BXlR=ivXj zqqO__p~rPZVDZehA2EWr=fPq;w^d&mP}r8A%EfhY7OQ#EhDoX`*10R9B>&)SMIyUd8-H6Th;dU5#XPWRyR zV~wGUn*e)@(xV-de;eY*zmK5(|EKcGdvmGuiL)Fg z(tCB?g>)k#y?P?5%N%Fx9|->&K zz{+PWWjm3Atu63Z1Pi2Oe0R&8auwZaX9b%^y$8cmrRD`gYbwsKLpM7&jBB*$e?twC zXy)B>3CQ-Q1=q;F+$anP3gH2HLxjqjpiT1f#!4Vlg%^#TmmS`Y*p1(M^Q(<4ffG97 zBK?{`C_k6pqIgFo_JVAnk2K5p#@vmdX8-nPw&`GKK2~^;BSDzKuUq1g(Yq;dF+?xn zQQ_g?r@|>?i35i7@u!dww~}!^CsEPe6&LNEM~AGCQSGjdGslXPkE(q`INxlyX>IyG z{&FH_`}vW?mlGZEBj&$%*Z#ft#sA~Z{U>^DXVEhHMf=qm4=co9PWcja)j_i#3tqE~ zqL$0k6B1mJ(xQ6;JQ%P2(}C^_$tdqBm?u|rWw~<_r>IXs9wC)8a|^BzHcbhS4T3g8 zjC>Z7V(6h-@SQfyc*4Rh!H6&j^pmUZdGvGPo*`uAK?e+U3g9&a+bTYweB38TjLnn< z-O-IJ8xh9qXn-iXSozkRk>+W2p1EJzdB@y+byL%w?DN?RGn{#nXE@nj?0UpP6HlW~ z=O(K)X(UPa$vwv(|L{YA@~*|vu;qjjr-1w(+xjL^Vu+B^-c^#9e9iAU6qr{MS53DT)4rdyepKipJ|dZmxSX>1k8s9bZw zPdf)EQ^afTh{=ajVNe|qOy{mj$v?bMU;Hn6`*tpU+YT3eq2pZQ(}cSb5rGHpI1-}} z{K)_XVP14Qa=KYF)k)OQmGJY46Z*6I=yglqt8}{TkDX6)^Lhfe`|qmc)s`W0((y4Q z(wUDkQ!i7^^&lq3O<3#s1eFKTATOe9fU}ZI%ZwTFpGCq#(zvvkgOP&?P=q- z39l}xA2+kGOZ^z*kdGqN;KQ>T5D$xd<%zjTQ`nj^8z$#&SW=3>Vf=wo;{>OG#ia=e z<<&dMRN$_=v{d)U(Q^|xdp<$^4_(YZ-H`uIyyj2u>_7L;(tKF9a_>JuZQTiRk4voP zxd~J@+^+({Y#eXhlT0o^hLo9fSVnsCw=*2)Tb5!9l4zGXj?4WvD>|mo_B9<{Y2w!B zg^*13jvVtEBD(7ish4nLxi=AQ*DGX`XX>bH{d793+zeV0<%99=bX#w`l<&6UhE(f> zXNuPp_H%4A8;4SHp2-WIKEuJAft#lNidx16#6GmKT`tk31XKB8w)}%M4W_XfU;_}5 zyeB_}88zwvmyf+;Q#^pe)@7hxX7OyxT029iz^6j2adB?hS13~ZZhHB%ckvG&jL$nn zflRhVDL6?2F?al>hI!ADb8+IG{;7B*2Z%*^Frh|9{zbCqww+mZF4k0LzSE*FEArde zg^|)#M)JI_o=lfh520bk%$HG8+zOyYDA-fcM-2d=A114i@kDXqrwZ~fx~l)(@Sl40 zyXAipo3S?bDI}|Ij|}h^hGY*n*$U>ZOz8YL6wlP)wHCTc3o}5P(ADXhbRFC%lcbDMA zYtD7|=%%9W z(SGa4`&)YV^x~aM&?^dQ`3BY4I}taoo54&>#;Cn*vX>eo_o&IMG)P69Mugb3ZAt(g{uj3(3g!<6Dx_6#lW%`eIQ% zocyqJ4kzTG79od|c|~G*vs7*nG~Hz`fEAhMyf7{(C@?q1$m=#kpdNhbHfHlb?5jWj z`BMUaO5jfk{3(GyCGe*N{*=I<68KXBe@fs_3H&L6KPB*|1pbu3e=Y&6rl_&cSxBM$ z6an?in9td(iDCZl2RJ_c$bPKc$%#`Z&1(D#vG4bXifmgxBqgVpFN76xlvA=T)&_^S zm#kx(X|{@xL9+dos*26}1zv0g*qb!C{8U8ooL;STBriFw%| zD12ros#*#pY%?byqk#trvabj8dZ;Tg@S!~3kB#KK%-m;pffSPp!CXnT@YIrayfs;6 zV!m}@(0a=YJwnR+j3+wxC4SI8^Yic0Jh)u#4*(^)brlaR%ALY)AaRp_3H@sUEFW877$Gjy>+z z+=!-toOLvetLkF;Bg>Xi>UAQU7pC=qEE&LcOFfwPHZZ^7MW13eF3&&%Ob^IL#MulP z_&KD5Pyv*-OKN^n#1L1K^V8Y(8IEO6yjLzMT_7oZYdqwS31|lcGk{e8V+uZdD32xj zu%RrPahdke6hgeYg?-2ZadW{0@v}AI5ku7)&|@$;GguTQ*k{b~1oK@d=Pdwb2m?)w ziyuh9>-;~OC|0ETj?ITflP8Tu3roa3IHRu|^6-*}M?Nw)-t}fnm&e1(wpUYdgnR2%m&V(X+wYwY7!+3q@>uo?`t@f`=A#ZaN$NU9>U<)e2adtq95C+92WfP}Z@M(^xD zn?lF;pHD-c`st_Un&bBjnPqYTmS!rLP!5$zTnFlYq>wq^Y}q|e%LyK}jk1%~$ktO4 zDD)(=5m)v(ihfuV=cm&n{opNbFh;f%seH=+w_BaYvSni&pFZ+SolP_KIU>LY@QZPk zeHHelsk~NDW5YZ2-DI-WTC&XcN_PW>j*96}xIN+AV*9(mM0bR}48_GFBCi!oE2|FS zXVp6GPKQT~!Y+2ebaWM}54HwEEm7GC^x4P}bnk7io&A|yB{a2})o6bN5$_YuxmE=oIa zbT*41Wh-_oZ^IVw(qxbDW;+o*NSgx(JiNukgpZT+09ZWB4_8W?_kG;EZiW&_EhVG6 zK}v{$RwOyqVB;S5!R!Ti=Hlm4nlX>-tN5LoeZ;CLJc= zhKjIL+ORpbAsmM_;HP*TZ!cra#@{8>#W^qwd_n-z$Er7_viWh1Tm{# z$6F2iYGM<# z#rB40q7oneA+o=;1b^#vrF84diF(7t{DAS`t(AOaRo7GY?Ck6`o6Y7-F~YvtnIty| zO8^P4fEKU4E6OqEs!v*@JU=&x>D9f zU!DA29k4r`^9OQ-%0Tj(3S7fMb${r&qpy1I^M9e|d>E*Lt!;Xq3&tB_O?k^+*~B*Q zIyx(u&bPO4@u~u>nmo&*5hQyY>}IX~=#Us4;I{EEQe`-a{(5}(^H*8?d-GDisd0;D z)?|%oqQW*|rzxjw6qU>xH$mp)vL$=scFu*SuljlH<(=cQ*Fe>RZR-u7QWmPSE$`W{ z)Q(NsrT{=OSeUA`w6BMq)Pz|?)A4t|CrH#}bp?{ldfIGZc$>W3clIqx4sVoPPqyM~pNR&jSyyN^DQKGF`-Z@k-HOPkR-wpFJ5`Jg zG5pJk(c4=RuSpjl=08(zxmPl>o<@y+MTA?B3u4&*o;v0uuTJUtZdZie@xT7^r|54q z;796Jr&F|hDpK4^C+sK*X(L(%9}DXl*uokuy-O|of$ljMa)Rvcm7dqjCPrq|^@GC3 zk)I>Pu~w98rQSV7;pFMhR48auHA9AQ3zK%><11m&L)Y5~Nu#`WhP8qry(!!C$&6>x zWXT}#GNqL-Kxs;}l4ZHlM^2F#ifC;ewsp9~g#NU-T(;KUN245_d8tlzO8$V8xb0BV zhgBxB2}HV-ziU!b`iabLGm#UMOj-m>ZtNiIM6~;>}Xrqp2`||xk{z7o{v6J^IY@qy? z+$&{y&OxNyg63sqlD_CkDAv|HCXH7(287J<(SSriD&9Fuk5#~*oL)G({*?Zar8vs+ zs%)H)2M?h>gcK?HSBtS-=!Iq(jY&B%Bg0RS4c1vmOG zud*j|3nwG$1Mp$Z$MMM({49{Euo+F+IRhNohXGY5WG2*j0X$`oS zP`loVft+Pon8qj4qrPHa3IRm}De0LZ!_%8@sn5`2uvb_p0yzema|&eKdA9LT+Elgf zx8t9II*6pf&6S6DZo+SLt{q<92>NgvXI7%rp38|ZGpA@Qrp`c=>D1F{=hfTuy>wrx zRkubq#C|gm#xIbN;mP6S=~>s4N3)q;gKbX@`wP00YGNaa2wHftuO z%8z{eG`>)>|7)>brTNTT5tBf2<003fCrFhx+Z)@5b_J8<& z^XnkwE{B-5vC-hR-_0w5Bqq*E1-u>ioZy4?fve=Ar32HM>|CtSDVyDw%Xq1c!jsrX zwkBs`b@3mo^XBqQD~PjSH@^MD?YtgH%2FBxJPNv*jM?Wpe z&QJ%Jaq74V{SSBs#LLbc2YE@8vUC49wy=LXNcxjP5kR6y{SY5FZ`)Ch7(vopMjM80 z@PRiqG`eJw7ot!XUiIF24fD>FU`po+=Q}Fjx2Ib=U;%OD4!`+E0)5A)8qYa`ox#~Hq!>aFXbNKh8%P>F^)l~nH$bJ`()#prCVYr#70`la(E*z0{u%od`Ucz#b`A1A%A zaMoEVcbt|~2cLpNS(>IXn;rn^L2uX(bj)kF1dW$4(pF{lr7oX$I0RHo{3 zBNJ+3hVw|eC-*Ssh1K_!DBg{S$_-9$KY_8N7-aZO9(m>0TpyiuDLrTKs*qQqaI%Nn zW(ROT#QecHBe^`LtXSE-k%b!SUo^q?x^ZWQWO2KcyUXjE*i!SCGZeU5$(}VxRaY_& zqvPXBb;8k${FC)vTlGQ4YxqzL1p4 zu1w$m!C60lbXa%{Ss}|(WC>VT8W}Y*O4H_}`;w-Y*-^k|o(b)x4e=YPPMy3{a`9u%+j)h7oGoM->mHH7P{H2k)?o4P2&Zr zc1cQ;x8}&X(Q^bM!QMI8K8fLf`Iekh$*Yv3Kg{NteJ}u%)4>^a`jHh071m0fi z`{<7Os2@aY>QtN`C`5v0l?Q_+!IE8%-Ci@YRjlavC8wEbkbeUh0-Z;?IQkc6!|z&D zMYE%;?Gl11Maq;ISS(7DyJlDD;*4mIb%BGNY5WjUTq!YCoMCDN@r|j0HuKnoFHG?C z*Qv5JUOyB8Gev&vPF;~;ia;7E9&S4qbFFM*`3oa!piHA^y__p&zJmIRPX+K=ZIji= z1yESD9DA|MrrYMp?a|Av9J@5C>-NUr+0wDL(I{7HaDQ5qq{^F|% z0Q+F>F4~wjSPZUSR33NA34MLN=Mb-Pq?wNp4?^c$%XT}Dt@L*lJq0=$z9Z*Z7+w3z z^`%=F=^|KdfkJGa_P(O$yxzdsJ=^S76qkZBR=L_{>#5REYS05RVbWf`1Z>8MRekQZ z>7Q59=38yaIhUd|TsD+IqECOEvI?70p(Ug8U&4esXBZF(#nG|zD7$J67^J(LcA6Hy z7FVaU&pf*7yst!K7CsoZDou%>Kxkv^#YMV=Fp_lV=K>^|oKPp%D1W>HmqPGoV1p$D zCNk!;ux?a1a+*#CgPiSb+?7|e__?7rEpWEKM0nK6i3QO`D9PJLM0`LbM)k|HVpr!2zmJ|zdPK3< zQV{MAlI*RqZA*=A_U>%*sU7F1qAptn*z&~3Mv$lN2>nV?wP}fmRC~_l`9-h~a4a#6QK;vNyqTYV1bH(}yI^8za$dqo&ldg& zW@y~GbJEKkdiPy>bjG#?{`kDfy>mgdN78xed{+DB8O9J93=sPR)9sUzN0agP;sWU+ z9sLd306otI@Jk4!Z^j~C#6~tRi$ePZf*Eh>-FYxgj*daa1?1*d^BfIDA!C$eY^z|^ z@k4p3lGn-h{=0_e){e!)4&}p3eW<|8ky^yld1!O8MP?2uo0JnRhQCgX5bTqWMk)a} zRK%oCF5S68uopi)<|UNUFT%Qbi@)iQhxd@6Plteisxj&Mhhq}90msw#8wep~z`udVfp_vt-4Gx%k% zX!6HSGgRbwsnztlJR8v#y`Dc(=h2q};UFa&OEI5b;Zt9`^2;(O!P(iUgIdAFe z*GC~Id3|;Sq+--yYJ?V%lgMr2s#g)Y`YGhaFYlp@D4Ldy_#pC8Pf1FZaeVeLo^+ke zo=gf+IWc+EosJP(k4;2dPZhMrQ} z4~bmuOSywjjGa0_p6}vqe(mdq>NUM)wzXClBG*75L|h??5Em05j+6Crq4683pgUsK z)g=d9d5~7Hfhzl&&NF#rl{sqiC@FWLaiy7?Te00}^WOA>zX6}!AMK(wS{yO_>sX)5 zp~k)2YI4x+oyKHyti`M;qFj}2$LNQv#h_r2$dq#~dw_TSakSnbCM9dUqratsf3?d@ z3#!s3r5zyu{;BAY4{A+^6)QG+cZkyh@F^prR>6>$TnfVEOnz%^mt*(K{oXP7(O;L% z7fmYw;IjSlvZS^BQ2QDCl^`!V zg;D}-ue}VfJpbKqi_>M!f`j1`i4W4}*yW?ehD!8z#R_2x=IX8CBly$+NZ6BIT55^T z1k6+zdnPotqw~|kP6irY3JaS?Jn;m+lz`-#OM(z=SWboY?Y%1bdOh zH})0@Pwgqq8%9o}$x|xIzzH4m2HG!pCR7@C?ODMq-A&G>sR^jfyPqG%|DmtPCu$}m zDRK`LKUihF1%)ZHgdyDAr)@_=e&i%9Zpn6TWo^^S8M$SrXM0B026_U0Eh|0TsW)GL z97qwAIwI&Xw*gr7$)TYb2HPFe&5>So_ti*JNK6KJ?m|bFINn3O($RXdLTkPrRa{5b z-Tdua%b?ElO`r-2GY1>+!^h7Ri;|M9OSe`Oh>crLo%1rD!zpoUuN2eTqc=BJLC3^* zQU0qiq*_FKQ8|U^bjRn34aP@OB_&}-E~~k9<9R$`bGSNXQ&(xQ@C>HAzd-<>cU;B| z(qDMjkCFouz>{GO;*QfNr!I^3}BwDwv~@EYMg+ziXpIh@(SD{ z7ReDK@n25t$k`W95Bv0^E`wZ1wSySdP@UETume{w)2O$!b5oCTM~(V97oQ3#f<(yA z&H*$Y+*SN0uAN~@^p}TJrUP}5>_P({Sip?hjRO3}l13eK5eEfdBjZ5(j#8dh9Np{= zSN7$7o5VBt*N2q5+)ljGrM_oxdWlgU+1hMV#9=xxH?-b^m6s+{HJiX^|lvC)cBvNs8q+o&K znLNc+3>_fsM=DDhN?o|#3^98!L{8U}yYQ5xtHq`IVXXHWTEo70drGKwEP(4sn{-|s z%b340)L~E0pL+xOwQU7t9Y2;dK_IE|AnL)Yj1Y}^7BgDBr$(fR5$&p+Vo};98Z8*% z^nS<%t+?1W0>2Y_J+5tdh|&ZLfL6IV77RsQ4-a3|Js-lkJBZvLLogNuB59GYcl%|? zv?Z3p^C>pr=p8>Vw%}=B*`$SS2Nf%Vsd7j_dCzUjeW!%T&y5~24ajSFe>l=+ds;|LPN*CTp0TMC%}qWI zLtLd`6RY+vcBsFMNEM?8+}?58BMs%(2v^b0b?`9E0cg0Tj$4EDA^GaoCMD_)>Rsy^ zW#qo|;_B^SQiWuWq&lN}O16t(r?0(IbF=G3i3V_D$33xaDZY)Ls8EzdKqXPnsO_WPFo z%aGvJ`ygyz+ST%r+{sF7ssQNOnf>pl9Nu@Gt8fty^tz*CP6JS1)yS#58axMVAmt~o zDL-r#5RgPe{nP>1=}>|=O*aAoFnJK5kA#>a`pD;t>LynH4ShxXjGCPcOD~lg9M#U) z*jQN2&(~w3;g?_ibT2#z^a-rBQ)p!f`&X_`eP}(fo^vT6Fe!b*XkqgMpStUH_4n?b zbi?ys#d9>>Vw82m`^pM*bj!G(N!j!7rG!V8>3DRZ`?l+yZrOe+F6&o-!7M8j6ja;W zyN%l0I}f|eZS4a29s_e!k{Jf!+oCxAKe<_Oh=eA`3VZ&=>#~X-dSLKbbLKZJ0paU? z6?igv)tF@``J=;iyc>jz#;@nv;;e4<^01HTj2R=NXt0Ay7PP(n;OThs=)-UFwTg#b z7U1-K4RGyQTk(}QycYpRIaP7Xg|&kqn{^q4ZjNU0$Gt1di>Yj{H5lw_2ZM zQC)5hmQoc!;M}3agJFL3Ou$L|kP_dhyJ7}VNvp?kanVjQuN!@(r#RKDIWX*4MpvWD zw4qm(*Ob8y*@T5S-FP_?o^>rh!f~QKAC-j#Pzc1xg+9>NzGsrwU|n#2SB;*6lq&VH z6jZ!sc!`%svqv*3Jh>r2AUvEAa{A?4!#(m37a5N*6{D_?K;G{{*?MBc7JXB0$%t0g zjInGSFW<8q9v~|V;jTSkZ>ZetZ>@kb;pdFG2g82dg6EJJW#n{{i0)7)pKl%|+CF_p z-yyri7RZZoU7B!2OF;ZW1}CIFHdT2>nj_y-E$7BGa}P%Mb`)z}E8qEvEG3cWbR#_V zse%_O^Ro@xl)=II=R!s=rZ{FTAt+F(tVFM&(?N%?AM9F_ZEP3C{<^NMFWyLk1^pxwc3c0JQRGZ9}- zT%axL;bZ7jjf|mhC$@1Zhu@5Ro64HNouT3^Ho%RrmJzi&A6zBxH* z^y%Bx?0;B--@mOBC%&Z!8rm0630mjyZ>zbG-VeByYrvF#8kvjd)+8ke|b1om{jARM`hz=2;{FWJu=nF3FlI{8O8#2*Fgl9a^WI2o(n7m|YqYv{$IOJ>gx~Evn-C z<%BZb7AH+0ukkc1C@8!zYQ%J%)Y0+KdA#};J%_KKi&i4DyvebpVz4yef}RVh&SIJH zOH>oK#QdHJSk}nUI|BBq=?*{(waP)onFd|TA)4|!%Qh}Eq<;w0xBclDo^oWiMIc4K zVPo3A+DH>IoIS!wB4x-)?VToa+MDaU!y}6$jAmmk3--EmP4sjQggH=z(uDTD zH$#-4HF6nv9R0q#n+ebgDHZ6-M;mK@dfC9m!#F7~#%^!M9I~J+FE#`SSwOoA6>brz zqvrh_AG1#*J6C_PrabQV%d48>vEG@P7`;Eg^kJuM15}on zi=Sg|z#v){MZSm<9-6rbRZu3^=WfYwN+Eom$X!}(S;_R}l+@G?_GD@)1Tc|l)geO} zZ}zP^h6+bm+)cN$Pywf?^QG%0$<}?Y6Vy>}z2gPMvw(}UWI7*lf7a1gE1wRDMMfuE z72xp)F7IerntuB(ws4_Q?l=HC5FZ2LfItFK*_7^=-c6?cVJi;GUryKz9vo|c+eh2r zK=wM95&M03(xS2a^|PbnDJgI1FZKLdmE#kjF1~Kl-lZ12L;jRn35XPOr@T!rxG-}D zHd(0G*|#HfNy@9Uw_L2lGdg*?>*O-SSIf6iEqODUb0Nj{vT|sz^G$bftJw7#u7(#+ zFx9HJ0g!JLwBKtO)}KaP;58RPVO%^~_ zg6*&LvEad?c8*;eyoJVZ;vP|nK|LKEa z(niaq{*S+J+mkik<@2C)pTD$_OU{v|U^xMp2J)au!Ymi)%Zb8jn0UYxrw@pz2u)fN z#_Wz1x;tJ916h&QDC^hG+rHIoo4k<Gm2y3D0RAvl*`23>CHLM@qJP41SXHnH!6yI!{1% zvk+RA$ylQ*5392|JFYhcW&kS--o6G(Xv4L*^$nF1iE_N5#Uzy+`<%By7-zR`Rp5^O z)(nr9P)hW>Ubo#PlJU_ZcDL7xN)AwD-exD+5nYe7th1_JXRyv)=-V^_rJgn{kq#+Z zWIQ)F5RgF1*>8K^O(^WPK>#sSOTB(&lxffMZZ$h4K_)%BRhk&Ut7D*wE9>EQIp`>} z!?5^+?*58Wf?PSkyq|jWYfo=&wjWKzD>K6WSxta^Z-cug7pJ8mY@kTvbSVU zNhm9T^}$y(!0v80-^Tp%Ygs9WgjT=idPX<;L3es$V%UWSF_-Z0kulG`+>v&85|y$6 z9VL*Egd#TB;s9f=QJwF}5E;RZTO4UV1~%hg2w@PUn?Y>Ia8Y*sLsj9$ z&O3(@tFr5j*~bOKuXj4Vji>f1x7Yqw;C~~E9hkOctG5ZON-az&xRc-8ui`AHt6BZj zBKVf-@rt3rnH$QF#NY9Yfr#zRRw%%gQbt3BK6-7M|gf3b|uD~@k1DDX@6U+ z8drdnn%24VowyMQsKpU4oz6^M8XZ2+Pon{V|MWs2lm#?4t4^Wn<{`b#BENFh%(ic6 z?Es_{GkmlMGE3NhAfEHQpSMr&%tC~km~I8Zk`x$gCkz0%79#V`qh+~_{VSt8#_dIf zHsyNdW@v@XTXtkrVH1m=rJ(RqMTV5r>>p>OqX$?-jJV6Y;-7){=F{3hFDYwgI1R@! ziZ!%k_Zxn7hAF}qWgWPnJ$>E1_I-1X&-_TJ?lY)HNx=WaW8DeOu8;^eYgr-@;aWD3Ukp|^qz_|fjH*G zQJhlHBs^7wwM5}E1xX&!?M}|*XI?#Sr-8LOal*gLHQ?$<=+=hHll||1?g)DJ%UZ?t zjs;e)-&Wi!-%JW6y-?Iy^j>4UiR`-1!q6C*5LG&-^k;9%&&dxe1bBiAs z7X)7?6ir*lqJ3vX46cu-e^2%xsi?tpWt`D+9b-e=uK~a{k=8MCg+RKzkOVlQFt^0s zyVzqg%2DZBG&yhDYju|3fcR&;tNicruGu0{=Kf=5oo4W>wER99a%Tic?Og39jAlC@ zBS1#P>1y&Yqi`FwX<(HeksIA@;+{1UOzR8D7J|`J&cK;lR&m)}N?L8{9sU}&ZcPJU z$i6i!fchigWm@jvToLm3Gk4ln>jE`MpX_|$day9VrW9hl(DVGEQrP8sO1$Z%n6+Q6 z(683)FyFUWn+kq8G5F~IC&(U71)%F76IExfL~}p(88wcvGr8fvrKxC5tz2RnRk91c z1DtBj^)SU4nUmEvl3z|dzh{_;*y7gywB(?K@!AQwx|{Q`NZ|$C#EDmPTyYqdn3;&X znoLYu=tzkZNzNYeDOC={_sjA&zas28&>JJPu5~v-3?b*jV|1`rVh}^q9KiN#DR4nC z%O6^bg14KBO<28BXr8=)y0+!y`YI_qf?BB-wGVvw<)D1T>6Oi9^Lb! zQA}NR3r-fm<@hLKF?u+SNu1e8uQEg`SUw!k-y$6|_8W#wMyg06m2hkPs7h97^HDRc zVZS2e26yPT63hr!oLhTHH(Pdp!eTzUQw8x62hGL{xb{(mxz$IS0@IdNsSh;>2H%gi z_v*x%t4OaiWLSJJ-1FU*5mKt19AWvTRTa7JmF(r#jh7f%$AzN|EiO*JO%mH3p@6|r zAwpF}FHO0kp%8wAfW)czzx}>t|J%P#zS?{{bn3z;F6C#}W>cMo(L0Uy8P{2UkRr+A zp=%L&25bTo~+Ee84FaE zTz1={!nrwhMLIAWA9<1(Zb;lQ*;q6?=@uxNt#ZcAwgWJuxLw-XI-jG zQ2g8n;sGlDj3+&GBq@nEDs)&HaX-xD==EUfweQ?z?USpL>TDoJ?j5jxRiLh>3zku6 ziplrit3B6$?Y(8O)sgBjS^}iQ?;HQncwc)(kjKBdHDx$&yqQdN^1u?YY3Cjhn#mhl zt78?VxDuasoeB3mk$&A8f&D8>%k>VjV^x^c<~(_BAXFURLJ4*)i3%`qP5Vd|lc5CX zHJovcm>hLF`^nmG)cA9GPSU-Uxhr|Lit9_SbPwXs-&{CwY>6x6!Pkaj{QYykoLFrW zs>DH_twIK0^}0JQu&v1eP1d1!uoo?Ju%ocW7!GeU4UUrfK52V%ibbsaK$a>rVm$H; zv`ZKT-yVA>h_F1>6O(a%cqQt0Tt3|=qXB*GUx^5HgqQiXIIKfm40 zB@a_=9U zdf^=ctBd&ZkU1XTZ#QwoME^j;tl4E_2}Wp^DvL zg|Khsxl}Q_Q_n>uegoum_P3`%k^4s~<*49MaMeLSX)CZ7N3r$*Vyuy zwj@UnZu4ajXPwst4v+H$C{SCxOG(%*0v)Jh(PGxv+(vdKB>X4^`~0$ zf$2H4zPq2Bi6!N6GUOSp_w){|k^RV^F*z4sXw1{`zI$>jR>-6(vp=@JZV+r2d*#>u zZJev?rxMsyTo>!5yaEk#xNHjbp+3315R<PU)!#ZDm+_P%SZ$hbuUZvaHs%e)phhAGoA_4B2UqywBR%VE_PeV_tb?PkxaF7+Bex9S zOrfq~oTT!mFjF9|RZT}**YGLR{D>5wX!o0h&!QE6@bc|(C*7c%2bEK%<&irt?Bo=qqiPkA#MFAsU^$ zz8jb4tMryCoX_OpGq1pEMkFQW%~bwy)5T0iQv%0Sud zSJjll%WZko=>6ypwKU}>1^MNI?#tvw6X||2=L@y+y-7(U)*0Cs;RoLy^iUos*>~K} zsd~kj7lr>X?%q49sjTfAc8cSuqYfgV6dgf9Kwyw2gy5(Yl{SHd&>2BmAe4k2fqSg9 zzzBkr02&~Hgd|b|BoG({LI)v)7J4TTB0@l_-*N8yThFt;_gm{-&sy(a?_MnON5T$g z@3Z&0_I3TrVYxFYo&_qe{}gY4It|+_w4E@%Qs+g0H}riuWZ$9+5hUCh9xF;(sHFbN zkc*#Q)#dapSJQ z*$-4UDuPVhKKLsu_s=pgjqT~;=7f+*K*(Jh94oF3qvo?@2=yMawK$WlmE2JANM z=diGH)7h`-ijROL>hznVOjkm2CR;E6hmjQ~{WhYpPr-^%aDb#@gMgQUV0w%klnat3|c$2%~NvlrS?Wtw6jnVrw z^O%h7lL06(_a<8mlx5LXiw3;}yh$0)gi06CRXk_)+f6Z(g-#(l^d4^RJ2!r*PP_2S zp+}C03HO#PY0{@MUZ>^2gESCS6WfwJG?? zuz@o6h5|y}Z2#U2+ok3CD>s$mme^xn*%9)3=jD~}&VJV~eVk=EAV{uCCEwOrQ24v# z%6LkE&WVTVcKXiAX0a{^nsCEr>xSSx3uoJFJCVjkpNj;lCMC&(9+BefPdmL@kuD4( ztj)0jdSJ+T+B(g!l2Yg=NqP*m;NU59)iS2JftYhe@2Iez2WJc>?mvoM^+dB&?Un-J zmTEU7_Le5m!_5(;!DSL{F}@(ArEOco+0Ypb_gQJ=!G@0)DvaE{!fL14T6pMV(qtPx zEsrKJ`++-O0(SjYTb8<35$H+Z&S?1Msu3NxyE@lK$G;r9CwesJTkC|Fx$BXktN_>S zg4)$9+pk`!ljWKi+iWue#+D+3@|Xxnn%a#VKRFfRX5IHD(<=W#`b+yd3ACDtvGzS|ae`9&tVt~9uD)3J zMtfWWiQIfg3*OH0)^a%`G-f_s+^s%0Ry0)ljEHM&nW(UYO`SF7vb4kiKu{32wFMnK z`yThztU8T~y%3q#&#J23mtv#~GIye7(IXkk8{@mG{rhtlC{-V1+>G#a;%tW5D){C# z?;8s6Gn=@1z-9dA%WaIS+*Mj5b3a=POVv8=WHPI2j<$z}|RZfr_TRjl{&e-_`S!cM@iyG8lta-f`Cy=KSR zaju5#fdsWklQpA$zxIsr%##31^jT9e37F-UcA&{d3ewTTlXF78$wzzHs_aJzUqOGD zzs2-`dyPFMvUhy7*nr>iUz)98+~Ymd*(HS&Ga0GP;OJ>mOkh2AsS7dk?^JDiRgs z==7ww7E`fnw^+#!%9ZZ>Aa;EN`nz;J(hb4Z?}yCHCQMh$sE!5TN*Fh_gZreJ$y=IWgdNQgb^nLG>z~|zR zFP3$d-8=~QfZjC^CQR3n!R_2{3$>~f*3iYg)AW+1`%$l`=~W`*Pl0UB#`B%wpc6jp zON*^-W7V#Hp46_|7fGKJ=^hp$%4j~);-g6$NilqxAX)kzovS?hL(cDWHQ<9@64NQK zw{=MU%<7{V|C&B4Zi2n1M{k#Fvz_@F>~vx?6`^tF5(rKiuf}Rg*s2*XGk>5}WEVL+ z_M?F8Qn=z}Nb*~jl&|(ZUfL?nH_SnCw)q>y8gH1~yP+!qeFO@+hyh=LxrE1iBq2#W@2WBO;H-G`WC5$;~;YM93`7wKnj# z5$T!Dw#}-*&ZdZAJ_H>lzhINyzz?*pe(zVxxL<|;x<=&auiadks-LQ5x7=|XK**$K zEgLovcs;*yyXUXkNofCGtKKDxw>n$PgO2rfvoR~sv)i~mx-*&=TH7`8@xXdkE#eIG zz7casf!)BEbyg>shGIDCf}*L>w_DbUg3wz?rQ6PL8oTzJ80DbD zNNWF_6$Q$!iTg(s@(1b1(7MI7V(#&AR6w9HGTOpD2&(bl118gke+Nw6vHuk>{WX(A z9{b?}e0k40cza&Uku+#Pop?2S2BlIai=F02RjGV5BZVEn_K1Dh+nRvC7WaH<2{T{Y zNh!DBMJDIdpz3hYl7HPr?T9M2g(%xsIKBoogwyAQ4mKwNf5fAUX;t|Sny zr^8x@#uO5l?~bh0yGQC^?lE^c{4K}21!3=(L-g8<0j1-nv7^_Zt6flA&9JyB>VTG( z*aSo;z_<%yaXHaxL-lU898quV$^cG25&W)PQq@mQ;>EhbIS47Kn2=s~=~2YzwPgFz zK{_VE*`cneb_4J#*1T#oWE7->&Fo+7*Y4ojcRJ;^m*jrtbD)7R3lU(Kr9?g^7HYf{ zTnxUkzQGzApk3z$_(C^*R|~+{kPR({oQfm0;s2kb``ON3ttT_$mN4VBfQs*d`|iIQxBA=tr|Swle-v#$s9-(2Wgp7l*Jf8K$Ji$FX97Q$^l_ zC$T;o4AO95h5t58#$^$u1HF_10KjPW)y}~CwGz(Q(eNvcC!xbL4xtryba{k9q}71M zzyx6=JV`UDq?XHYxS*%9MT+wI#jh~iy8x!}Oj3V!>K(;qzspNtU)@0sB1jX4uulf6 z3ZO&{5!=d@ewNCbI<@{)j0bu%uGodHr7W?t8Ej*z&fg_e^fH^A3A z^0FU9A2SF3X>2C}OCr^sHqPb8B{nBE7otf>Ry#4xU0<^iw2xgB@e=0EdeaLYP&k<* zP8C@!P`%=4mt@H@%=tcwF})TnQ})y;l}0FCJ>?QQJ-^GY;2+#2Np!z>fF0~;j%HtR zu79ElZC#v3go~BYi{ppl9I|kNWezsf(it_h*@6zN*aiDFFJ(FDBZ3$(_GFe>0YrcNulZO;5Owhml5ObeW;G#Qvc(qopXwL8L z)kkl(CF0kVPHI-Au2fw5u}(a(WI*rBp=s4~YO#8+^8KJw??7eCyFW!PXy6Hd3tYr^ z15C&Cybp?M*5H~`bCBn%2{j~x4v4=vEi5j;W(EiyS{#>jw@Rh-%&dLuDdrQ;UHSR# z1LZ2fqvOhDOgiKRl+o$>V>~Et_Wm!6yY~@$%~H`tu9aJ0*AB?OeDryP&5jWo7|*rC zT((-_Jpa5o^UN39@j}kAI4-Z0m*9@D(47tI!0%S{Ef4&)oFVgrOZ?aiH?wPaGdDkq zsj32{x*xB)#8;Sig;$r^CORj3;JA#6;o}ZDXp>g<4Z`{{#@hv3=OKY3*6d!bF3q-q zOJGJ-!U42xkDU?*Cb+RrGlHraa>7@&UQss(h?CxbM}sFW&fB?-EyLj@jm4f`P5s8q^p4 zWq>zE;J0e*sV@L0Nk?LVat28>;zNundFQ?UXH}L9?!&qP!TXbgU#N2?zXyQNWG-{B z+sZ{g%QXg`Rv#lH{iEw(C29&obBK?V^Q4bJZVYNvr7;*lg^6o|Jx}?D z!7TuonJ0SFr@@P|qi!oYl>jj|_XUXKBwOlNqmvwX^zwSN&mgv;Lz}tRQf$+p7v!8w3sIJ3cchian;c z@empFVQFvDvBP%*hStc6Cu&*=71h`)&NzAZEPScH7U*-=*%r0m`s6}>2T;ylJUY$6 zf8&fD*_1N7S?f}zcr&1i<3@dJ%V`vcBqd*;&ZT%b#>HWQjF{2JJhkb*gtaHaD@^=$ z11i9|eVD`~p3AB>?(7u)lLULe->|UC{BlUTd}18bviW#-*K>6TbM5ngg(yq^y@GJz zp9n^2FC1`BU0jJlq^#0!TszSwuCHDY#VHMQ*$&|MdU0{t97MJE_Ep_oPo16R!-itl z<`f)TXA;5y6zR&>M4bZFi^@iQP1F%dOSA&@_lvK#S$(Vj{Cnk91TSQ-mR1{fI4jA^ zRSodg2_5{*%{W*azfpOH_D==l<=p?EM8Wsg??LBnsp95f=ybs2Y;(<3DL0}C@HF{u z2Y^NtOCJ$Q;3qDX^#m_|{`c)n+4KXPO(w_PD7BC2;^?`&WnuZVg(C)eoeP(mO- z9RJXT0lbM}I|CLfDGVaYFEcYfE}o=8FK|>X!eBU^vG+o}e|*DPIdU$AHBz?oBbPD{ zHGassBMM3Dktb?b+*`P_6~<_16~0Sv=T#U3SSt(tSza`gyP0M~`@LTXi`7B}XOr@p zj01t%tF5Kx8IH^gu^;Uwgs!A7-mh zqoyYgeJ;UaO#pb>Al)&es;o-V-=a5=$6YoH?_a4P7SIYfZX@InZ&5a>brvy}5cK8H z`8h*v4k%+fDjhDa)o{jA>ojS6nwc+rg%+hx%o{a~Q!=>-mbmrWNW5mp@r$VSOV&kn z0}W@L`o|;})h~zE#8$)Iy5^O5u6A!E8SFRZWDa#enTMJs3lN$MaK6EyV)r#@om8paBOxVc|OitKDa< z59{e|&Cdp^UA*706jSTl1?Im)mGjx@2)XZg5>TtcI){Kwe#TWB(+$_%Gi3}3`%QhR zUcWTvlRr(ugpj2BFfD!)U8mT0q^gIHMu_yTF*+mytyL0V!hrKO;5XMGF6SF>+d-Z% zAtE=Ah@UPq#h90m zD=G@|gSpA4-i=HLkl#GF@)J}_5jwfL3{MC@ zD*gx3R8M6(nP**}-i4Zl6g`;sPSc8EBo}r@kbGA>+-ymys|}8c;eYR-yzR)wpKNMv zKgpuyYWmrv!78jMu&#al0Tk*VA0P}^UGqzqDudFH*zE!Z%?nt~^F42y^UYj4hx_%r zDp0e=2VDrkP`vPMf^+XE^XdWX( z6K2DO*qM#b6G_Bkzk+O~AU}q4;yZyK=W#aI+STkvxElIZK+sD}cdQOmacD`xmr0?? zydt>=vEALjMlsn1VOiKAw%)Xt63R=~)}H>#7SR8Jpe*eNuC`Yg_Izr~@Ef@8I8Pp1 zymq}H{+#Tu?7WQY?tb=cybi_K>PU}HHY18bWw1+No2u^Gxj2s6(hf2kpy!yL;aJnO zw34_`VHeDT3tjE(WVU`*e+x_)<}o2<{BT8nrJ={z^@OUY8@!mEpOx-eSL8bJs~;Zq zmB~AJKcCk>8vXp@_3Z<-!F$=xWIQE>-SGJ zx4GSqiHFzc^=qpx-P!%EecyCqdHs~(c2C3GoEw`H*EZz}*N|H^)h$Nv?`=R1K60by zQjYOo7b3Q9>`yZSms@JNH7{2}_!4ZpQOVdoVGNXOZs3 z2hWYU8^^}Gz2>{a;`tU+M%0BV4(8l zP^2|BRqY_|EDtze(YZ8I;==~2!dOCwKL z2=0lS#5B|x1jrVzX?JTH6*j7#xYNkj-hyb2eoJxY*PR!IRB-hdi$$r!E^6Y87mzxs zq-a+BLF0Mh$Shp@qt!`9m4_qIhI7?xX`B_1Fq6P^r+L2bNo5}TZnuvM?S*mxI_TZI z4tEtU7n0*wlkJPJt(&Z5cRaldYGPtCogg3daCHPfCk|+ZSODBl05aI0kt=gyR85^< zmHQ@Y{Y+AH3#iN%q>RPs->?6mKhRO=6NjBlDkY}N4CUg^8E&-@gr4J)w$lB}Mz&0|Pg?5_@M?M1l?;~M z{DGGsv?<6|OW=FZ1)Pg~AOPrEeP)=-6Lkd3n4tQnL6L8Wjg(S9?)}idJhOqZBGaAI zx}o1cNvstw;4yhv>H+t$WgI=j@XU& zlfN-r`c^UgS`@#!pkesng-DjhzY_T?QSq05ufD^@hC>=W%H*!?v)yZ}cR=5*t_GWx z_dhQ}Z^fhwg`ag(Wfr8PC#nJ~4bh_=WsbbqH?atChAt2R^^yTB&&j?7<2#E#epj<8 zD&5u{qqp1>HJ&O-&HHkQpvOE;2PuSWP%jd*z`+&={WEgLDxV)%fhi~=J__YPDs>^u zfi}8T6>z!F+Xd=>X7#OWiU(>1kd)3Bc48b0XqNUcS#dG7dyA?i0WY=TD(5f&faB~! zK~8$tLW0+&r0^qn!0X;*vZSe1+DlOr<&@bmh?oTw6kuAKhQW-h9A?^5`VT3>p3oXO zQu-C-8He|hg=#0ga^nof)whdZ%sW(PTC zR41I(mGaWyZ_|*|Gsmv99A%&=?N^fZfr7{TOj4pMTbLHn^cSGi?|9VBP; zCi(FNy4gFIb}qb4yT{lhHF6eRlnsyaZe7sF!0z^_rsKP6@Nw@mQKD+6z!Ib)4P)D{ znv<0yvV>Xe^osQpGT&$W0>u;n=l%3HvriPoLd=`J6e#&SJjm#hdwUmLYbQEA1}b=U zm4fYlgr5LpH>?i^FZf+T!=IYh5dE*@e$pMuEy_u^%&`@C072}iOTFU!&QBYfWd)u{ z@RQnfO?K_nz^A)vtT8Xvas*$X~t=q2lu*Yr8$3J44nHS@Ovl zy-%GL*B|`JU8%^V@hmyLeZg+T38Ek~K0Y@CvFsdZNMO}nXvtd~78KHy;fgFCdO0}! ztX`k+P5o`$Pn8QO!$fI%%_ucoxmN7+tDtzCJGeQ*qJ@F;ZA_aS+wikfsG*Dp9B~S| zLc%xdh|80yY#XNHJLry)-A$QUEHzf1r7%A?(<~OD;d_T$0iEdNqH>oqZlS+<%jn7) z>P&u>lkK&i2(f&a#nyMK&=hARpPfp9&3%jen%?|BSfvA-RalZ2WV%MJ@_i(avr``u z3hL+1Nwb&kmk%vPn7g>CD0%-_u;KxOTu{jDzCyh{QM4qQr!_O9>MKJ%#nBVp^SAGB zA`WQTV~N2}&&)g-1+tO=JG}u^V=DoBHglJCqE}6q7n62BO0!5((IZ0g8{>9!6Qv@D z2XoWg2*d;9z=wH}5`A6rL@984eZ2nMwTu;~geyt%vMj;o7(d6l)U{u9Y<}K-->XCBnh$E(ZAA#&msLK)Nxw*}7d2hlKnmn<*swKt19EmK`p@_tZ#Owh9bwit(?HF1{v1J0xX21_~_AYvZK zq$=7=?~0ZwZmOsoVJbg8?2d7y>I;}-^TN-uN}nX_j=9{69Q+IDOXs%_H;O5e+n19u zDOL|8tv_k60ZiCa*YlgsHN2{w>hD=7Z5a1vP9P~4OaxE#0Q{phEgAItV#k|P!>(CE z)qP}>`%6hXpr>zV$Nj_m?G|F}M!+q>O8!!_ely9OJLBnY(yTH$czAd+O^C(X3>|3XhL_4Y$ znXftWO8%xbvc^(nE&BU}xK>Zp+Mn%MRH-UkX3I-A&xdq%9Os+6G`Vc;L~mx1ta8SV zqIRCSu6|hAFD}qBwuF~*WL|m1kY5@HI%9WAu{rV*KCSTJnX#1`1`_?PN!Q$!h5#R`X1wqEAG+(d!&vuj zB5`nfT~Z~XB(Lxz2O8>2()_C1(W&J$t~gkM#04lpD!%G&`ROy~u&o zD}MNy;rI5=IDv`lU9nEsH20S-YipWn43gU~nkiAoN4{L}xLC#0dBy!y`*MuP1H{CD zZ8CnE92HeLWw+7T>HR05JM&-dgj0~lkh8`}PWaoIYv+4vl9evXnC!maY9PPQK=0ev zud&7+Qi?aPet)^r&5FTZN_(?4obl?D81H4|8N0hcPv4EoX~%q2!|lJBIlt5dtJEOy zwm$r6U=xkwPrzy?&COFoQ3Gw6EoS#8fp7ihM()v_5J*6x9Xb3QIYV-^QtS4zyC=Q_ zCIwbE%g{^$h%tgFRGYPNOL^o7D;bSi&6H zY292mrQf@44N3TLq{CP|u*6_(@q{eC@mJo=z4@GHg95FQgA}iwDe|kzvZ=E=D*bS9 z@nAoamfRnGohk#8SN2|gGh9Y6!*jK-Ui{SU(xkcaq`kP=6N|3xSvj~forar z`ab_{@-YuU130fpo2>=?XgX^#^^>4_xgpncf=wOp&W;aGYqsC*u}{MoO=3>;YRp}?b_Y~QPnu!M=h1haj`vIT^BqtI>ETImXf>8r5#(J~DYf}3!2*rg~lvn(uJDJnXCQ~IwZ z-UoK`9&4=V1EpEdC!VH>$Q-5W@oS9(O`vQ+yZf&sO)9w3TD==Y;wfea?A}JZ9OVK; zi=k^Z63AC!>=y3u>I?B|Gtrbh_zFMi_4N0iKer z9c4Rk^PM80l;|KPalhp0O12KvWDXTGJjA zPKbor37}S@6YH3b_a)O#rW=x1fI$-neNdIEdH}u`!mOV;ZK*EzpnWxipc0ILsR4No zecO~%_u5-jf@j`Aq?mCfA^xE?WUv+ZP9En-w7da*v|494`wC88(4lQDm6Wg>(o$UO zx+XfmR48LHT3f!8Lq9%6SXe6>tDwcy#aUXS~vn5|vgeoOh0?Z z@q4;QmbZb}=={ZAf)$syVi#h+pGOrqH4YaeUICIMRIBS@Vhh^1HvjI%Sw#EdraV`t zTL+fJbwT&f!R>S`OtspQf{5qdE1YZTSorhm*PHjy2``Jp;K?qTlJN1vb-=?tCtAJ8Ky4qlbOT18yxll=8T_w*KK{G*DZZ*n{auf|8BW&Wv^}gLWCV4)TWRfw zz`51Wp<3I^8e3Vb)jU75Ud;Uyf*YLWndE+hYm2ux;RH?;MX)p$~&90Jp$ctWwAdfo~j#T{R?Cb5$WrCMPb=goB(KVb%Wi44C^eer8)?&-UP7LpRW&@*p-OEvv`)AY-A zMubKG>Uu%;i<7a9K1f(Jr2adUjM|wkgsv@AS(O{ z{`x{pco0DmI9UC@7!$w59t$BK>%}Uz6tIH~PbL_E)L3!cR4eFwDjsiIVCNV=PEGZd zq6<+BOySbYc8L2ZkW2r0ZXz&DXgh**-6R$}=VT=U=PGNP>p%$nl5^HXTWD;2t5nV} z>TegC6t2Y!>QzO~L)`?d`MS)+tssnL}! z^5iEEd2ztlAG!y(s3&H>d3(b2Q33%^)8SP)L3`E}0JI)%NYcbVfa#c{%D70u7USB6 zhDYMsuB(`SUOjQdjgdxs7C({VWw2j$Iiz^8sBk@zU~W&;3WddyF_z10Uwn4-rY;_ za=sFLztU%%8(xj`9e6gO%>UTYbwc9c;kCRwv!5@!g=U1Cd!fo!p?7#PO7T=<^!;pI z+IiXTXJM}{`f223BfIAhWY3D^E`+Erm^+OK9#`aYeKH$NU``1O=oVXJQ>k!fg_fo5 z*``4gTSl_j*~8zYPktT3|7rWiyGIueM`ozqAEm}QtJ+BKo0d6T`w5k8#t{4DA(0ME zzZx$QiJ6(HEn79V^7Ma*!P*=Q8FreC2zu<~F&B2|cb9C2Iv7}SYwndK-;OaxKuPlP zN)Aj5>@1J8FtY*f)p^N7{04g6^Ki@sF80^=S5oJSt707rOMJXwO zN(Uj!>yc5vRX9;%s;Mq4(VDFFl9UiVuos0zZ`@e$Q!C5Cr1y9c(=ur3h?S2J)UR{a zjtLAM?f@ZZ%v;LA3?4`(y`~kVK4U&JYjiTvk~{OZLp(jjV`#&~FS{6^YBisE0>EI8 zhKzZMq^=|^W@dY7{-dk06whyJxE}r6zen$XM+GxoXn4yY()BLfZ?)26HLdAC9-bJN zjNUgob1hYKYOv-%b8vXla3ppX4m%j2HQZi9!H3-NFd>nC;@FOj(T8gdkm{Yi#vUWI za7D3azq*t4+}F@4dR1+$=WQzMOl+NwTcpQ(X0ft#^>5$sSqamF&OoBZie38ls%Y?p zNn?71k{;#}kh3zkHSD(PF+T&TH;cWc{Cl5TS0qUuv?#!zj}>9`<(~Bm$8gF-LpH)eH4g~b{tAT!@pPCgPo350N;*L}i&;bmN)*4nV_ zpi1GLYFNm?c+=1)n4=}-*+&)JnQ#1s zGss%wgt$5dfAK1k)qY+Dzk!FYxrimAsR+6YJI95i;HIA@-I-}{E~ zFfN=C!|z|~f@qtyUop77`uy)h=EB>#wOkNJo6TBckig&arPGV{c67K+;(jj+dV<${brblhV@B_ z89lJIgk^9GG}v;b`T|ALlDVizTh90`DT7y3v)}#kr8SDK!uM6i?I57gRRes?ot%C3 zTh2XR_~vY?^)y>OX1i?2Z`ZQY!9}He&LO7~l7bO88lkHAvP+h4tMAd2>b-_d?`F+% zh0NKk&}dK2MMi7ggAyvO7*Jzk#H!A|=yu!u>qJMIi!D^xQEI7huVeOF#-{=0*%7*> zw(ZwMT3nn+UjD+NJ(XVo_k_{!HigGF$9XHQJw^H9vIyPY7$Hlj^3jug|F6|s4oSk9 zZT@)v$Us5#uQflbmu=MM?NCRVlttlYY+Q2IW3+1+dHgezrh&ZKtd~-R%sDG-y zvo`hQ-@COq$O`@9lJovV5oY(`MB%e-c7C`ZM{r7Z>)MK4)x@IPNQx&mFR7staX=1l zti-=KZSd`({fy<%(DA98zVyDkZfK^Z1ep0ukvx|jIsU>-Mmm?Ypx+vo|MGxi(K&VM znV(ib7m4beNl0)9M1$}OVO|k$$mfs$5u@~EYN)cj^pl4jIlBHXPL$pgDt9TQeJ-j1 z)?SB;_-Lhg+o2#0&_K{XIdZ~OD{HrU`q#vCE*ww}^~RLcch8hcj6d7zCx*c?mQtf4 z0yipC!PmpA1Is>quo`c6>&lSQ+iy~?q#G}g8=nt7zc+Rq6@C@%La=qduZ2K}R2VLh z;rMt{#%<4^|Fb!KeQ{~%;*30%%tGd08a=q_@9xEWLdkx0wlwvUaHFOufpkw-Ct+jW z9cI^}onpL#QFuC5_j7ufl2u}u;)-x^B&Bgh8@%-E!Xp+OL0Pmz0JsVT3(H_}h91=z z*naQMLbRJgeY45QrL_yxm`$=SkuK$Xa6Hnpxejhh5%}$n z_Hs;TCySRDBX#x|-D()F-Yw0VNkjMZd)}rnzd?(c4hmugSxkM0tIwoV;>Ss|ou5fc z&otwy9#QVe7OT+Lj8g{k|8;@i=Z5&~c5W64=o5>qPMUuUXK^O4zs#DjHS9_hUfD-h z{cB`fBtf}xsr*JT|7e>2wsZ}#azQVrVfrUx$H>Pe&lrzo%H-D$zX>~~r-2AzhE~hg zhE(sOZ8Zklhbf=2w!`~KBenaaXjO(Rxw)Q6eL&inde@bp6ztl4n$YCiYZ6}z5(NgE zP5I>a`F4w<@;DLy>U~G-o;@pFc1530x3pSj!2JQLDRNQ%Y#NFfAOAYxWw_bm}rbCC{7>;%=!vS65 zw3Qsax~nzyv2rc|h9yhubCKMq1c~CB56zvdBoYD3{jq<=?EReajQp$3CPalL+MTjA zmTW|}JxDWhr_5LKFp%_u<5h||;UD+>Laij1^H>s{kmSAQ;C_On0^fnIA~&8>l~L@~?lu-WW>;BTd@1t*TTdBjGaQ+5WD(HZM3v@J&+D<##Lo z$QA2-iv&RGkrzxvtu!xA5K$3C2Dq|zv1uW!^w|fu;azU*Qyd|{DfxKSj5JnzwEc5u{^yr;)uh|o8aKMG@ILziI6qj{>XvTe)>C0D{OQ$&owDc|40GEF zvSRZ1%~@X#DUb=T%SPT<`I5-0ibz9E zO{wQnV4*2-qhtpkPjXj?aaA+>z3gSjV2lW2SsMb>`h_MyCQEA|F3Az?KZvv+@73)s zWPXFy)sOkkaXR2`7`E<49WDJHJzS+3W{fK2Ub{1|P(yZT@1FTRud)-X?{|imTo|fZ_@3K6TEG$@@ifzawmnWpNm9fG26rk4*N$g$_VnvdV!xw(Ooiov5zt3qr`&e znTb*7yR2AQ#4m@Ids-^ldOl_10(T=Dk5}Nk1htQ<-44jqe|?>eQz9x_cCZYPii0@L zx&lkA&h}riikd!tz12}%UiXMZasB}x}1|DgOJx#W_zhtpZ`Qz zEYbCE8jMP|%-+fj$*OWb_Py zOFZhdm%e^wF6|dY1vGi6e<|X-c zxK@WLJVOpjG(}bX^tVp6X~jN^Uk`}$6g-Hzk?TA6-Y{@3|HRhOJJli(+fWXcm>G{{#QV~}^NhNck{N6G>eUnWUe?CgRVmH7Cv z=XU2qN54+^*Y=%5n*3;lmMPz5>(4+L!6~IJE1P43F*)c7^AfAXSZ@PsE;8chkK1>x z|M=(Q&=cS7B=iQR+Aq{>%-;m)KMK}o!f=1B$M4O zMd@>WbQdRY9Yo*|sjdpG<~qB|agpF$x3I9Yd?}f**PY(`aYMszIC; z>y5Dx%U->rjGS)WoN4MOe|`o4B$6DoDIQSHOmU3Qr zfyT;w1I6W|+Anu1WljR!9Omqex)ehu4Zh1>ZM;awd+y9Qfb)+~qU4!B*|k95c9zlH zs|Vpf7Ty)Zlvqm>H`<-Vh$fO=8$vEa7V;Tmc{a*&dy)nj0fBCK(LSO=n!^>IiCWp3 zQ?pK)jgQ%|Q{JM&@wu?Bs`Q}3_v(qr0n5+~qBMt8Gi%RB_IDE&7-RBwBz-yapRf-C z5Ni+m*sJ{}Dmk{KZn&Btn(OpprTyfhPA8aE%~L^i*|xXN;?>9EliW*M_CV+XYH?O( z?#>mGLFs4Q0=OG9N=2u`x?$5KGOsz}ua1JxUxAUo0oQrx`*=YI$@OCx`SrP~(G9e2 zQTbF>v@zGNcFshBPqXi*`_GaO=8GSe$X$a5&4+7S&&HmU7ozlg90$yNwDd7r0Dn)Z zLe|1}K@acRj121?9-yo0z+?K2Ej8^VSDTF%*qmoNsPKYg1!v!9Zv%c>X58)t6l;_! zmDBYe!kHXo<~Ya8xvo1kh+P_W%*5Zms&(6@m>n5jsM* zfS8E=yPY*Q1~}QkPk`}_qkB2jKPeU0pYvi7}F=3}nZAcb#5)Y2#KryfuwE zS~45m`#PL`gi0KsfU8+s(!p6jJ?zn={;PEXAprf3V>FhO9#0iYHMiBfwKsxfgtYYoi>OBWDVSZpQemO+N z)W~z+mnb1hv9BIOt}qAMhr6uR^ZndT*+k3?3(Cz3+^kq{hWwxpv_cMe1P_fopV=dOAU%L%q5Bcb}*{nAOm zUL~QZ>|Vpxb+NnxyceoMurxY_9a`CPBF|$A>)C>?;#@5)i}A*=t_Vn!L4`mux(Z_bz`_irwD&P$1TmQSSr5z&B2QE{+-7SLlq5D@cW!EhsM)#@>M-! zL1rPJd_>=_>G$6lOUy4hwRu(8%pEe?z>RJ@scw&ei2wc1W6Qi_)T!^b3g;Kvhuyk+ z#|*Q;NRX)1g(XJonk5J8QHZTge5PR=*0SBaJ>BtUaDWfqq!)D6jzmK zZ~uDN75c!=UD7U(aK}k|jh?$^-=Z(ml7Lqs23zZTTXi}l1=wo0xJqR-uQ!+1n#GW% zUBlR30Y?KYfaEsyo0B+C^7|;6=f(iQKNe=PjS#yBY zSksiXqViZ4NglKFWc3lZQVzeYSP31SdEMrthUSIz9ib6P?dmU#GI&5XgEpH!wqtBH z8_XJuODLM6AjC2{U~cde-9`njU>OFHRh8rYlA}yO&|$%_;Yqr2(`Xj3Bn2KjTw6Ii zZ*_Fu0(cd!-%eUk0pzy@({*<)_K%vL`gr3tfP57aPR_y+yHg*Kzf)<*1~GE2)`fn3 z&nPo1-pO0}V=yfXa${d#DTTCp5OQ}>0{b0!*C-%+Cv(csc3;z@`rf#|;p&j=>aB!G zI6mc^--$1W&iU~;VuQ4!1qmfSqAYhi*)NBFZvSXOda545_Cr!DA7l)M>Ea*F-PGdfcV+&4;#f*h$+Ql&PRq^4Ghde>;-l381Hvy-GH^&2`cB37g zV~W-`YtJ`lIG!DC0ntz2TOy5YSTzfgu$gz)@7114o%Nib6>^O#V`LrWH*(k04`%39 z+L%y}Km|YPf-i?MHYKbK?WRXtj;KVtwJpd8=vo~2X9iZAtF_d*hVnP*!YlGivqwZ}`^QqYi`i762ke4N~k`gOY;Ylf(h?ivX$xEz>f z{N>Q6@&AXr_l{~R`~QCV&Wt*vqJuOAfe{o01Vn16<494eAq0d_MoNItBq5a0#txwg zNN*Y>kOYF%5Fjupy$&Umkbv}>AT3Ds9_Ragp8I?5ANN`Jw`SdS*WD}Y{F7v_bN1Qi z?7ctx{dv9Ha$K=YTmI&*M4Q)FZ6?2km_dI3ItYFq=I_gO^BC-}Pf!!}Yzm&-O%1t4 zf8P;&<;HGs;m}mL9eyL&J!1xD)wg-W_Qr4zXEAP0AcWn90k%0JA&yW>@DFkE_Fv}X z*g_3}h} zMZ?;iXb$PG$-h<~?Cx%@RFb+tkO=ioy z84X%y3CTd@Cr z6M+#++=C37WkZzGVMj;3(7B!Y$vXSJq=u-qf_ZBM=Eq;{Vz+|kMzyz8bkiSbOI3n= zg-yzffZVZb=@i4d2)010^2)R*`MYr2zr&$n5@uRq{{D95B09Tf+}3n=O#np123-!K zdM$gqPPaEgv`Ssp2g(8@Bvhbbnj3PV5yBclc~Die_6rvnjmg@l-Y$B`<_-J6nk+dUjEV0q-AFBTI#Z>$nYVN82yqf34avsKZT`KI zefS_6Y2GI^I?3P-RwFpJr)SnXcD56`iEydmm=BtgH^Fzv3k~#D{rkDb?Qh6v3#GS# zL2Gx!o+h4DM?APN9S|%RgxcqlJ?SjEw`hB9bdvO_hcqY1m0+0p5ye?B{$ zwj8Iph#>AbKyJa9|>wEqNWeC{{SxdKjoj3ib^o@@-Wm-g@uoI)SyZ}fx`pU zz*I+k&f9*ZS`f%yeIof|oU?YiEH0Bs_yEN6G4ZA~>~|waKmO$?IuPsTlaOw@k*yHl z?{V%zuOFq=QnjnpU}o73Fo&oOA`4qiX!a4ZvNmyN$8CeS z3oY>%pOG}kcFf+Ojwcjq=T12`ts5_DYXl^J5Fs^903I@!D`x(@2x zwTj+1f4AKCHC4hkWfV^oA)2p;CuL z$GE!@>Gx@Z+(Fu#g)Q?wW*!vfa-A50s8&G`@*3y{Jv;N$$mIM#d3e~R-|g=VIH%Sw z)(b2a$m}6PW@{=#TaG3A!kh^AT$CFMG~xIEV06QLp*_OTFL>U!fEj!ts5#Q8QIoA2zYIP8WvKDDrn6f) zk+_=H&6;(Nw$bFVQ38l9jxC$vHJ-cvd3an(i1RBjPN=cIL${UPt9v><7D)Fx2`W>M zZBz=4=S*L)Za1NHo%%czGbMz3{JuOa?3(qqX_0GXq>{G4j$BM4T-!`wJI04sq+NX% zrF@aq>40PFXqtVgn~hCzpzCoph22@?R}gRRSoOLQQ8pr25$BR#k1oss<#fNUx~28P zrU z-2B!HQMsTYF{6>Q6|Be0HoQT@4t*Tb5i8ElQ_fGVLXDWyziwR;mJ~PJx^8V$tqldA zFO8!G1L+C;DkCt!Xbc07O(ALI(+pz;)<+$|0I8%6uHiut-5SOS+ti$(iJfjCqF4_m zY;0dl2cC{WbxGHB>I#Y|xoF|-4O8DML&1ET^7h2yoRG5bCo%^rZM^1f4O*mp6P5+v zPu$Ll!{--2sE;gNk!+A7O}0KThm6E|@Q%JRL3n*Td7l59aJ1Y-wE8%Cy^?jnNmOnQ zA`n1$saI}W!w--o3*Ho_Z}ndastWgHS3H;AVQu7aMJktz4Me!0~B}BfEPUTx7@3s z&9NNrpDUr^HAN|apSwL7_7YZyKrUixsdwTk%+@T0DRal?+@4 z{5LIpP;{`SLyw`l?CKW=E^Brxyc)2mw^GOgy|XVM1*ct2%e~p|Z+D_i7<4iDjt9m3 z5ek%EOTJqxvrSM2vIFkw&FT{jOj44#Q+IcN z1b8pV7rchAIbivOJp%)hu`9^Mz4gdEB8YioXO~e>>}=nu+*` zyxH5q)i&L}b@mHb{6xTG4iJMb*^`OA^#SP&5$3xaFv%qe6UK%a%~u`2_z~@T2HAdQbwu&!YYR_Q=kLi9 zp?rgCF-HafOelvWI+vv$=2!so{^{_Ye|x3GP(UxmlpLFR?2oP^+u;y{Wpowz!rEp4 z3-EffA_fyOcLUqyG(y3aaQ}~ZI8$Rc@z1(=M5Gik$Rzl7^r}Lhrd`Op#39h@ox9uf zCGU)>j+5?ef8k(C8yQ(PW&4+phb(s@)o8ozE6?V$qDONz49c?_R<-*3BW58rSKi?4r5 zBxtH>(heogL~U8eq0Q5K-6@aeApnvLEn2g12Y=k+TO{2cf0U?gvxucBU+h0opEuK3 zD7y_aEg1&%a7Kll*ip6`&Ol{-nfnU#1)s$)50TGN-NsL!n_)Wv@U5Cw5fCWC|&pCE!~j=U(bCd zpDVPY{fO`Y#!Dl|A0xZA`$L^q{iFomRD7#S7_tTb%JcdNb6^lPKzbnB9KizYL9*dH)_8<^R{g(dPT5Y5EAsD;+CV=O?}eMoz#@tz+Wc2J1{> z9wAmT1)aE*A<)Qp9>;6O|4<_!HD*G}In<|ZFtS%qZgFmL8XF_o4HRS1 zrhx|-sUPE7l|_@9XMwygL_S)4kif)y)d{`x>PzL^xp#|Kw~rmD6jJ0q4kL@1mG&_ISW_MwjGa$$1PY9EB1P- zLt3VvThq;^Rq1B?RdjRkvo=-wMc1=mc`#YqUBh|#nB-)mY7l;^(j*gNrl#v+0k3~r zc)Uj4#TQ7DV}J)CIxaK1!YHPBEkSg&N;FeGN7Z8cfPa)-cXO$9u*h^#!t}$VN`hVV zMosySj(bBeoY{YQK&6v(*^5}*aQ$rgKc_z>oE)jbru@ofy|q`qcjlp^TI-FV*r(s@ zbR6&b$E2dDnlkvTg2ua?mhC>PsG-dPc&q9ogF7jTK{b6e93zfXWIcOec#zs|pGgc= zZZ+35K)*G~*OYNW?7$*NBS84lz_Grm8)@|?PRJ?kNK6Kw4w@qKt7(=MK}pzCWgdqD z7GgOzHzsuEn0-jhYa?-hCu&iNaY|71_Z$Q@6lq&O4Aup(H@Z%S030|$$r}n@pFdfM z@Bh0`f9u!(y>cp&-HqB`tYY6O7-pXsKHbAF^H@}@`4!3iEp@PfnwC|U>=vkYv+QVG zq=B@YRf?1>s+7v7rIi7>>iNr!346T@1;0-4sw1_kvHteCW9>+yOe3zCJ4_#qVa0d0 zDLGNMaMj#GZaFLW zSyG{IX?EVoZuK`RjIA(%pUh-ZJ-~T@4J@L414rRoy1^V%mc~x zs6VS=ym*>xdaOl(*Riw7x;^XqVnMyVVjxP*6{&vL@rH`g+zd7cDqLGQZy4xMbn$~% zzKzIS|1u*XDKFc$xJ)Ut+GY(Z2zC@Swtqy-OtiXR&|vY$!CmIrV21(&si3iHb%I-_ zn8#y8xqT;Vxz^GnJkD23=?8>@=!|z5)D_hA3?&@gYQEZhMjiZ{x%sBR_fDJ{j(LWv7PhSoYKG z^`0afsf_A!G={p4q4O{Bnse5MHq|hOu@?SiMwcZezVG7XagOiDEvdmUH}!o0bwBGr zoe|we(zuCd>!@_LxfCaqTAN$9ZTDEremHUE)$c$T`4{J0mVSs(U*umKiGee64B;W) zgQZ_{W%c^d{zTU2YlS64hL!@=f){Fj{KY$8wI8V#=L*Smm=6Z*ZY<=87L|%HPaGm6 z8X(?8eB~jP7KikEEv}O_j^1xXQQZ&r!)_)4LqzWT%^>eB;i%du`pB@3N7dHusOa&S zKC|NJNH;_OpZfZ_1uZ*kqQ<*iq=f&+(aR7}PlXQo&jTY3x5f#7L8RetdkBxDfeH6q z*Z4S#(Wa*%M2*B-I0aJ8r31maJykltiZV^JvS?tw*J;QN)EqbIEfd)r8>9#jMEr=d zF{B@(+iK(B9)yd17yGu&2#SWjoIik+wa?g^Y*{F>5$-0l$L#q$VR z3C~N;#S=%752fnYmwR!#zp=Ia;UjTHa&5AKb+|>y?BG4^=9O zU^eMw;D1iOJ<;RzLK)7!uf-6h-1+Gvsr^EmMIueQn&VprSM*8)KubVsO9;c8bk2aT z+&Sk!d0Cee&`xMbSdGedeZQiGx3)&86IeI|NX!r%)jGjnTl53e-T^7h4Td~@g@e2w z*Ic2GC(K?$iN98SL@GFq+>`Top)lD#+N8XyJ4D zSMx|xrTA1Vwo`Tj9sVBDLASX6#l-#N&Z`{FZSkxb+df_->@ODE9O-^!$44o+yEW}&JF{9b z09M#2A&VF+iFxqWHIFuVna`Twp;A+^jpSJT{4$ibFzU#lndBs-y43FyS0JLV+anwy zY)`yaHB?y)eX6byt<+uj43T?&*YSjr*c%L5;f^ZhRA%QYfu(fv9*TO^GThr%#XfpO z4f?)vP|bn3+bGW94Ju*x_I62ObTe1$B$m<#yk&YDlk{#C*B38H>YzI&<1|Vq+9X2- z`VRX5J(^c^g1KtzWB-c36$h#r%V_EemU>&21Vm9-pcXE4VDHL!wu7wmUvCJVVxjJ7 z2s*FI*$JQ>C+7%E4u4wzVv}bVpe>z#w$Z-b+P!G1=%X_*vBojNhN{bzwJ|$u-hpCpvc>e&s-|>1}3?k)Z*s<{pi#68mT|;!=QIJ#Zd+JT z`|CzpkF&?+_Vr7CcOJF|tOzsL_tbn98ryvnYfP|R;}hm*&1aWrfQ0D4k}hBlH847C z(8?=xl}Rg8#*qJugh=n5k%FN*t3b%NZb>L{$@gW_wg@cIer=r;FDPmYy=O9FO$RLF zLy0nr|6wgebckDlG)s?FD{a^{;JVD&1Fr zV#fna4)qO1PoBq;E|WyGx|YR|z=nVvk?BG3zZGmha%>-VZ=Z=d>$3pZ}5((llVm|I!K$mW0K10Pn<83V-VReJ=B5H}=Hs+wBIl z75EBs4kkCtPTJR8IyZN1z&2uloh?!CcteBT`g@uwI~j-3rl(aZwl5QxR+b9`Rc`C3 zK&v-8MH!`Gm!rQ4=UX`%seFXL+&$3^pR61wWAAS6C3bHm7CF&g^}r~8>vBX=H8RT!FPj5L5Hq6J zIDK<|-Fkx}fk>cX&)g4v?@WO;bBlPn?#x#~r&!FHM0dh@lSR&v{M6KE-y4r<<{8V8 z2dbECgB|2iRC|CutXFVT`vnN<_pVmK@drVHjdC~YUrecW1S1_K6E@q*|D?!YbQU_u zUSNmREx0JRqxMZ7h2F?b*2ky-f#FGC zzn0&NUwEN4pd{Crj>SRK$d*A6pYWE$`&n?)6JX#%Ds88&`6ya8k}Ad8oLJkqt*1~G zzVuFmejA0!Hf>N$LXWQhTb96n(30cGQ%TBF{$5h@gm~w5f6(&}#N#&I9Kp*~7fJ%p zImz~5SKPmm@vXXi$R<6r0<*diQ?Rg+JFu`JQV#7+B{XX*zmh?U%ob>EI@*Zu_{1!W zm)hgJ^=gZID6BI9M%Fv!e9|n{SNm`jKzQ=xN!rEC<`Tms`$-+qt`5LlyIBO=@H5$o zW=I4<%?xk0>E?~oEFJoXQakMdG-*A6Cgq1hROrmLp1wK%9>Vt{=Sj~dMyMLU1uE~@ zI99r#dkLlWU86%b@N^NV^$Vh>Q`7Cgy;#TGF{hNWEOL&D7MVy!7G>U7v@0CWsW&#DUg^ zJ!HzW(p)sy^D2UVQ8skcn%ZfZQ5j(Udc~&BlGO5yFl-4M5@Ojux;1x|fWY>OP7ZahZu@tjjP?JaoyF-!Q3HqS3ilM>EI@lRmr9}T7KXO+{Hf4T zut;(A)NO6u@BTH+L2jx2eVGrp6bd0pV{C0DzL&9GV@2hNjQk@^nU?s~Z`_V=Wyrs1 z!Pqv<$JJAK^`)@wh*!o0L<0< z*G5{P?Ytj|(+XPZJhso%WS2|^=)c^`zY_c>fw1?=?{4Pr-s_{}>hRKzqp@P;EzlmK zcCltPIJ;^3Fu%k8vn*P6(dk#qkDxQqO65d(nW(cNE_8^ci_5hlWnGY!yL+j6ows=TN^f$4+Kc4=6acgQ zFnIBnR#?gBYGEoPdPscBdOE0hwVUktqL-dAaEpRq5$n|#LKdRa?eb3yf4i=gz#k_P zzAp?D`mmG6@+``>+WlU4WHw{|a(sl<{fRPYP?pF^6B^-cz~C<3<^GM!Fm=Dx`dsF)hkP+An9y$ zkEKA%L#5o~NKf01q6V@Qnt}RbXaC@!!zm)Ruxi_>ln!tq&oHCea> zve57#y?n!Zh{o5G3=%0tImEI6vRAPMqV8;+M^W$vJWv=p+0B&~v&6g3p2iTc+DDHiGuTeg#I` z9)QnzzcN?0r~K%*As=$nkG&iAFX*o0hBbH-`!2ieR?UjLslrc_pyY2(cu*o1TO4s? zlKc(e_v}MVRhY&r`lj04Rt4}`z={>rob$E(0n$|U{}Q@+-YdOzHx*BBQ~CT@i( z1WAcajdOaYTm9B%R}A}YX8JKIW8nTG`R`&7xfzk*t-lA(h=bNpx9D z%X72r!@|{;mvF*>W({$qLqhS3!3pZK*=&D!4!-PWAk*sy>wA_g0jEDEx ziWE$Mfna~sT|dzbi<~gAnk^&yx+a%?I(3HJ^U(S;jQR}Xq-)}l;;?f)cl)=r36(#; z^~?V+10*!lb7pr0Ym`zcQ2~r_?(U{)K)=_6ZD`cb2>mO@FYuigDae1haN>1;7xqQl z_>%pcxO>~D*CCVJ2lt6r!xKNO5S=GZ{6@6}+$TDA7NC}2&Ow8H{DQBsD-KL&^gq<= z4H0xCo>q>w1oNMB2r}s7@Pil`$P|RfBy5qp8;c-fxEl9*Tj`F-@ zCnHhJLjtApW!tqLT33V#Ue5Qn;qWWh-XH(jzmt8U>gz z{mSC*c>Ma5Y`*Fwms4?Xa!>Tpa9nRy#17w8-)nlep{8c-lAsQ3hpTItAf)pBV{~jz z1FQ46ip#PI3>oz5SQAQjxyhxPUYw@IP2dsvHiXR3>qXKxd3f}pg1o+6L^*l%rdmi%PrY@`LbASG z-HNsRvZ5!bJM`&f@P^#_Cq_R+T)OcmotdFyt;FY+=r81pX;81i2;ZSgwJ^^Dn|G;b z0qD&ZI&u>yKj$JD0R5C(v`Io69qR2xxXNN0&Ff!7ZGV9B>qe(b=%4;J_51IX@9D7L zC)*ad!Aar2{3T{n`*53ns|Ggt%kDMbCkupT(rP{0Syv~)rbzB?{5_G_WpO%N?h>!9 zawnC-2ibAXfN9@KvUiIdTfjMoQkmj86#WCCWZTe>vYe;)EV z%6tR|+S*2}GIVUS##i%e#^R?0Z3L#GSN*}La}-Iyr7tG+DREi#E066Xui{m&wf#)| zIP3h4;Z5~~4YvjuV!XXtxal_dY`pU_;%#UTI4I%WkY0%?jO&lESAQ!A(YUooQu9AR zD1xnnfUKK5+2<;Ct%3e;CU|RrXQ>=)srS6ox@Fj0-PRPW{>wh~!u1t`dy>PRFW`dJ zuC`M4ywBge0Qz8-7e5}|-5y`f(JF8LqHR94eSMjNLU4xOdROulBcndlQ~APvZ1W;Y zAr)KvTH5#=3^;~hHYwSTH|q~zD)_(Qd);O3a)nj7_}MkkPi?!kc``S{v=2V?Hx+$& zVP&MFwfjHreZ#42%R}r+6NA3H6sc%(aAw-T zSUdG*{C-+owJR*GtnmSRyd=5cO7-NDoqxpla-jMPr;DIkGWXgCbsvzLbNWnQ>JkRh z>kZZXZR1==na$CM<0z?Ow$sbvMWh~slW$(1;wKeUk4EmHEO&~rz^+IM5~uMfW`{kd2;kI3)#7|^zC%W}abTO^asN@lI>W&=>-b=^t>^ z&n=6jgJIsxt_~MNXH$W@BQkHI?Lj%L2|ALLNyM<9_`sVz>$Owj$eHN?mO>)dFQe$v zbdClhPlVX!K~gNyS^YPW!`{0W$9!V1;)`OWa%PeS=C|K3WbjHc_{NrxsZ@0(HxPo*zroMdbKva*U7luZRKMm0Fd~~Q}Q9xe zcrpCgk*|C5PmnmYa7@-~o37wsZJCm+i%nl*V30l|XC-LoigDTS4nu6gIlI2zt~yj# zIxgxswra>mbi*LbJ2eU(O)LXv2)4~S2G`oM$f-zMCMU%d96(O(+Jol>msH%{RYFh! zwtdWd=&Uj z=W~$qf1X^0+Y8N+EdNuC9F6gG!pwO7JcvT{N8l65qI zv9eRXQk~M{e`~L|Zdm2g+1v+k-}%*g1B)Fr7%Dy_UL+@%5i^N>-;NS4U6Nl?tP-#_ zb@b7YckjBmqA)5FdP!CAXS0@MkW{jo4J{FYtL`9TV_Q$Bsu{H1e6e*YEX~inK1p@d ztjEmkp|UbnSy>w}p8HHtveGMKnbhQ$WsXeFx4w_iD57kT{zRX9^6?RwNPFNdAqjT4 z0%JuuDhV3NU-bw<-h$t4wM8biQLCtH)ytIU%FUYo?dJek$-vXM!Dzy_V$1tJfNnXKmIw z`!b*g@=oCiEn`zNZ0_(2Y03R-Njbwx3o@dq=FUS;Lo1#9LGQ+MQ@X$8O3C^wn63A! z9w2BtsCaY~f)M!A?A5(SguXdWit06VZ#s|I1K zgv;B;$X!P05pym~yYFEKOETw|F@l)8kg zgUjJcv}&PzDi_<7<6P?+PbTjqFHaH2%+EPX&nRdGIA6PE9{Qmo^2oCuwqS&7Jar3x z14Sh^@OkA+IWEa@Kc`nrSSC}A<@ zuT4h8C8|uI2mR3LxLVg?yBqxlP4a=kiN#IJXoapkc5zm=t{U`*;H<23QT791$jB|( z2wzdwlv}cmnzNK$NAw6O-<@qS2O_cawW$dDRGX0i4}`%Dqve#D;!^(}d%3EVGN-6QKu) zZ%qaE{UcIWA~zF9COmn|^1=2)o2F8`;%_ol@{>r|Fbh;@{qZkd;k2@IX|@Y`b(7yJ zJI9&O<-QbVMov}0vZ)HS9Dl5>gG6iT^oeWxX*k1~c>_z6Rt{mM!&YDl??JE*8j;Y# zMD$Gdc$9!SWcM=2Wi*T^HJVlk|CM^f{eX7X%0V>v0N--0$i%H3eg0PA6KPUv?#zuB zrII$J11Q-;j*{qqg8hqv)s&QqqmH1ZFMUzDt^pw`j9+jG*vN$O>!1)h5e@;Z3r|11 z{`240D-yV-EkJ1Inpefy)XBOCf5JbsER{1S6qZL@;UKN{jyyEol6A!lyWG~kXY zAbCC&LpEl4-P;f^f{KC%X=gD#wt^0s2_@ZR)~g{>=Q1cv@PHIlj1O7H zONLqeCnx5{^nicKx!3GUbGvG>0f(ZN&!W0$U%%HYv9d%`F}t_Ux~>90;dtUKviGtd zA?;p4ZX62ihPl@@Y%ILc?W<5PbZE}%Sg|Zuu-;x+f|1xpgvFCj%^Z7d%~dBW;~-Fn z=(!;z0MW?IGcZ(xsPI2mR-IM3nd|5SFq}t?Z(^CmmrkX1Gf{)A5p6Fjnn}U%nu2SHxKIber}(KOU7IE@|C>dS)@0AMNLQkm&1A*-Se=qUnnJBe^O5rCAL zLjeW|S~>8_?AE~#&`Kz=A=BELY#JYLah3tNWzmE^<}Bm z;;nx?tBGA6)nwfY)H}E}c>J3-GEoxS2`pd#w{{^&3$p$A|BQr6Zy}H(2;ODHg0?oe zVou99AQ|h9q2)68+ykUH7aRV_1KLyi^(%g`@ViyR^`ZyW*DsG(Q+tp zqI1iG$SlJkcfc#m44f{e;In^KbS?8bTYdkav@H-%nYfaMt1ATe-JO0OE5!r=#7?}1 zPAxJb#OOHp9(9<4vX=i6)P(rCQfM4S7)Vv#EZ4c}Yc z1Q6taLASl89~DntScfVHwSrHVEgGs^Zrui38rgz^S{+Czz|t<4a(T)#+cYUBkC0xV z43843ZU1Q+*!m?sA;P7#k}LCi4(EUX==?(%>(4KdZu*OU^5(~FyA$#GfWn`D?p^S< z`gccz+}REPcGBOD!`7&&rIua0()6a$4dJ2@O7KWD^>VP#<3ZntgQa233ie3_qvP=Gqm*z7bicR%0FbN0!q4yHL6~7YF86}-?TZN9b7yQR#sNH&rWDX9B3Cq zlZQ)2(|f>8<^j)k@LDNmKoUtt?w3s4bdtY8k2bixp%R&`+w!ng&AwO6u=~Dh(1b9i zX6~~=YZfNf{l>lS6RmuL-DmH{6>p2AC|$ZyS}<l znzsQ%yE0hDp;c&|u1QCDAZ4l69J)85ixf0v1CQob^`IQuL5Ya!UZ}AeW;< zfN^kfp!;7h*UHRxQ;%zAlugda16BPCt*`FCXE|C{Wqc%3b0MwyNW3g!?T+E(>-E{Q z>GUWLGeGITkk|Lvf1}q2%l|Lz^%LnBRdoDUo~x`lUlsJF^J14X*KmWr)}$yu*{g}u zVvW;M^);iQ5JS1IJO}P;!8@0QL|5Ip`K=G(YX?s6KBJ3D88eggB6H5Osr3PrXW*Hr zuRMWa-XpHZHKIEM5~5R(uRM@Q{g&OJZl=&w;7c^)PSO(h{p_pxFG9{|97ff8O|T}< z5T&|k-ruCsM53Y0fsUzVLu0i*M8`NYwWO5*1T$s!U3qo30{Zl-%lGLtQ*)|%rBKl@ zQC|eRe273y0z{cOX-QXIGEP@_$GB*rT>Era-detSMPVN4UbUWPnpPO?2TOxMh??d* zwbzI2d(*Syt(WOGAmaNr3Xa+7IM>Hkq3P&9ACxd6CyQ8W?#r<4qCRigypJ8h2V}|R zl>`q%pKT&$V}NzL@wAcKqmxNAnMRHy?l8HCYdtqxnSYxC7$@P+GyDjfTa4$nhqKNN zr@Ohq31NgFDHdhlpX)mATR)J_MLCah zQ%&u2avu8fGENs_f?JLDtv$pi`@14GQ#bvFY=3C?^1WQmXz}B1_FEvPxqTx&QM-7h;xw_&mI$aPb#9e2LmoNl zK08wan}c(VcZzCONCh=z7Gb|v)o&>4loZB2TF0?e>Eeapo13>S%--_llXX1p6I5+Ik zsM5Rr1(!Vk8?98LY|eab+1W=~;n3v-8;RI%tVb{^Rbc0l(}Oho)4;l?^~h+#J*YW2 zE&U+S)q1>H4nO1hC< z)8!d2J!t~IY~qGrOHY{dB}+LCtyD<7is%r(vUYOM*b^~}KmL9M|2v0lzXX~EDgq!G zTq_WXe{GIt92YtKPH`$#tJHfCV6wkgKWuA%Es6O{%(WyTAbF4+?{ExFDxF39^wFH` z*TB|5YM*WCDCfOCzRA$+#rRS>S|_!($fkQh4Win{kI8bqL~#;dd6f8hA=srvwoNwE z`TUL60OqPt=gpkPfpfQG=C=idda^!RO=2(;5#i?wi=P-6S|}uIP)SFpO-B`m997I= z<%;1|5zZ<_3+#modT;#*5nm@4zmLGXcx9}%w3yy>q%S?UmcG)ueo8IlN}Xo z>Yp`SuqOqoDWV1M3=~HvWMvL?0G7kVUoi<*KF-9cFikDWLahIFMtpkb%5aOpg3o|M zi@za6d@^IV+Eu*Z&3O@{|93--p{spisLZE6J8Q`5-ueZ(QOVEN)&*5%0-r)^4w$gn z{D)WfWu-13lQx5NdaBciq+>qbT^-Dr_;p^ns4t9R#v9>456L`htxGzNG;B0W7O+ix9ZH=)SRky5~{l* zs;N8j_{_YTS#u20`s8{MK`dB%$0Z72&u zK34)md+yN+q<|{^r!@5_?&CZdskmPwY_E3j;9Jn@TPgC$E6Cr z>|7=J-f6;PKo8Tu@bQ{qDr;83n z2WqX>`>{cLwe`V{S`2tVSvo@S$w95@Rwld{DI@GUR?+JVq;W8E=oKRy+k$+=d)j;e z$^t*PKKeJx0=}IMpez<^)C05sMp;Z4f8|kFlOvV;DQuW^lXT{N+ruvnur4xovPfz3 zMB#hL@BzTU>Q?{nmau`3QX$+59Qmyq;xlImBc7P=SINw_W+b-dcwqGb$KZX%(264x ztap{-%5X1^wE;i@47}F%fCc|Z?cdvm-|pCD3eQpf2O6d3;Fij=2diBqzRJ0NJ*=zY z5@O6v`&F8&_LpM}rHETyJY}Z%!WtqVtJkuP2ex631bZ$!C=xZkK2jckHiw(g25XxrRdBUY3Nro}Y4 z;SHd(r&Rbv#$dgl##sL8mTNnGYhihc=OKiV8I#5&a$M8ocz_mUB=c1@{+%;ofYVKso zfSQ5d^ovjpZTGfLWbJsFfQmhb8?#VY2a}TuR~fP%>L@oAh{H%_aX|pI6M~g{bOk}k z$dQQ{^n<7&j);B}L^)hB0QLYhy~;5F9J_7J^mBguo4=d+KZmHh@GQV^Ms_}s|IdZS zpT_3B$GBy;K*Y(@SZogXzCn}VfVp*#nd^n&r#@Qk{!DRJl_gA}`UW8pqMU8Wpd|5K zkXy-8S8zKGSSAOm{dCpOV9gNmdF|HsSF&P9WXW3P7v}nNBVwqPVdgo5t8p?)m^!I4 zGpJ4`u!fRLs4AWvjrw&Z5LT@BW-f4>bWXWUK>hGTvz&|&01q6Q2yg)$PLINjZxC~b zec}&`N&LQ%maQIeOsd~*M9^V`gwFI3dCT9Wr%wY3g}RWh=Rv76b5L{59eC!Qdp;^5 z|L3({Ko1nGt1!}QMx$`Mw`i3TmVh42s#Pz0${my6P_R?O_}+VQ*rw_*x#Ot4SlVoH z4l$EAl=CfxJ^EI@lK02L)V)M9ZO&HDG{yWO3QP;im(OUc*%Z=5+L- zq6KJb48!$Cpz0jKFV}WSIIZngNJl;!+?laz@>(pi>Ky5A@Lq~XV3mKYFjEjWk<1|S z5no;VkoQ9c^PzXDw%dA@m-f(K>%H58KbH9*BjrJAX!*E^nB&}_og=aE8E`2I?JsLR z8zzM$LByQQ`r~jR?@3AGoA(p!OE&)9NZPC3Syw`sX){%>zm){s-7mH1@Ez&uob}GB zs@an<9)-%O35I$tXWr2AiBdtqnaPSiv&ul8>mn_~}hSJjfM$@j+5~ya7iFu-kri#K(8>PD)Oj zOZ}+yJSrYgiS+EigW+~LJEupo%s;GqqeLh^WYgT(Yh9e5T}H1uDHK=Q3)Ywh62@{9 z-@S_g>z>p3QOds8aE*m-+wLzFOBz2DX!Lm*qfFq3XIk8-J5>!m(n zP_mz6vQ!qK8Emz6AAsW~X7+bO+jS|h29|}kZpz*nrxS|rbXLEK_y4&y5z=2>dqp1A zB=0LeTbojIW>amW-RqsdN!iB9+)cqR9{)wzq5ik9!}EXDbpR*x)52EB_USTfjjkgY zu>iG^TQ}y-NwJYb-8tHdcmg|d_S{#VmZc(MX8zFmdBvmH&fcCWC4vEFiz?pj)R-I@ z;5is{>ZmdEE03^#P}a?rO@$r@a>PBXY(Ai(JwjKc`%S1bBLUOI*MhZ;@~FhixlVDj z7;5X$kPku*$E~X%Ugcn}rk21PjBM(@NR3V=Iu;%$YX9Uk$ZpIpGC&fjkujvXr98*J zRss5r_UKFW`~U8d|31wa73Vlom088b`U*-0(Gi4O=2DK#&>;ZQDRX6Oi7N5+ET# zO27bttq4d9QW8oMkPd+akzV)vbKmzl?|J9_<2>ceGxPkMVVH47_^n*m<+|2d-|uIX zPTFv2{;8HK2UqgWiVqCF^dnd|77j>4*%Cu$XfY{fRW0mH^`eGiL>hl4jy5agKU&T- zRzcc#l}{!^!vrMSLgYN1MstVk=>4iR)fo4Hy0-jmhqH*5Ui@1(HqxIVfX$cmfeJHX z5FWUqn4q`#lHbyOtOqOh%&XPl$g#Lb4I`B#lr+_Yynd54|21y3BLym(v*|J`Xue`@ z9_%=}-2BCPAP6kBbnA6DyKq*27gt!eF`14pU7Ry1#wO=4x;-?lwS(o3E5meg8BYsu zRu9`<6>4eqk^jRKmy=nE&|5NB7u<)rZ8jIq&|lDM{N|qDJ}k@ z7sJQgFRAbmZX2O|?2i9T{<_ilDBkRtczf*F{7w7z&t>_~pztbTvp3&XHI7(Y@&X;$o(*Mrtb90GnZUxI4C&#i0S_(K+!sWmsNR^c5pzdkd zH}MVX!|Y_wHvoGl33b!>fulSNB7W}^-2dJX<~rcSK{hnx-Fe(SC*O!xEX5*4KsgVq zshrc$mQuIHnTc*Tf#Wwc3lwmlZvbRvIijfPb1C1tPB#{8f9?4vQmp64pz7!xtq#&E z<-#dXK0{py7^s^y@PZ5v)qEc57fenz4=#^{~K|8+(_?m8yj`T+p&F{r$i!m;3Z=@!n&`%Ji1uxk9Av9Owq{<9qY=}PD5gj83sspG+bn= z#btq;aP`P?-CKi%MQ~BeJtdi3i&MFqkTFE*&oq>~IB9sfA10^v5ul84`PmA1CShXcgrK_)p)YsP* zs5K2IcK17cb&%?|$1hqA3^poMJO4bgl^h`q^u;=Ro8}eE9g*A>tM#S& zh=s57rxKiV#{AWx3G9R}UQbY{a1XmMghsLHXnHMjG4!Mxjb)xA4U@!z0o^c~Y<0MU*F%uk=hN>1y3qfX=P1t_X(!dy zhXFFqQ)7F_o;)<$_%3cYTU2Ntv-Liu&`sU$GPqHqr@Srf?+1nrc+g9B%+tg2bP6^{ zeb_=%u_M*I#}N9kQ8%+gtd$tOHdT<(1pFR={VUIcS#z(px_WofIgHS8-5+ro3{6#n z@LuUalL;@&_(6zAlboA^imDpr9Z^5~tJEU3Rj+KK_Tmm#Rl{XgVsI%aw<(~$H@LK_@phC+pOJ_+gQ{n`m^bECx=S%y zvGq36{@L4Z1dKej zm4|8vM%+$x8@_w|SMZPCZH@ycJ9R9dFi}v>P+2+CXY8PSHcK%LW)SgIi{%@};E?T< z1_r2o2;IIp9@J1aFTF2hKTm6AkgAX0B0bAK%-tUet)eTVlm<@ca6UuH-F4%vso zTaF*i{I?;DwuD#am_?L20kIXDLt(c*RUo*@PvLLib@~CPmEAx1>U(JubM-TULCv&J z>vNyeje@ofhnUA@dzyI}N9=Z5t?Y9af1{zgz>%+mO`oE1f!|~L7r7~Nk z@8MoIKN1(wnY6xm5I09q512EQ3(>MQc)l0?iR1y2&MZ57tY;jLUqFvf)xuo>Q$+N z2Uxw{FjiI9%Nd605#6uoT;~(Y3%3CjFZrh;+HA}1KD@?=rM(`iZ?8)D8efjN zu5LDZfU34URef)!Cb;|VOdn6kXl9SR5>(}DEN9X;R?*&tg8q3V7A@<~u$qR5_QL!o z@gTy)hBRQFknMtMHtzlB{N_Ic4%ieatv%KZFv;{h7h2PlKhttbExoWvX3+L(YEo1? znPFkS@C#~na>;ZDW_;-ESo+gCp}64P?rSK@n|=VUYSZiF)y6F9%%PgnDM-)jki&~8 zX~yWw@kWC%lY%I;Ht2gm>v`{>cOz-704m8m)rx0HT|)ofP`&lkq0mJqjMCtdb+G82 zARtUn@%Z}a9R=)k-NGdjo909qkWg%FW^T}OdW=55rgOSCQ z5oE)iI+q}-Y79M7RCYuBA$u4^M~;yKpw_)MU(3ozKZLwu6^Z6L|I5q%uUG!>bKE?l ze0Oe~&rP~E(6r|+X2FQ>RBJB`Pc`$rf;llXy=9;16)zy?7vbe37l|osrY=tuKto?ysFjm$KhX_^E7Iw0erFYZSdXZJi{9Obe$1}W$~jHV6E#__clr!I3sba z51|(mMf`Y{e;#Sm@-LV1woC>kx{wtjvNpj=+PmhVe;%p#S6U{UHo3{>WMw55udpb3 zz?@ZhK7U`c;AEV(6W_+>sTdvh4=zk^-uP|V1rg*{6)Xcy}1f_4_2-Ipy- zSaesuW10Qy5B*o|yiC&hq3eQ5SpqI?l^TulWpmWt*|%g|Nl202&C=r-!P?!C%2Y?I zpUT24@Rk@0T1LWN`cmm61hhGCr7JI4a^JpUmd*4FeY^XL69viTWBD!^{xH<}lv_l)AI+vZGvHidSaaj; z2Ndt(US(LRDc|zip7_nrn^7=At|-?Kh1C_TuaEuN=PVr-JhQRqkeGv&SyX>StsNls zJWNDn|9M0^;d9=&DDe_=`j2B$$v;*TRWnCwLzp^|R+r?*Hensx5#OG!9ndU+Z$Go# zIkm4!_uIv>M7mfl?|BkoJK|dNwOECgm+F^a6}3Vh#XC@e+QP>DFHH852d{2S8!aO7 zyz0a4+duiHd(Hut!7>TSg;aV#ngHNnOC0&jIyj~Slv$5r4?DK04GOBNY8e=ydwS^W z#xQ%C_4pBXqtsYJs#Lc}&hZ*0G7a ztL!>olY>+h0ewDcl#fkBVO`huBqHjB$Ghp;lC>7ZTTHwh%kg96P0|QEcE(Tu6mNQU ze}={$7_e3Aa1$-*yh3%Fi@CwTx6eSM6APLL?XQiOchuRz>|?4z6t4Jz-%qhwd1gPy z33TXpVBYmO8~%Aj6*`>R!_#mn@G`fE)7n7g%JTf$B(tS4rD=}79}7RB+5ewY{r_yK z?mXkJgPjkl=sk=3sIaoWTXJ1J8KBy!8muQLA#*+e@@45lfKsq*4)`1<>wKM9o9Ip zi=s=9&{}^U+Cy)?lek;*G04zU$^O%4dmIaGVrDsJZ`z^$GPep2`N-5}Yhe}`j!grU zi=S9d(jL_5#c`s42yhJhCe-#BRo>cM+qG~|$swNJK|_N<`(6+&h84nxp$d|kwH6Sy zR_IKZK>Y@+?;}UI9F#I7I9(jKnlHV9jhy-D^kMJPgf%M G==$hzt!IbeKV#(v0B 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 AA^-pY diff --git a/other/logos/hostinger.svg b/other/logos/hostinger.svg deleted file mode 100644 index 42ec702ab..000000000 --- a/other/logos/hostinger.svg +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/other/logos/internetgarden.ico b/other/logos/internetgarden.ico deleted file mode 100644 index e555984be39b8a20ff9b2a3b8b13a87261cfa976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 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 - - - - - - - - - - - diff --git a/other/logos/juxtdigital.png b/other/logos/juxtdigital.png deleted file mode 100644 index 92257bd3519a49fc0692e7508e60a7f50f17018c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105748 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 diff --git a/other/logos/latitude.svg b/other/logos/latitude.svg deleted file mode 100644 index 489d9ebc7..000000000 --- a/other/logos/latitude.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/other/logos/logto.webp b/other/logos/logto.webp deleted file mode 100644 index b5079179218ee6029c3df21aed6471dd6f7645b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5156 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 SkKFY7?;0Zj1u@ - - - - - - - - - - - - - - - - - diff --git a/other/logos/quant.svg b/other/logos/quant.svg deleted file mode 100644 index b7386b1b4..000000000 --- a/other/logos/quant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/other/logos/saasykit.png b/other/logos/saasykit.png deleted file mode 100644 index 27013eadde9f42a537849dacf974301a3622a7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84363 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 o-*NH(rr&@2;{UV0@c)K`?>Hq)$ diff --git a/other/logos/saasykit.webp b/other/logos/saasykit.webp deleted file mode 100644 index 0d1085e6c6671768e65867f4f25c1857a78a4d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44522 zcmb4JLz69x4jkL&9o?~Q+qP}nwr$(C?YU#ywsqe37ha`$kxhEhl}cBtl_bT)4r_sc z)J269)D$>0V1R&tkp6=X2oNvzxWp%D?I>qKgv#t za-Xhg2WSEqpK{R9{X+0E5Zl}>#V@YpsQmyF88slxmY++)zU<#n{J*8_XTnEYmo@A- z7{h5J7MHFA(^3bsOwXH}m{87fJML2(vTaUoR@&#gQ2x8%vYOshhI6JS98LKU(W6!f z89JV!PC~dwRV~;MPw1JU04Garq z8puIPixM9QyVe9~e~5&$Mm!?d5)0syhs89q09Q~;CJQaIFc}rY)$>E(7xF4Kg9`;tAT*#4S;ijsdPbT z{?i(Wl-;Io4&Fq!1wc{`^m?NEx${K-$dB1wYmzVGm;8YEDgFg`&ga@TUm*zp3jB%x z!TgZV@;?P2bHTjpfAzlrD1Q2Trk~<3_4oQm{f&Qz0oqskKZq}TQU0X-{eElSfqt?6 z!oSVGpkL~*fKUB%e{%oj7san>fbcrv6TzAO7NEuV8!+%40!RiB0MvW^$}f9GG_Z2^XUoBjO&>A(7S z@=pZs{=@(i{(W!uCxQ#aZNvcm8UI9p!SCSD(HH;Q-3P(7@3Q~O&BM0;BH-`^{1x{q zf3JVmuNPnssQhieqTb`b_4oTRcoV*2|M9=hZwCnQFZ!4IYyB>Kp8XU9`1`~!#*^EV z0RsT`uh`%8YsmM1PkRr5J-|Oe%I^zc{Cw+2{%x;?f0zFkFz|l&Y5pJhFZeC^`v6}6 z-%sT4`j4|W`WyaZ|2cmbz}@fL9rf>8r~lT!pS`C(RDVtW1wY+i0N{y-4Nm}6g*z4- zCR=VbNiH&yZAa}@XlQb_UC8H$L^kBZ+<*zo((AE?IzF%9{xbtHx4YPFcsjh4OH{$q z&cA7;nNKWTcy7ek{~vBM=v?>sVh%lV8pIG3mS9#FtJ{WpP^GE8w_Q1-r%2XL_;-7r zzYUv-XzkEr-OpZPHW5p414VHNa?YlKcHaQ8X#euNgmv&hZMcf#{*p1_`ns_ve(UmVSGK&7TESShE;Ys92Z~0L{xcRuR zgYYOPz608mN;ZbR3)tc=!+N_l@S18&uBQ_^`(^xmQEng>P2^jML))MB8;oYM;_p%M{7SYA z>pPRTiOf=W3>ThW)3NMzMh95Cg9~?|b0}=s{X>cseDXj64Wl}5v8Fx0aMD+(K8k^` zpmC(u8|G!gW+qS8O_ilMRuqyR73IE75@`|qX|Y>*!nfE@h|p1#vuaOYG};LCZp7S_ z#~sqBA_o~1Lw>>qTr!dc);j%<*3W&iGE?No`{(pXB&)B`JBG{EjDu*6maexT{E;%q zlHGpHl$qrWxjpqj9ZVi{lkI7BF<|Lk zkooeb(LxVsiBjSjULl^x6Mlg%*qCBX6YJSCCDY`-KVOogMO(iM4b6J(O{ta9mjt%l z>yLjtm38!{LcBk7w%fLLlg8cjEZjOLghp(-gJ!Mn1=R)ynbZ9bZV%ktRMB8#`0SXO zk?PPXAUig$F*1g$CSACFJflERDbSyDxZOrsT`3#qp^^^X)IC#{x08_3svZBS@NNdC zp(-rEdaQnQ>Y5zg^A_o&%{wqm0DHrXBSqvxqH}N#16*YH$4R__Q$N{9|M}~_HOBkV zv~AM4tMnltU17`-pUTu*sc1Db8rE?ndr@@xFKl(#UZ{Ymsu`R4iBc1wXLn$qzLl^y znsABe;|i~ti^pg!JgHrdXR7ocR~sIXD*3YQZyy0;FIM7>V@6UplTKl=pTKkCnd_VJ zi-DRpsx7>GQaS48g`8+!&^I_@2L3~>-W74~G@_9>G5IN9k!b-FsBieDiq)jEEy_MM zU0OJ_o}{PYvb&AqqXULjcshX_Ko8D8ElFI0xNpQjGFOgsu)ia>+%-!-T2G?_n?Syq z^>Q@+cO@(ko#F3`KQHRx9kKL61^4L8xz>slGN?T84`&3JsSsj}Rw*V7Vpz~Q2 z%KDl|BA!#H`ARV#8zk{UU!Z&@8MxBeq2ip~A0d2VGBK@7%MxJn+`Zd08IXvwihmFp#bAcy{7y(3r=?eR9EG-Ivd`}Opm9l+dE`=n5CGhe zaXTz!bKT}S)8Shf6Nl*IDsnz)sY zBnfRO^!W>&c@?*D*6|j^A!Y)UhSq;2^!=9|XM*iQ8*x;_?6ec~x4XGVIp>dSQyA0S zb#8A%ZW>Vn8j-?C^DK+R9JQOP)uN?8jbUe2No3bo{j>M{B)Aa0aM%@cwYfX*(vppm z`EAdZc+NvQ*`FP_6PyZVOw1yST1tN*7J5f75^7kpWQuNj1*IBf3P2zCFVHdA6qbzW zdoA2@AP*Lv-vu!-7Pg6_DhMN7fW(B-H*sa5@zxfL5+-1GJ7q{Tqj5UpZxA~+JNZ%9 z6%`o<_^u~?Z=;PiP3I!#AM8=)Lv4%%>dPXklwGIUly1G`fJzLG8u4Zro)n9=K}uz} zgNW1erzlZwOlc{rUdfBFNX+SpY)+SDrw3iZSX-(D*Rx)C9EbFhEKz6Hg$7To#aXFL zPkStAc5kuIzo{4-Q@`s9?fB|&zT@Jf`F(bWqmoN@dN7_8b;~KOen^>V9Mm9FXqSBi z7Hh%cdMEfkFV5G{zEwjS4R@T{6@X;VKKW?lNKxdpM1SS;=kRl z7DFbS-7TM{w+2>4cZ^+FI8&3zLijNvA6OWo(`l!i3GtS~iv_>9$T2B(BR{R-AHr&g zY~m$Xz?>u^VN>Wki|HMa29CfUeD2kExu&i-v$YnPbnMdRJ1F~r z%$7v_y@j1sX7NkGC`5dP zj5?uzijOxHb}zbt7{dbL`3hbxhAg-<&Q>m6isS5SG}C};Sl|2P=8d%`D7)$4M!hG> zn_H3`uTLK+=9(f`<}v!e8^qpYoG$jOYsX)8IZVF)B88}-G@seH7SHIq2wu zY1q36=Bf&P80WN}aR9v+w4dd-q;BqLm}T~41T?A6NKgvSr{IRto7mXr_lRW(=Q7!k zK%K!5E)$ z*;xrmAf@;tk$}3479YefeecMPEce7q)h^?62v;;dzJUd1LJV|!EYid6F&pCkI`?(_iyU<* z{l->=zGtWICHpFZzeLhJ((QA4MxHCh)}LP->-(A18*`{XB~u%Imk3Yj@}_JPfxYht z!&rWMO;-7PV>qEoCcXsnv!h0|-TC?@nx=(aOsQ`XxyJI#pLFWqgqY2!rt9SQ19|N7 zG@>c}h9ejzf0wu)ceqoU4x32wit4B`*4Vrw-aIePA-JKT{BREvMhtE{{YbORj2=w` zN>lrrQW)?2hdY~1$cm(_9dGI^AOgFf8Z^!@O^S|$2>?a|!>O43Svy(P?-<;6C(_;& zO9VbQt~a`sxKIDIH_)dsn6E$xfsM+DE+9*y%RuopCfUe~dWsd-?(&( zU3C{(fmILCsq3yCYJzqPKMtB7mqKvpazvZA0*Otu+(-Tx7GXC6clz zd$F}QL4d_ANT!`~LZ?De?f#rG2Ne{Uv^$h!){CDy&I$yreoXFpnJrPw9TUaCVDNmH zJ9V458GpFh(Z1Ih2UO-#*b(o~=Gz(olhGezI_j?@HgL>WPhFn#fo84g8mI<^??|9D zK%!MFsY~dLzLQ}(c`_csu-4Q&hVHam#m){LGFhduU~;sOeX}l>mhat+@t{(q)o!kh zfF25d2}e$vIqoYXKV!2ISt!KbzRYVuh`qsY=?njrUwtJ8fsK@@G7S(rCDga0%dUx) z8QeOu8Pn&OWk7J@zU(P0m0z~9sM*X9&F&fLC|A_`OB?Q>Wp$l%f9@bY?@T3u(M4R% z3?dL%*UpR)yBg{D^%gchj-4E0P#zJhgCl`AbQPYn^@eLV$w%gystlX_0Kdq^C`)Dg z2^0$|&b-K!=^{_dT9L8h-=M(>lRibb9tkT_MU!-R^*LhL6D?c;LapW@re12veLi^x zlhgvyw-gzqA_$6Lt0)PdN^V4C)~X=1q;CvK&kYtwgqhH>-ZW#=iPDH8KNaAx;re%i z(dDlp;wdgO?}~`d0{T;-Q;EM07pk4-9&w zKZV}s^?b~h0g%Bz>GBSZT7P!&!y%H&ioI4L1M~{}P&)7dz-{5dz#}q&F{lgGa=eSyPZ*Y_h$&N5K2a5E)9Jr^$;}Gg z5o<_l=llZZc_nvcgbMR=K=7PCFJaVt)L11m%Du>mQlVqeX5a)5O+ntce_0tzH8cE>h{f0kuuna7$9cD>T^Y8b74pdvAl9l@KlUYdCwOwX zAIjjd+!uZ@a=H(AQojJSwPRL#nsQHtJN_}yS=jEOv-$y7#93!=?>VN356!93acS$(pqKgh2c^eo)kg5A_Yh=7^$s99T{SF>@d&)=V$Oe1S0LkS%4DyMmUO?9X=le9(nj` zr}wBDQ!6hoN)J1UHQN_SXCX#}Gy)V9at8C(2L?OV)KvIcwGFC=DE8Wae<*#ttA18` zxV<)4JxFq``;?oddU$#4a}Y+26^>FN1ao@A$Mapj=7cA~dF9-Ku$^=DGy_b4`}_Ss zbI3_GlYO9LUbD>TYn!13%_B~TW@q9tQ{GYr1)%!KD|gtC_}najTC%|_My2Lvzm}HC z6&bs6&35$cCG^v~J;!k&S%Re)&tY*&+!11$Q*^6a@VEM-Ek(`fgd?QS%~+`C?sVLU z-H#oVStN0g9iqFwyX|qzQO`Z>`J4LXqxFfaYzW}!O<v2@JR74+^bcpFdmcT)Pf z-3&rgJe8fn6SY0}gHV7X?Hsri3dnUUDpi>(_64f8amdp-^q4@l_B??-KP2y}%_$ZB zX}r*Fk1D>m)kSXW-47JGL3haYv5vW$cHT;yM73leJN_O)J~8C|ikQ{$BnsVa$Z z7Qutluph+=@ku}vU3&;!>g;2&+}fG@1T%^O8_q!jPOxM#$pPE3Z9~}ainma#p6IM~ zBP@DTZOeQ81L<=pu1WM{ix(a1d}w_50A* zG5e5K8JF;Rn-LEJKBhVItthFk0+GF2V|AnqsM)I-=jU`n+8%cJ0&vVNOpAM}>DQQ; z#9lW`9~IyXAskDJd5vf#njP*yi^el}OBXdFJo}icC#YO-3qPNvi2hlEKg(+w+T}7Ayv*og#AKGKh z04u|bdwW*((m+YMwLAs>*?TZrZoIh<1kb@EgN=cP+j+;724|1up}j*3zzk2<4~%*$ z3Y=0VM*PdiNFY%@?cxF$YM|mfJi^)^rcL+gYl+Cn2NGK=*Hk%melvcsp8X?$(XDe} zcD%!i|J+fb=2=5z{i+68uJ+cVPW}e6F+wL`7Qxv$vzf->vv2^15}4FSmP+~uC2g?l z@lp8PZ^{?f@CUec5AFzL1v~g22@TF@*BsAuBDn{jyF}LGAm*8l1Hyqy-1i%q1!|k$ ze`W&)$q~ZE*)w$6CY5GMm(>#zaXC_cIgQICKkvc<{@cJnO$-Gi=A7V>17!}yIjTv_ zTRIHLykP%6RUblF zzRto?r(#FTEvL-Q(Q3oHX-wSnZzvCtr!P>GWZyLwY;hd?KKC|l0nMxU1alC6UlZI& zlVann?$nngz^b&H1ocd8r|CHjig2i8{OXtAQEDMr2~l_O!yhz4t}ysI9Kb&J_3DSa z{M_LB3udPTJqP-Zcww~juJ#bEco%mr{urXCR*opCgFG;)ya^HShfnnP1|3n_m-L9N zQLp^ZNo*^7aKd$ds|KI0i&GdGjK=C)CP0|(TB!u4+t#(Y_im_nX%#x?(x1S8MGjf1 zHwc+9aW)_tb!R}VF%vi&p@suOf)=Enpx9GonGd%Vu18;Kb8koZuWyQJYU$Tl9w-^S zpYsSO&eV8WK|hktgbJjxkMHQf#*K>LA?9Blxm8(=Ype_Zx+2=qX&M8`riCFm&fQ`-A|d8F=QY<3#aCJG9v~s3 zHU|E}nHSej2sA6IBHEP1I4>N1WT19L|2KnqWg?VHh2I?Jh+lvXo(o*ub^ykQ2HrmP z*D$xd=A8mn9i*66bu%$j=A~YdcQJsXqmO<9Jl~-@mUE=}#3cbO_y}lnFERt( zc^4aV)hbg}dIuVBn4#ZDT7QDJq_dF3p%inD$!z{cQ{+6JU;V41>Q~R2YoYPqyaW|) zPzpW5^XfBb!Lc_Ob6J$*;$t^CYDDBmkEfQa)QG&UCy)hlphYc=;3;;E8q|)+xMR}l z9XFiT$3aZK#CrX)2N5F`UeU`(MWz^THAbNFEU*BlM$5GozbRe1a}_LfD@1cT7URAq zk>q{~d~z35)ojB4Uv!ZQwG!031R!*iPWVFR=`HVU^G6!Fx>7zufZ}wtMTzA)r-MFihW*qIR{!9}fSL?{ym`0g zq5?}PEOT@2f043)qHxv`w*#&-?F)Vi4#{=#4!Gd&`#5V?AZS_ymLJwEh?{=;W01pV5ypY_q5C^S^jAxb4jDdgD41T7kcfzhC=+qt|( zEx{Exnf2nThgMX9qG%sa(goZ1^V#&|R;W+YVb| zMunHNj5N@lgYPqG%Sbo%f`&JM#J6k^MKPne2-0C&tp?vv;Qsa1HwHD3QW>tW!oWD> zY}ih0UB$Qd@VF$t1EYvxj1S<>pz?bW7pQ$LIH*a2>Lm2Ej7b~G&>CZPoG)tBJTAPn zSRZEZgK32i!Z>~z*AL#(n5)<;-DkS1zKe@9T5A5n&HMH%yP*&kdNb&*Q(BiCmF#K@ zFjKHISIWHp*of0B!2JC<{GM)%H8f+?J!^V-zKcKq+Ai&tZnnqCm*Q0YkySXZkGc;D zk0hN@+!c4ZDB#Kiy5Fzt;#mU&S3pF{NSY&?{O5>9bVnH2Dz$84at^#&u79gtN;Qsc zkM%kZe7$6Sp26XYC{~p={f`JXy+3O(f%VVgd6(iU)Ng7a#PkT`9@BYCRVo(^ZZ&dcQ z)eKeLeDA*#skNj*#g0RyZi=CfP5!6K%>v~xqKZmFYD)(u*7k(QzC{Xi!AydI1+#yv zwr#WfRNacl=?D6cH%F;6LFrnwDw_-t7z&l3@L#b58JJ0Q7L|PQ3tHGX+J~-lW zlk*tEdb(ij?cERv$r*Lt4X;o~DPWNzqq|<(C-i|_+NcYlAq{X*&vBQD%DjnTsZK)u zFmITdIwV&*H7ScyFJ0??=>B+f*#hpp;wl_bglLHqMZ$x3P)(fV91{7oSX?P+Cg{s5 z&%OBq$#kcZJ1j)|kI+Tf=C``d#Ft}<_nTw?7%`oHeTpH#65Ed!cR&py$GjdaiC9EtDao#OPq)jPm`cRU_D1ty>uBls~BN_Hn#HTf+>+ypvrx`D1Sb!?vf z2A+{vW}9LT2?x^SiHY*Oib}1>Mz#)e(x_3}G+UqE#>>BB-h3%ybe0=MJg(QSuXm}O z5^{+EEi#eMapo4&e`ad5U?0}@`P6wWkk?tdbPchPCFKt9n!Q8d^=l%_5v{bm4U%SE z`R1?Y!V2;{an!ffQ&LLhMg$kb8ax7or04IRzvvv1YJ`?tdD(H>DP_Em}ss==feGDncBwpM)nBK&_b3QXCF`Gc#<0?huv zGxI7D*R_GOW6H;!9XNj{FUX87y$z^Z)Xhxodp}0>XwN_s0=KL81!~C;Fu5rcK%HVV z=p11b!9ai64IYbR@6lxwEE~Hiw!bNRKtr1K`S+;Ya8yV?x`i{|NJ}}PBu~#?iLSbm z4cQDfA_dYsPr%lt%+eT-%f470OFPq8MN=9Rff!Hl+oTrF0@grx@riX+)v&TUi zDQWJe9t}l%Pd)9AzM9MavGhC}2dnjkrHCAt8(nBAG}&!|3PQle?Xo>oH78Aoc>JMrNn0O7o(+pY6-620miJ%)7YL+g z_Go^Nq7Ks+Y+!-Ru$gm*GlHgFSHv-N-N!EU?mR?u&==cgnHbG(!+ak=79&e~%q2%= z#Ori#+q&!mPaBvAnKkc63$d``l>4{#eECsH*`x2CK0EhD$Ssj9hHfS?yzlJ8?gmTj zF=^+JGIMSuaHz-|F?y!6RmbPWSDg@6Da2z#oPjf`4YmJ~igFitP(s(u0{D~UvL|an z6qc>>T%i1baBo>%WTMs)XqsVztCW3^lvRLu^K;1zu)g{Dx@&-uU4<_N1SqYmDuoc+ zr-farV}!$vt8#!#azW5O*QaPwclHxM(i+)|(5W=Ui+{R*-0x7(u4VK;T>PT7CqChP zdnL<1PVsX1_=P}%ii?y7!81Gd~UJdxg*q?~-Ak$^dSbhv;$E~l^$uP5W1M>f8OX&Nm9jJg=8C z1J+40(1D7y=u5MVF+mHqF?wYXITHhZ(jHL@Eg%vTr+zdCGeXqJQ z%BKWHhj*6xX1my-J~0}`j#-d3In%X_ zHOjYIvyyvh0-?Nig4ZM=ve$f>=B;Q_5t-D^`P@jpYma{Tuu*{4@pr@lK#;mF>7|Or zzGDzaCjFol$R{+L8L{HM5$YhRvVl-bDJbHUmnBved$YiGb9wZKO{}rGZllfpM~IOc z)P9`#UyrLA1EnpaTg4L@+=P-rk_Y#Wf!k2l(gn|JU6aALacN#tyA%aI{z2?KNz zGcBeT!I*%Yq8@oIn7(ksSnwF{E4?W?=alyFquHDpa-g4DitM9nk3ms;&~H>K+m+wJ zVjWnf=gAp(PO=xrPDpiGvI}qStGBs+F=$;Juf=3G@B|=C%>0^@<`pP5@aUvjEK=G0 zorT_elOyu6|d?>R(fjb)?ubAT$6(i?<8aMR^BGfvdc@XXB61Ir)NZO z5Szn}_i!a7uG1hjfaj#yBE+Z$@5@^$t?~@YKDpIm?XuWZjZnd$NP8iDjjyNZSy$;Y z{|Yn=%6QAid1XAN+0j&Y$Fmux!BeuC+YjHGOsZs5aFP-TUd6;H?0t~Icfk!qH_w@s zIGcb={Rjja3&bwlcpMvvjYE6@sH|W8a)1^6d$)MP%~59KQ7Z~0ko zqM0MoJN3`HtCw0Gft+B ziCFfpmfmkJ(=PDVZT{FJk#rJxAg=8_X~N9m$w&XG^$GUX|NDCk%%w&L6(a9AoFna=ipd!iuW_t_ zB_!liVSDqR_wI#09{*@5eE7?_4fahTRY02vj_;k1rY?yJd?kM{pH5efa#btdcZyh2 zU1zwc2mvDe=e3x;hXgt-!@#Je1JI?$IB&4CiJT9X#(KYW(p-psEMeMMOP7BmQ2dw# zFt@IN_4T9DLKZ4IQz8w-T_D_76#66KuT9GS3MIdlX?NL-Co0g}chfp;kXb{uuj+Mx z4kWLpQ2;_N>GT@!XE6n@YYw&YCrB5@4C)^FXk-l}wF!&8i4|3?!-yEi1BE20fG)7) zKn^m!WTybk5^ig~wT4WbO-5+?oSn$g9ikwS&sEmzseyN2Z|HJIXttZq(UA=8j^99L zq?oobjZq=1(Taoy0L>DHS+%6B%9K}eoYsX&ouK0|m^asuQf;?Qpeu$kXAmbl(Dg2n z0-9zl;t}ZYhqFTvXCpg$PYfQBXd6Cd6$3pylGFJfuJnWolSuKs$+ZW!{M{ zT)K@0`$2g3kFDoH3|P%Jm!s|8#^bWk&~y8E7`V&&3f>1^3)Ot@ud8y!_!iX~5&N;0 zG^vJmd`wT>05!+ywf@uO&>vK@c@)Y z1Yys9CtelZWy(q_qJBc1+5>zO`QtusS2D&v>UcZif6a#wl{f&8hnj`Vf3y{E!*rZ} zuX-BHjzML;CkhlwaZs)s8;mTs#0Dp)%jr2%`1@-KD-G|<-#7`eS>2!AHzDO{VvYvI z%PVr|jGnvLtsJ-=TjJ#;^8HB&G3%aWaYTNp8(w4>j^6u;Eb4mxoQX?9k@`eg^t&G<;b9*XR%`%sxOOdF9G@MimF zwqnVC)*m=z$j8Z(nSSf3^r#qPGf6ubyS0bZ%eqTOZ^#M~`}wLjX~hF5Bt1w?r)Auh z+$st#G&6{5Lp#u=R6szTz**(9JCK`xH=^8sHnnYEf8_V}W80JRwcj5CoiSUH_AH$q zfw+!)Jw2qwyi@z?UqMcuyEVPzB!}es7g^Y_E_=@pD=V$i)5@%NrcFqscj1;mMFU8> z4s8y5TN>7*O)@De=nBy#Qs7uV!r6{GndBcI{Q?Rs|5TA^C(Bk^4#q4`;eWDH!iBT6 z4Y#XCF%uIqewm%R^FP)LH;f#@F>Vgr+>LASvXXd;$Bjcq^-wU);XXz*Ul=@d zlap?_76{v{tNTrc8u0Grz1M1qrL$(rWh7^ZRiAtC?j6^)@~@!~Jk?vL8P(+k@;+G9 zB$r=U)Dxkgs|SQO-O-6SKM4Yxh=hZVv4dWz^lH~r_~>tW-tjPU275&r`WG#g@X zu#)=?Bj%*D@f8;o`{90!f$}Z$LGzr)Y-EHN=LqSRfyZ||YhB$gb@W?SfcI+N5f9H3 z#}89slrU*WsOoIX3ITfoQN$VZHoTE=ouUd&6WzV3OMFPbf%LN?@@e%*Z**1`{yGp> z)g4=XGwj4d77af**zoXJ-K)gq=)bonE|=|X22d!4vQZy!t?eA-nIjk=NL9yKc3Gl$ zeLz?mvm)_)|8vKmCVlMj82M)5u0$!L&tIs0Hbb>dHd@BPqXP$}I*pI@8)RM~zn`#9 zLCo_O(oaGGyLzN~)AlWMtg*O-ceUCZ`)P7sz%p)fq_CJPaf?L^!Yi2lrn2-oEMF_^SC~pHvbul_Au$Fl#GTz4U5vVc}8JDLW2i_-zX+ep`64{ zZBUdY?5ZmtSxj7WF^_ROT!pdQi94*op%a2|Fht>lBrlxlcD&U5>42v-9#B6^=?M^) z@;v$Ar+kVPYrT`Y2gnr3C4vhYXmrBJh)xX#I{Qa947g=lbIiVG{_Q)fC~SST#zQ8w z10CkRmNwZ(>0)AZXYxr2v4ZB2h`V|%$3Z6P&^s>?vU#0b;et?7ys8nySSzpa4K~CV13GLZ9FF_pr;l}O&GWKo(CP+ zc3S#y6o}U+eLh#(L>(o?`@Ms0vNzcJx4Ay;8$QQQUIOuywDlX$Ce8ikKoBvqQQl z5|2@(M6$()zt25~Ed1-5X8w@OH!@ZghP#()`FDgz`#=}WhJ_iz?Br7}zK$?P?afbZ z!UWAxY_QC1XlF|U-DA>RfsK<->Oem6ZA<@I94Ic&+9dOb$ArLkS4^@`k2Y(5-+#2C z4|KshR+2hYp(OA7d^4+zQ|Ze~_jJkta+y&GSZBtO_3!g;C+o|=?|VB>GZ_MPYDlD& zyBUiEd7L~>weizrDLcWj;W9B_E;Kg6>h}Xdhtx0r88yUogD%Ngc+dE+mi^8T59eOr zUlH?M0x9(Ep7K!EkStKl%CDj7OCQh@gTI!4RCiA$|%%L8>bWRiN=VQ(W>vtjf%o)mL^ z7d)?9r*~9bz+rp!>7x~O^1VLVqw*FM;{aH=!uh~?&q&WBH8cQ&6w<<`tn>50#L%q} zK(jvdw_5MjBc@b^Ox*bI`ztka|1dRPtmxBk@!pcbrKMLFD{jRA*6HEfF9A~$k0DXJ zQDf@Q$FIT_g;fF0i|+63q}|c*2hU{PkCo-7;Km zhbH8F2fsTx**GUh#27zDEPCDzsB>YCr1IcbmDRtgR-@U@$;AVba9vu%()$w-?9BGD zMOUkt0J~5x8)wka)-zqd#+LvEqb9`#(Q@ool0+VofF=dKr1BAVsuGoG;f=1DT-%C?WA)2I%o1^vIvcN7P3;tv8C z3Q%Ze4Kdr1S~kqf3i^KQnqQO;pR%v^_N%E?SGPrYHQ%<{lwj=e&(3G$x9UC5fziZ4 zd_vxZm7K&y4j`fJ;-DW#z6^1&pCI-9U39+rqkrl| zgl>t1rmCa?(Vcr8W~>5Y7I)isUXhx+AN@0EbX_rI*Blv%sW#(ry?<@AzjICNOw|u4 z;GwPTh!bRf*0Z2Jedf9Zh|G-lKci|=bGeV}%Gl4`<11sQF!AB}k_K5pc$ye-?HA~bh0 z%ob*@BZ#aucAC$~d#lxF$fsy3AhLwG@K|gunIzF^?G(Ho{2-|Dg<{Lv>E_yRce$20KW-3!RNu4YUS&CdZ66h2Qn;E8T+l$mJ%@*xSjX=H8O`D;0rO; z(i~|YjX68yoY`JhSXs^m%TO1)dcwMHN*49YkHOt!pJ(2vW$`=t6mf=jVsKq^E3{)z z^^vON03kfpZ~)y9d@B2s=Nm&W#d}0+`7gn^>=@qlj3|g)5XeZC`;)bXish~6Zchckxcx5A7 zKH&YZwzP_t;q3w3cd&y;xq%fBiGoRMt??B*u}H&J(AxCSznZZuX*juy=_K!#F?KwT zI=v;om91%dR#W3qj{H4#AOn5>9m4WMv%M;oVc9p{$yIG6a#tRFoCUDO8qsWdnf2Cb zNWc@_e~e*Z>+;ai7pDplkx_L~E|?d)b~=)Exc`wU)@+Eqt;+mF4st+kBs=_WGI9&5Zp@ra3M=DWq>1UX4KFU-M5>X#v3`G-k&z*0F_?d&pWWnc) zsi4cXvSdB))gu-oJk>1+{;&~KeNuH+(N1k!O$Uxfc!!Hw=HitB4uE)*QA>6(}_qaS@KcY}nnUvI+*bowQ75RmD%gYLVel(U)uoYn6Bq zFh>O}mRB>1RqZ=4CXT~`lU2l&ndNgeI#bvxbF>l_3uyzS)?RqTIJ4L*W{hwE$dwh;xN(C?DkRsj#>83dVYn zxRTx3hs-Z8D0`-ZWL+@4$KXFz*G}ob%>@ag~`u z7IM@BQ~J61{A}H{O|`Yb+EHp}yd$844P9lu)9YRlJZC9vkd;d0^9~Wks`Ad@=W;_3 zbB`RZV!q|BvKLFqZ7$$~RZcHa#lzhDRLz`4KYB#h>hYz;zvNi5keTwwH6|J#d42FS;;aXl3yK!Z~ezX$sAgkNcZ2(G)ewP7j#vrzD$j zgq7yAi1zo_WVfCYf}VGbeiz|UgYP9KEPgj~DIj48sw>I~n*RbkpvvDL-THl4r_7A! zZn5xvP|i`&7|t~koU<@6F@ZR*Xj=oeY&Fih>}_Yjtg5_31Qd5x+$sM!=k>| zzyK%w*0w-@zk}X`S?AwJ1f9lYy11%F8c&VPe9*GKRQGI5frn*%t_JX|W+x#u-U|H= zpg0@;Oh)Dh%jD0A8hif{zWYpW7+jRmc4S3rgt~^E*ZVe{ec1vV$BNdM*cScLxi@~`Kq#m5dsv(Ei)?`%F()~W z=o1d}-rd<1_QeTGZU@D}=Yng3LH0pjF5N&@AgUb&K5ULW^|ExU>^)w=~ODoHv)&XMP~A#-(zg z5_$V-_HHY{Ab(N)7BtE_L|m;q{;FNQYXv*bw4Y0pXt9~)p_j_v25_?woiZtU6NUbD z;RM)qz|`vel`Q}RR^={^_n6?K$AcTImZIaH9I|_-yGCe!npzbjzUBlv(f>r_OKueKb;W5!PK&q+O~Al9o-o$M}GdhitfFY z?f+kvvmen zUHzVZyBgs=t(}2A2o(Rw0ASdT^hRF~$g)e5P zz5u?{%6`6eT1ZRClq&OQVI@Qz!~KtLFmDsbF3`O*Y4Qac#?@*%XZ|9_7XH?c=rU!h zaKtwVbSDPG1B@>Q{1Gnof;f9DyEfj;tfXym4lqUUknDt-w0|TW{znIi)j!$-Ku}&F zM206STV9?I7uR$%;koh!bp-*!KV?LC@6O)+a!~!Fy0bG#t8^Uk>C!d%1F@0fxuk_z z2f$O=0$!I&X#yPsI@MawGv8YIg2_i;S=|6_d09V3GZU&)VmPAASq>fD(f~x*!0EmvNr=>RdI#5m-xAnDPMy zZm7!iIs?DLG+4cPb0BvUzQ{h53fRrhJjXR@!pv~&MA?pb7eXRRfagDchP;(d^47$w zM{Po#k+#6uNugtabkDf`uxLnOh0-cF`~x3Dt34NDEOkh5;ezBwtbkS(%m#54DFjGE z$uc*r@ z@v@R@fD+G&`eU!9nBVQ=6v$Bd?)YuLUk8oU5^WZ<6BkyH>U5KSu zn7v<9e)geqzcV-rW8dmFQIEiju|7F#e;~wDPkD#8Gl;7bNwUHZEpie|R*wHr@fyse z^I!!zXtL5{$_sfo^{}RO)nHi?s2Z7ET~r}(Xq#8ys~&3<-j2+)C1DL$Lk;0$Y$5Bm ze{Q&9<8^p`wI|+k=OLqsZT$~QK()UZGKTs&F>TL47w^Ep?6-L8J#%_B@HA}a{fndo zr!6Gnkr*13>EliY{0X6vxcT6*j9X`J^)BnX2zlW0n2SM&zyh^1sGR25={g1MB5vqw=^4i~4U9q}V zB1Kx)-S@c-FYob+iOp3W9CacD-E9^$$v3>-iK zZF03%Cfo0k>Lrxk5`S}Z7_Av1X+dX_WKh00p=b$yaU`ipmnSDVAN}2X!wmt>KmY&? z{$v)sB09d1VGahw7B$KL^wU>ySeX_Ex`~Y$P68Jhh}|3 z(&}dWlr!zeX=c5sx0!rwib$U0gQP+rO#z=>OI2w>`@X^^9jCr-rjkCqbGU@?BvuRZ zG45Su^c(I6v9X8KWuRelDig(~oX6wfO#i82m5SqQ;tBnh)aoLaOXB)AXcfz~F zyb`A{%Hv;WZ1!jaJcBBMd{5b5f-2Inim%t2D-=Kh)Gn`D3%H4Rr}LAiY-f~$nN!3O z(v&IMC|cF#*lXQ)$eUfQa|LYa@nx&0q-HsIW8U{bF0-tvb$*P8wJu@2KRc+qTaSG6U+&^BKzJ=*$Ld%e1vxNoQ-$P) zpWZjG?dRwV*YqfLKv-=%h;*jHHXouR&_%ir0CQv`eWR4jx+^Chki_wOy4EOwkX~Z5 zUVCNgwShF|=do$@%nepXeopKN#WJM;c103x7@fN+N5rDQM7E**JCQlp)_RMnMOp_< zZk?vKgx4RR9O3993zBG*z1}5|)FRaJm58O0yyjk2y#K38q$$lyQ$Lsd z9WpvlVD+lqTC`%B1>74!I?McbXGO}0%lJwDp{>=0f~Lkx2%+!_3BW?oZ!tF>NRN%$ z8~cjP0O$wp8zQ)-4D3x;t|&@zoQTVZoMn3XBvZQ78T?~raDz(MlRoTULFxkjHCipL0UQ8TBSM0<(F8^>r&3ouPN!YET7H))x@0eThX z%l}DA;?fNuqzzZtB+Zb#VNM&%M9ca9+i8r#(!n9$5@7n5JK4#cUeN+9^qyZA7P$U2~QnY2R@-F)XZDNwbI(FqU z5Wtyv-P*H`#)cCTsk9Dvxr&LkHG_aqqN8a<%MWQLfwsz%#yE6hNu~jJbjeSfPprYY z6l1C{?PXJg_`^! z-fDkr8HMs#1QL%#7+vCt2&)$ru-9S%|j1N@lrPhtyrS4lwZW&2i##A z5ZV#8g4j0E$b>#YA4qgD4$Coj2KyeHLB&922#femj8c|Xo!=XDBRMUn5ZV9g%7fi;7MGTPp zZA&_mruJeSq!Cr4qPJB8Vl&c`FoNNHosI<>ZRYST>6ZiUtGKe& z`^__mr5S^}qJ7ixJkf37UUyoqE3>@P>RD{6dWI?@&0HXvsXF+h_< zbVp-hb^^;Q&-ywlVMugT;S$rqA#D=qI=RUc;AUGBfP*^=daM_rZSZLH7_EE69TOTg z&fNlZo`5+v$;%-*w8=q(Xt3=`9Y_K%QM7aU@bGc>!CmC>Z!MT)CkPD=GC)dhRU7tw zFz01xls&7iQ>BzjiEvlkBv1DG=Jjz(*&N%8JdVT1f1Yk!1uu6W$udEULE2jp6j-#39PSb=h`K1hOsMHBj`PuJn% zTK`C6nqu!mmu;nEd$c{&1TI0cJq+r8DXxl4e_o~?nRMqZ@vWiqvaxf~d>Cs!qFYPe zCz?QO`RHfHUtSACfS*)y17MKf!%$|Fq3+_d27HcqIM00uA(8d?cP)*1U6Tz#lxPZW z(8xGGTV}JmAHb7tpge?=gK0C3FRKlI(YwJ+3jj+dZ<%o1s{e80IhYNY?$WP!cdkv3 z&A9$Y6C&M}+@YGzQljXopD&d+ZCVjTPr5YUr23^1H+B*@6g6{^ ziCesvH@?#Do_VYupZO7TpXX^v;yUFDCiT^p2(J!Zx*#uo&ayFF!C2zkCE49N)+iLo zDKPp-rl-Bwaw9Xu0M&}GJ1VsKG#LIf{U!!^(%>c=SR@S)fluUp#oujEoMRo>;LGqK zEpT$h7HXdtG#4OY)`nttE`IVem8s-j_;|aN2RJdG&E+)D-#2W8@+*jUs1~(B-KOyH zoOMsRQPe^=r1x_svkFulF#H?%l+Km9-kBw4N&-xTa9`9TQE-;V22uBDZt8| zNRQWkaWL1h{FT{j<;hDZ&g|>h_}#Z29>2BGTk6n9t~8CZcZJjwWYKWUs-Qj&sNr!^ zxiV9D0x%N0x(+TO=NFX`B(c%QzK(F^Q2KSa!Y58zq5|ks;!Gb;qG`VQw|V!>bP=ZG zX>Hy0Ha;hYrJU=cX-uC(AHsbi@Oe#FhISDB#^Tzf>AvY*i2Lp~&u2(F+RU!Ve$k$m zi4weX!V zfaKee0N*q>2t*2nJ@Lc3c zr6&`8*v7xX+0e8lMjIoo%fE(S#v>LT?U=40YTjxcEZHIN#oQ99pU$VLbQ00@0=3bz z7)XID71^9p$yT=>W#Ij@IN5kx9kXvJ+w|OCpc{LPhAo;`(4#EAa=|A(IC4-eV`n6CF-{GH zu4ci1xIQUc>(&c~j@vMAIW@VKe%YoC=o%9A+rZ#xG_IU6?eK0#0#`8%{;b&BxbF!Y z!W*O*TeVO70u#r3#!{PcIuUw~fOG1@rh+2#-IOw}AEYKBY6m8qM@S$bk->helrvBF z9QDSR3m=N$`W^hY&x1^5@dD6BnNrOD|KCa``Grr_jlPe>X}oqW0}M0Ec4w#kB%91_FoUSOYifbCXlv*IX8Ggii$gUx?d8>cV|)G3LBAStd3BmgQ3sb zw9qRE*3G#5spBe;%@{jLmJy`L0Ae&vPO_kkQ`OVJPmMfqs^$}bvY%Q4BJSSzaQt|V z_u-~B=f!7b>8f{r1S??G$uVfBGq|Fi(gY!~*EIs|l@7U48q7Hnx&czenxHz2Z?B2- z6wv_muSae#TGTFYu*jDo6tZx@db$YEy#9nU0jV=JKrMBSM0^Hq)lFBFJFZ{+ExYZ!t~qW_WWOsxf7U z=SpV^^SWj|T5-)jQu5VoCdG^u+!-z~kc}ICOiUt@f4g?Na>W*)rgWKm<}J6>5cE-# zd}$MG;ctAvIVPyYja3VPTs-Zo?+3Li&u0$NxyS|<&3M4oiAjpEEq=cpq(gB;yn;d>=M zgi)K_*VB^gk#ldgWF|3D-^1PEU}A2@B?5F<Y-1rYDU=>uBh1R#@mTABq2@dZjFFHMmCTRC}Jq!Rnw{AZ~JKTXt z@LOgO1PFJ^2l>r1nOoU%g{^{Mpn*MA2OCtA2I8dtA!BEUR9u_(?No42`ukyF08*=5 zdmXdz+NnejqN&fa(p=Z*k7#mM1Df6{&#aFwYO8@sW9Pq6BN^i#a6~#0*uUXeU}Pw> z&NYLpd@$JIroWO!*DiJ){V-~8E~Je2Ms|4f5;XKk{D|z{7n3(7;hkFREEv>L_L11R&13tCwrGT$c zk&L}zgLl?V1E5w_TmW4vVOOjJ$}99akT72XDh;!1|B*~NciEeACs+r+vKJEXA-_q& zD>J3g-B<>#p)7RpxWJIHOum<p>ej-R4ZAU6KC0>l*1N68WmxN%hH5y zz&LcW>id#Kwg&DmoFt8o|)3EL@ za!#EF&5Qz|6}Y1<7C%R z#@4oCU+YdL4_a3%29CsBE>)Zm!eLrWai=@+A|)2&0hnY-Tyc!1>7w@G*(0o7!Bo)x zwk@$iJ$8>y!LN{MPG$OOL@rs`gqN99WRH&2xB79}c*Z4ect`GFg!nSNyAVFI5Q0@C z#j3iT(SRm9;pZgUw?ne~h$=BuPd$tOmIPg;5>+ZQ0m(&8eTnA{eN1xTFM2QrR8&FX7QT_V~YQraj4IYy|(MMLpj)4MXW&C#-sGW=Zz}p1Kr$ zP4ajs%8hnkr>2Z#x>Nj8KlLc#UtjX8`WP*+j3VI|HFjBMj0g z)kf|TRWns+i!{K$=QcJa;AJ-9`NktJ1t4@1x?T-q!WG7Rsw`+hQPw~L+MoX~U0Mmo z=lZUb2!OJ9_F$+!JoXJ8cN*5{!x?}R8>8;!zFcfH!9xf{JO9LOyIQT8A`2l#JP$C! z@JDRY44ZO!)a7*S|Hi^j9K_*@tgD@a#^gv=C1MWTpy*pWdYMsAD$vFfV!OUaTVro> zZPn*m${=i9KRWYmLA|f+q#AdmlN>?O?y+L2G-#HQIQ`>xmH%X>c2Pi;zg_g$qH%1J z(abx;UIos^)({&C9*Uq|<~Juy-R7u2!aqelXQp@C9?Q&-lBa;_e0Lr2P`-zGbGx|Z zj1haPK;6@mH|w-x10?#6OCk=03miR|45*(Rmt|pbbozOFX{eC}NUZd_e(jwrTJ%E8 zBW^7}Yr>v0U7jN)_CJZzdPUx+B!ct-r>jnD0p=>o)DMF4lctAyl1^%VF}zF%R)ITR zl)`OwdfcHkHYeUky(=sjVfKaCqqsOTz@sWS@W?FtcsBqk;Cr@K0>y=ie~h`ky%|Wh zAca?z7c+Ec+uH=3uA}fc0aFnY#4h0?3#>Ldswg1Bfgv3Yq9ZR!#s^93*WkwaHk251 zMMY5yWQmK#=uA5DOjlOa_qltzQA2Do&@edaF%2NGtGyqXeImgmH29iC4Y;=#Y^JT5 z9P%zDiTU&<Iv0ewM$Qq z2a&f{0dhdqj~~$pCRg^^<8B#`G&uR?yKLdrck)RcN)g)E-_Qj;#L}oX7$*ICbk0?SOAws3sjP zP4UlHjZC8f>6~rb;e-1g1@c0k{?w#5O|w$!!E?ftXed30;5<%fwP(>!^NEg-ajB<| z(SM%Qqu*X!VT4FG*}cA=^p6uvfDMd=DmGQm=6t}=2(IN}JHQKM+g_yGvOKf;&A4u` zvPb%zl7;CX_PGz*wW_|x)?>#d*0{nqzF3)O)C^Gi%g8uC1HO?xIAe%#$_{`s03y#E zuYoXx9>7(@bKwa)^^(G@jc=j!v}Eb>JB={}^xV&z{O&-)TRt->KS%VzD;wD^%-7*~ zrh>aail+ax^FPh4tCUx3X@>Ox5k^0eZMk%>!WgYyw=@*xkR%qY3te}pi9=fW8yIIo zHf~xFkM>b;m{W_(iQqVXA-FGM<^tuiF$GtyYj!hTd7orJ#{tM7*J6Lv`x-~L(vzWMI;Li>c z*Q|JrB#Yfuxn#AB!uZW=m)zJ4@I(>saDBtu{+R3@&4t-!CCJ$?e!-hNk07nAA;m42 z{VAq?G+Sf+Y)Wz&uh{5%eW6pxHkb8*kfJ=U!LM(SKi!M3=j&y=Fr4;y!1@EH-I5|b z6mXCvqmAih?K zv7i|HS0H*H-!JkhApsZf#%MC4Uw5~0@>T(A4oaV)DMK@gEbk}Yzk9p8Ld~)ZITO*K zGytnYT}y{^0?vak)H_>E676!<3;`)ow6BI$_54Pru5o-Mf1v8%)ABxb)#{@rBaztX z;MLfbWY%)Fhb|wyZOv0{5QOl~4gbOo{fdpVrk1nX0H>!*LHZKAx(~96^Y{7%!te& zz7KX@hl$LR=XwCMJ@SegJMA%^f1IsCP++r;UT`^ySl5-$z_=ru757RaFIsM`{zIdx zqGV&u*EK9DlA5!4;XjH(*QW7F{vapi5>lh9Q;)^TJR3<+jQ39sIU`Et;DzRiXl25= zXKId#?&Dx;ggSD|j&pNYd7%JBknhy+&>#9yP_-w18+*37m%CDb47{}hJIqOlp?%6w z1lX%EdxXN#gGfsk^FYvBHB0`P5#KKkO}W&@BkO8PYq5`h{htvYUJ=#(NxAyL?XE~J z*Q$yS%0sdiym`Jipr59NbZ-v!rY=fo&Mp#D9j+mBOv2;Oygw4oYu|4lHiQLS5K6?R zo(;&%fXdQ`ktieI(Pd;ILDyi+bVWq-T;NF`Kw~qzAuVv!0000JbmW2x6FM`xS97+Q zq;!pMRwq$&Qp5&wfKPGPa?-^q08OAPWPCH8CnW_Q z>iD}FZI=jbHDgH2{wI3#tJsmiRBox1;R+QBR;EaPbzhu|9TT7KR}C5IsR0Gbk38Bh zJ-Fe?ObrFms~I=(!teZ;HaC;kz8dv8zPW_Di|Kw=Zhpc~D$oc;J;>2caTYqd)4v0py;7Ed6u0d4R0kccE;`O5x=v9->YUm9jQu_J# z@xO&iw5w6ihqEd4tf?ACTStQ5c`yMCHZ*$}a2r6mFas!shS9$Y1`WHdU0zTIGsVtk zNV}^+q-yeg>2OA0t$Y1Z;?MK z4bCv+PE87DP`1P^I8*T(w}9+9rLU-+=wR zOzKpyb;HRqD9}}+ONhrdyGA}PtVcM+XHfC?%s#|m-4TU)Y{A70%L?Jm=ma*v9ciOn zNiGgq($I3jHhC)jPP|m6&raUaQ%QG6r#@C{hOjy_f)%l| zW9YSI2!9}!waowkH#!xw|Gd_cr|IoxcoiCa(JV^&S^~!JuLOpyj>C{&rp5Upiy!VZ zln;$LU>uD7Yfq$-bPX`z9;FGE%?o>>hkD)x-V^+6|6|E&?EpoBy6vA#wD*Y@5k1F} zUiCkiZ3yw|%eNocup7g;ib%E^XZIdVuR+K`!!JCYi@*U=yjfG2jpqaQUfq*9J%4|C zn>6U#ddJHyH5qMb5b=J$r=*vB5#2mZFFo?79-1)F%hAweKKcim#nempop}9{3&o=B zCm8Dd-rMt!`)5o7&;txeftnN$C?3>6fMCJBghYG?d%B3IaD@0#8wHNdT;rrWWMqf=T5m*21 zbT7Kmdq17oF|_(y3{<_uNs!JOeQjsC%ptfI3Dlnce~o$V&uT*>y0nx48va=kyG5@u z2VMAMfO4dgYLE%hQwJE|xNoJ>>u$UBRpm!Qb;?ld0Iqd8_1+HP%c^v`I1La#hrz(Dpv+(70vXD=C63{^>o{jM~lIu5&DEY<5&~aILLQ_S8_U z_HJ0GpB2F#?ldlY2@||gUc8$eB||`IWBfALkVfz=988Z1{wL@1tJepUTI`gGP&;jm z3O9gI^YN42G`e$A5@J(#8n~ZP@l^W*U$*R*9diJ#`0SdjgJt*bqD#EHJ<3^uXRafmKt+uhixP43Io`V${Sv*LQ9at98IZ6}Aj1alwldk7;=%2ftH#Y#6YoJVbwu6x8fptVs z3q-YoqRxAj*uO$Q&rpFLJp*^+)%QZ!U|2Q$5QOL-HLgGnJskNiq7o%2(zY1i7?J zwKYG*yV8ry_E^O7$_Pb&QX#ahE9Gza7H)WzJ-KN4HyBO3P|#f{MR}D2`2kdxwJ)0u z)1P1dsKhR_Ch_Ydl7*&eaI`%mDl3ny?E<}a#u81f6s2Y~0 zD7{v}XV!;sU))^jx{xGQO2gF6SdD-m6wO9037Z~8$q8aKfc-o&i|s#H`V5UA;7$Ml z-pDkWB#SEmG+@;CiMw6~vXxF#`!5#XH!M0z#TKgFc-eNg4Cn?6VVilvu8pajfcf|$kPb1p_1aKA1_*tN%_Iwws z4EQ5OrzPz6-E$tD*MQP)XQ4Zts~K+(TKf{xVo8^IzkULtd_>99lbLbr(Bnl)+yY&I zbG-wb_XYQ>fkEl=3UUqTiAlRad4>WmxGc8~L=c5cGj~c8Ir`1qqY&9r zb|MCsdG8|kw#^y;-!zYB#OoI&@f88P%?ngK+G-><&o;<~$C*u+EWk)&Y&g!$TLgaF zj|xVSXZa@A6Mw}aB`?~$tvKI8BY;EyVq__ELRT@>%3Fy&`1e*VJU{iMysyTsM3?_V z<%>hnEkr2CnFFwnx3ZN(o(fJK`-WCt@lIl41uIrIkYrXof@9q;_jtjma9I##iY~$s{FSX9`2-xiXSM6JyA7y`>b=6L}0!}zq zU%&$L;f;y@3MQoz$U;fA(uMW4)i?0Bb`1tgEaY=Oy!Ibag)~G|;BVXDb2=PjV{I|D zT~eGi1e@5y%;@i)kra(p(iPn{oc>p`8Ve>ry9$^e+=fq&S8ysE z{4UCBchbg+1l3zYZo*-KIWIX~CsUxLYm4C86o`gjCy=ugu#ZRr&4#LP?F2C7fmIM4 z1tJ@I402LR(Ji|>eZ(LXmmK+Una)aeX@@dRqdS9X+~g zmdV)C5fO3RLCF8<9zUpaE$7dRwOPo0k{ZR6eMggi0-ko+KlE&z${z)VFR;%zCbkLG z9i{DEU!r~>WLcypdv5#67tOdvd^Gc4cN4s<9WLO-w}Pmuy}EJMv3hSGA2UqaDj}-#cD7g56;zXH!E^l(X&A?`vL-E-LFkYjdzxWYP^#* zLF^U55ZxXt$Y~ll3ShhWgJOqeClHPlEQT~fE*ZPW2S_m)`Z+0)2AssHy0=}Y_quLD zo@mYA)?H?;Mvm_Zl`00CT<+COC6B7Jr3*<14;B0P;F~tn!o?fx+zuIZgj=*+apbPp zMskpf9O#wMsU{zidA2(}>MRF0x8FBMFZR+seDr6z$k8-}H^0BpH-7NYlPJ=VJ$OR$ z?p$a1=Znu2{Rfq$8H&8-9<^zTBtW8dD~(+Dgh}|NJAlzt9>p$c{<@!Hq4CDuSN(LM z92stCzcJk3thPs#??JoyT1)r%KPD8EzL79pDn&mh(U@CM=tx+&proxSk+MFDzd$nF{uSSuwZU}8mX!)3lAHEZaH-a6?}2n zj+xLH;^H>Dinm5Pe>0Bes8As-TLL&wt5!B<2K)>?*Ya^TxX!cOjbq}UXj0h6s(T*? zotxqg^!lOW!-I4Xy(=8&vx>tFZkA!7gLDX@XXc&o=Ab*pf8|XRTfJ)W2(vf=kjdOF z!DC`$=v?fjSpg9S&q>bv=ZV*-Y%_XyH!5D8SnkwDw`*~PotR^4!CvF0+FHsC+*o=lBwHm#>JHUZg8a}y1-znky4KRudPfB~ z!&%KVB~&ZZjX)59GspKBFkzG?MFRRlttbk$erIFxd(HLFW)E%!OcnJsF#?D^PXbWX-?5VhM7@fae%!63 zf^f`u_ua5T_q7t#LD&(qmg53blCfefEBQo7oE(;`(*K$Elzn2f+U*|cV{T9v)%B`+ zx%*;IcWClVM<}bNJ(fgq%YenSE?{ATJ@wHF#BXwL0Bp-ra?=2=ry{cN({OkG-;~VZ zRgiQ5+~|6lNIL`^7S<*?VE>!86Z3KU*KRw3jOn;=WnoHEnqAo2_iqTcZ8i;cHtGT`lq*TA3aQPhKuh81FIq`j_K3-SrZ|2M@t)Q;XsM zQB&JViHeVE5yD`I=s0RJzHmZJ_X)dTZ-jO?w$RP6$SX(b-WzS%%UtHggVtz#EE7sl zbo-XKnn(Prx$i{eyohN{so#V$rN+qPQ}LOq9pWIm+a}L1(<9 zj8167|MTUS)p_1Vqg+#GNBjgqR|jZg32P*HkgNBwhG3&zWlDWvC%eCU4NZlZn%yuD z?c}A9#)Upyr&M|2eJS2gg*{ z@3M@Y=Gt7s{h67~){R6f7Ji^`1EUCDo8Fq19ftRP#x!t%G(Pt}Xyi=?;CgfVBN+e< zL(WiAVKj`k^?2p~tx$-pOyB4L&x98*{a*0?L6GCB<xF=`>w{FnkI5f+BZIzqE zYJf?BrMusaW7rNpCN?IYfaChgH7gjGm5r6#4_YiS-xe$nu{Hlo=e^5sBlPX2 z;0Nd4gM+##1hSf8M|@FH##iPxDtGZLbd2nDF#CQiRuo9HetrOlV>Nme?=R|5bU zouUff#c1aQ8end;YRSgyvx;D1n7_WWP}dc|Bk2b#)dx7?KD|HU?+8A!H@0WTY!|V{ z+XuP!-1?+ZtRZKkSnzfS8x1L{iti79!J`1t zVYue{F{liO)eRZW!A@;NUDlo5ng{>!YmV^|O=u24+XIr0!jxkGltk`IS(%!gr!6PD z!Tq-BynxlK`5oNN+-;#_)^b@ogmIvU&h77ZY?3iFeoUTP0Ib zE24#qs(S6Km?x8Zxpf9HA0Vi+w>}nGh9S5U1>68e#=?jYPE`d9ewt+ji$wbmrWp1o z8_>Ciz%H!=(J+K$VQfcAQ=-fsWj0>r$6$c<0~*e23gW4NOYtKw*Wtseq7Bjm=L}5S z+h|8!Hdt_3tLG0qV|pYX-FkCJ9<^_PwbS2`ff&A=jUFbgWs+O+^j>Q|aFK$EuZw%? z1WLDjLsR})-6Vv4Fulh%$!f9T0EjydX0T@mZ{e&-My#1FvHC>482OFVLv9#56y=-26=5B-&xg&M zTf}4LWVyc)r!n7NAOJT#VRmrDlusyEE373ZIpB?}*6>!Tv|Gs25@fzRqe#rx)Qi~F z@IN#S;sgzgt=Grr&!LX$NVp(1@^3{^rbX9kQUKBmHhr>^LB=6zo)og|3ztJ++>5Cf zj;seyh++r^7!7;cV*}AZK+Xw(j*rreb3cRW9!=w|_192k?^7fL@AkIk1@A-ieLcUl z`+pN=`?gFq`@tKdNqk%w?FY6GXf)Y9+X2P$K_iQ}REItEMtSGdS3-u~W(!I|nB<<= zS;chHG*5)7;O_fZRj zJJWReyE;STgdgn!ulmbCI!+aheWW-xte=4vf>eX@{oN?psTm_Y8;0kN$d^m;pI*6r+Cd>XZ~Izh=W8 z%P6G^5p>27vJy_N_NMDH9Se?*cQ_ihxG%w(B7!R-m?5B*aA3Zonf&Nf;;l(^!;;sY zUSE>#p9S#w+*-IjE-@|2zd;Q?DeBNcN6^3w>B2ExF$-i&r$}o0(7L3M43ld1 zEJO&etocseQd*W8STAl^FM+XW8Xj;z*#7tyrak`8skznBxcKatKml-QZM)0bh_Z8+ zh;5iI-cCcDgL*B-@&x*t+vf``q<9+{_QW%V3>pRLFw#tlC6x@VP6+QB6co6?cupqj zbT7=D?H3*0ok6|*!P)aPFt-lcc4~0`=P#KbB8o9*8pm(UG7kJ_N3NXru1ZacDwoeI z=}6Dk<>@*nD&f5nj!XFS^B`ei6GcOLiASh|2byOMwL6SYW7zVF)ZkC)@(I$9+{K3( zJrM~2&rArd_IOeu5Ds$pX!^-+tsn>`4u8SlfV}i9e>%&i`PvL6yga-|*#%rv%*QFy z&BVGm*S>Fc`b0O+o>{k@ZG@O?I*_2}@7?{8?=?$`vY544ukwFZP}-{~t>L>zOw@6_ z|0j2IHobV;yMC^SPna?CsATW4uyU;Ki8t4g!(<_NN&OD4t0lbcq*wT)gnL&$JP=F} z!06NlWQ@BYrmEs5&_nRwbm6Q-|6hkAO|;yT(H9In`S$XIkx3T>g$T;qyHXjW^QN-U zqxTesjz_A>OT^r~LTG)@U6JhfM-DB^aF#q#QgL{N&*C1CYS5CnMb=1guZ<7Cybb2BKs+T@&_(g4}{fC5DU5T^h7~;Zc9p zYJfvyzLj;D9Sa`dgftlL{Utc=M|Ii!b<y>qS|0SqLPEM%>>e=p)a?)Xb| z{}8qo%4yE^+OnP6+R~J+H_njq*4@pjOr5{H#m0`TLx(TTaVI2KQfzXG<4**Bj2tAF zvtuFxm>y(u9F*0nJ~{W|s%`k{t;wuvU;72yoTOFC*aJ#9#YF+30onMxpqsjHZEKn zC{8}Qf2O^fn@Yos>AaVml;xHzn__N5^C~88XpXAOqqHh!t)?sNfbGaq+7rCO+l$eT zj@IGxzA)bXr}@vuay=dnbPp;GUM(7qo4`G$ousO3BsBM;GeJ+#JWOCxn0jp;yM zQ$8Cd){NeA;l?d->Oe7(xv{G|0|z6it-UB1vTi9U(^)3N#&Z$vx#qF1%D35avzIr; zlGlOM9eOplL`_FmHgtNml#6(&p}g;45| z$CzgVY@+%v3EM3O8>fS1t3$$jUthb;WpUV~quBWfc@9-}v;24J@j3f*~vo7XER*>3^+LqC|p z>)wAABHLPf@%fw0tF))OW|DrJ?rfN>#b8=S@%1>v0k4FzgHXJY+x3ZIYd8aHWn2D!zn&dW(`;Foqc3@>r96n39Z=MMb4q zolz*euXCJrj1$W?bFMTd?YDq4XR8<-DgI5cq7hy=K$My$$-)B*;$EwJ0Uvaez1lGk zB;bSyXQCdwKlM6|FA;Lz4J)>3Py7Yl4DFovt1;h!q>-c3GWTU- zaD7MR8uJ_SIh*~s&ymGfxdDGPTr#I#T{qAjh9lD4jYDQ(Ih{r==87>!tOp5kJly^+ z(W!Lvz)fHiOGrYXDDDBnD!g>YU3FX;u&C))A^P}A`idp@ff?u|?w{5c74Om@|-_JK- ztm))K__Pc?m5|t$mU2?9?-;d*RJ1SHj4t?JpnHZ0ku@4W&F%k3)YCO*my+3x?`C-| zPyXN-z&yoqKrYYyusawLJxmu}n_Tm8u_o-6TTMO_(5)WX6f@PmjnuyB8@JYBES}~x z-FauX70@`layt)5aoH40hoj$gU0HNRM9T^g&E3Em(|$$u4`)Ox#Gk*m zUI=3kZT$U}|!v;~>m zmfY@KnLkfm6Vyp60>cfFJe<2=fsgS;Bbo@WJfQO-)I=D-xl5(z(dtd1Se7GpB-U}g z`&>TLqV+!elvo##C$cgOS%64SR<_@qh{Uogtp zC7k+IJes@a87#!fjU@9!i&_$@G7_p)xf%pijAR!CSIfnYV%=N(vsuJ|CmeIyq}#pNB;1FhNL?dgQ}DKmtD4 zRxpqU5-h^6VWv@&Qm%4RGO2XjDkTU>x5JJ}>B>d0IR3lqxejS)0W0N#ij9OFcsys2 z*G&OIE;AAyZnU0P3rk(dypSryZL_(sksIg;tgE?RM8sZ6>XLXN-4xqFP}|mEdcok9 zSJNJw43DhAoZnn>Y5-j*9>yIm3AEeMFw8eIsgQU|sb8<~R}APq?kn%R(~G8($KYlT zo5N@svxiC@;v(AVxmwuMV;_fnW??j1{E zH2-n|?UO)~g4@9vnW3JaF2eJGc&`-oK3oUW-R|Ptv|=C zyAW)LX(86CECxB?xNy;RyR=P7VsU_5LA@mbBZ>&K8D zWB>-fkNaKjKe|T=QC@d@CxuwU3aTOazt50s)9!9FZMpxTg z$3P1y)qdOxY5N)cclA$_`SijC(OZV!0@J5J`6Rlxq9pg#k_l1baVi#C!$Kyd zpo}J$ZmINWNA&mp*g+e`LJ%%#&2YGYD78B++MF`zu)T2U7u$bil8r6JEo98yLz=4E zmILF8KWux(&&T)8@gR?NjT0-`uX-NDd&0VsX8R zU@VFXs!0U^1Si4_87t$OcyL0MWZ7`;vFsigMhg$A|!Domq$5|JvZwK0ceLh)2qBb%d*YwU4$Zw1ibN5y!^Y z0=h+#H9oE>Ck+DKi<@3W1na;tIm&{nee{6&%UAX3TePMt(16t8=^MtFCmy$ zl#iSSucM9aB5X8weISXdu#=;HBAhRgHo1rlSg%fAY}ID&=79qFQVJ3Tb>WtRxbvuZ z7iRNsA9rnMN}wVU>68i={Q{irb0I9+s%)p|2yf%|KinKi>a$@+wAS+=1pmMaw?6C} zIsfBeaIVkb4(49$ERIqp^4`l#u|BN*j`rOB&%F2`N2f)RtR=*TP*j-9sGUVbdMa(; zKupe;7bs=!h}>}2RoAJF58QnValMOjUwGU-u5cP@w|bm1Zx#mFewA+l3=gTA%{ zE*Dsv@j))Rc*6V5%h0k&^sk&%RdkMCXGum-Q0j)jU~purU8>3}NK(gQB>z)>1TU(; z(_sMj@@}KHGMUB1KI}71964-J#7!FGs<-t;xsYn|M8@Q6d&Gk*^?{R0?Yr!8t+5aw z4Zz0YB2UiRc3%I-b>R1QJu1ztS|FXF^RyCQGxhaL)9l{@-}#sCsc1*n30y5iyV|;V zHbmC#ey-^zv4g2WL^os~WI-c|(;L8@qGA9HUUEQ1Y9bCV4`wUaC2DgLo^+IjteYi0 z=W5S5MQgJ-0+VEWxTC*1E_TaL)xm`vnBN@u9K#%07Y6pT_ybSqYucov0K;OEhJn|z zZBv5@j1iIiAmQTrSGz=e9Cpi|Bj!;qSK|`V_x<=^_CU-Mi0^`y)s1)OW7_3SFUldjRsnA1?2 z0SIgSQvlsb-#n@FS9aY@Ue#NC5NL39e%&6UHg0uJf$c|nk876QQL*#uXS1<-QrN;( zQYQf2yx&m98qp|hHJPnskqu-A(aZ3gRJC%cm=X-9=Chm?)N978o&7EK^zdiYZGUYsX)v=*PH2*XRdsOOXZtOck1>QN<}cu2P9dWYNO1(M(Ll&P05R<6agxlvCvFktLj1Y9h^9`sV-vcBYFUn-C@K${o-uhidT+b!qJX6Zty}Nz+O~!7F(IK&gXFOU#Y(w?nK=xLZa|oUpVc-NI zS>~CCO}BH_I1zAzLdBE51U2O9`cN62v6k4TBy#%ucRiS-r6THt>R1?MC%^~i zM}q4)Dzp1O{SHki?%dxCES}gPo*}?*&=!TUx#CSptrN|6)iYURseU($q*jFPGIV5E zen0Qq#MBN~aVGT6Mf<8Y`(>{e#9subx9m(JXx#f0&MKNRA+n zV8bNN(G+=*&sq>N9cD!TD6{9s8843g8D-<~8XHMennU=1?)Z>egF2u!Fyg^}c*&bi zCYY2W!?y1QB$o21Z0{o>g0372Ssz&;Q-*+4`vBDeK0<^~wIacK%YM|} zA=mZ1aFn3qL4A*xuq3#GcMfce{E&+YOcv5Hmh7iA%dd^2D$QG#D&4UV*r7xVY_R7^DvPr|p@Tvi( ztwv#x*Vfa*^Z)<|$IZf6YtY!7=0a!+G(~z`F2Yo!3*I!_oO3A7w;fz`(CB#xIZdyE zv$M~KCn|8OQ85b$*gf&X^N{PY9cze@={y%lGmC^BZWawO3_p+s4GnSwr}hQVJwFqP z0EQZ+i15_&PJ~F^t?k5`Qt0=60}WE(cvH%#*gMy3MI(TX-bXf)-(D#cGj@Z)*Y%%g za90n~<kOnJ%4xhMIqFB^ua*AWaZwU%fXQ~R@U{AyxwlO^NXEibmz2D9mXboWsH^A!V~88-0e!Pd#HtkL;*fT{R3_ zblx{XXfr`>K2aDhFGu}XJQLbU+u@iA{$YMX@innWvek)HOtoy;P|erfSeJJTR8t?6 z`QVVkU-}=J=WY;m%SPTziaHvFMdeVX;t$koTQgQG>^7WwV>ac>rYJgbieoVv2f6;S zhydfgQ>y3v%l>sY`7eK^f*a-vIQ7_XWQnsW-X&JBmBBGk4Wn^tM|VDvuPvSGe*wub z%wUjsh~Z}tb*h~Sw=W$KY7lqS_79|>@C$Fj2qWZ4TMPUz)(STP8cZ`c0eGq5klc_3 zIoqolDeuW=Fjh3{+M(7e%UY_s18?ifWsq7q7Kjh3*dQ~LOc#n6#S}omkdXkY5L=-R zhdbkrh31g60o33$J*GZHHgQlNGHfzM)+W{nZrHRrLt`7UvBI9No89AFkQ|Xd>h%^` z-ZWhx9x;lvIns#qj$rW7pP&s$JfT1#?5h!FB#gp#t4AID^Z)w9x2-l%U|LyBo*wvHf4NP0;DOV@!zI_*bu%++U_PRSXJ{qr ze7jJwci&y!XJNDSPqwTxS=F7UE=lSFDRjY%0uA#+RBMWWK zqK){0DSFP{u}iwyR5(~)3ELVAjUjQm|16rF;h{1OBHPkEbmqCX<+9ps)Dr{h8C&{G z`64Cz<%`DS6nfxh#W^=wiAyN5d_$`4^>?+z0}0{G+ZP@d!F~O}ZH`lk-jM!jP0(uv zg4J2aGiG=eU#|PN>W+jJSVVOf>*GU)LivrRQTm0$wPB#p2KNcX;yF#QeRJVF{!pH8 zzkQU7g`%E*ItxX|aJv@J&S>Ik>-2tHtjiY+=I50V*!IA&s275h`nygiYW?QstLClo z`Js~dWTP#0#X}T!01ck##C322?(D_2jR(YWpGrk$nfQWWe0q_HdL#0a1k^7KsmLyF zf<=`q49IVa>n2TSmtGHe79K;wavy5^YGhOD)4Sj(w+ zr9F$?GdG&w)|_$moN+6Tk|(Z@JkgasKzMI&-UyLFUqKupeDxmsJJUqz1aZ&-B3$dd zgr;ZKDGa_b^EEMx&H1ue93g+a#TT=kraCL&2`MPWd3B_X+J_hBsz&XgODoJOlPHjC0Q@G=y~>5g_v>7V z$_K^uMCJQU3n|G-F;-V)qqDXAc79kDBwLGMMz>`mGBp4-+x)OLw6N1umRD`-9>^)8 zU+xW

nWD6s z*9IR$7suNINCC)?v|U5=wiBgwLvNrt+1oab(XgwnA}1d8KFz^-h`BwymaOxh*OP z_}lA}IwuuSll9b846LcY+2~>41lL`o@$D`JPDhG+9*US2&&G+;IAT0(61R_Uk#~kOZPDP#MBc6I17( zQTwkcOu}lKBYW;K6Fg1mWSft|bUu!`vU`cG5s6NQ_LbQya&q6^jO)*3$ab%~C6SK$ z^WMR64dFG{E=WB9#H{MSYF{c-tEdu78{U6)Usy)r`VV7Cn~9m)R$!Y)-JJjom86kb zLDBK*|Bys9!v%`0EUPqxOjMRR6YPhFjVVJ9sI;X)%jpc-tX46t;cA0mY z$avOWmY1IkelfB^jZUbcP-<0Lqt;CF>XWLT%kpEl9?sowvkMbJAcb!lHC_O2)SGat zHF8MJ`M~WT;Ai@L2l{Q|(LHtGi8zGz*{#)Tj_pTl92av+#kdnYQ1F9BL9~ygPP@1q z{v>Q;+Q!)Rd7_G8O9J0U4Fb9dU$5tzwEiVr&-YMY!>A+7MYI*3fc}7nZB&mo@vV%_ zX*^`#M)6-#P>L);;+|JO56@L4jBhH#$l@F<}lNqmkT#1oNXiR}`!O>Rn&B zJBm9yBW9T4Cw46#=3TiC#-|DnvFehuT)BAhg%;>kiRMtkiac$UidJRR#5tN1ZVV9im9hw56VKC7_L!vLxbWf+PZR%9)nFEN@Om0!3d8gOYsNviSsVJ8G zc?VXchM(}$VgkEi4N{_st~|he9^vdf!So4uB0~pGM02;9wG6%`!nobCZM^@+y@EAXo zdOU1o-w@`U!DPB_KNIU>*uxjDL7}>%BgiI9uXxxa?vE{(E=OmkcDF1HdkA|vv<5^X z&gSISo8p;!Cj!=yMj~;SIa*(#du(d|>l?Y6MVJyls%~@dO>i`6osZc64UlP*TVdE+i+6s=oST0515|9KHU&Jt2AY z?X?d1+nyO~CF`MKiuw<*fOHA_PE=Ick62c%-;O628hO$e;I1@@0WBHuWx>=5GsC(c z`-qpQ1t$;k*VD`_fkf!gl<}K~!Tpp5oKmH5v8pv_oJOeX5f$B!ob#yWE+;nnau?CgH7Y z3vnWHY&%_oTP9#kw1G~|^I;_;ZDw^AB3drH#o4)f*E!}iqxA85BQ_0FIzJrbj4+zt zpWgL60)9zWhb3y>>k{Mq>o~L6HwhaxA)yov;mRbi z;zcwG4yq42&tY?$ixy0ybjst7*+ZXv0TENRsu9DK%n9>(awmi?b9al!+zjWAhR7K7 zl>9)o$SzB9uXzHGC)VUl*vR&D=t2>jKmcTqy_+M3%$(?1=!TS4Uq^wDD6ggNU<9Ji zeg*B|=%wRm_vUq7-xGPn4ypi)2GkW-hE52f9ojAiY%ZiD(jEto<(eE?_?2>vIA-t? zVy0{@ASyv;IEVc?*$QNf9&CZ}jk!zblg8nb<~nFM6yyNp z8xXu-|J_4l&qo}9i6l6&SGfOwNN>v`yTZ-)C6bl_Wku< z1tdAg01k{+UPIh`6oQN+@TKO`I>)mLmW+k^@f)Wg`s>_lsdGQJ;Z8xp?`!!$%=dMTJoFciB7>Y!BYZP+MwLc_j})?fQ3H;GtXF~Z0w>H}V=~cU&ymBz50-bW z=5fYcfP)(Rz)e-vjzulX4cL8_6*hMoVu|L?v}P8NvwE9=GmN z+xHLvGT6O#L7@#ds%r<7Lsu4>ltfn7WOwEPrQtSQW-mbRB9k#S28G^?Wq_DaNq|7K zb5IhBQ?dpvBoBoK*yfpbk6r8kmSpXle8-7 z0>!WEgz;(FKZ55@Sk9AfLJ{Hh0>jxR#49u$nd#FvqoiLp`N`j&is5ofMabo~MW7rE z6t=y6(#5&~ni>(3oDcJ_{FQ&mKVUr){c?_lf+C9XgMEDNdADi;>uYh7s%Qw=mq1!b zRNN-p6AehaM9#_Dr<|dDLgRzkIOvdnGIl+r)0D-jnbmhPAI_J)HFOOI`Jj4*n8N3S zpTg>{Vkt8hR?j8K6BxwzmzT##nhL$)%G$}f9gJPs4mdIzI~oD)#0n6hQAE-ljh zSdxO=OFo<`Lh0G)A4MLNsqaI`;yk;?P}C30^PChU+ORR5UY>qyWcT&z={EA0D<|5Dk#>Y`dN8&eKbR3VQM-3b>?`iK@ zkPFe(fvr?VDiMTEHz%HJsm8qwT}8!cJ$I`X1w9E2jj~qEXynO=YleGF&Z zlq){-0|g|)KfgIWLxFq`@)zQ8x|bVYkBRE+luoXm&wgKrx(0Q5;_X-vl0E@j-IO6%gfjNr5 zn{g~JPM2@n7kZ;yg=4HxF!xeo-id0E)xfF@*hG#Bz+Z>g$XUUyR}wv#ejw;Yn~K;{ zl9v+{sZ@Xf#m{;98un>TgI*N%$%ac?XMnz2up~mL-qBRUY%8OgeGUeiW7>ZWS?V9< z`d2GJ5J8YRk^QeOhjITHK<#TFH53ATbz#BfQQyKZS5Ss9Wj1Xs zkddkb+8ahtnI=uGlpl~dToP{5_W@qT1 zR|A`vgNBJv_1TQWsa`%3__|6DN-eoqwjd~E@oovMY z@g6PyDYTeDVhgde)>P8H+TIbTH;djn!QqM0)YI|ScPtV)&wZ+=Nd8;RYF2po3jc)Jrld; zHHPJ@Jo>i;^PLA6#dWUzV*UE=9tsMylw=*?}6V$xN25X%R)R<#DefzpF=TI+h zgJc_7ojpn30m#4Yikfi#yNuG`=jAWQ0_~E5kO*__pNT@Gal>UlD)oijhf;}hu;agL zfdKwb#Y62tVvITbiX)$N0046obviH|*g;}|4mf-OdnXbcJYqh+_o#`N>E4dLTTE2d zK#DR^zi~Mwn1{JCE-lSK`p*)_^`9X>27?w%2R5{ebbmiZvkaEwa}z`GF6hs@D|n9> z8Zb8UIe&t2q}C0)!FFxjvTpPT->~Mrd>?Lp#)y<&T{Ch;H2@TF{ChGvCAOx2k2vI4 z(ie6V5Co)FsY03j>4-^AqvF7AZ<4TH)YfTjUHTWVts)1YDHksMa#BGHp&T)g0p-Cw zI+GtHZ*QCgWL3-a6i@8icg>CBg3^knV>KeH8gqQKw!~2c71~fZzu}>LqLRePC#%eS zbKfOAnA;W=@TlvY3yA7AapLqr9iA7Ot4Jeos5NVbX@^r2l*p>V+sCbSfMQizBzos3 zZRx9)))ifNBNx+iXa^Y|a_4tTox(yQ1s25F~4@X8)UF^j(t8l}#{wjE#QLql(T3`9n&*5D2$r4->lfo-<~!-7FqN2*czbAK3G3(T=m0gQSbl8 zylyBO5Xu4$sqUVQ6o=%o-E5elzPikTn{@&x37 zr`Wj5(TvZfQV&a;E!CaxaxkH!nRS$mX~Jo_c16*n0zvkzuMSH49Obx%W0!gA4~xqd zZaLIme3QNT*`CbYJ)M2+M(&saoEHr8RY#A517;3~-|h!oM zoSelj%V+OqhQOf7-?!O!lrZcATDZ;5SJO>PskxMbq_wxP+3g<)kc7-`Lz5jh%>ksM z2b?8HNXf=v#>?$vnpc3C7qowPE{Lc46gMjWm42)aL!?#4S1CBJ4cv~_S!!3?%*G&Q zse<=L;sFA}FBK_-bvJ2b{(!gZBNo@n+=Vc`m7x#02wXq@uT#MVCJr@>&8vrEs51x9 zSm%j=^7vSWi1Cf^!SY!C=sVr9ToCR(sAI0np>43hZ%P-#pl;9VZu8+R>@SJ3n0Bs3 zfuZ-*aSxPjqhAdciFukFEOX9R>?v*ZU-bKdNVUTZDeOxTq zV#PT+W?F@Z+YVA9eZ4U)NR~5ThO{!X<8$Y@e486gf63sIbZ)7O!D!V7UUXc5^ugNE56jbT9_J9WOq?4VPDC6yO_?OxYY@nMHM**dL-+9{UljDUnX z!J+-ze=Nvy@PY0S6fACep79Dq@#sAlDY=^|+$Jf&ap35!Y^#lc0e=X#Mw^f+ssU-$ z3~GRyPSe8 ze%yH(uH3|1g&VZ2r*Iw_epw`UMZC%)%5r~x+PDr?M#$p4`XIBN_gfxQ%c0+k^;>y$ zGp?&3lZkUe?^Y_>hP4$7Mjgcf zmC1gWTwEt{mn8D%RY@^x*@Z@Hl>Q;WN%{+sd*Vjn zlJ&l8yeOh>yj%QXFGWmT ze@h7c7HITRlr%_x;TL-OKG>toSh-tkBYh@7^aq_dXHGrZk19cXA7$2oXHn`{G_wE)Y{>=VZ1E)-6zc|i{se;?G=UZYC`KQtauR9#$>y}?bqJIu z$vwlm1cE>nuP`F70Sxy{ob3&L6T34(3#zf%(VW3e{5J7WjPmJqek&7#o~7(EvR?g>04%%sTd{wjAPmw}ZHuFx_?M$@`6 zi)5szBeNKj2DzS4I8YG-Ni(LoE(|p28OB1N3Y$v;b@$^nw4MD=F0MV1VGpI5(M4bXCsn19( ze$<)#un}>qW5sPUc%JgZNDjK#v(E(ABQ*TxYH5FCm16Xt7r*RU;qFBP5a0& diff --git a/other/logos/supaguide.png b/other/logos/supaguide.png deleted file mode 100644 index 195f3ce92a11a2f87ae9482ccbaedbd1fa4e9c46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16916 zcmeIaWmsIx)-Z^>yK8W1+}+*Xp>cO7xNCsm1PB&1xVt8}yF+ld5F~t^mbOid*V4)*xsi+7>4=Tff!GdFeLH+^(eZas8z@UGZ!NAPG3IA2L1*iQB z1_A`b3I;lZp@Y7z;QYVKzi`4LZNQ-Z!i@o4e-#;jo&LUxn>u=$lF_PJIGS6yTDa1I zfk~KpT7V!R^TGcuK|aLaR3O;%A^$Fe<@};&sVTnS{F;o8ff_oPWdxC*M zBim@`xa%k?@By71m`%-{%q*C_9h`q*feCo?fr<_m?xtkk4)%_2eBOc-zajWQWL(TF%q$c_2xMer0f1!hZ2~t?QyF2p%0A5~R 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 LBvCD967qilD!3iZ diff --git a/other/logos/tigris.svg b/other/logos/tigris.svg deleted file mode 100644 index 367c59f2d..000000000 --- a/other/logos/tigris.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/other/logos/trieve_bg.png b/other/logos/trieve_bg.png deleted file mode 100644 index 5425fbd73ba98228e279a3b4ad6adce41bdb2d09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964454 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�o)fdqhzqrgQSA4~3K-M1eP@1{h@)tDkbo4#* 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

SqCfT#~_nB6UPAI1UAif_k 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%0A!wh;<$@wURjT+wl;MDhBf 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

  • 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�q}C z`>&dbOPhmo zpm@68vOS#LMl*SP{C7%tCm1*bUM5IUN9YR{Tt@INn^n5!hsb!8fb$->?($HtiU6y# z07F^j)NAbPnf>%opqWFZ}uus@6<9f_aw;5oID z&UPo>+Rnm){}1l)4^IzEhvxp%z;ahC<{W|(C|Tjr*Ci6{8_mW0tFH9ov;E{|15oTx zz^Ewj1C7cSFD(@tG2Zs*2>ZQS?5u%MxLX2h%LSv|eT0NEiwp6|%%jFJmTQ++u)KmA zCLl~4?6kxsJTo*jl*=tJ5oXagj<{bDee>f&*tPd{)mI`LupV5gt&5J-c4w_|djF-0 zKF%Mf7A`K#8BCp1mMk7BE{l#Aw|M>FL+iFrVr^NdUYRf}eo@h?DRJnQd)1tWB(f9d zk*U!9cw918IT)4Iu#ro1=!?UeLElgu2Ahm zQ=O^dZu69`k@~XZQ8PPNnHaNG?%PHr8D#NX+mB{m3kF)ubfAgww1?zM?WrkWx4wDz zyok}23s#r=OvI-CLWldCD-JutT~nlcy7rjT;QswmE#myKVeGA>#8 zHMl&=d~4FKCsIi<{P0S}H6QneRb}MuADZ7fPx|$UZ8Zz5Fa&HTQOGL*jQ2Z?7ZQI> z>}N&OQC)Ib^LDKLS)?`cj9tNm@{=M|oHJ5e<|$U;llKPapx0mukMjpLM#=Zf`!mhf~wDr2XP5uzLiwBw}u?Q zy<;FuNpex>T1=@Ht9<&lSS~4?wsZSohDKAoPbhO^qCO`^i1d$*gmoJa-v+!CPYx6) zf#aWwDb`1-@}oGS(J4B{9B*V~)D9(z>}if@BpM{ai}F(RjovOR^n`J4aOaC(TV5>f z)KCE*H#Wubuviy}CJADeC?L9GD0bZa0_a)@8IQe!_K!C`IVhV;-RMkHA%47lf!-xM zPFrx)SVUG4<{1|DOaoU_M(Pg)7tACXX`<+L2uQ~8CbD#qj?V2Ry}cQ$^$T$Jhcb5z z>9rqRDvWO~RT}udEcJn_mwg1MY-4dYWD#yJZDELg-^nFyyT}LV~63MI6Z>a3uKX^fjv9q%i^xOSyOSOC|W}N!(%;xW*^a}Vp17dPL_tP;T zm_6BB+nF}eU?!P2mRc_T*w6Pn)y5nuOY|k-h~jteGQ~K8=H0<2rjIWtH>}fi*{%y4y(5>NZ8UF)E1y~fb&v!lbOCIL90`uPp3TZny zBINI?`;uVto1__u7`j>>>|=Ms@bwt%!#PQ%GnG2(prG;_Yx59kG#W0iieoCK+xYRgI70 zoZS7$)(C|JX@83*UOJCNEauy|reXr&U47Iw;C=4{^w^2_j%-ZxGw6zehF1LGD03$j z)#V4yKj=BG$%9A|yC3WlPsV#Cbeyz&(=HkL@hD>PrUjiQh7-_g78ssRRw|m_$NQYJ z4$l@hJ$YR4ywNvk7^a-`u_tlir|7ZqZ(}a!JkEX7Nb`ja-1RH6;e~+zMNU3aNUTiw z$0Q$h&#uaQr=Vv!am~s3wO$h5MO;Oh)_`KVopE|;IosS zeN}Kh5_@F)O+hC9U_~pxbBGPgcQ7GCN*)?ld_I`hD3kJ8NO&5)ovlLA#9%GKgGbr^ ztr=}o-0=TRT;0JbA87Fy=G?Punp(rt5Eu;6lSmzDh@5WeAoQ%Y*z z2D8=Tfb(vg^O-8dT&g$SnX(GQtG5P4!e#uEOU^v0ERRD-tB1W~eJS6dFYrr_vD2mg zpq4&F5gkm4`NO5A+|xy(6dR2W0X*TGrhybu^daZm0DAAshJszqb1U}u$pBk9V>988o= zfMa3@yOaSwz0(^2V6D~;UOF0NF+TehyA5^Xah!a2tmT~J+ZP1wvtO}jT3cSJ#f?4 z{S8KXiS$<}3ziUELn3x`UM_+A+D*9LnAVoJC1Q2p)^sm{?W{`@sLaFV5DN-1@992V zNEQ#9lAF3Kh@oQWHQR?4_%{r(b+f2G;e$U71jCeblbcG*@!Ro58D?g_6mD%*`zkBJ zeoP1mN38E3feP$cf7A`}d~TB1e$-R>_8g>a>wfJcIM=DVXXe(+xds`gcJ8*(>@`TU zknG_Ni`DCVHXa;t>a*4%`}iHwLAo*b1efLEDIvcH&isk|Kv<}bne|L&ePKgc;Fh5j z#9$t!TBh0X+(Cfp@zCJPHmUv1n>Um#)u7}a0f(y*48_Tp1Ps%a;RUG>JGD%j#w*C^ ze%~mWC_|qhd4DTSMHxUven+NZPUGI6|E8B83ir_Zf+%t4ya79tGN+F)&7u%@;mUWV z72lS@neyk3vBf1=WlLl8-&V9w{>iy&q4#&-f*qBxEx8ja3a5G9Dj5d)3^h2w_MXOh z(?3!Hrm`xc!%}aRMmf#?r+gEN0Xf_yZGxFh@lhuzM44#z9k0Tgh)?#ULaO9cc}Lq{MCho1gNu8s zNA*_nM&5uQeg~bmUz5zb*r`B#X681`P3m|3VO0pB&F@r4$jFfBEm%A%fa};n9TX9L z7;jFTEbv@_hhYTQy{~ZU&PU%E@pr(Q=P!2KJOi&)cGP!Opv<@D7sFt`822Sejn9t3 zn#vQSMn`pduH_4qx~;9PBb&nv;^MS~ z(wp2=>TLYn$qnVNW*y1muN?!a1}j$Rt<>Kr(J-DO?N6gPXF**wRphBCm0qg z_1Z|;T(le}BG0OEw&!j=rQA*z;Z#NJ;ljM^OY-S8_hr=fev6$g`uyhcUT*n~_6l4z z%LlI5fu%vzM9LGDm-Cu4Wej;U=V+ULB`(uf_Sk;~t;mbO8Gcd{nc+>W+|b=B!+iq zY`a?4b7v;b$htEX1yCgDhO&XJ$6@}I1B-&$n@(&rr!b}5*f0QPCGa)UO0&b>RDu7E zK1+@4IaAjJ@GDYi*=4t;6b6!uEgNpF3&Dyy%X8gGiH(L*${)lx_(i@C2y|2Rlf;Ih zQmH_heHy^vHcYAmNSL^tlD0pT<^lsx_s)Z9VD-$pDLGAtcAK6fuQ&b{-9b)r1M2?z zn?)2QhTUeEH}@BPvQrnel@dq8f4j4h_IDBwH^0E?+FMof^L1=C`<2FXWovvj&Pavr z3VnxXU)^<3C^cT99p5;eVdU#jboR+e4)4rBK;QtKx$1b>@qn&Kjr4EPoQdgb%2+-v z9(9F7_U%Zp;xLm!^*$LsG;^yqCjGmyDC^s|lk$Ds(YI^2cw=nB1mUeR>4==D9fcB@ zrAn48(eH@dcJ26{pBGdF0mBQ)_d)L|gE_DQW4WFH(^t6no(Fqly^q6$*|a?N85iNv z@u$w&Ir(t#CULU7uIm_vRfhm1`;#S6r7C*4g zvj-q`MXarrx9~zN71H;K-y{kxm!>Jnh#AWn(*d&QbRf+AYye?t%x!qR(-`=Hv2fm`fM554bdK-cW7 zAf7ncZNpNx#@=gb^^albGBWpg>kHrHcd{rZA;~kKt?KdNz86kyd(iZvq$j|^$erHS z>28BUTbP*?CK;P_19Xh~EiR)K7h5qYyNjUGreyx$eSFy!zcV~gE%PTvWhZ7U$Ef6? zO_VImXxh{?;iU&sM)W(M>d5<6XE53kmO?M(?X)FP3|Z*gYM~9!;j|g?%%s~MIwxJ& zvTX7>0?iiBsZ<^dMZe`?X(Ii>1icN-TsoZ$Z0ZdTBO#DRhmeS{_V=d7L0!$(0Xly( zRJHo$zgHrvq|tq2*MG}QLb1?1gCCB%-RWO3QoSH0Ce#pF9Q*1Gq=JUNO7;~fHC=nj zU_QS3*vDjPYWHVc_4MAlC*9pX<)Hi zIMSk{O*~nB@-_vls5CV+rJx2G@QG!(Nle<>Us}36XBJtqB|3h1u&qN@;v)g7J-vPU ze?Z>wJ{$WxdBFvx*e?x9e3eq`$z)G{_SXL=0~PBW@7BdL$g^9hBS%VZYF$&kn+}7R z!W*9f*8+5iLWFzWZQzo2bR}$4={6E6oqdIby_Vli%Le$5pDyrK_~D+z%T*K*JK%JC zFm6@ebc84`Uc&tHgp!JriZ*@=@et&+l94=Na%0**F(vhOE3FwSoIW0ZLK+S~Z`cL6 z5mZ*tAJCiY8$&B#UBiR?+J-z;C0U%coR#M5xdGjDTT@}Da>W+e0r#~lhb-T^ zge-Pi=>6O`g^S9&A|m2&_u?D!%DWw2(}0&)e)((@hS{Ol&LxNc=u;e;R8UF}=Bg)5 zJihlP3qDr|F}5caqYkb}gw@x+FDb}JRD?ApDf6toQVZX6{&x{-z;&T@E@u@ne#dSM z!W9?huxs=S@3qA>Fqd!fT1Y+brDOX}I3k$zR4j(UJnx$zCfrL%P0q^Vu|>FiM^AVi zwrQ$2QIgFk-1xuMTfuXOvRi-7KT~;gb2FNVGZ*hMZ4fUW5~k~a zuZ`C^iRpYShoT9_B|hKor1^0DEm2H|tE|324&p$Zd4#$jI+q<;5L!H~b~o4AaN*9IS?P)a=C_{@hXUnGw$8YIe~98o!R_Fl zV2tg1)Y!GXdg6WBSZ66tF=ngi+xA}LwuH;@C{vx;x}`UKAWWU5L$Eh{4$Y^gzf9n( zIjcYD!{r(-FeDw24LX~SWa)C@w{KnV6B@~DRRS_5$5;d>E-2mKTKYD4fCU$)&tVAk zfDkG??t4YvD<9*tJTBq;2OVgl0*|4aVCqKFB~n4~QdXo!hLyQEHebW%$8VQO1U=~( zIp}3e+$#CxbPZ^@>WBv`#NC?RuQdx*2fK^L6V2CYMpZo4pKz_YQ0!0==9@~>Uis`H z@=!Ww*lyvy$mpiOE#meot%?*{bS?3OviUzEpV}M0Q`z9R(@gA!Jx`czWo(mV2O(Z;X!heo+kJ|x1pEab(*oLS>a_wH#(4(lYAeI6Yie&~h4 z7{Dd)zkw(wjf`g`Os!8+VqS=cW;|e_C7d1e=%T!xeJ&u;tTwA@jmjL-bz$EmOH=km}} zs{ZK$ZMW`fz~rTafnC3a1Jfx#gpcK)kzY@L6CTAcZp!ID0#U9kEF??-kc3e3EIK6} z$)jQlFn%oHWKqfTE>BZ}9lKh<@PwXBK9gJn7Tkf>nRQPx1!=~K94~*VyAQ;DN&rKG zbuWAEt@b6F32ElQ=!XGF9R}rixZI6zJLfKPIG38{;iQ1qzJxtmO>(_z78@bpzZOqX4+86@z3IFJv!$?%B?^ zEcW}w<+h}9T3p))%4yr_$3maUy;eT!H!zHYo@If@BCy``q@Q#D^|~m(J&T&YrwK3I z5zj(A+d$E6pNFY6rFY@f$+S<3pg!@92P&o7h?%`vV&hg+d^KZb$P#OUcD##;EC8|) z$ku9BXwTe=JKfIOaxR=h(-7Fa)RK+uXbJ9VRb1?F)_DS4E0(?IZ<#sy?!@^G?HC>| zn90p`rpc0CH4-L%MDs7-{0M#whMFQ+UrR>c05y%Y<3(0M@yw%LMRLh+mc1YpBcKHf z-i>DlGQ-u+Y4C?r%108gVNu6BJ8X^|jMk9ce0m#{dTUI28&ZI&a_y${JC3a$UWX(~ z49FN6xsrA!cImizwuHW!srsCT0gC&#ePg$me1blvpZKj9(gOKJDjQLxD{m+r)qngp zh$5Aj@*cx`QuOO7(qEt@Ade<)>zlnVvWTKf$&h>&xxK;_p`reN4q!eN`L?@;Nr-=R6?SEl$8}HJ za=>4zKy`uz(Ro4MRR6Sb)>3%#O|fSe4{8(WJ?s3(F=wmpeVdl{Kan?YSmmj|_Ove9 zaHG|sU9=4ETbD!fK(}^!&-S)-n{n6pT%8BQ(LP^|H_7Np`b-a)XGvXR^ zO3hQ6+gscOq1R-4&2r^}FTUzb^{hrg^kd~Tp0lTed;zZK%$v&2;iaGX z79F}Yv(p?3bs9}NRLqd_p7A_i%Q&}Z{)uLW!P!oI2Sv;ykR(=mu;NnI?*;B}%81gj z3o97M@{dBEJBMVcy-Woj0@&l^LStf%E%E9rs79Hm7BFvvGhB2+6JLoOky_ z;H82JF-`~%4lK+}js(=~{DMizN_&!Q`%^bWS8W~5r=GUwClFb$N1OSjDfnMo`^=vE z$fhZo+K+|hkZG+9nd)rSxBr*7b_gkU8Gy<_{jj_kwR_jRhDVg zLOmQ70;Uvf9}>6d*4->mLY47qmaW;*nUnR~kWKMhr9XJFQAPCWwEd2>+7kl7WF4S7 zlg8`8B6umSQg+KkWH7N*g3~(f%dUMH_Phuf`b>xw?DRA3=nSE>rD2fj^8MCsYDAi)|yc;A67s2 zF|OG(s=4l5I?*mW{yVrKJ?(~oBDO8}AHf)QzSI?Gzx!1(qL8zPpDP?mYq<11;|A=FJ|F0|GpVIrz;amZw zwUZwvS#ATbq*Gsqd7ecbOR$TPb5kl(>TMfnV)zFfRV-0ZOS5cfP8_rO9rbYMf(YC zfAI0VptK6I4rR7OJ|EzC7_Vyh8tL98(4o!bXd(-pSRurh%Yvv;@K}=o-DeMa+-Dyl zp$qJDjeHa{RE9?vOiLZ>;;FkFk61F$Qtb-60gv~|y-1uzeF2t+@_Op$Hz}n!NS5C6 zw~ayCQOcs|a8o0x@eS#8MOGLHLb}Y+)NT9#A*Nqa21UdTLY0=%bvF#+63!66rG>C> zJH9(6(|*$((e>zFRfw_atJoM$Ha$D@WawWX4GECz-y)xYRWR40;B`CVK6rU@66Dux~;T?ZItO4&pBBWtL?pvI7DLKbmzb$w=zBDHzdy!R zrDg+uUvk}}J@~zUxa>z7FE2CBm6Vl*N&S5)b*YfA=^|rb3^!_iQgHTFW8$Z%q)$;f zs>vqLyCTKAOH5&YQ#p8$JGyTw(&?_G!m7?=XhXCK5lo|EsiIEQHv#hq>_}w*_s`6vfm-`u&S`2z??>mL5LI@2ebVL8AuN7$DVmc z^CfOl8FD4*72gD#4k0_;ANoB+77mUfwyMdO^AYD5+&!fNEEGoBDhgHD zBr;b*Ey^Z}i5{k1^Uo0WNkKF_SInh2uDjFVUH1~%3!9FkJfX{2X1KG$;)WwDGigH9 z|E}u;{KnVDs{S9nQC<7PKq)7|VWi*hsLRO;RZ+1XCSWKT{UrCzZaN9qch-?N+R^?s9rc%RJhfshw5 zkAI`b{^s-bJs@d>V#YGg_IgP9cPA>y85Z0?@h_oJ;S)9R%)ouz~on2wen7FEj36 zt_BhMSffiE5T|zB6%SmcID90*xP1n=voAVSSz-Dqq868a35;bN&$!A@ z1zgV%KU(|d2Zt`v9j$Y}{ua{`=^nFN!iim;)g@sk8x%$N9yPFZz7+3xQE$QCbAC2D z@gM)pC#jM*K*oC9>a{$9&tf%5(Nd7jA_?+W zrL&Og`FJ*3!+7AMM=ayQr5-_bd7l)ZN0|%ZbceYZ@Lc`I@%#B)p#j2+U1x{+79k|) z{MlEd+5${OzAAsWKPK3;0mm^Ngju6U5;BW&O`h&27h!a^6DkW8<#2Zg@$i7CaMWMDJgTL4W_VGoJxcwx)0;jtCBZ*I2arTNFd9*30p4nY6ay(Y5z84=HcgL@*Ha z>rSbuc{6pu9(~hODe*oH$SF(iUoL(}x&ED;H_>i2aOZO`BN+M z`92T6k?NmqScpyrSk^2r?!HqN?HLd93~<58EWD;ITDuoLcG`bJ2{DCix;0pR%*0xS z?eXhfDg$Z@P07n6RM`Lv*ajBl{54oIqn(CXAvk@Y@saUKyK#k z&o0=qq$Tw&#k_8N8C$mg$@-6>5mceCKJ#^OiEBhQnsevQn2+u~AXot1Z5AQtgsrQY za*z7&t_TfyDCRz^8p1uZ-NoM5&9mgD{0s5mjDLmIZb$NbI2QFe=CrX5%ZEMR*Bf5C z{X|~Wj$8@jld8ltPSo+T?(#Snw0zlQW)gPaLFkEZ6ROL>B6-xU>!(ffzT>ey(WT?j zCx3R`|KV4&zdVuB&3W)O1xwPw^@yH z`s;Uhcg;)iChoHd)@Q*Ab}aHAcY;U;lC+|`?!L05jQMeOr$?Q=cxOh`FM*jt21Z@7 zbF;HD`o5_5OT*X7EVrf@C*SG$UX`Fw#d%y(K*o|)V9y0j!yni#NNX`B=@jEgr}d-N zxbB-n7CYl+hL&aq<&nQsEw9~RM=cU|&P+xJ~7JRLX@zv*q<7m(*1)$En%ux6& zJVwN?>mOT=W@`B@v3|Z1cfPX0viQNbn(+1N;~0g2Dak>ceEmuBFIt#3n@YWXPlyem zX-R0_mf~or0y|vCrMyb>+tfAD;@_E%bop+*o+}ZLnN#-VxA0sV%x?nn=>WIKbaWqZ zpZ+PT80b1MZCsO1*5f}a;$1{J&l%4^_||YA&6v-P-+d(}kjk6(O$u*p^!Pkv z5b-cGiyH+AGm&DZ)g*%2nr8sMCWQX@!B)w#v{j`nsf>XqiA7wpeWLCCgfL)yplkP3#shnE+BitPaC&lwCb>eTNCI$o9{zt5qZ#H?~v&U-Aoh8z6e$%rsG^KUZ zv#PSXTKQGceUZ2+n;M*B^2@2@`!(ZH^ppYjvwFguyB(J1&W*$nnM%i}Nr9u9j%n(L zqfpI6D_8wD$d_oBu3|RgsL_}gvFc5y&x&&ix8L5H5iXLe0?-X^)TneLn}HFvidn&f zCnb&?IK=-FbIH3wDjru?%sUzdT()lkm-afsrjUO)VR>4Pp~*hu!{87P5`&{>dO;LG z2(P+Mmk!E0F&zkpQmG5E|MoA^bMY@4IDOl+M-Nh(mIq!txX;&R#%wL5a@n+vuTv<@ z(D`c_3(UIH6|LBNqD#kJM0e(@3Rf0IguXkfQQroCVxm-nw$llk!qb$IWh^BL8s`{O z8&r>3_0fFr$wWE?I`1N_pL-dYdbGFI>=w0x@5M~LfMkz z!a)Z__n(lgNx>;xBjb*UI@u~{aqoGhmdaI-NwbRS>V}`uBn^EKPHR)PmrS)x<@s() zXHCP(Yf)O;yHWYmM(SdZFx^}j1?6Ii%5H|rf-e}+RzOJ5P16x7*fC_^FPx(5T#?%R zg#mfr#_y=F#(DhYx9o_5rP<189T0NBj1$ zHTdkbnx%RhsVh1eanHm=A)ovWJGw<_V@U5*mdr?C@@3_GpP~fu1Q5|#5ai63XaD%{ z>@Z#`>v3g4gv2Xm>kB><%xVbNF>9uQ`ENrdNE8!}Si3ZrI!hkbR4*72`JPx>Htx)r z9n7?6rFuTy05&csS=$84;G|C>vId6e_uOOGlq$nK-8r-LM2|HQt7KHJ^mRf-b8YYy z!jEq%^QGorV70YKyT^$7ac+UVFrKpn=VM}Ac_qZhl`lw`R2J{#^(F7p%h+uQ`q+LU zF{O?R!Yk*_rTL9%KA7g`-eRC8g@y@HBlO$ugeH+-ZxHHZqOX#o3zW#u%DL9n0sAiY z1I%H^Sx@9mrCJ%EYPrO}XLEB3c$Vb4>MKY!!+5)=Hf73S9k9+~2)d1Z-??luaKg98W#gJrRxnyW0ioZlOgKq^fxgb>4y$LEkh&0mnSQT zp+C0Qp1iz_`rq9JH+gqKr;NC&zVR|GR0DnI!pozx7Iah%T~Z>B=U$+1^H1~B6}Kyk zin&@JosMeqkbUmx9jdr>fNl2T_^u_Xuahgpi0Rk|v>h**jlmG5#m7-YYmpy+ zrhOcl;C7rA;+<`>C*k}F1jW<6Q|_e>QezP!CMw>J;b{$l!WyoXJm*0T`6$lLG0Z2k zwMOb~qzVKv%#(?>8AyKeia}qwyVPlFXD-c5v#hup7^}((3KglXGd4^mk?Sa~x$G&% zbXB^VLC34ihS6Cou^?)$s%`q&#QQ>xGm!%4M$Awh$v(57!av}W)ArN`X^0TJU$Z}- zc3?ZFFutQp7CS=$$O0D+{Mo2n5L9cf$aoNcNWJbippwy_lWq#|;Bfy69=w-N2<)Hlon9MuK4<@SU9rN$$Cx1dd=5*&B0oqstYL) zBo!pp%rYl|rks+{o8-_*KBMMskF22TJ zs(7*Mp0ZDg9QE#O%#heOadZ2!`v9JK2iLQb2PgS*n|G?wfq%|N`N$Pra{d&6JT!IHZ;S$ngBNbo3 z)p>A?qplqw`RtjGQ35Z^*pGu4GK zmkc%+XVhw`Y2R_*zZ1#&;TX?nqQJ4vu%10y65&Nf486vWsN_<0{!+f}6O0JSdgYj1 z?U0d@nB5Fs!ta21m6O*4xPPWHyC|5_kls7UvTVxhUj9qN*>m7&Zm?n^BZ@13?j>$m zku*EphD8&nK*EWHHEhbAl6`YieEED#v+ud+N5e3W@d>q! zV)jTMYm40Bq>UBcTa1TwmfM_Mt!sfqp-ve(`Qhht3_OkSToe}Xc!W^#iMxLi!sZ-4dO6T1lVk1fnN$#LZOzRpWu`2x%jjs=m# zq<($3K1Utek__^<7Z5bFQ#9y0RMj3Se*$j}1k-`j1DG#r*-J&0ab808toY zqr;8UdFgy1vCWo{%|OWg*5ud|W5swY9&MnV^UZdPuSpCadgmDSTm!_a^+my!2rT%y z8964RVC?r+Hq-RJtw}16bov_UEcc-JmEE$M){>#j1qWMJEpyZHTG;5N;I#>*CkMB- zisvb=KCsg!{Ml#4F;8tY|K1+KS1-R$?kgEn|IvB4*QubVwAnjMmN0*ZU9k7^V7>)8 z%gPR9Ggne{^B{soy0_iVUD4)ZC%TO1{C`!^0{7M@w(Yp{kIUXi60~MVG)!WHwS6yd zp@ufV@uY=IjP!$v^|2Ou=De|HHU|!DeTI2Hvh9h4Rkx#qBt7QEDr0dO8VOl^^&UCi z%AFX2D@#)Zsw>!T)F((`H3Cx2(wqdf(t}A&?VlH#9pQZdhh)hbnH#u_;t%XMei!_? zIm5(3dlcsCkHy$nJgZF8M;%x>A~g6AbaQ1jrg^OJ{GAT1lPf+S?s`bWqT%~5;b9EH zSDSv{?bTeWSI5qx-+o?H$rktjR=~f5R61p;+#hP}LRU|pP`<75gEBSdl*S-8pNiA% z8_adJTDuLr?7yMfxoI!B_zT3Il=qcj3#u>mr5xy(*h|oV-a8sSbwW~^d>`xIR|r(}w=Ts7ND-$&;#HsT|sg-f)_->sVNweNyo1qp`>~ zfc(qh8yJP*E@Xh-4Y||++G+=@r!97Njos1hz`y%|E@*9tgrH z|LCGrg@jzhU|d_+DHQ}#R9nKOdl7Y2;{W9W2W zJ7-5xY+V)jrUhXmmQ0D!D2)v8wq>#oG{RiVC+p+kmnEmhtF4x74T*4WOLkvt{4HDc z`{yl_qD6(Jq!z0}u6`2>ino*tx$?sphz>iPOpXpW0%{^N zRPvawo`Umi+iXUZa=8bf*lCNt%jTmg)|x?yG;-CxAZ$aHt#yLiSUd35c??D%hR04G zIO-u>93McA9i*F8cq69NsKnul?`}_;=~ecdF-UIfY#iH9C!AtO+L$QaQNMK|Kf>OA z&Ea-R&F{E_pDpCG*9W0%c`)#J0;v1!>5ZK;y`5h{Wq4w9_cS+sB6iIym#b!7^)r+s zj1Zf(ckI6`1kOz3BYg9u>LCq9i`zw_J^DvI_z|L|xpwQwtlCp^H#Qhp4Ph3Ae{|SS zzCwEI^9)FV!dU=I_+ltg9$wTN>NcY>j`_7Md}s-_O}Leg}xLju$y5#DiRtPNRkK{iuC2vY^v z#+}NHlb9XTp--@hXy-4LPnM3d336@YM-rY>GD+z(nTw_mwfirYZv@mmO7DA$3G%RG zlGP(8wIdZ)jOR#tlBHVQq=*M2?uXS^c(6hgolPchz6vu}2v6NJ^ImK01A9dIw{HOL z>$8`+1^>PwQ1Eiy;Y?OR_|)`~OLlZ6kf4yy8ehI7A{9b#fUpW z6l-(u())fmznOhXl??^2? zKaIa!Ws0UF?f@_G)4Sw&^&PPg3+GRqHoom|Qi-Sju#<|l&k)2M0cd11ywRT1=d zx9_^S;-_)qIzL@ZMAq+VaQ&mf)hLbvf~i%0T1=O<+$k=+t?_oWa51C#VZio2Gp^dL z2PeJK>B(cf^zLEKRy-_0OkpyvPWAw2NhHv0m>|ABK6I5&$>sAMgOR6ntR5c9oivL$ zzVsj3+pyv%x17k!U5b&;y-2!`{xY5)2NwT<%I4ziT<8QL@-4f&o+s9xaj!WYpSz}! z!5A^A%{`~NyI-yKxdK(uZUt zMmH36>+OzfmCOiLW~TkNOUF9)=n!&whAz1Bl8L0D0tnF?fulDRr#Bn8h~BHkq^(tH zVpZ3f63(Zd-8Q|@1pUdQJrR8at8M?nd#Qx^p&$tko=RG$TeRy=w+gs??tEsUjrpVt zP-TMrmw*kSdLO}hwB`8?FptL$9VL>Kg#tS^N&7b|MpLJ--C$TcE%eIVk9`hv`*XsR zmp(CJnYoJ^Yc!g;3#}rU=e6Vbw_kfcH#@&i(^)Gaf>gK9(A2|H8hRVpKEms^=;gZO z8Ow=_EtS%`s}1vrRqSFW?c_=kEQ`F3P7QD428o?LM>=3zMEyw;$`#E$15F^G_a>c5 z-iUrzIZ~7VTd!r$t6u&0csZ%Yt3YQX8SOpA8L=_fDN7b$Kq+<|u%{Vvt+ zT~*h2api>yk%Jyoa;Il!(~bn55pIOpB{ufuwer*jE(6DgF_|kIbRkm5L?b&bF{njF ziz9Rx{1PV*{*LRLZm*_*KjrbEH4@tNY-<$Mf2eE)9KZ(4i|3;3XX)vNko0M*@F z6fh+fZ86%{gz0~vjW4BNyqqZ_5IA@k-xsfP^)U;N_8npTt4|a+FCUWjeLwfif8!SB zOTF^mTR1&ZSnYyoh~0bS_=gdVG5d^gv3z!IB=D8KT#6O`8wMf@ePHmbx^ds$o zfq{LZ57FyjsL*=f(9B1AVq5I=T7V`Wx;jaGMtUT~wUBXpvQHKh)|XN&_rewIo6M-i zcJutwuw~j2XXXL)Igz1S52>{D-#OZ_B#&fyxqtDApwXIwsCm^*2&t9fi1=G0Tfj{9 zBwGMG2qv%fXUg^)Q(nHpNVEJgET}5;f8@k z!ZWajf5$*E-vq>nOKqGqT;7y?qR~k{U-^|{nku}TacDp=SCob` zGDefjYC|f_B5_qQ?>So*P#LHP4X^q9a}{3{>iuHhIP}%&P!!}Wvf+NC#PufQ=jRez zHb|ii<~#vzB!|W8Th1Pfi;Ex>-&P`mHe)OaT|K|DfOm>c%pafXwXQisDz|^S%_qqH zp~p4@kiu6-6l*s%gq?#KHk1%ampcNzWE`t@G(y&co=$8N2-*va|2cd^P81j3Iyn{5 zwIz~4YsL}v&jsnE_MiRz_rN7Q!=Q;{aKm-Ije?MN;o%+e({qVM1B;E0SMWqhB<|#P z^0b@QxX21Kx^gYJA!t0+XKTm^xbN}g{_F2um!M2mkZ%bgO3e-BMzjL7o^DO{&A77R z6@oF^0go)x~8fG8}fo5!v}xvVp}?@ZbZi-m3S5>w#q^HEU$}^ zui~#=@jR}V6|^cV();nwY}y1H23EJd?Rp}eD6W%MB)F6Ao^>ugh_D{*8TkE(g)B(~ zL#=9|DH2i4Y^FVyc~_B}N6iQFRM;o~99fw9a}8dVcfobI$(O0LryAO}7$P<4k<96!jsY$!xHBK(7+ zjGZyojVm_V?r>6NkII5cR#vto*vUou&CQ&2ZDZIF#Ja%OFNa%PQpzMsr;w*Y_3;F4 zTTlF~Et9M`URBAa%~ju8H)$CL!E?UC!qh73$y6s=H!xeNtFQM;bO#g!ElsTNU{@pJ z%zVpS_jfm!q3z&UD0v7@V7NRL;#Y8`B9%EGc3Rp`2MxV~!OWiODdGEe*rWoMvn`znA;-{r-M`{5*R2 zx3}&6JYCQ0x}K_r?e&PmBsIKfRVDv#u*cyFb-Mr=J_2C=EDrx79|ZCvy%9w26g z4%`o|>6xR#N;N9#%v%R)9_DyQygul*RlU;l+xYqNlc+F=LLBTwobHLZhQ~hue{}5b zzn!_SI{!)duKr_BMx3nmURmgZtkr~WwFtXrYHA@U7$C2nl+@zOl6w{xE*RDy-}EI` zU@7YzT4RFZ%Jty2SN^kG4VrpZ$o+jDPw%ph>LgojK0o>AL2ly1g%^}gx5}fWCQZwG zI(N+{%H|C-wEz;Rsp&nu9<#JRN$Z2I<){B81L2PQo2lJ_4W8|Op6%gN0dESB3U%KZut$D_MCbk40fIHYa`9YD}0LTzw!2iB$3bGcQOLlj)m!N%)?oJ9- z+kobz9iw;X_j<}?{Ff2dPSd{uVb5-GSTB0|q*OpaK*rMV`R=N-T+Bgw|4bqeqU`3Z zwntwq0sA7+g8U<(T1IeIK_c;%rcpao;@{gpMJkaAY9pq*8Q;ts#YOD?-$vmx{=CT4 z!5`JUfcDCB586WIJ|NlHtgu38;w_o&jQ^i@F$eSc&)BPmVos@Vt_?tiL zy%?IwE~6KJRU8q#a!LQF&eB~0p=6oApsloa9^xRIgE%#F7k=<1r}>1$0qFRN7mo~# z=0ctp=^Zf5tT@8b3m9Oac4)|S0Y!_r_9bA-7PuBY*)$OORmbR2H!5AQ0XP?qgYRhp z=tIEzdmCK^H_XGp0Rg~r3*m zZcYAm2XU8u$q5U2(JU)Cbx3V8iUM{&SGErqd2QKy@8>4!cs8*VxAYv{O$d5uzTmU$?zWvP0`N%7~EDU0UK!B{9iM`De=3GuXc{t zuBNcM&INy9VJLW%gn0e;ZHX_C6m9o|X1Qc=tpywx0x(72i~ACAp8p5MCMuuzrQWag zzW!fZ<#mI4FUBeN8=i4W*T8wJfbz1k|5l56jL$KeZGa3uayhdmz9CSM=0`PRJ^Qoi z-Q{Nn28Cf*>C?P`H+kfYzx}mK9=jj%Gt2GrI4_*(_A=YQqmq z_qvrv7m|y{KvX6qEhjb4-ZMX+}|LABT{6h1LzQDEewYb3VPga(PBEok)R5r@LM zayJE)pW%NOD6kXzvQ;lfF3(-J-+l!n`^l3C%O&AqFeb5E8|Q=+EN?v=1c?v5%HUOSEvK#*{13Lep`~p za21Zj)RUjUUMST+ye0DI+ckr+xTUuCgGmv5%7TCUsZFw`0W|D_cj~vZ{x6DK-T_9^ z_}9Sd&7|(#t;;WnMLYjA>i=onS=T*v0f}N_U(na1(x4xBL%z!|mg;-nFP)}pza_q8 zt?gJRMcs^wCLspu47Q;r2n};{Z*|2dhrm`|*zwRv!BF_|P{a|IF5dS~rWjY`rd8cT zA?_gu?VLSO=c~ZDt8z+?FuNIYeVtDhGeQzbWZ#p*+VkNJ{yU!QDg3C9g&rV4jl`+P z)`CBc;A3ElF)$_LN~9nyU3B}O#Vtv~)1u4s!Hd}~Xl0N8ZFjfFAoDCxyn$cQFF=C~ z)R$|*K_`H@9IkRg@<`HfT9lI{^=g}z@`+x=IW@7&voS}9CzEeU*PU%|PZ7Pq#YJS_ z7Z;smYq|gMBb+Tp|92q%vZUBBrB=-@OyBam&sb~@SP(#)URt+Ov}m6#fQWN}1v{JZ z{gP_tk+znjD|hNh8s3G3354=1wQ;=M!bu8es4mk?I%3=9^nWz^|5&^)c-Qv)0K5yY zAAA0T$E0r&yEv!kkN^+{5tBOci4>-7#ERuLR`R}^{_7B`5g|%m#Ux9JQ*ya zt5(NDh1Ere4^}UOKp0Cy|?Up+GN;^zwr+2?k`fLvZTyJZy+z*H5$}RRYsx9Uz z?a}>Sg#=aZJYwE=(cvSer7EMMt!VEuIJ+C^XCG#rdC_;JvCdoI$AxS!sQRIMhDrK$ zJ%$DIG~>pC0Xpj?*i1gZkPj%m*A&KBY%xI%@bK!@=$WTDf z-@BnX+9p*KR~)7&R_zt&-!9#uz6ZUvibuFg<3_tPxi#6Xvl_H6u z=^6TNA5OKmTsYZoxQAI@ytj~Buk73q;yC`oUbB<7(gvnn&34rZa1>({G{gQyG44vf zuV2;IBQHF;0^Q|wzvDSc)N{}6>fyuf2t_r^ejgb8oKfEA9;UCH(aeH=SlT+5zNioEtO!R82MSYKK%=(TTHfFRr zN`8D+Qs^&mRZ2J`|IPe^9LuFwgw@1|iXXS0zBG@bs9ctlVwfM+IE(StmKQ#_4zKoG zz9}7aGbPSK;*fpt&gw+kbDa0#I!>=1^Qe2hTjc}uKVX3kJW6z~)W^y}35$Gy=;hSk zE(36%>D!2b8tbt?54Ar&IIPtgTyl?XAV*RVWcw>7ZdJe?vy`bz@<@@`ua71eS@n?(j#zVY%lUif)l$yh!9eEwB6H|bDu z(|qlM2nEZD`a>&4qzBUN>K*z&v?T-?XV;zW0~U0+P2`M#luFB7>pJfQRT1c^{lH4^ ztfZrv)OVPV6!hhYG}94>RgZ7H?OY3Y{Cnx)z3$KBXVbGU-msv_lN4MZh~2t`wFdMd zoAxj7%FC5ftO^PLw7329_Ov=qGj!Kn;=%9wcXhj%wEsW?AToUl5P`u69*dYI?i%^a zyVikvy6*P5cY6S3Zd(fl4!axFL|8Z|h&GJ)VfKbD@!5UC0jEAm0L@JNqqe`7Opl=9 zyWB>lDXEe6iuc@wj}XkK3cvF}Nm>x@@S1K^zTF;@BKqf}0)lDr;pg<_yVIl!i$mOB ze+_@!9J zyoY=aC>E?Vnxp{06xW7HGcte9WSCuh(e^Y-r2rHViKz?1Za&XTpjAEk?eUYrFQC)9 zS;7R!06aL|JXVnL^CVyOPu)R3Ag4ch{``4iZoLZtYVS561()a_T{3$CnU+sQ8oAKw z7r`*tvAG!;1y26}4J%zz9GITd!LB07x8bG?R2BDFjd5BdVyt5_{ckxUg0) ztM`BAW6<}XsdvhTQz^|zcQNeeM99D%MsW4}o`>3#JL9kcbtvQGC*syK1*bmt#aaQp z>`vo&LH`4KVMdSFe%ePcM(t<+HuxU(yW5ptwF2C>w)I*6TScz{VbeY+^X~m$A%$;y ztO~;mzjPVz2HplgCt|O{Z^|n?vM4$(zt=;v4<>AD8jO#wfMVQ>RDp9RZit zl?6+_>^lX;;aV|Flgtx;$MGJ@PP!g*Ip9K%#z!}A8E?hHHU5sdtPcAdkcXcFN1$s} zDgG#+^Ueng@&RzJdJe2@ZI#pLz=gl#l7Ra5sZp2|AKL=H(C|2RB7xzkeO-y?fF&L;kmJF@rveVkq|^~0)_)AXW&)cx;q zi`TXimzdlZ`a`tHrWTE|>%#OdcW7UK&9Nt4$h}tnO>8p!c;?O5T^^b#U6UOH&v%8b z2VPcG1MA^?&#vg%h^DEVyubevhRiS@t`f9oFX_HuAB7cj)>#CNu zOC8>FmT}J}zg3e^5WP8GQ{ts{O)W#ilq!>#XzS2b(=T&E&A+D4*1`9Z+MLJ-b3x4! z9z7tevP4zvrozvQJBmy!17GSy*4xp>#HAMxG^M4#FL625Dl_~Q%jO(Zp&UGf80WP! znE+RV2mO4ACep`Kh;3Qazm{S{|&VHE4O7+lJ_2?;W55a+AgqOS(+`V5g6BBh8Ehp+ywP> zR#>=uA$|Qav@VchxDH-Tk&K?{cWExLvl|=u=n9-B>&2vo>_A_OKIH*o2I>K^xf5{Y z`UL?f8J;hA2UnUA)k!Jk0eTsg96^)f^0`bB-jM4T>|$=L^@hER|Huwki>3y>YJB7F z>?#?cE$O3L9|5?y4?=Xau##KKlS~9Tpicfx)D!IyvUnWfHE-kfxc5Lp`wjvAqt$xQ zj|E(IxmB{#!p}s<>NDwkkJ+y5;ya<6v{q#H7p(jhkxh>vn~BAz_)Bxi7OuWS7MoE2 zXo^-;1Y^k8Rr>1M?mv_FKL+m>Q6Hi~qkd^aLW38=&u{9RlnebvjY#e?l3QhB_HSix zWeP052{8hDT$^SkEaSfnAv$iQISNMC;}h1e3MvoPKou`-?ABNE-58Q|gZ^`P`+u2$Jw^BTQ+RfPldI#7vZ*flkPbZ>swvS4GRDuW$!NOTq78 zqfB$vn$H!)3Vf!&pG$JDyoo0+jdnJXZtOwml~mG zg?67&EgSVcCBHy zi!wmuhlNx{j<=t73b}lb3vX&BhedO_&P+QanJCM5Ytz_JUXz1CD`(87Huc%p-}c$J zk*vIP5rzgs2_+sp_YqsFNm!_2E(ImDo8PRec{j70WqCOY~Yk)s` zR1e?cM>Quazj>k2P4|>Vr~UG&U5*lB_|62^uCms@+&8#a>Ry%Ta(98m`M_y9&kVc) z7|^ysESI4;L-`x76xv*HHF=#8tRdI9$l%b+m0h)R?4!6VcU+kSlPwEQv;7t+GqN>u zNR>yPt?vLQPl_eABms%}bVQV1s(b9|jcn;IUCwBjY%bcLBVo7EL2(sW&z=nqvNF!j zsU1cdC8f-C`I=iHrzUHQ<$om;Kio0y(1f^9Zb4FiRA%EZh|yP?q|NT+BCVP9ps3yf zTHiU3tT@hK&@nqhJDyKO)V%(nE@hCg-cXD1Uq&-IEf-s?1_6^~xa=snAGVwk3O3*@ zjc%E=S>IGeqhv-Yu`Hc(_VNAXXkjDYY|=t!@JE%SRfY>A$;2nWKq#l1%jwC>%jd({ z3yeuv(hfb63|_nwAamc#%%7u0b6sjSY*6K-2K79}P5Vt!|9#agrQbgwhSw zYdIF7gqY#B@PdJ*4PktIoa%xO?`MQrg=9Or&`L!t1~#7h^j^fDy%X~rL$b-qQC;k@ z!HpsJe~NZR3JSRDG>Wkmi6mBKY7_d{5AIQ=SiQIGi}?UKf6F#H9kHc0fK`sqZ8F55 zov?4n_0ZGrLbYTn98y26-HymI_k{C445E3wIrv8wS2jxD*_0&kd{fH5HP*lPpNeW^ zI5|Qd4ot18jW#Dl(j`+o07!QxI!*U}ZTyw|3AEM#V-jE1g6!emW6+(_0N3xi)fu^} zau;#KckEV}#rhq$Q_LswRf%GcyJdmC7!_&xU!K{{eg6BJZ9nBhk}9=M;{Mpw$YwxN zHKvAJuny%JL6OXA$-Of?UyBhJ5{k~W8LU9Y2S$!5yCxuCMoOWm2RC$IMfxLhmTPwt zW=CixT^tbuj9)%mqne8jL%ZOw~Ja_|S4;iK<7 zkNwactkt3%*SWI1m1?%3vNhFOzqOjfCuFs5cDJsY{s|aw2<86%{W}azB%FfQP1z@$ zf^I+hqCxIe$wgjYf?3F)t13H}j$G|1C%u`%&zCWs&gl%juB`q8l>oP~DsZ3tgNRk> zzKuU?#;=bG5;20OCmf~*FpT!v?s)H!PYD(QZe7=~HI=`b_PZ$^v{UqxEc0{n;QPYM z3Y)Kv#U+II9G|u;WfSUB6TW(=N+i}C{dH?OkHS=eH85Dd;y7vuj1&g4Uniy&R)Ru!HRRf@i7l=i9iEc3Ew>8Qw79G$48Bv+0OlyHYwxdK7*I+F|ED?o{H(VsGQsVnJADBLW3 zP?3K&s`;9JG6v6)DDdyG>8x-4eDyLdU4v`&*$L_2!P2?y3h(V|QNrgKb`xtND#nw1 z(!Ju1Fx{IOpR_Q3EorPZT|4R&N8<*vtAI{ajCPW1?4wrAy*Cex+_C6al1*3sp|nrw z!klq7wN&I)pSzUOza=?+Ww?u|gn%;=Rb?Y|R)(IQUQekV+GmGORN^n4ZzT_$%FrsK zX?@gOlkAk$P`T8yl_U_I<@(D8eWmCYAMzur5Es}1D>BK=bbJbf$y8Z&N^if6PXVKh zDQMO@;ZMzJ`$85j(sqAr?&4%$A{~bHn$!MKzcA}Nnc*pw7@4J!DzU6pDpU3mLa|!M zcfCw)Gfq;QeM2HPiI#|Ir}7i5Kr|P5d7vngTRnBUp)z| zfRW3xUGah-iw#oj2g$+$u1lsPL)e#$7BM(MWN`KeTv8~DKKFy0Q_;l!g{@c!!p;Lf z$lgdp=GDe>aQ^{B=a*KyHw>Q6KRs1Zp{Fs?iW4MVxd|D#!Jdnql*E>>4fbn}bSTeo zu!S|`xB!&(iG)p{!hvkSQLfk^&z8D6Et$kCD zP^ml8!j;qzoki@8E)NhQrqaAe^j!z&Yr%AAWABA=P|?M#8?b*<75^3 zqT9IMd47QpPVzX(y@BboMQ;Lu$6@uLOG$&IF(7fYQs#@+2>kF-X;+7Ae8oh}O=g*<}FaJ*x z+eLWR6?)`L_=oDte8Rq0q{*bsh+2zT-CmzmgttV$NzcnzPr|yc!!D34kBQV8PUQt96!z zYM>bmbX(HGJV;&C!aTpPRddIBe7I`=(+@vjyAlxRoDAskh^*OC!!uZ)K=zYDNazlf zWtAP4yaplPp6SUltZ5c*{$MFTUfQ>hHn-uWhGoF-V{#HUDXp8$gE@OkGy~mw*|kjC zZVDBh_0yhBcjp*XY#oqpcyv8q!nKYU<5*ip9sKTuT`fiJt_u_`yR1^x&)V_ZJ0Bel zll+jQSrKz&_3}eXDzU{j!q(4>B-E9drx4k@GG>U`+>i&t#^jk;ZoUaA!mf50!vLNHWSJ8GVv--*gKX?rL6&; zn5DIrFHb?uQJT9*?#s;tqGt2m`i5gJuH7Y0%^2@JkGoA=>sG%N&aE?YF(&VLrY59Z zTqqqwUi=6VY}c6{|o#!q?kSUW9*O2ig#8c6x$^sFp;`D;nKF&Kk zmtT1gr+I7&+y7lbadRkr=nfUU1cYbLb{W`B<5RqWV~c^6roSdCfwiHkBy5*;p0Kei zOKmvwd`hdCQQ!wins;j45-*gbl2%6hxoYs7e91pExBjFq^giBFL6q%A0TT-_pvv^C%dj_7(P|XS-ZTZ!NNQtOc z?Dn!2b@;cU)n1Vkq;L4%TrPtfbby@ZKK~VX&2XXMsu8?d&JrKLE)tazCX4=L*xeFY zsXa^QDhpiZ+s+4JYqocOVlmZVv4%mcKOt-=ZJ_!^j6$xx83wW_{_1oO%6-G}IFrFh z3=a>t+WYKlJ&BP-VyxAV_$7HZr*B4W5Zlh>5L5dil%oCXCkJ)yRv?3+6NCD;p$vBZ z&i^GQWHD>l*%3E8=sGp3?=d6 z)}md8d_6%UP;Ps^xwqg9?z&QQ2Qb&Il}owin5Q9)bnGYofjXEgr&|`z>K=w&8m}8-N_jwi1ygS_n{{SZdD3NE=XP^$5YACi_`u*nVD|fGL=AxPMxD!DOss zdVw>xz_G#W>^<5W@rrw1{k>0zr9DBW>OG5_50sq` z&U`-;v(H2EZRMA@hdGoZk0f5UH>>i*SGt!dH~6(1cb6K`7V5JWDk?4Oe`bU62H`M3 zBLuJKGeTBY*3v_5eMVTLp+sVbc9MH^kgHpYuly!mo}(qd@~Jhdzje+|{OgcPtN~g` zzh`qYSP7$&S<2C^tf=mk0OP0{FklRQhu1A;z+D;WTRg_PVssqKFxn2eR>Xw9E4}GT zr)$!g8(~Fp9m@7r#y0+2V_1Y?)SWw|9bX70uC$VrUJk6Ti%$GDCmYiIFcWWTz23KT zKkTVpmDuY94G;ZP#4X>zswVNFQ_vei5y-}Y<4q~DkOJ?9x9mmU#? z;J`q1DER2T>PRfpY1!3jQh~nfEHot>z9T!r6|wONm{VBX5Uox_4D7;AMZ3c)%mcFxeyw;^^?GL%5Lg?P7M+wa;^i<%vsNGb&>;MR zOjVN){lXR^KuR~v#Z^tY;(`XoLlw=l#XN8X9_jTe+4UIlak&IdsE<6sj%+aFfVz?YF+bwu$T*-yUXumCk zV%QM-@?hqWu{Da`FVZ`k=7~-5905(u7%(c(D=aK*jEjrY3tt!;*_f}!hj}(<U$~bBN8juh$&YcHkAWsQn^(eH-N>Mw@*h(rF4~jQ;xi_3N*Ng@t=)qMlD3$*gKTxh(pq=`Z`RRvu@@ zJ<9x+X%zW7Wy_Yq=wqqRk+RaZ19J0oN$?RC{b(K9d!R)`C!11pro??Ku49O%R#G%n zid)k`HgMLb-`|ZIvmPN{x~NOqN(a~tlQG~lN~7}$OD+&QZLV*tf>=)<=cBX&rGdk= zsmkBlb8N0zmL;ud#83LnwIInz*1k@Zm0@bx_ldcjr%ozwcl_qkUCw@WkK9` zs8c7GguRmg>wPzO4Et*1H5*v(w$hEsG+V7OI+qkTT3cp~ThSJ{Xd`ZBpj?9bRC6K| zPg`Zl9ca$A4=fw@I0i3L$;BN-3c8>Keh1O79hlO%tANuq)+splL-ps~S_dIu1@%x9 zC1hn~r9m&0;=V>W4*AMRO0KU1V0nQXv`Kg!WfN>eNpD(+4CH>RzJaKVUSyww<xL0kMk+ICxp1g$KtK+l&qDhJ0#;3F-!K zSh$Iiy$UuoT%_ZQZV9G^y;I<~K8Yqu$KGo8a(TN$0JLwn>$v|!@yjmz*X`K+m(z6|mJ@1(ARY@{{gXZ4gUO zn0oIh*x~JnPa6Oi$Q34+wq}s=g*Xu%BCAM8S!t(uY_5MD$w9W_6?Iq>WkDJG^N{Yu z-=rC}Zp$Ufji7mL20w5hxXtzpwo9cXJq1_CK+vbr0fOO)QrY!?%k0xr&_}5@TEzhYP6qP6e|2Q( zom{aYrN?fbWm(L^D%7LWP}$v1lnQfvuQR2`8J*dXoz;MGZn%Q2vCsq2kU}6 zbh9jT<$0(cuUvUP%T2%^ZKT>u14Xur&*wk7f1ehjEtwtGI1X(bH+;vk^h8y*7n9cy zXO1u4`lqw+xNGE4rNhwilpUK7OK6|xHtzV-=CCH9JmIw|rW68<9FRjqx3H1>Z9GG* zj|<#2FWs*rM)45xEx!VqwSrY%VG3GBbjzVrH@?YiD8VC*Zr{mua{U`p-PBs{b}~2S zw|dP%B;F=Es}wVeAWug~3S|3>IKQfSSBmM)@@~v9TRDk#7h#=QolclbVc&?b=npfP z>n=U6q3pB5`AZD zI_c&P;Bs)!Kz=gIAJ`dP4q!?1?y;RL~|yoU}$PcgcT$wpXM^p~*-bgw=j<b z(rV$#mTx6n;@@>qx@W=XT%3KL&gQ}@=1tb1=eT{ro`q1!oF5#ukuqJY>3niUOv~1G z{0(wTINZ_|vaiAFXsvDFt}oSdO*Fh&qQ6njkQ%=9i%98tAQ56&i+=9~jEi(Utudv` zgEl$oLF4nddfij~_}fzv(%0G{siuc3CG*YTaQKp-O4C8+!ou9f;jHe_OfH&3*HO-5 z_G2pSA_junk0eJS@>xrM8+(GC8?qCr_OyiS;Gx0`-KUt*TX61oao1r|U0|9_^k!u< z=q3vm9pA{>(i&>eD|Vwvd7Vt(^W4xHsn}e~G#D-TZQnq@Jl*!qQ-*W$Z?mf2JNlr9s&PVb>mH^{WH;Ha`O?o1yj^w+!L3);Q}wW!h$=nlDTu={0DaA3&qC4RmzQf{tbi4(L7o;{ePaAE8iM z^&}D(9y|$zu#?K*c9_P~jrs$;?M7ap#o%T81msi7KSKMIqR|_QV=(h-F@&CP&iKsS zYOJj|XPzYY)=0*mZr?UlK;2IW!}^lm(d*y&Hpa{j$M~kH5ziK4oO_)KicUUhm*&** zP7Xi)eQ3&|gcC}IrVi#j;;Ow7KnQy4xl7HF&V}fvw_oqL5O3265CYxwvQh?C5p_LUjt2qFmh3e!8+n_v3eryetzP1G zG@`lrADH`v$1;{Yoid+55Vwy72(24Mu3Kw}CVm{5YN} z@OVypqA4MzM776eeWQxe(iGF+wP_8R@F7}d;V6T-c zUU|KyyUI`8G#8tDk`e3D>0laqi5`Sq&5fbT)&b#c@V`fEgoTAOz~(_|1ap>4$Rk;d z#F0%((Kp@&la?Ls$n0(TXCsTimbJ=*ZT(63c5S#ZoY?@h{GCxCG}p4i$pzIr$mAQMfF6aeV5erd$)i4Y#cE$}_7{k?`#yCwC%)wd>F(Q6aZvZS5$CfXDY8dGBF* z17U_%wPlD`l~GOBEIJo{XQuhD!8kl!Lv#Cgttu?aqEunOf8k+RmPJW2I9m)$w8*Bl zpkt^df1q>`@73>AODii>kRq|H>ctidU}R4u17~ZVs2nKt*t$13q=<9-B$=>5H83b3 z^tl@w^b$6~xUm5b4kR~iY}>f9MTCVHgyPz`;{oiJGPo6{Sp^r!_RNAWGxbupLscMh zuV{Q*wTZmNobF-%l{3_q{TnGW@B3@B-nD30bX88;cSLCpWwA=3vyEdPmBWSV-muP) zK23h|A}WesFbucQQ%ek*I$RCTJ!9*C`YBScVGp=fUx1!G^z)@j_12s;)m!;6+p2JD zyh#Jzvx)z{^_j3(GsETr1e2AUawUVc^GR4^Id+Bx>ju`6X-%)+cQ0cV9XqSAWk!MO z5(!{Q0F_jcO|=$PYWsH#Yza`WcG1$L0HdzwI?~KMW@QP71Q{d^ zvbj*~LX)b%W7RGlP%1T}yy;6{3ObWk>k{T4BuyHWyC{}29a)oe#*n;*u0~k2V@wOK zS;6j+@LqvCtMwlcO%JVS=!7t`^lc6-KNqb*^A!5TGusW?Q20z+1egndIOzAX%WE@k zcfk&P9H}FU*KjZ{of$MND5HV8S!)1&V9(4H6`qXZ{WV4I?X_frYZ%QrTbnd~2V|rI z)}y1<4ZStEw?$)P9G=HM9oVu_&LTUh zm=UIlwS!hH#XOSX39H&(&8VIL?<`HOSjD!04ISLC%pTY&8xvZ^Du}PKlug(i)ej%)-{CPHA!=&q zf!dxdrcjEx!OnxN`Pp^2?N?f#R6?b4R9RtM>$z?f-QHnoqrfeaJ51#3^e$Sh(ugZO zf20Ck39gZq6GzsaOd+YLGUDjW*fSF|bh(a!0V4@V?fv!3n!ULAIT*C+6&-*mzMxhQ zrCwPF9s1s&pa1+=Yq^-|r9)nZBvJQ+uoJ;Gr9gUCwYx_}u>wUN?nZ0}P4-H+ z_?G@I!9yll$>M?CB~ekixBjOfV!N?Ig5JmJDl?DD3X89fWzAzY3YRDubp`13Xnh`u zRix^jF*@TBSLeWjMOcJ*h+n#*l5R7)g6vmR%21#bpgu%(%2B8ErDTccYyz6q-Q70n|?OKq+e8fhH2tUORvD-v!BbSuOPbwpq!}n~9rG6T)yHeK z7@?FLdKv}^Yn-DCkszr;!0Pp(VU7qW5pjn>OD%l>tk?8_fu2gNsr3Pn`A0#cwm-Cm zj_1$gHxoyynp<5it{w7u0GC46lBKoNHW3`+TaIK}%{WlB&63W&JXN@25AGL0=D~t4 zEId34Sl)bpsOczj_pcR8}Lk_6C+{d z{aN&7I@)<)4|uyDb5w%{5d+W_YEp5|WpJpBUQQgu#>Ms; zl-Zs)V*d*mm(-<44<9|!t_Mx?%_P>IoXF*_o1F4Ig&GAXa7T7sJbFod0$7uu^7n<- zpK~ZrB@-Lxffa_(tgq@~jO2=vIt3eyQ%Rw=QNP}OsEB)xyMV|nn5~rDCEdN0BeF57 z-f?(4?jAEApMtJelCobETYY@>YDG1~HfZ*WrrPPcH%$-ogU&_#;V7#WJ7Z&C6;6HA znD75|B}i3GsP12H9i>o+-}RCE0pF?)^eTT*FrUF)Kcd^^IdR$D`Ji@b_s)p1YP4xk zZj`g#7W{G=_UhQct8qHP73G?=MSjqd!n@Zzc@Jj%6AZhz+|?yE0MXNOWLU*#Ow^Xy3T$$}BT?2q2CH?m#VL`~%{9bA9yY^zl}bA&{#>W|!RolM1>F^f%q z3s8`A5waNN+M?3+7TJ-ve@BJcoXJs)<<@JgP7K9m^rkHM|mD3bqbN{x$T~RS2t@xMoNkSKE?Z6;B*LSYq3p)?HbKvJp)}L zhDCVg8FiXY@2R>3s?Jkr%fm4|VohyZ6to98k+JCll#cCvuUtyJ*wbK^+e7hRr=Zu~ zyafYf(f;0T0J;|Vpz2Kias(5H?-t;PtOnYEDLdGa7L!AA zpq2bPR?sSaqpY?uBAclUj6H$&1`b$F+}~fHH3Q^wp3i5uQn=tR3kL|-oNS>0gxvG0;mL6mTe_{_8?vEb2_y@LP_aBID5g_E{EFx^dY^#jumQ2 z2X(!gPDJA?oUj*2Boc}-KmQY;US$*}zG1uqXcoor^R7^*_s@8-HPUli9n=n!pZnHp6)&^q$FDB1k6X1@}t>IzOw=@ zC|T@93eO}cvQFZ_9@v-`aG~YbTXjTsR*vg;SEWm;^m>dGONz|J{Z91c-X0-(AB{Ei zXuiGCpkDC*1xvm8T#EQyQBC?su2 z{&#-0B(9^`Fsi4iI`TVjc{1mx*$5m!F~izP<>bHeA>4aM9h&zQNDveDgoTBz9@!Q0 z?W)nWUhx>;T8Hz;2=m4r1@ zwj^y!TM!)R=f=k4`oP>R_qo{HQfak=HjW#rLgOy(<90T-tTp41IJ#WRj*WDKS)Ec2 z%!Wk!_W*q(*PiK$KfBRVaoXq{yOF}{?P8{L0eU{hsRxvsVUthVvWIidpp@IHnJ^sEqiW>GOlcdxgRA)~q zE06gD?jJ1t`t@reOD}xQaBDNT*}Ab%%e`9{W{l|#j)}AF?=64j015?9>wtQh=%NE@!hiJ@R?t3STzy^g_7*Q-TxgD;P+ zL5Rtp2PM-s4Y6%)#;0>voC^$bpRl9gcu-`;oo?UE-asiy$)DSG=fOQ~CD9M2JHatR zvAC6(9sTNA8WM@|^X?@lk*dkVqAyaSydNZM^D?$`fq<1IvbL1E4y&l+jXjejayQ}> zyK8QaW%n8YU~-<^8Xe7EV~`qyGKafX^!xiF_Ci$p`_@2H9`z;FQ0rPn}KW?@Uq?7kzR2e;`Nwz4^2$19szg z-?iwTt*+*rW`FTzi)(~|J(qr~?3oE`#F~IvAhL$UaJpQLypo>`m?7r!2_Lh%G}HZZ z&RomuwuMS^`MUVfysN3Rrn_KYzpR<=(zX7Wp0Hh||NE)mT#by+#uw8Vl><6jZ;qyV z>YRJ&_SSRc0oF;lkT5&5x*7t0)B!|q;p?ve1eu*2{*@sHFl$sK;YtU6j=;Y9W)wh6 z2VVlF#Gin=%z}B z1>3qd>ey@nOdD}E8Kbc&R7q!)qCA`>aSj*D*8!h-_1UYJ+luB_c|}c8T#U-t8d#!n z6uZk_(f3Nt25p_Z+OXy0M9T1VC3B!!lep$tI*eYlHYHPSSO5vkdv~;s#NZVAAU#Ly z*U&iy2B|!sAzV4%!UhhX&qZ&ihc7u}rnp3w`}eu1P19pv2$!}hcul`fp9<;~InpL(6nBq-n%&&*2F^A8`~1 z1(w5?<1f-$Jg_d&3}eh7x((@Fk;sj@=4f14tLZ=98jCqIhv8-iGzDDlWQTEeczOJS zK2%M)A10mstCCd@2fgTx4KeX;L?R z0RDfk?Ql_a_tqH6IAsts7)U2HN2XL}uggQlqRO}by;A=n3!Wd29E9a3##)-(VZ?EJ zKfZB%gOXS-JwKw6_zv@K=~mTqMS|KugO!1Xi$zG$7dFvdIb10obU)du){^h%Up6EfU(+mI_w9d;a%@p=zWbr!!DD&#|HX@dfO6~HW{+vE_~$vD zyzJnL^S`Qx!p^`=IxKQx#rDMn^{*>1b>B1>5})|3E0>&~H9*s9O^1#Frsj z3Vove%@LZg+rAM@vH>6(JG;JR0L*SFLSH(~%*@Odk!>5~67?Y&@g*7Y-nw*fStejW zpL_81*4Hag$uyXIxgRs3YmmgzraO&i(z}rBP3S@K_>{@OhIgTx7EKv-q$>O;{a*7b z5l8{8&8x~!j^sPE;yPL(ZAZ<+{MXfY=OfG?SvT?x`FWa;yREh=G)hoabS+;y|17Jy z`f99lPI+xsm11Z`X$mbuzWYKJ-RH-J*79kXBdvbUe_!VJ3|B!-@ZT4!8qAqiN?f%J3 zdIX+H8kvzKPE6z?hA$NdJAqCUhr@m94K4=F>fD&kS)*1b1R{NN(>CLbt!~{JBU(>f z*o`3(x^k$rj}+fnaMFy*)uny%PpmdGLisvs$(*7;xTKSX>lfKcq+>&+d+v{TovG}q z%AWq@wNFXlL&OwWdyh1g2k(dq~C{faZ3pDr698;DyTkQS@6C-?A|V2nGeLF z^}I#;Jd#Uy51O|F;(&M3f)z-v=1IEW=%DKFp~}0VlJ-;P|EHMD#QzCBvYzs5-wTt= zfosLIY7D8S_Jk7-LeLlrb@Fbgc#Tj_##T6Y4d434c^dQtc%%JY*LwvqPK^2E^!ozg zHRD#}ze0^6LL-KuHwX&%`(3WW=On&=lPh?b4B4i>^@&z7zdbjV)2X}ndZeh+LIG*h zx;Sy!$}zcKM4Xuc#*?8Y)u`gsx~EH{@iJyM9@@RR_|spDX^Y7VLk z647b|Cha4T=u`A0f_hdvv@C|aDL-0X-CCcU9hzPfinSD;^>{79uwytZKL5WZ<_lqB zUa~j6#F+^~!XiGEAR_bz<3SnvJmgdJ|Frj>VNIo9zp&4Yjs+E^1rbFN0VzT0ML|In zqz!}gHc0OTBn*8lh=71}X(A|~lrYo~LUE``UBfFx!0xLBoinZ)pYViBY?Vx%;zSRcr+#C9zB;4Txc4S$dRoheA|(7=fQ=Cued` zA6LAYt3G(wqp$-eqMQTuva#9>9tu-h41e+V4$n|sYtMlgUk`2Y9;H#(SS!oLTrrR= z@6WrG)niVa{TSXIKD%j>mRGDXPouT?KW~GoTJ3_=>F67A54-DHt{rPu*LPEvx5+fz zqSEb#H|UPZL9x+reysMYlr(^cbl(y_kXnqDr9ofdVT6;bG>=h9`@&ttux?Lh^VT4I zjjTBX+~A;42RR@D0D!Yp#?xi4vY3$HS5-suSk~h+4gXt5E#qYmU+<_Ll--9an zRp=%Au~|~%m7!$ozL*P^qnr+(yor9PClh_-yjVyQLcOQ)Atkvh~|*6?mxwoDX}-l<;obX(-{4<|@>eAI1J{oTm@UoJj%R~=4y z;(AFjbMrU;6d=7r9nIf%!S-aMUZ{W2Jhs<>oU43rHu_>;*Ckea)0^cIJga-Z zAIi)J_5Aemk|4$XNGQ9D_~!n@3Nv%I+x&(wuligl1+?BCq-G2Lw$NTt%{8@ zr@YCTJu}15EE#g{Q_gbddCJM1ZNFXi=#cD+2JTWTY?eqpJH{VkTA>dx4&;=Ow6f57 zm(*5f9#5n$+YLN}T97}nK4hyVHnOV35?{4&rLG{|8e2#25T*8~N;GWt4%G(-4oiic zTvukGIn=lJR>9UD?-_3Mx$PwNq$6o2e>1wgPp91MjBfe!rrvain=d~EUF7a$Y;6}& zXx;W?i~cOa2GIY5-zgijrOsQcsVoj+AC!-~r)}-)?jxNI&T4r{pJ?4wK$26ejuq3Q z=qn)~{cV}g11WUHDu{Q4@}pkEoaa_;QMP)2fkJTr1rcD5EmROUw67eF>G!bcGl)Vs{lR1Oy4x7FFtUGwt!o>0NX=;$k%-ULY;BUXZCd4oA7hDrNPURi=HvfP< zo{4VjbIeYpW^GOiT?2Ow#ns#;Q)of<)jIvM(I3y33POwZa)mM{0w6Gx^D!$>ZZkCP zadn@rDX4$XdTihu5C-0m9H`3!JiXmep0X+|COLYR1${w)9HrnawM#Lx`*y2i*_N~p z5%LS7d`y0sXQx8x9#0x}~SE6*jj>K4B-wN#s%=tgR#Z_Ven@@qw5~yoV6p{U$-LBlB1L@e)p7 z;vElQWQ@N0gJLf+SLG4nTJAj_^=BOu$yxgL1y%to^}M4Cf*<4@`@yG($Z}kox^I8L z+51*OX9z*o^f}zjb9^YYEZ+~MWLCTNA5S!7<;^~jkKx;U?UNdMby?)@_xoi2F{-_# z+6QG`rEc84>kVRBeCqn&j0+7zK@kTMnNToWd^McWkZE83XE+O~Pl(wyYrfKV(f2!{n8;bgLy~M=g!06D1JYVp)4|yUYN#roR>J{k%e*$9ej9Y%x*9h3 zBQBVtU~I4AP)tj*Clmeu5F>0}9su>EUcNyl3-#2gQ_HNZtiCbYEX}z~>zDh)2tiJa z$;oD{y{Q;uamli;)_6Jl;BqNVq14egrcf8+gPEGSC5yC^OvjVM-!|s8OWOLywgBPo zcdZDnFcUwO4iy7b!ziDhVrJ=+SbGX8UO?H-+LoMuWBJ~G&_6mJtb5boVjRr8&$s0_ zV}}c=&PW$y($(A9VI$qH-v_XLK$tDuv#{pP4GGBs59>rVg-I1pQ-O&$k2YmD+=_@9 z?@ID3dK$U%Y>hD1NQ=?#;kUZ4g2y-3H5G&xQbR(p+#Fb)hIe+Mu_DKeZ+#Bc`*c%Z zp!)wxwda3DCv1R{dimH^Hq_8r}fWCX16*){ERD- zOR@Jcl}!m=d%D%N+)DO!x+Y&2(Z71$bAv5lsi>fvXbA){<`tr$xcX|}*m!Y<{EVz^ zuZOuSo=uT8&&S&GAWQ}zBQC(q=$!GP390Khrxm_$M6s1Rn3AyeSvO`Hq+ze}KVfa0 zMTAlYCcs(^5CXMh-_qQ=oYOX{9HIp@r6o!LHi& zt7g2qQE#t^+&aj-5$1az>xtT^lnt2Q5cqy`Yv%xwsxL0Fy#3;AgC1+FLc(6b_q+tp zv@cm;~R|(sfBA^J@qGRQ|o9}ga!@e?nZ~FB`P+^FLxC;-gx6e zYBENyzC>_-J|Z>PpYG6G;_;e1r127hHE|K+hc;`KVgzYwy(`-8G}O_{%*8ARs#3 ziFimkdSX?s!^O*X9*cNn&G`r~Oi(mZ?a@z4Ti!IhLQo9xj~5U%b$oM{V8o_%g0%8W zzp18E|N9@j0(^=_t`^b)))sw@mY41V&-SlK_p4fOdew4(bDaZYXg-5Dlvta(KcQ&J zIs~cxQaIA#`OIL9y}!V5SM%0jYoEU4MU9zSyDTfv4Ymh#hG(9;?1(8G=@+AZ4iBKp z3~mRw&oYWYc3VQ}vmmJsvYc2w%lPnK0Xdp%X{7$CJIW)nc7W)~NVm{rg?H+CEdYCO`WdSwZ?dB5qj7L%1rNtc09=lotwFEX!v zD~wgK<&)64(;`RnpZ{?+BY-EWxhpav&~-h{-+e`Ni9l?S6B@HAZD?p1qEO6_hO2c& z{rT%3^Q#Q4_9*bz{^%r|E*c@GLlo1D*Xe&eF>sSZ-SjuKLDzIEPnV(f>3SFH5&6Eb z{XVnC2wpe3qU85^%N*M8Uvd<)Uasdd!{b1Edd?85as`e5H^)WuaoL~mPIhLPPb$|RkB)$!-&9oy&IzSa-`p1 zOhvDXDJg^NZMkObOrh;Y0ETbIxUFQl7KrI^{k0y&#Sf9eu0QbIfiWfL-RRpuRQjg_>aO1q-7)G*zqnxCs!ElU@a5I==+MX;zE47|438_{lY zCq)p6kVT264xVKp4hV-!kOY4Sw(g>Xu$^NqUOze}tV9ZK1AK*0pmZ zY4ug7WdtMn0r`&txW5x)-JpzzQnZ_=r)O1pxfGm3<&YOrL3&_Ur=FHa5YP-NQnB~A z!1xN~6j;@d8icQwDc4uY`PX%>k`O1{JjzV5a<)|T)(sx!IGNY)o`oU0`7WfkZ#PKQ zTQtYxx-C8H&e#i-FnXVF<33b zi}lkd2A_C#`OJo&zP)5#-w@-1(Zar2L0Or9KL@|g7w{3YNEkjjtM9<(p3UP>{T($j z&!IMDhLz{p7Ex<{84SDrJw@+$_AnD4lZo?CKn-txMAJ%VlUd!c&k}VEIK6%1S=a}B zFUc9N@w?xfH_-FhA5vF--}{;=lpPRzaYuZWta)`)LYq{*V!chHnupsx(n*L0?*`tT zI{)AeS1Iwf`ZGfTi)u6|z+D0C$~Ky*O~Y8#DUJ*epJEMf(u5Nq^np-^O_Sz{c8(YD zA*0!CxRLkIJac`ADJVkhe?51ps=Rk)`u;<+kBmW#=U&wpSOqW%Ei$5*P%aH02}s{LM`e2xYw{R zs=8aPWy}aO5!KWMFz9R|J4IaAvh8`b2kN!{U8B|e9{wiM_Mxmw`R^(A;sYx>)t?XU zd{VWYXf|0#%BMU;bL!GO%dxaTHcw>e`O(I6C)-L{n%;+Vg|Xa!YiMg|zA_2qI5ZUe z7lBx62eY;oX6=c?KTUXGl|GDnu}w(p2$gNSS#o!`)yQW^un95V+{tGARmuEo$p8J% zx2z9gG)Kk%;L>!8lk1}BN4K@6HqVr6ylQBtQ@s1J82ch;1=m5$Q;W3Zc1wx_W=ise zIWE~UE!pzjfa;(DNhGg|CYWdV{8k`P`p*%ON8Jl~DYsWbr!&UAk{ok1G7@&K4@s?m zd7wwf4vVfM7KO-s_j|m>SAe8J2hOfmH_$d95Q)ywU};S@ILV`*4jSDu@@iW(& zx&`zIkCc)wv+zu5eh}uOuf+-Vbm82M=rtk3L6|W;{olOyk9mcTnje$M)K%<)s#te|&0R(>Q*)ckdNPz7U&HxE1W7H_Y$|Yq?i(AbDi;xcP)@xLlv}J z-h!o17l(3X^Mz7Oj*!r~-+YLEqH@AB9!`!PCNa6eZs9FI%5^qWJlKr7^DJ2Z zXb=ip<8!FaayrKYxiPUhK59CQ-f`VtovxfM=`<&jIxBcR4>k53YFg)gH0H30Xjp6c z04+9x)_^O-YX#~uFVOt~=5h+Gl$(qSeV^sc0!0BR8AWypeKp)ef+a6qT#tWurTOQ5 zfB)w4d0{p`Tv+A%95)2`eJr1waG{lW^H1okqvWDxU@8(#M?Gp9D=aS18fDz4713h> zXompwT)^um=$BL*W)hG-y+B1gqS z3`1O0kb+~H zIOJi!Yxm@rwK*buTI=e9hBsw*Qs}hLU48oA5)^1J4vll8-7az$K@X~eVGl=es|9hc z1b4ndWX>;?%7G{CH3npdK{wg_vIXrsA`=Ft3+E2}5S<#dFKklPN4(;qMV;sQe;Ek# z>#vC~G=`>AU`uegjoUwC(}v@I(GX1|3d$K=QQU_@(}<@(=x(s zUWbi)&q|zk6|-}@Fy?b?FH1yj(D^juc!JP@?RS6YK>r-;bAFBp{7@QOu@2fgY;!DgJDCht{M}R7i)j?JU>xp|Sgge?zo{JEeWvj(*3vHWOj&Q$AQ+ezTUa>A zuK05aIM|P?@;^hMN-r*!-xlyN((RPU-$@U2Uug)^uT~=SfuQQT{^U;&u7Nl9iX+qd zCK}3!vVdqko1dT827JE_nrwn`j8L(WYkb}tt`I`OfhI5ZYsUc6@2W38iyxh&ttb{f z+%}i?#1<-tPX2Q+e}AKQJhIu+!#yH~)sKrlF~?mvrie*oLM6{FanH@uFqwEOg}y(A z$2I7s&A}8=!CbCH7CXLs7qox!@}S$lpebOYpy$a2umWbo}b${dOAtwBO3pFm-qFRBU@w0uiSF4 z4kP<|MfXe?(qP$L!Ufv}agv2OOVbIEp0AC2f!4|rY;HB+BgQ;q;Q5u(;qiO3Q>>95 zD51{|ZR$RCJyK@JJSgm3p%8BVSM{xo4!^UBUtHJ*d!krrN-dO?<(86pp{YRocmdfM zTfUHCd9)4p#uji3DoWhPDt;XTXC^wxyM=(@r2?`KmAHC|qa@fkDy~|jF;%#G==Ox~*ldjoqr@iz&vmvB5UmpY&q^=HLK0au2u%*;BDd88b97D!- zjpxs2bgvkyk7sNeM|2OemPvF4E_#-+zFaM5ZN!#Wq}xF=KY)8pu@or5#xO||t|)nN zuKbp%rf zpF{imo9|wjrMgnc1gDHZw?7|RE;Qi&lRU+ zL_1f-7i-z4f8@lBdAH*xRlW1hy0@dJc+h7r`RQP#qrKx6uAs6PNBMKP}C<=01?q^C9Goy1vKc|dK;dt4#?oV%MjsV3!c!{%lT4Np+)iwnq0&Pv-7Zt*RQ; z=#1|OoA#aT?U8;}7yo{qLVudtT4U)ER`=`Se-8NXZ+e6yo3AK{M;dX4QMwKB_8H_j zZd~ttHOP4d{bz4XbA3Yo1-6 zTqTOpVX5oZ9^wat+QV$BXXSW~Fo39@RSR6;Hm2j>A~^oVtgf!c0@D&|!YUqEN?Tbs zinlGn_foa0>@scy;~1fnEq9_25nQNB`cQH$>g{^T?D7BOR8OMiI4;*$$y6M(;G9`j zYE2C`zBTDFis`J+#BF)ItrGU5RT#YsGg*|aJ8tQ+K5-WWk_AO7FAjBFM<$@bhhuRZT0YL%mR>JQvYj~16D80c`KLmI4%9w}(V;uJgT8xo{G5@o)P5w|(P>5I+@4O7=et`)1z|yZrJ3+su=w zlXMBzO}_!0K;jqGPud*S^8H^P$E4EFF(`D}`0{x9cmn-mt$Br6aSqun**T4iEw_S2 z{HOeV;{~r*m$RjB>f4oA)diGcv3_OclzFtqD z8z_n%@YCP?yz}&*gZ=xPuWgIA5^VYVKF(!VwWYC%zuY%cQP*AnDczT?w<_HcS z=#t2m;x@aj_lbF9lB9Cc2ppA?N=>qjFd&J>STk{vl7r{DK-on?vAVpt{ax>z8hSXHzR$EB$YcmsNGue*?eKp?67X~ zzWAQ1!b7djRf370w!hv=8OU`ehk+{5HHn>soUWRJljpK;@#d>UH#3JfQ$2Q}xd$uc zGfI&MyaSEAbaPDFZTHeg+1EaBM7X9lR!)oyR~rPmjfyKve@W(>^h980BcU&VT2v#A zM(cXiG*(NZc7gI!yLB4kSxD4pAf316+Iz3B&gE=%`Tl{5;0BjARPB2RAdaiY^^|pn ziy7P?v)bxC^y{LSjPxG{K|tMS8&NpNAB0%RJZWCMghWhplc_ z7T+*D=7DGZ_d)Ink_eesA1_e#T7Gw&F# zg7@d3MOnn!y!Nrg-u|}Nku~kl#C1MLUL_rTpt@2VY-+`YJlr8EjXTJ4u%W)7s`#>v zO?6Fvsm9PrV(2AEe9y1TENy%v<@LEF)mceEy)$(h3fa9w-}N#LU{z6Hyl;F3_E<3T zi?QD{X^nyC4?wpz6fa-+UjWtR>u2?^ps#qw8txmBCQ&H11s!uBQ~USpQ{bXBR|GM~ z$(qxjg4|eHUJNe}e9foey7GkUv3cqhB|pYg^Fm6SM-SpLiuPuiA8ESS`kE zU1Vg6Hx3DEj-QLIg9`N4m@JKDh;xOmP6~hkmMKo=(9ZBm0x`WpCGcNAnigS3l zBYM8~2(3A~qx2+~5ZYv@{N-lVNzC@oPa>7T{Wb;*~>rs%t;L7j#l5W#lc-B&(jfx5W!d%Epxf3y=NCdVDKH1O2ZN5eA6wYJ-1yLBDIwIA35hmMF*z z8yi&4=n?Ot_c)y_95d^7H0?>%Xbql~%&NSY;p>>&c{f$2lo_U1KTn6ca2&T*Mvc|> zTXfXRGV>v+VR}e*tdG$dUAM@lH=ZVEbhlu~Jdb%|U{G`8c5CsA-^3Y)>ox$966p`< z*Szwz!9hhfy#+FmJJLMju#e=BsNx%2+qK}eC~dd?o%T6w$e|u~gZt5xBI4Sy#57X& zgjPgY#f;%QMW1zVS^rZ;s_r}924}t_5C1Z}lo5LgHb1LNm3h~DjeBpfW z*0Ii+F&gxHBN}wC+GMcwf{a#!bew30C)FG4rGvlQN!jlV%O&OJ?7W@g@E=pP-eGCOKs;FJ-FfvG=xN4fJ zi($k0QrnCZ3Zl5X=Zv4lS*D)Cg6PNP=F}SsN|fk@i?VcJ6K8XjO3_fNl5{W{Jo?K0 zPC|QG?h{AZD$xcpr13R3yCRcnd6Q&Rsq_c3T1jwIju+*5D?iGwj53|o3YbaO_F%X( zIY^$@0eBIRc%*VYN_d~)jH=enPjI%V3s{~6%TAO2D{;PhcJr_P68rGBE&e6;>6|?K z4WX~bQfo*HSM4X}pk~xd`$)^XB#Xc2_wwO2hSbAGMV3SQMov??9aqk;Sd6V$daTfT zX-Vu@PrYH7aSJn8!j`v78hVT^A>AZdXsS`rVLG0l<&KnGL?)+ZsdPKpgO4VO@b&q? zy7XfPC;MtYU1o`OV#fgxAcut%KiODz^*CaV7qB7z%Dy*vI7bFt&aOC*Yi zR36pn_;U(2k5+WDrtyh|!wvM<4K(r+stMRCbTuWBg^iFV=X=#dH_%ge&gp}VmY9x( zm<6vGp&IO*gNyhK#2?iqDr zm!MVUJ@f@gy(CbsO|GY);p;VLJ6ka0y}pBl|#CJPH!)rqz|^QE*YR_&6E!H=9s$6(+oAs z;HSZ#LSz^>SNp$lE>YG`B4cbxUslV(_a(Raj-#XFCGNw?Y-tDxFUT}Bf`$$RIkept zzh?a9NdBzcFBG_uXn41F6&R{ zOITX{4NADwsfen}c5NoJ<|I_^H8P=GTz>-L(Dtvd`8kGT1u~kwu>=_mW;7S zr747=Say65$@3wgDa#qNgc;||?TzbI_i5YN(Hf7Jr%evpg}afgsu7((X2pF?J$ zvOc~&GtV~!%Z~;YbSrGME{z$8e1dE?~JJ7K&%HP&@+x9r$o(f@l#+&rF@F zRw7%N8>3Pz8~1ekmpf-^xepyilS`b=>QDV8<@g^)$o%T}HDw4~!^R5kdr@c_Ii4A@ z&&%V#C$bdnK?s0ZW=n$ptOnz@m6lJp5ClcXI4$$27S8w-!O~Q%q263wZw1z0$T#me zBE`96FBzmH7oLgRdWe*>nVobMwmg<-FKl}+=*T?@V8)p51pc7s8dq(qaB1hajnOXi za${y%SHqY(CBE0O>Ehk!8%;(nW4+SLH2D}BBy$cbTeEtxS%C{UX4#1s9s@7XeVB&K z5L(6B<0k|(W9;#&r&Xi=G>!OWuxic~vs}3+BQ_vV^zL`Y&%ca$&p1PbEkC>EQvv!4 zKhu$_%~Z-e>?BT`-VxoAN-4E%&qv<|lN~~)#2!aUb^`qspvn@*fQnxgVQMPQgCO@l z#2ipH<`Fl{+cz477qj>b)8x2(?!NKs*)3y)!^){JtM4!nW!ahh17iGm5^{SBdqGd*v~Yfo#jv zIP;pgOq`8E)k}JFG<`qX|Qj-@LYRFVKFQbtSWpvT}}r|AnPqCcW#IsCq*haQpFxEc4XI z`^h&ex54Oa@;g6{Hdx7E^5Xy(+A=C!e(}L+C}nwJ|Fy4IRim1d*fwM?i|jU{AT+T; zLa(1(?WT*TsB2NcV+9sol0!6{Y>>nyO+$+FlI%8p?U=my0TA>Q18@xWUPbQ1x^|QV zG(H&gxS9|amvu)J`S4SD2`OlPea;92O4!)kZuN#eqi@yK$IaMauR+C=#)|BygP6ps zhl}SswFU6MOcg3@h?&!|RUs&rS9rO|J15X)@9ZZWLL zI_*8?zVJKyQQSd7=Z$;U&$=6Iczca%p|JT-bA9mXd9YGo%eKdQUSFeE+w?sh;>T80 z(HOK^0UC>n3e>T`%+IfZhlMhr5fF5B!aM}}N|DIk8NWIYt;^uR7d9U%;xEF;>IfhT zM+%m?6`ZBGXbTiQEI>R`lGyFoSo;a)CnKN5@>tntOzLMr#HV zfsUzO3^C;g)8u-jb+ z9zfjPds}YNS8t!uwS+(gsw~VHrB<0yx$eFmux`3i3i|e3uCPMyw7gs}n}NJ05{Mp8 zzy?iOSzewS)?5r!kE%)3XwXnqoq)EBP}+VvOl36(v*ZzuCkaKc;FS(HX>Vw?YjyER z*0)!FrE1+q{)Yr$Z-k{0EAW<+>~l>h*QrrCng5shgbs+G1a?Y$@TDrMx&2vA6rDyo>ix z)H`0lc4Op9u&&l|`QpXY$48!RNBIY@h_*LC*A5Xg4h-3ii*2f=xMi#Z&ighQ5Q%Mq z{_}DTn5TUJOePkem`WoD-e*%BLd3j^rWh|C?G05PngytpDYv}Wx+A}r8#JI&u` zG19ySXI)#|=fVjNpdvrzw~R;X<{N-KLwzDB6tFYqR>}Y_b2XEZ%YYm%1WT!tAS?hA zUFC2Sl=|TKB+7Mu^`3nWe?q?ND=)z0)g84X5nt<$Au^H)3p9!@Wq4cMY;KxmpvF{Ta_B z-Ky!*@?y%~e8~+G%3>;Fp~hU-9Dte|ClJwN!>!l_8dnnuQJG$8aR^(|Wb96jLX!+K zkB<^s6NM#@J;}oH-EmE=5j>A+iPbg@YcuE;#mHew2H=+C+C_5*wU! z7W9rI1l&op2si>dY?Z`LSKDmoo6W2JSXd>7@i z&dUaW_wnO;lJG_Q1-vCptn<4X+`K10gMJp)+4}YV^mpFTr9sZ@5xLFiOY&eF{O_-2 z&z|jvKN#2SWR~YSGU?s3I17HCEBJUo|9f)eee3AWD|Ci#&U}*JR*j8m^?MWMI;oe> zP-3w@gGqe9^ZYFnO|UxSVabb(>7koPk%mOqcSIKMs+fxf5L=)|H@~oe{OQ5HSgR5& zXdHN!07Y>I2wOfzCJ2 z3*4^bwg9f>K+A-UKRj zfEs_d905_u-HY5A;L$~dqZI&f7)mNZmW7P|U*Pb(PlE5x#u-;i%TPhR!x3>V*X=p>%WAyhI~mAvSy<&=h^tD+Xn7U~-+)2jh+kpmBvMd4N+;#P}Yc1Q+sXvb{x-_U1>9h{DK5^~!Ot zMN^9JgxK7(BB!1*y$7u2D$>fi+8w#(T3xqmw0AqNVPY3chcI2)`G7?WwuS0@E*HV-yNotFv^=)s0QV z)$VcM)#-5=>_sVrdK?(~H@Psr$RY{?}l-7y0 zA1<9QJJ7#xte^^7Lvhys&fM2XWn6CpEp{t_!Yox@8;x}Y&!*lxUfs_tS=hM&hXxp7 zrLX2{hHTa=jSMc3qBewLj5Ne07p|@30`oI+y^GGdS~#oX5!ooib3}Y_n&O=1F$nJK z)|=yqRqKG+-2F_TZwpE=!=q#}Zj`!w8Vms#WedTkU+xu!is`?5>2y!7%g}B0!u)Rc z_etrX^0rD$?2iCCwTw!ev&%cDgmmt^X8I^kgxi=i${Z2Nc*!L3Jp?F=GcWJ(NmS`A z#}@oLWlCwKYrOnZ!kyDkfO=#op!o|(H6(S2lCXBNA#W{47J73(S^=!C4IDPxpxrj} zX+p?lOJ2F2%tt`CmBny9K1on>y;j|}PknrsDY+*|=ugL;6rxhz#rk6wraxuJ6f?lS zMO2y;)ndxdC3=E!HmbRprSXb@q=%tyrzb%!lJz8Ck#ej`w*xH!a3=F*Mlc^}8T+8E z(ko}PW|T#dPpW_>pe$UEmx8-&xRc8kUctElCH(9Crw9S;rk?zSpm*o=fJdtZWn}az zMCE^6od4xE;W=)94b9vhnMU3Xi_)GALdl!+%R)q+3AD)xnTA|!(;n!5kcA2owq2D)E)Sj)R_FN;Fmc+xYxVwm3u}_y*5UT zc2rVu&C^J9YD95`&go`B9~8vG4tQx4_XtI*izlBB#vTdOLhx^_aLKxU3XsGxfrHtIra-y@<^7{ ztRu3Lh4@EWie%o|tvh2rX1at&ZVQb9e_Z1*5kH1#Zgr`?TK0snZFyRZmNLCWUu_YZ z+M>r;sz*s`#!JRb{Aby_cbV-)9&Reo7|L_Xs484EDy#$xq6DB^gT$YGR?kj_ojh}W zMJjF?czbr1$B-#N22YdNjYYJlTKc}X!wxG(TIbx@A(D4kk4}oF6|kz;hX8MGpSsMGlHm8I!C=5YKUcjG37h21lfR;L=&e0ok(n!Jy9L#h`ir1{G$=bCmDFM_AH=cOePhx&1BzO=IA1(F@+MCbkHxamRcZ{Y`6!7Bk3Z**uQp+BaKv=xLwe} zL+93t2vACSjR?o@zSvdFDC*-pY+z>a#Ix*SPyb-@b#U)aek6vq;pU>=_fpnMq*}bA zyJ$zX+Ve=}wR}45QldsGIn;P%*Mi=so33~b3;wu%wPcl#nD8g$GY5+7#19)|7-_+H z*#$6#*9aw!9J17N2l?8r$?eyLDx;*^b z52PH}J;eFM2L1c~?LRZW|9=nR|2>4i=EwgPGvU#tozT^Ep}j6gTuhk5(p1;Ij#2&f G{{IKzcCtVK diff --git a/other/logos/ubicloud.svg b/other/logos/ubicloud.svg deleted file mode 100644 index 3613858ca..000000000 --- a/other/logos/ubicloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/other/nightly/.env.production b/other/nightly/.env.production deleted file mode 100644 index fe3c8370e..000000000 --- a/other/nightly/.env.production +++ /dev/null @@ -1,18 +0,0 @@ -APP_ID= -APP_NAME=Coolify -APP_KEY= - -DB_USERNAME=coolify -DB_PASSWORD= - -REDIS_PASSWORD= - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= - -ROOT_USERNAME= -ROOT_USER_EMAIL= -ROOT_USER_PASSWORD= - -REGISTRY_URL=ghcr.io diff --git a/other/nightly/docker-compose.prod.yml b/other/nightly/docker-compose.prod.yml deleted file mode 100644 index b90f126a2..000000000 --- a/other/nightly/docker-compose.prod.yml +++ /dev/null @@ -1,90 +0,0 @@ -services: - coolify: - image: "${REGISTRY_URL:-ghcr.io}/coollabsio/coolify:${LATEST_IMAGE:-latest}" - volumes: - - type: bind - source: /data/coolify/source/.env - target: /var/www/html/.env - read_only: true - - /data/coolify/ssh:/var/www/html/storage/app/ssh - - /data/coolify/applications:/var/www/html/storage/app/applications - - /data/coolify/databases:/var/www/html/storage/app/databases - - /data/coolify/services:/var/www/html/storage/app/services - - /data/coolify/backups:/var/www/html/storage/app/backups - - /data/coolify/webhooks-during-maintenance:/var/www/html/storage/app/webhooks-during-maintenance - environment: - - APP_ENV=${APP_ENV:-production} - - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-256M} - - PHP_FPM_PM_CONTROL=${PHP_FPM_PM_CONTROL:-dynamic} - - PHP_FPM_PM_START_SERVERS=${PHP_FPM_PM_START_SERVERS:-1} - - PHP_FPM_PM_MIN_SPARE_SERVERS=${PHP_FPM_PM_MIN_SPARE_SERVERS:-1} - - PHP_FPM_PM_MAX_SPARE_SERVERS=${PHP_FPM_PM_MAX_SPARE_SERVERS:-10} - env_file: - - /data/coolify/source/.env - ports: - - "${APP_PORT:-8000}:8080" - expose: - - "${APP_PORT:-8000}" - healthcheck: - test: curl --fail http://127.0.0.1:8080/api/health || exit 1 - interval: 5s - retries: 10 - timeout: 2s - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - soketi: - condition: service_healthy - postgres: - volumes: - - coolify-db:/var/lib/postgresql/data - environment: - POSTGRES_USER: "${DB_USERNAME}" - POSTGRES_PASSWORD: "${DB_PASSWORD}" - POSTGRES_DB: "${DB_DATABASE:-coolify}" - healthcheck: - test: [ "CMD-SHELL", "pg_isready -U ${DB_USERNAME}", "-d", "${DB_DATABASE:-coolify}" ] - interval: 5s - retries: 10 - timeout: 2s - redis: - command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD} - environment: - REDIS_PASSWORD: "${REDIS_PASSWORD}" - volumes: - - coolify-redis:/data - healthcheck: - test: redis-cli ping - interval: 5s - retries: 10 - timeout: 2s - soketi: - image: '${REGISTRY_URL:-ghcr.io}/coollabsio/coolify-realtime:1.0.10' - ports: - - "${SOKETI_PORT:-6001}:6001" - - "6002:6002" - volumes: - - /data/coolify/ssh:/var/www/html/storage/app/ssh - environment: - APP_NAME: "${APP_NAME:-Coolify}" - SOKETI_DEBUG: "${SOKETI_DEBUG:-false}" - SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID}" - SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY}" - SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET}" - healthcheck: - test: [ "CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready || exit 1" ] - interval: 5s - retries: 10 - timeout: 2s - -volumes: - coolify-db: - name: coolify-db - coolify-redis: - name: coolify-redis - -networks: - coolify: - external: true diff --git a/other/nightly/docker-compose.windows.yml b/other/nightly/docker-compose.windows.yml deleted file mode 100644 index 09ce3ead3..000000000 --- a/other/nightly/docker-compose.windows.yml +++ /dev/null @@ -1,133 +0,0 @@ -services: - coolify-testing-host: - init: true - image: "ghcr.io/coollabsio/coolify-testing-host:latest" - pull_policy: always - container_name: coolify-testing-host - volumes: - - //var/run/docker.sock://var/run/docker.sock - - ./:/data/coolify - coolify: - image: "ghcr.io/coollabsio/coolify:latest" - pull_policy: always - container_name: coolify - restart: always - working_dir: /var/www/html - extra_hosts: - - 'host.docker.internal:host-gateway' - volumes: - - type: bind - source: .env - target: /var/www/html/.env - read_only: true - - ./ssh:/var/www/html/storage/app/ssh - - ./applications:/var/www/html/storage/app/applications - - ./databases:/var/www/html/storage/app/databases - - ./services:/var/www/html/storage/app/services - - ./backups:/var/www/html/storage/app/backups - - ./webhooks-during-maintenance:/var/www/html/storage/app/webhooks-during-maintenance - env_file: - - .env - environment: - - APP_ID - - APP_ENV=production - - APP_NAME - - APP_KEY - - DB_PASSWORD - - REDIS_PASSWORD - - SSL_MODE=off - - PHP_PM_CONTROL=dynamic - - PHP_PM_START_SERVERS=1 - - PHP_PM_MIN_SPARE_SERVERS=1 - - PHP_PM_MAX_SPARE_SERVERS=10 - - PUSHER_APP_ID - - PUSHER_APP_KEY - - PUSHER_APP_SECRET - - AUTOUPDATE=true - - SELF_HOSTED=true - - SSH_MUX_ENABLED=false - - IS_WINDOWS_DOCKER_DESKTOP=true - ports: - - "${APP_PORT:-8000}:8080" - expose: - - "${APP_PORT:-8000}" - healthcheck: - test: curl --fail http://localhost:8080/api/health || exit 1 - interval: 5s - retries: 10 - timeout: 2s - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - postgres: - image: postgres:15-alpine - pull_policy: always - container_name: coolify-db - restart: always - env_file: - - .env - volumes: - - coolify-db:/var/lib/postgresql/data - environment: - POSTGRES_USER: "${DB_USERNAME}" - POSTGRES_PASSWORD: "${DB_PASSWORD}" - POSTGRES_DB: "${DB_DATABASE:-coolify}" - healthcheck: - test: - [ - "CMD-SHELL", - "pg_isready -U ${DB_USERNAME}", - "-d", - "${DB_DATABASE:-coolify}" - ] - interval: 5s - retries: 10 - timeout: 2s - redis: - image: redis:alpine - pull_policy: always - container_name: coolify-redis - restart: always - command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD} - env_file: - - .env - environment: - REDIS_PASSWORD: "${REDIS_PASSWORD}" - volumes: - - coolify-redis:/data - healthcheck: - test: redis-cli ping - interval: 5s - retries: 10 - timeout: 2s - soketi: - image: 'ghcr.io/coollabsio/coolify-realtime:1.0.10' - pull_policy: always - container_name: coolify-realtime - restart: always - env_file: - - .env - ports: - - "${SOKETI_PORT:-6001}:6001" - - "6002:6002" - volumes: - - ./ssh:/var/www/html/storage/app/ssh - environment: - APP_NAME: "${APP_NAME:-Coolify}" - SOKETI_DEBUG: "${SOKETI_DEBUG:-false}" - SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID}" - SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY}" - SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET}" - healthcheck: - test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready || exit 1"] - interval: 5s - retries: 10 - timeout: 2s - -volumes: - coolify-db: - name: coolify-db - coolify-redis: - name: coolify-redis diff --git a/other/nightly/docker-compose.yml b/other/nightly/docker-compose.yml deleted file mode 100644 index 68d0f0744..000000000 --- a/other/nightly/docker-compose.yml +++ /dev/null @@ -1,37 +0,0 @@ -services: - coolify: - container_name: coolify - restart: always - working_dir: /var/www/html - extra_hosts: - - 'host.docker.internal:host-gateway' - networks: - - coolify - depends_on: - - postgres - - redis - - soketi - postgres: - image: postgres:15-alpine - container_name: coolify-db - restart: always - networks: - - coolify - redis: - image: redis:alpine - container_name: coolify-redis - restart: always - networks: - - coolify - soketi: - container_name: coolify-realtime - extra_hosts: - - 'host.docker.internal:host-gateway' - restart: always - networks: - - coolify -networks: - coolify: - name: coolify - driver: bridge - external: false diff --git a/other/nightly/install.sh b/other/nightly/install.sh deleted file mode 100755 index ac4e3caff..000000000 --- a/other/nightly/install.sh +++ /dev/null @@ -1,866 +0,0 @@ -#!/bin/bash -## Do not modify this file. You will lose the ability to install and auto-update! - -## Environment variables that can be set: -## ROOT_USERNAME - Predefined root username -## ROOT_USER_EMAIL - Predefined root user email -## ROOT_USER_PASSWORD - Predefined root user password -## DOCKER_ADDRESS_POOL_BASE - Custom Docker address pool base (default: 10.0.0.0/8) -## DOCKER_ADDRESS_POOL_SIZE - Custom Docker address pool size (default: 24) -## DOCKER_POOL_FORCE_OVERRIDE - Force override Docker address pool configuration (default: false) -## AUTOUPDATE - Set to "false" to disable auto-updates -## REGISTRY_URL - Custom registry URL for Docker images (default: ghcr.io) - -set -e # Exit immediately if a command exits with a non-zero status -## $1 could be empty, so we need to disable this check -#set -u # Treat unset variables as an error and exit -set -o pipefail # Cause a pipeline to return the status of the last command that exited with a non-zero status -CDN="https://cdn.coollabs.io/coolify-nightly" -DATE=$(date +"%Y%m%d-%H%M%S") - -OS_TYPE=$(grep -w "ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"') -ENV_FILE="/data/coolify/source/.env" -DOCKER_VERSION="27.0" -# TODO: Ask for a user -CURRENT_USER=$USER - -if [ $EUID != 0 ]; then - echo "Please run this script as root or with sudo" - exit -fi - -echo -e "Welcome to Coolify Installer!" -echo -e "This script will install everything for you. Sit back and relax." -echo -e "Source code: https://github.com/coollabsio/coolify/blob/v4.x/scripts/install.sh" - -# Predefined root user -ROOT_USERNAME=${ROOT_USERNAME:-} -ROOT_USER_EMAIL=${ROOT_USER_EMAIL:-} -ROOT_USER_PASSWORD=${ROOT_USER_PASSWORD:-} - -if [ -n "${REGISTRY_URL+x}" ]; then - echo "Using registry URL from environment variable: $REGISTRY_URL" -else - if [ -f "$ENV_FILE" ] && grep -q "^REGISTRY_URL=" "$ENV_FILE"; then - REGISTRY_URL=$(grep "^REGISTRY_URL=" "$ENV_FILE" | cut -d '=' -f2) - echo "Using registry URL from .env: $REGISTRY_URL" - else - REGISTRY_URL="ghcr.io" - echo "Using default registry URL: $REGISTRY_URL" - fi -fi - -# Docker address pool configuration defaults -DOCKER_ADDRESS_POOL_BASE_DEFAULT="10.0.0.0/8" -DOCKER_ADDRESS_POOL_SIZE_DEFAULT=24 - -# Check if environment variables were explicitly provided -DOCKER_POOL_BASE_PROVIDED=false -DOCKER_POOL_SIZE_PROVIDED=false -DOCKER_POOL_FORCE_OVERRIDE=${DOCKER_POOL_FORCE_OVERRIDE:-false} - -if [ -n "${DOCKER_ADDRESS_POOL_BASE+x}" ]; then - DOCKER_POOL_BASE_PROVIDED=true -fi - -if [ -n "${DOCKER_ADDRESS_POOL_SIZE+x}" ]; then - DOCKER_POOL_SIZE_PROVIDED=true -fi - -restart_docker_service() { - # Check if systemctl is available - if command -v systemctl >/dev/null 2>&1; then - systemctl restart docker - if [ $? -eq 0 ]; then - echo " - Docker daemon restarted successfully" - else - echo " - Failed to restart Docker daemon" - return 1 - fi - # Check if service command is available - elif command -v service >/dev/null 2>&1; then - service docker restart - if [ $? -eq 0 ]; then - echo " - Docker daemon restarted successfully" - else - echo " - Failed to restart Docker daemon" - return 1 - fi - # If neither systemctl nor service is available - else - echo " - Error: No service management system found" - return 1 - fi -} - -# Function to compare address pools -compare_address_pools() { - local base1="$1" - local size1="$2" - local base2="$3" - local size2="$4" - - # Normalize CIDR notation for comparison - local ip1=$(echo "$base1" | cut -d'/' -f1) - local prefix1=$(echo "$base1" | cut -d'/' -f2) - local ip2=$(echo "$base2" | cut -d'/' -f1) - local prefix2=$(echo "$base2" | cut -d'/' -f2) - - # Compare IPs and prefixes - if [ "$ip1" = "$ip2" ] && [ "$prefix1" = "$prefix2" ] && [ "$size1" = "$size2" ]; then - return 0 # Pools are the same - else - return 1 # Pools are different - fi -} - -# Docker address pool configuration -DOCKER_ADDRESS_POOL_BASE=${DOCKER_ADDRESS_POOL_BASE:-"$DOCKER_ADDRESS_POOL_BASE_DEFAULT"} -DOCKER_ADDRESS_POOL_SIZE=${DOCKER_ADDRESS_POOL_SIZE:-$DOCKER_ADDRESS_POOL_SIZE_DEFAULT} - -# Load Docker address pool configuration from .env file if it exists and environment variables were not provided -if [ -f "/data/coolify/source/.env" ] && [ "$DOCKER_POOL_BASE_PROVIDED" = false ] && [ "$DOCKER_POOL_SIZE_PROVIDED" = false ]; then - ENV_DOCKER_ADDRESS_POOL_BASE=$(grep -E "^DOCKER_ADDRESS_POOL_BASE=" /data/coolify/source/.env | cut -d '=' -f2 || true) - ENV_DOCKER_ADDRESS_POOL_SIZE=$(grep -E "^DOCKER_ADDRESS_POOL_SIZE=" /data/coolify/source/.env | cut -d '=' -f2 || true) - - if [ -n "$ENV_DOCKER_ADDRESS_POOL_BASE" ]; then - DOCKER_ADDRESS_POOL_BASE="$ENV_DOCKER_ADDRESS_POOL_BASE" - fi - - if [ -n "$ENV_DOCKER_ADDRESS_POOL_SIZE" ]; then - DOCKER_ADDRESS_POOL_SIZE="$ENV_DOCKER_ADDRESS_POOL_SIZE" - fi -fi - -# Check if daemon.json exists and extract existing address pool configuration -EXISTING_POOL_CONFIGURED=false -if [ -f /etc/docker/daemon.json ]; then - if jq -e '.["default-address-pools"]' /etc/docker/daemon.json >/dev/null 2>&1; then - EXISTING_POOL_BASE=$(jq -r '.["default-address-pools"][0].base' /etc/docker/daemon.json 2>/dev/null || true) - EXISTING_POOL_SIZE=$(jq -r '.["default-address-pools"][0].size' /etc/docker/daemon.json 2>/dev/null || true) - - if [ -n "$EXISTING_POOL_BASE" ] && [ -n "$EXISTING_POOL_SIZE" ] && [ "$EXISTING_POOL_BASE" != "null" ] && [ "$EXISTING_POOL_SIZE" != "null" ]; then - echo "Found existing Docker network pool: $EXISTING_POOL_BASE/$EXISTING_POOL_SIZE" - EXISTING_POOL_CONFIGURED=true - - # Check if environment variables were explicitly provided - if [ "$DOCKER_POOL_BASE_PROVIDED" = false ] && [ "$DOCKER_POOL_SIZE_PROVIDED" = false ]; then - DOCKER_ADDRESS_POOL_BASE="$EXISTING_POOL_BASE" - DOCKER_ADDRESS_POOL_SIZE="$EXISTING_POOL_SIZE" - else - # Check if force override is enabled - if [ "$DOCKER_POOL_FORCE_OVERRIDE" = true ]; then - echo "Force override enabled - network pool will be updated with $DOCKER_ADDRESS_POOL_BASE/$DOCKER_ADDRESS_POOL_SIZE." - else - echo "Custom pool provided but force override not enabled - using existing configuration." - echo "To force override, set DOCKER_POOL_FORCE_OVERRIDE=true" - echo "This won't change the existing docker networks, only the pool configuration for the newly created networks." - DOCKER_ADDRESS_POOL_BASE="$EXISTING_POOL_BASE" - DOCKER_ADDRESS_POOL_SIZE="$EXISTING_POOL_SIZE" - DOCKER_POOL_BASE_PROVIDED=false - DOCKER_POOL_SIZE_PROVIDED=false - fi - fi - fi - fi -fi - -# Validate Docker address pool configuration -if ! [[ $DOCKER_ADDRESS_POOL_BASE =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$ ]]; then - echo "Warning: Invalid network pool base format: $DOCKER_ADDRESS_POOL_BASE" - if [ "$EXISTING_POOL_CONFIGURED" = true ]; then - echo "Using existing configuration: $EXISTING_POOL_BASE" - DOCKER_ADDRESS_POOL_BASE="$EXISTING_POOL_BASE" - else - echo "Using default configuration: $DOCKER_ADDRESS_POOL_BASE_DEFAULT" - DOCKER_ADDRESS_POOL_BASE="$DOCKER_ADDRESS_POOL_BASE_DEFAULT" - fi -fi - -if ! [[ $DOCKER_ADDRESS_POOL_SIZE =~ ^[0-9]+$ ]] || [ "$DOCKER_ADDRESS_POOL_SIZE" -lt 16 ] || [ "$DOCKER_ADDRESS_POOL_SIZE" -gt 28 ]; then - echo "Warning: Invalid network pool size: $DOCKER_ADDRESS_POOL_SIZE (must be 16-28)" - if [ "$EXISTING_POOL_CONFIGURED" = true ]; then - echo "Using existing configuration: $EXISTING_POOL_SIZE" - DOCKER_ADDRESS_POOL_SIZE="$EXISTING_POOL_SIZE" - else - echo "Using default configuration: $DOCKER_ADDRESS_POOL_SIZE_DEFAULT" - DOCKER_ADDRESS_POOL_SIZE=$DOCKER_ADDRESS_POOL_SIZE_DEFAULT - fi -fi - -TOTAL_SPACE=$(df -BG / | awk 'NR==2 {print $2}' | sed 's/G//') -AVAILABLE_SPACE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//') -REQUIRED_TOTAL_SPACE=30 -REQUIRED_AVAILABLE_SPACE=20 -WARNING_SPACE=false - -if [ "$TOTAL_SPACE" -lt "$REQUIRED_TOTAL_SPACE" ]; then - WARNING_SPACE=true - cat < >(tee -a $INSTALLATION_LOG_WITH_DATE) 2>&1 - -getAJoke() { - JOKES=$(curl -s --max-time 2 "https://v2.jokeapi.dev/joke/Programming?blacklistFlags=nsfw,religious,political,racist,sexist,explicit&format=txt&type=single" || true) - if [ "$JOKES" != "" ]; then - echo -e " - Until then, here's a joke for you:\n" - echo -e "$JOKES\n" - fi -} - -# Check if the OS is manjaro, if so, change it to arch -if [ "$OS_TYPE" = "manjaro" ] || [ "$OS_TYPE" = "manjaro-arm" ]; then - OS_TYPE="arch" -fi - -# Check if the OS is Endeavour OS, if so, change it to arch -if [ "$OS_TYPE" = "endeavouros" ]; then - OS_TYPE="arch" -fi - -# Check if the OS is Cachy OS, if so, change it to arch -if [ "$OS_TYPE" = "cachyos" ]; then - OS_TYPE="arch" -fi - -# Check if the OS is Asahi Linux, if so, change it to fedora -if [ "$OS_TYPE" = "fedora-asahi-remix" ]; then - OS_TYPE="fedora" -fi - -# Check if the OS is popOS, if so, change it to ubuntu -if [ "$OS_TYPE" = "pop" ]; then - OS_TYPE="ubuntu" -fi - -# Check if the OS is linuxmint, if so, change it to ubuntu -if [ "$OS_TYPE" = "linuxmint" ]; then - OS_TYPE="ubuntu" -fi - -#Check if the OS is zorin, if so, change it to ubuntu -if [ "$OS_TYPE" = "zorin" ]; then - OS_TYPE="ubuntu" -fi - -if [ "$OS_TYPE" = "arch" ] || [ "$OS_TYPE" = "archarm" ]; then - OS_VERSION="rolling" -else - OS_VERSION=$(grep -w "VERSION_ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"') -fi - -# Install xargs on Amazon Linux 2023 - lol -if [ "$OS_TYPE" = 'amzn' ]; then - dnf install -y findutils >/dev/null -fi - -LATEST_VERSION=$(curl -L --silent $CDN/versions.json | grep -i version | xargs | awk '{print $2}' | tr -d ',') -LATEST_HELPER_VERSION=$(curl -L --silent $CDN/versions.json | grep -i version | xargs | awk '{print $6}' | tr -d ',') -LATEST_REALTIME_VERSION=$(curl -L --silent $CDN/versions.json | grep -i version | xargs | awk '{print $8}' | tr -d ',') - -if [ -z "$LATEST_HELPER_VERSION" ]; then - LATEST_HELPER_VERSION=latest -fi - -if [ -z "$LATEST_REALTIME_VERSION" ]; then - LATEST_REALTIME_VERSION=latest -fi - -case "$OS_TYPE" in -arch | ubuntu | debian | raspbian | centos | fedora | rhel | ol | rocky | sles | opensuse-leap | opensuse-tumbleweed | almalinux | amzn | alpine) ;; -*) - echo "This script only supports Debian, Redhat, Arch Linux, Alpine Linux, or SLES based operating systems for now." - exit - ;; -esac - -# Overwrite LATEST_VERSION if user pass a version number -if [ "$1" != "" ]; then - LATEST_VERSION=$1 - LATEST_VERSION="${LATEST_VERSION,,}" - LATEST_VERSION="${LATEST_VERSION#v}" -fi - -echo -e "---------------------------------------------" -echo "| Operating System | $OS_TYPE $OS_VERSION" -echo "| Docker | $DOCKER_VERSION" -echo "| Coolify | $LATEST_VERSION" -echo "| Helper | $LATEST_HELPER_VERSION" -echo "| Realtime | $LATEST_REALTIME_VERSION" -echo "| Docker Pool | $DOCKER_ADDRESS_POOL_BASE (size $DOCKER_ADDRESS_POOL_SIZE)" -echo "| Registry URL | $REGISTRY_URL" -echo -e "---------------------------------------------\n" -echo -e "1. Installing required packages (curl, wget, git, jq, openssl). " - -case "$OS_TYPE" in -arch) - pacman -Sy --noconfirm --needed curl wget git jq openssl >/dev/null || true - ;; -alpine) - sed -i '/^#.*\/community/s/^#//' /etc/apk/repositories - apk update >/dev/null - apk add curl wget git jq openssl >/dev/null - ;; -ubuntu | debian | raspbian) - apt-get update -y >/dev/null - apt-get install -y curl wget git jq openssl >/dev/null - ;; -centos | fedora | rhel | ol | rocky | almalinux | amzn) - if [ "$OS_TYPE" = "amzn" ]; then - dnf install -y wget git jq openssl >/dev/null - else - if ! command -v dnf >/dev/null; then - yum install -y dnf >/dev/null - fi - if ! command -v curl >/dev/null; then - dnf install -y curl >/dev/null - fi - dnf install -y wget git jq openssl >/dev/null - fi - ;; -sles | opensuse-leap | opensuse-tumbleweed) - zypper refresh >/dev/null - zypper install -y curl wget git jq openssl >/dev/null - ;; -*) - echo "This script only supports Debian, Redhat, Arch Linux, or SLES based operating systems for now." - exit - ;; -esac - -echo -e "2. Check OpenSSH server configuration. " - -# Detect OpenSSH server -SSH_DETECTED=false -if [ -x "$(command -v systemctl)" ]; then - if systemctl status sshd >/dev/null 2>&1; then - echo " - OpenSSH server is installed." - SSH_DETECTED=true - elif systemctl status ssh >/dev/null 2>&1; then - echo " - OpenSSH server is installed." - SSH_DETECTED=true - fi -elif [ -x "$(command -v service)" ]; then - if service sshd status >/dev/null 2>&1; then - echo " - OpenSSH server is installed." - SSH_DETECTED=true - elif service ssh status >/dev/null 2>&1; then - echo " - OpenSSH server is installed." - SSH_DETECTED=true - fi -fi - -if [ "$SSH_DETECTED" = "false" ]; then - echo " - OpenSSH server not detected. Installing OpenSSH server." - case "$OS_TYPE" in - arch) - pacman -Sy --noconfirm openssh >/dev/null - systemctl enable sshd >/dev/null 2>&1 - systemctl start sshd >/dev/null 2>&1 - ;; - alpine) - apk add openssh >/dev/null - rc-update add sshd default >/dev/null 2>&1 - service sshd start >/dev/null 2>&1 - ;; - ubuntu | debian | raspbian) - apt-get update -y >/dev/null - apt-get install -y openssh-server >/dev/null - systemctl enable ssh >/dev/null 2>&1 - systemctl start ssh >/dev/null 2>&1 - ;; - centos | fedora | rhel | ol | rocky | almalinux | amzn) - if [ "$OS_TYPE" = "amzn" ]; then - dnf install -y openssh-server >/dev/null - else - dnf install -y openssh-server >/dev/null - fi - systemctl enable sshd >/dev/null 2>&1 - systemctl start sshd >/dev/null 2>&1 - ;; - sles | opensuse-leap | opensuse-tumbleweed) - zypper install -y openssh >/dev/null - systemctl enable sshd >/dev/null 2>&1 - systemctl start sshd >/dev/null 2>&1 - ;; - *) - echo "###############################################################################" - echo "WARNING: Could not detect and install OpenSSH server - this does not mean that it is not installed or not running, just that we could not detect it." - echo -e "Please make sure it is installed and running, otherwise Coolify cannot connect to the host system. \n" - echo "###############################################################################" - exit 1 - ;; - esac - echo " - OpenSSH server installed successfully." - SSH_DETECTED=true -fi - -# Detect SSH PermitRootLogin -SSH_PERMIT_ROOT_LOGIN=$(sshd -T | grep -i "permitrootlogin" | awk '{print $2}') || true -if [ "$SSH_PERMIT_ROOT_LOGIN" = "yes" ] || [ "$SSH_PERMIT_ROOT_LOGIN" = "without-password" ] || [ "$SSH_PERMIT_ROOT_LOGIN" = "prohibit-password" ]; then - echo " - SSH PermitRootLogin is enabled." -else - echo " - SSH PermitRootLogin is disabled." - echo " If you have problems with SSH, please read this: https://coolify.io/docs/knowledge-base/server/openssh" -fi - -# Detect if docker is installed via snap -if [ -x "$(command -v snap)" ]; then - SNAP_DOCKER_INSTALLED=$(snap list docker >/dev/null 2>&1 && echo "true" || echo "false") - if [ "$SNAP_DOCKER_INSTALLED" = "true" ]; then - echo "Docker is installed via snap." - echo " Please note that Coolify does not support Docker installed via snap." - echo " Please remove Docker with snap (snap remove docker) and reexecute this script." - exit 1 - fi -fi - -install_docker() { - set +e - curl -s https://releases.rancher.com/install-docker/${DOCKER_VERSION}.sh | sh 2>&1 || true - if ! [ -x "$(command -v docker)" ]; then - curl -s https://get.docker.com | sh -s -- --version ${DOCKER_VERSION} 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo "Automated Docker installation failed. Trying manual installation." - install_docker_manually - fi - fi - set -e -} - -install_docker_manually() { - case "$OS_TYPE" in - "ubuntu" | "debian" | "raspbian") - apt-get update - apt-get install -y ca-certificates curl - install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/$OS_TYPE/gpg -o /etc/apt/keyrings/docker.asc - chmod a+r /etc/apt/keyrings/docker.asc - - # Add the repository to Apt sources - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$OS_TYPE \ - $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | - tee /etc/apt/sources.list.d/docker.list - apt-get update - apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - ;; - *) - exit 1 - ;; - esac - if ! [ -x "$(command -v docker)" ]; then - echo "Docker installation failed." - echo " Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue." - exit 1 - else - echo "Docker installed successfully." - fi -} -echo -e "3. Check Docker Installation. " -if ! [ -x "$(command -v docker)" ]; then - echo " - Docker is not installed. Installing Docker. It may take a while." - getAJoke - case "$OS_TYPE" in - "almalinux") - dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1 - dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue." - exit 1 - fi - systemctl start docker >/dev/null 2>&1 - systemctl enable docker >/dev/null 2>&1 - ;; - "alpine") - apk add docker docker-cli-compose >/dev/null 2>&1 - rc-update add docker default >/dev/null 2>&1 - service docker start >/dev/null 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo " - Failed to install Docker with apk. Try to install it manually." - echo " Please visit https://wiki.alpinelinux.org/wiki/Docker for more information." - exit 1 - fi - ;; - "arch") - pacman -Sy docker docker-compose --noconfirm >/dev/null 2>&1 - systemctl enable docker.service >/dev/null 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo " - Failed to install Docker with pacman. Try to install it manually." - echo " Please visit https://wiki.archlinux.org/title/docker for more information." - exit 1 - fi - ;; - "amzn") - dnf install docker -y >/dev/null 2>&1 - DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker} - mkdir -p $DOCKER_CONFIG/cli-plugins >/dev/null 2>&1 - curl -sL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1 - chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1 - systemctl start docker >/dev/null 2>&1 - systemctl enable docker >/dev/null 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo " - Failed to install Docker with dnf. Try to install it manually." - echo " Please visit https://www.cyberciti.biz/faq/how-to-install-docker-on-amazon-linux-2/ for more information." - exit 1 - fi - ;; - "centos" | "fedora" | "rhel") - if [ -x "$(command -v dnf5)" ]; then - # dnf5 is available - dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo --overwrite >/dev/null 2>&1 - else - # dnf5 is not available, use dnf - dnf config-manager --add-repo=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo >/dev/null 2>&1 - fi - dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1 - if ! [ -x "$(command -v docker)" ]; then - echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue." - exit 1 - fi - systemctl start docker >/dev/null 2>&1 - systemctl enable docker >/dev/null 2>&1 - ;; - "ubuntu" | "debian" | "raspbian") - install_docker - if ! [ -x "$(command -v docker)" ]; then - echo " - Automated Docker installation failed. Trying manual installation." - install_docker_manually - fi - ;; - *) - install_docker - if ! [ -x "$(command -v docker)" ]; then - echo " - Automated Docker installation failed. Trying manual installation." - install_docker_manually - fi - ;; - esac - echo " - Docker installed successfully." -else - echo " - Docker is installed." -fi - -echo -e "4. Check Docker Configuration. " - -echo " - Network pool configuration: ${DOCKER_ADDRESS_POOL_BASE}/${DOCKER_ADDRESS_POOL_SIZE}" -echo " - To override existing configuration: DOCKER_POOL_FORCE_OVERRIDE=true" - -mkdir -p /etc/docker - -# Backup original daemon.json if it exists -if [ -f /etc/docker/daemon.json ]; then - cp /etc/docker/daemon.json /etc/docker/daemon.json.original-"$DATE" -fi - -# Create coolify configuration with or without address pools based on whether they were explicitly provided -if [ "$DOCKER_POOL_FORCE_OVERRIDE" = true ] || [ "$EXISTING_POOL_CONFIGURED" = false ]; then - # First check if the configuration would actually change anything - if [ -f /etc/docker/daemon.json ]; then - CURRENT_POOL_BASE=$(jq -r '.["default-address-pools"][0].base' /etc/docker/daemon.json 2>/dev/null) - CURRENT_POOL_SIZE=$(jq -r '.["default-address-pools"][0].size' /etc/docker/daemon.json 2>/dev/null) - - if [ "$CURRENT_POOL_BASE" = "$DOCKER_ADDRESS_POOL_BASE" ] && [ "$CURRENT_POOL_SIZE" = "$DOCKER_ADDRESS_POOL_SIZE" ]; then - echo " - Network pool configuration unchanged, skipping update" - NEED_MERGE=false - else - # If force override is enabled or no existing configuration exists, - # create a new configuration with the specified address pools - echo " - Creating new Docker configuration with network pool: ${DOCKER_ADDRESS_POOL_BASE}/${DOCKER_ADDRESS_POOL_SIZE}" - cat >/etc/docker/daemon.json </etc/docker/daemon.json </dev/null 2>&1; then - echo " - Log configuration is up to date" - NEED_MERGE=false - else - # Create a configuration without address pools to preserve existing ones - cat >/etc/docker/daemon.json.coolify </etc/docker/daemon.json < "$ENV_FILE.tmp" && mv "$ENV_FILE.tmp" "$ENV_FILE" - echo " - .env file merged successfully" -else - # If no .env exists, copy .env.production to .env - echo " - No .env file found, copying .env.production to .env" - cp "/data/coolify/source/.env.production" "$ENV_FILE" -fi - -echo -e "7. Checking and updating environment variables if necessary..." - -update_env_var() { - local key="$1" - local value="$2" - - # If variable "key=" exists but has no value, update the value of the existing line - if grep -q "^${key}=$" "$ENV_FILE"; then - sed -i "s|^${key}=$|${key}=${value}|" "$ENV_FILE" - echo " - Updated value of ${key} as the current value was empty" - # If variable "key=" doesn't exist, append it to the file with value - elif ! grep -q "^${key}=" "$ENV_FILE"; then - printf '%s=%s\n' "$key" "$value" >>"$ENV_FILE" - echo " - Added ${key} and it's value as the variable was missing" - fi -} - -update_env_var "APP_ID" "$(openssl rand -hex 16)" -update_env_var "APP_KEY" "base64:$(openssl rand -base64 32)" -# update_env_var "DB_USERNAME" "$(openssl rand -hex 16)" # Causes issues: database "random-user" does not exist -update_env_var "DB_PASSWORD" "$(openssl rand -base64 32)" -update_env_var "REDIS_PASSWORD" "$(openssl rand -base64 32)" -update_env_var "PUSHER_APP_ID" "$(openssl rand -hex 32)" -update_env_var "PUSHER_APP_KEY" "$(openssl rand -hex 32)" -update_env_var "PUSHER_APP_SECRET" "$(openssl rand -hex 32)" - -# Add default root user credentials from environment variables -if [ -n "$ROOT_USERNAME" ] && [ -n "$ROOT_USER_EMAIL" ] && [ -n "$ROOT_USER_PASSWORD" ]; then - echo " - Setting predefined root user credentials from environment" - update_env_var "ROOT_USERNAME" "$ROOT_USERNAME" - update_env_var "ROOT_USER_EMAIL" "$ROOT_USER_EMAIL" - update_env_var "ROOT_USER_PASSWORD" "$ROOT_USER_PASSWORD" -fi - -if [ -n "${REGISTRY_URL+x}" ]; then - # Only update if REGISTRY_URL was explicitly provided - update_env_var "REGISTRY_URL" "$REGISTRY_URL" -fi - -if [ "$AUTOUPDATE" = "false" ]; then - update_env_var "AUTOUPDATE" "false" -fi - -if [ "$DOCKER_POOL_BASE_PROVIDED" = true ]; then - update_env_var "DOCKER_ADDRESS_POOL_BASE" "$DOCKER_ADDRESS_POOL_BASE" -else - # Add with default value if missing - if ! grep -q "^DOCKER_ADDRESS_POOL_BASE=" "$ENV_FILE"; then - update_env_var "DOCKER_ADDRESS_POOL_BASE" "$DOCKER_ADDRESS_POOL_BASE" - fi -fi - -if [ "$DOCKER_POOL_SIZE_PROVIDED" = true ]; then - update_env_var "DOCKER_ADDRESS_POOL_SIZE" "$DOCKER_ADDRESS_POOL_SIZE" -else - # Add with default value if missing - if ! grep -q "^DOCKER_ADDRESS_POOL_SIZE=" "$ENV_FILE"; then - update_env_var "DOCKER_ADDRESS_POOL_SIZE" "$DOCKER_ADDRESS_POOL_SIZE" - fi -fi - -echo -e "8. Checking for SSH key for localhost access." -if [ ! -f ~/.ssh/authorized_keys ]; then - mkdir -p ~/.ssh - chmod 700 ~/.ssh - touch ~/.ssh/authorized_keys - chmod 600 ~/.ssh/authorized_keys -fi - -set +e -IS_COOLIFY_VOLUME_EXISTS=$(docker volume ls | grep coolify-db | wc -l) -set -e - -if [ "$IS_COOLIFY_VOLUME_EXISTS" -eq 0 ]; then - echo " - Generating SSH key." - test -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal && rm -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal - test -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub && rm -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub - ssh-keygen -t ed25519 -a 100 -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal -q -N "" -C coolify - chown 9999 /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal - sed -i "/coolify/d" ~/.ssh/authorized_keys - cat /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub >>~/.ssh/authorized_keys - rm -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub -fi - -chown -R 9999:root /data/coolify -chmod -R 700 /data/coolify - -echo -e "9. Installing Coolify ($LATEST_VERSION)" -echo -e " - It could take a while based on your server's performance, network speed, stars, etc." -echo -e " - Please wait." -getAJoke - -if [[ $- == *x* ]]; then - bash -x /data/coolify/source/upgrade.sh "${LATEST_VERSION:-latest}" "${LATEST_HELPER_VERSION:-latest}" "${REGISTRY_URL:-ghcr.io}" "true" -else - bash /data/coolify/source/upgrade.sh "${LATEST_VERSION:-latest}" "${LATEST_HELPER_VERSION:-latest}" "${REGISTRY_URL:-ghcr.io}" "true" -fi -echo " - Coolify installed successfully." - -echo " - Waiting 20 seconds for Coolify database migrations to complete." -getAJoke - -sleep 20 -echo -e "\033[0;35m - ____ _ _ _ _ _ - / ___|___ _ __ __ _ _ __ __ _| |_ _ _| | __ _| |_(_) ___ _ __ ___| | - | | / _ \| '_ \ / _\` | '__/ _\` | __| | | | |/ _\` | __| |/ _ \| '_ \/ __| | - | |__| (_) | | | | (_| | | | (_| | |_| |_| | | (_| | |_| | (_) | | | \__ \_| - \____\___/|_| |_|\__, |_| \__,_|\__|\__,_|_|\__,_|\__|_|\___/|_| |_|___(_) - |___/ -\033[0m" - -IPV4_PUBLIC_IP=$(curl -4s https://ifconfig.io || true) -IPV6_PUBLIC_IP=$(curl -6s https://ifconfig.io || true) - -echo -e "\nYour instance is ready to use!\n" -if [ -n "$IPV4_PUBLIC_IP" ]; then - echo -e "You can access Coolify through your Public IPV4: http://$IPV4_PUBLIC_IP:8000" -fi -if [ -n "$IPV6_PUBLIC_IP" ]; then - echo -e "You can access Coolify through your Public IPv6: http://[$IPV6_PUBLIC_IP]:8000" -fi - -set +e -DEFAULT_PRIVATE_IP=$(ip route get 1 | sed -n 's/^.*src \([0-9.]*\) .*$/\1/p') -PRIVATE_IPS=$(hostname -I 2>/dev/null || ip -o addr show scope global | awk '{print $4}' | cut -d/ -f1) -set -e - -if [ -n "$PRIVATE_IPS" ]; then - echo -e "\nIf your Public IP is not accessible, you can use the following Private IPs:\n" - for IP in $PRIVATE_IPS; do - if [ "$IP" != "$DEFAULT_PRIVATE_IP" ]; then - echo -e "http://$IP:8000" - fi - done -fi - -echo -e "\nWARNING: It is highly recommended to backup your Environment variables file (/data/coolify/source/.env) to a safe location, outside of this server (e.g. into a Password Manager).\n" diff --git a/other/nightly/upgrade.sh b/other/nightly/upgrade.sh deleted file mode 100644 index 14eede4ee..000000000 --- a/other/nightly/upgrade.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -## Do not modify this file. You will lose the ability to autoupdate! - -CDN="https://cdn.coollabs.io/coolify-nightly" -LATEST_IMAGE=${1:-latest} -LATEST_HELPER_VERSION=${2:-latest} -REGISTRY_URL=${3:-ghcr.io} -SKIP_BACKUP=${4:-false} -ENV_FILE="/data/coolify/source/.env" - -DATE=$(date +%Y-%m-%d-%H-%M-%S) -LOGFILE="/data/coolify/source/upgrade-${DATE}.log" - -curl -fsSL $CDN/docker-compose.yml -o /data/coolify/source/docker-compose.yml -curl -fsSL $CDN/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml -curl -fsSL $CDN/.env.production -o /data/coolify/source/.env.production - -# Backup existing .env file before making any changes -if [ "$SKIP_BACKUP" != "true" ]; then - if [ -f "$ENV_FILE" ]; then - echo "Creating backup of existing .env file to .env-$DATE" >>"$LOGFILE" - cp "$ENV_FILE" "$ENV_FILE-$DATE" - else - echo "No existing .env file found to backup" >>"$LOGFILE" - fi -fi - -echo "Merging .env.production values into .env" >>"$LOGFILE" -awk -F '=' '!seen[$1]++' "$ENV_FILE" /data/coolify/source/.env.production > "$ENV_FILE.tmp" && mv "$ENV_FILE.tmp" "$ENV_FILE" -echo ".env file merged successfully" >>"$LOGFILE" - -update_env_var() { - local key="$1" - local value="$2" - - # If variable "key=" exists but has no value, update the value of the existing line - if grep -q "^${key}=$" "$ENV_FILE"; then - sed -i "s|^${key}=$|${key}=${value}|" "$ENV_FILE" - echo " - Updated value of ${key} as the current value was empty" >>"$LOGFILE" - # If variable "key=" doesn't exist, append it to the file with value - elif ! grep -q "^${key}=" "$ENV_FILE"; then - printf '%s=%s\n' "$key" "$value" >>"$ENV_FILE" - echo " - Added ${key} with default value as the variable was missing" >>"$LOGFILE" - fi -} - -echo "Checking and updating environment variables if necessary..." >>"$LOGFILE" -update_env_var "PUSHER_APP_ID" "$(openssl rand -hex 32)" -update_env_var "PUSHER_APP_KEY" "$(openssl rand -hex 32)" -update_env_var "PUSHER_APP_SECRET" "$(openssl rand -hex 32)" - -# Make sure coolify network exists -# It is created when starting Coolify with docker compose -if ! docker network inspect coolify >/dev/null 2>&1; then - if ! docker network create --attachable --ipv6 coolify 2>/dev/null; then - echo "Failed to create coolify network with ipv6. Trying without ipv6..." - docker network create --attachable coolify 2>/dev/null - fi -fi - -# Check if Docker config file exists -DOCKER_CONFIG_MOUNT="" -if [ -f /root/.docker/config.json ]; then - DOCKER_CONFIG_MOUNT="-v /root/.docker/config.json:/root/.docker/config.json" -fi - -if [ -f /data/coolify/source/docker-compose.custom.yml ]; then - echo "docker-compose.custom.yml detected." >>"$LOGFILE" - docker run -v /data/coolify/source:/data/coolify/source -v /var/run/docker.sock:/var/run/docker.sock ${DOCKER_CONFIG_MOUNT} --rm ${REGISTRY_URL:-ghcr.io}/coollabsio/coolify-helper:${LATEST_HELPER_VERSION} bash -c "LATEST_IMAGE=${LATEST_IMAGE} docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml -f /data/coolify/source/docker-compose.custom.yml up -d --remove-orphans --force-recreate --wait --wait-timeout 60" >>"$LOGFILE" 2>&1 -else - docker run -v /data/coolify/source:/data/coolify/source -v /var/run/docker.sock:/var/run/docker.sock ${DOCKER_CONFIG_MOUNT} --rm ${REGISTRY_URL:-ghcr.io}/coollabsio/coolify-helper:${LATEST_HELPER_VERSION} bash -c "LATEST_IMAGE=${LATEST_IMAGE} docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up -d --remove-orphans --force-recreate --wait --wait-timeout 60" >>"$LOGFILE" 2>&1 -fi diff --git a/other/nightly/versions.json b/other/nightly/versions.json deleted file mode 100644 index 577fdfe18..000000000 --- a/other/nightly/versions.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "coolify": { - "v4": { - "version": "4.0.0-beta.452" - }, - "nightly": { - "version": "4.0.0-beta.453" - }, - "helper": { - "version": "1.0.12" - }, - "realtime": { - "version": "1.0.10" - }, - "sentinel": { - "version": "0.0.18" - } - }, - "traefik": { - "v3.6": "3.6.1", - "v3.5": "3.5.6", - "v3.4": "3.4.5", - "v3.3": "3.3.7", - "v3.2": "3.2.5", - "v3.1": "3.1.7", - "v3.0": "3.0.4", - "v2.11": "2.11.31" - } -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index b076800e6..000000000 --- a/package-lock.json +++ /dev/null @@ -1,2878 +0,0 @@ -{ - "name": "coolify", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "coolify", - "dependencies": { - "@tailwindcss/forms": "0.5.10", - "@tailwindcss/typography": "0.5.16", - "@xterm/addon-fit": "0.10.0", - "@xterm/xterm": "5.5.0", - "ioredis": "5.6.1" - }, - "devDependencies": { - "@tailwindcss/postcss": "4.1.10", - "@vitejs/plugin-vue": "5.2.4", - "axios": "1.9.0", - "laravel-echo": "2.1.5", - "laravel-vite-plugin": "1.3.0", - "postcss": "8.5.5", - "pusher-js": "8.4.0", - "tailwind-scrollbar": "4.0.2", - "tailwindcss": "4.1.10", - "vite": "6.4.1", - "vue": "3.5.16" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.4" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.4.0.tgz", - "integrity": "sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==", - "license": "MIT" - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz", - "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz", - "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz", - "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz", - "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz", - "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz", - "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz", - "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz", - "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz", - "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz", - "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz", - "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz", - "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz", - "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz", - "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz", - "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz", - "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz", - "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz", - "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz", - "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz", - "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz", - "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz", - "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tailwindcss/forms": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", - "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", - "license": "MIT", - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz", - "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "enhanced-resolve": "^5.18.1", - "jiti": "^2.4.2", - "lightningcss": "1.30.1", - "magic-string": "^0.30.17", - "source-map-js": "^1.2.1", - "tailwindcss": "4.1.10" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz", - "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.4", - "tar": "^7.4.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.10", - "@tailwindcss/oxide-darwin-arm64": "4.1.10", - "@tailwindcss/oxide-darwin-x64": "4.1.10", - "@tailwindcss/oxide-freebsd-x64": "4.1.10", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", - "@tailwindcss/oxide-linux-x64-musl": "4.1.10", - "@tailwindcss/oxide-wasm32-wasi": "4.1.10", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz", - "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz", - "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz", - "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz", - "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz", - "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz", - "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz", - "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz", - "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz", - "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz", - "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@emnapi/wasi-threads": "^1.0.2", - "@napi-rs/wasm-runtime": "^0.2.10", - "@tybys/wasm-util": "^0.9.0", - "tslib": "^2.8.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.4.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.0.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.4.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.10", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.9.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { - "version": "2.8.0", - "dev": true, - "inBundle": true, - "license": "0BSD", - "optional": true - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz", - "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz", - "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/postcss": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.10.tgz", - "integrity": "sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.10", - "@tailwindcss/oxide": "4.1.10", - "postcss": "^8.4.41", - "tailwindcss": "4.1.10" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", - "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", - "license": "MIT", - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.16.tgz", - "integrity": "sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.2", - "@vue/shared": "3.5.16", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.16.tgz", - "integrity": "sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.16", - "@vue/shared": "3.5.16" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.16.tgz", - "integrity": "sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.2", - "@vue/compiler-core": "3.5.16", - "@vue/compiler-dom": "3.5.16", - "@vue/compiler-ssr": "3.5.16", - "@vue/shared": "3.5.16", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.17", - "postcss": "^8.5.3", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.16.tgz", - "integrity": "sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.16", - "@vue/shared": "3.5.16" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.16.tgz", - "integrity": "sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.16" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.16.tgz", - "integrity": "sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.16", - "@vue/shared": "3.5.16" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.16.tgz", - "integrity": "sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.16", - "@vue/runtime-core": "3.5.16", - "@vue/shared": "3.5.16", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.16.tgz", - "integrity": "sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.16", - "@vue/shared": "3.5.16" - }, - "peerDependencies": { - "vue": "3.5.16" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.16.tgz", - "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@xterm/addon-fit": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", - "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", - "license": "MIT", - "peerDependencies": { - "@xterm/xterm": "^5.0.0" - } - }, - "node_modules/@xterm/xterm": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", - "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==", - "license": "MIT", - "peer": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz", - "integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==", - "license": "MIT", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/laravel-echo": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-2.1.5.tgz", - "integrity": "sha512-xIlV7AYjfIXv9KGiDa3qqc7JOEJUqNl+6Nx/I6bdxnSAMqnNZT5Nc1rwjOYfoYEI6030QkKF8BhPuU6Roakebw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "pusher-js": "*", - "socket.io-client": "*" - } - }, - "node_modules/laravel-vite-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.3.0.tgz", - "integrity": "sha512-P5qyG56YbYxM8OuYmK2OkhcKe0AksNVJUjq9LUZ5tOekU9fBn9LujYyctI4t9XoLjuMvHJXXpCoPntY1oKltuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.1.0" - }, - "bin": { - "clean-orphaned-assets": "bin/clean.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0" - } - }, - "node_modules/lightningcss": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.30.1", - "lightningcss-darwin-x64": "1.30.1", - "lightningcss-freebsd-x64": "1.30.1", - "lightningcss-linux-arm-gnueabihf": "1.30.1", - "lightningcss-linux-arm64-gnu": "1.30.1", - "lightningcss-linux-arm64-musl": "1.30.1", - "lightningcss-linux-x64-gnu": "1.30.1", - "lightningcss-linux-x64-musl": "1.30.1", - "lightningcss-win32-arm64-msvc": "1.30.1", - "lightningcss-win32-x64-msvc": "1.30.1" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", - "license": "MIT" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "license": "MIT" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "license": "MIT", - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", - "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", - "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/pusher-js": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-8.4.0.tgz", - "integrity": "sha512-wp3HqIIUc1GRyu1XrP6m2dgyE9MoCsXVsWNlohj0rjSkLf+a0jLvEyVubdg58oMk7bhjBWnFClgp8jfAa6Ak4Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "tweetnacl": "^1.0.3" - } - }, - "node_modules/react": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", - "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "license": "MIT", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rollup": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz", - "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.4", - "@rollup/rollup-android-arm64": "4.52.4", - "@rollup/rollup-darwin-arm64": "4.52.4", - "@rollup/rollup-darwin-x64": "4.52.4", - "@rollup/rollup-freebsd-arm64": "4.52.4", - "@rollup/rollup-freebsd-x64": "4.52.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.4", - "@rollup/rollup-linux-arm-musleabihf": "4.52.4", - "@rollup/rollup-linux-arm64-gnu": "4.52.4", - "@rollup/rollup-linux-arm64-musl": "4.52.4", - "@rollup/rollup-linux-loong64-gnu": "4.52.4", - "@rollup/rollup-linux-ppc64-gnu": "4.52.4", - "@rollup/rollup-linux-riscv64-gnu": "4.52.4", - "@rollup/rollup-linux-riscv64-musl": "4.52.4", - "@rollup/rollup-linux-s390x-gnu": "4.52.4", - "@rollup/rollup-linux-x64-gnu": "4.52.4", - "@rollup/rollup-linux-x64-musl": "4.52.4", - "@rollup/rollup-openharmony-arm64": "4.52.4", - "@rollup/rollup-win32-arm64-msvc": "4.52.4", - "@rollup/rollup-win32-ia32-msvc": "4.52.4", - "@rollup/rollup-win32-x64-gnu": "4.52.4", - "@rollup/rollup-win32-x64-msvc": "4.52.4", - "fsevents": "~2.3.2" - } - }, - "node_modules/socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "license": "MIT" - }, - "node_modules/tailwind-scrollbar": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-4.0.2.tgz", - "integrity": "sha512-wAQiIxAPqk0MNTPptVe/xoyWi27y+NRGnTwvn4PQnbvB9kp8QUBiGl/wsfoVBHnQxTmhXJSNt9NHTmcz9EivFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "prism-react-renderer": "^2.4.1" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "tailwindcss": "4.x" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", - "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", - "license": "MIT", - "peer": true - }, - "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/tar": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", - "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true, - "license": "Unlicense" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-plugin-full-reload": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", - "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "picomatch": "^2.3.1" - } - }, - "node_modules/vite-plugin-full-reload/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/vue": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.16.tgz", - "integrity": "sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-dom": "3.5.16", - "@vue/compiler-sfc": "3.5.16", - "@vue/runtime-dom": "3.5.16", - "@vue/server-renderer": "3.5.16", - "@vue/shared": "3.5.16" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - } - } -} diff --git a/package.json b/package.json index 62a36affa..490b300f5 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,16 @@ { - "name": "coolify", "private": true, "type": "module", "scripts": { - "dev": "vite", - "build": "vite build" + "build": "vite build", + "dev": "vite" }, "devDependencies": { - "@tailwindcss/postcss": "4.1.10", - "@vitejs/plugin-vue": "5.2.4", - "axios": "1.9.0", - "laravel-echo": "2.1.5", - "laravel-vite-plugin": "1.3.0", - "postcss": "8.5.5", - "pusher-js": "8.4.0", - "tailwind-scrollbar": "4.0.2", - "tailwindcss": "4.1.10", - "vite": "6.4.1", - "vue": "3.5.16" - }, - "dependencies": { - "@tailwindcss/forms": "0.5.10", - "@tailwindcss/typography": "0.5.16", - "@xterm/addon-fit": "0.10.0", - "@xterm/xterm": "5.5.0", - "ioredis": "5.6.1" + "@tailwindcss/vite": "^4.0.0", + "axios": "^1.7.4", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^1.2.0", + "tailwindcss": "^4.0.0", + "vite": "^6.0.11" } } \ No newline at end of file diff --git a/phpunit.dusk.xml b/phpunit.dusk.xml deleted file mode 100644 index 24fbe4597..000000000 --- a/phpunit.dusk.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - ./tests/Browser - - - diff --git a/phpunit.xml b/phpunit.xml index 38adfdb6f..506b9a38e 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,28 +1,33 @@ - - - - ./tests/Unit - - - ./tests/Feature - - - - - - - - - - - - - - - - - ./app - - + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + diff --git a/pint.json b/pint.json deleted file mode 100644 index 93061b6bd..000000000 --- a/pint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "preset": "laravel" -} diff --git a/postcss.config.cjs b/postcss.config.cjs deleted file mode 100644 index 52b9b4baf..000000000 --- a/postcss.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - '@tailwindcss/postcss': {}, - }, -} diff --git a/public/coolify-logo-dev-transparent.png b/public/coolify-logo-dev-transparent.png deleted file mode 100644 index 4e65e8b72160821db2ebf40d06a919ef703c2675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1775 zcmeAS@N?(olHy`uVBq!ia0y~yU`zmE4mO}jYvN)bAg3|Y**Ty%$lXc7)79C`(9+CI z*GSKhfk9(p>BQaM%#H%>`;T;dY;6(~6Kh`)suZZ0ku3O;HEW{FhpQ^-dV)nK3&jOD zisrDgUOX1Qu)c9y(^dtIE`@8iv~I1KQ*5cIls4_=&u`nU55Lo?cpMqJy+-juF{`na zP~fukw5hAoSABe_?&9mTwWsq&!JJLs>bj42UUys`_OtkZ)LW-hK?fg;%LVXmRFq42{7O>vQZg*6ik30Lp+Zt<@)E9mdUo9CdK5hEt zb?MWu%>Qknzta2ZvLvC~N1``&7&)=D8n#KO_?Z7SYUjMUg+R(MRn!8Nh><%O`4c`^yUBi`=X-q`=j^jF-`5?_V*TJ=PcxGZ|* z%ud_iH=n=Yd$jsf==2Snx#t$`OZ+G8(Vc#Sp?CiaV4QFkctjR6Fz_7#VaBQ2e9{aI ztRkK+jv*Cu-d;OBvBf}y#gX$^&W+x`J8Uz~tY|ipt&o-BI=gY_SG%yij2UM>&wToK zu?^n_V@9?P4g&|521X?&9s$9Gh7Ja17ZwQxr2`Ct)RT()%FuACwm04~+vip?(!gWbLaOpAbJlm$u*(1M>(6|$yYP`-UZ!r8Ve=WS zlE=uj%jh*DIGKDuZqHF>dR{$u!7m2tXFY6TJM(M9tt$D|_ZUp}?VJB)pE%9)Kg1Ce tBl&OK1(pK&3{r7aEncws5t>%*{B>j&JfHCySWq%Bc)I$ztaD0e0swNf?Op%? diff --git a/public/coolify-logo-dev-transparent.svg b/public/coolify-logo-dev-transparent.svg deleted file mode 100644 index a4159154f..000000000 --- a/public/coolify-logo-dev-transparent.svg +++ /dev/null @@ -1 +0,0 @@ -Coolify \ No newline at end of file diff --git a/public/coolify-logo-monochrome.png b/public/coolify-logo-monochrome.png deleted file mode 100644 index 48605e8fda6d5830ab19195f32049d8a20df39eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1826 zcmeAS@N?(olHy`uVBq!ia0y~yU`zmE4mO}jYvN)bAg3|Y**Ty%$lXc7)79C`(9+CI z*GSKhfk9(p>BQaM%#H%>`;T;dY;6(~6Kh`)suZZ0ku3O;HEW{FhpQ^-dV)nK3&jOD zisrDgUOX1Qu)c9y(^dtIE`@8iv~I1KQ*5cIls4_=&u`nU55Lo?cpMqJy+-juF{`na zP~fukw5hAoSABe_?&9mTwWsq&!JJLs>bj42UUys`_OtkZ)LW-hK?fg;%LVXmRFq42{7O>vQZg*6ik30Lp+Zt<@)E9mdUo9CdK5hEt zb?MWu%>Qknzta2ZvLvC~N1``&7&)=D8n#KO_?Z7SYUjMUg+R(MRn!8Nh><%O`4c`^yUBi`=X-q`=j^jF-`5?_V*TJ=PcxGZ|* z%ud_iH=n=Yd$jsf==2Snx#t$`OZ+G8(Vc#Sp?CiaV4QFkctjR6Fz_7#VaBQ2e9{aI ztnQvJjv*Cu-rm{hd&EJ+^`iX=&Y9i|Qnj|ONXSeOZo0VjgC*-58^M^~HGMY!4)9Xj zY#fd~VQ9R*$|VQr)$}4}EPez!sTe4^{oGylH6QtQ)Up5hvftijn!f;b{e9pp(A#-- z$+`b(A1u2=+fc?45;Td?QM*XaFfv~oX8)cy^L!P{2m7@%E3Yait(If3nT$2XsYlFv zcyRJk-V$s{_uYs08tc#Q|8Hy@Kl?nxkImLBKi04_h}1MOP%$ePU13g3yUNUPZ%5j* zJCzO6G%q6{DQeCoolify \ No newline at end of file diff --git a/public/coolify-logo-red.png b/public/coolify-logo-red.png deleted file mode 100644 index b3f7d2b6c94ee3ef8005f18d2dbe0e3745fb6dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1777 zcmeAS@N?(olHy`uVBq!ia0y~yU`zmE4mO}jYvN)bAg3YI**Ty%$lXc7)79C`(9+CI z*GSKhfk9(p>BRHeE`cJ)?Tt^o7wC=*(C5{D;_jQH|61D&SennhQv{r>y3w!9{GaUU~ z{p(YB+Ra;MUr8wm{1LI^@Dy&Yc;I{Z%3u>6{K5zTGFaP#@ z_JAV(^p{TmKFNLA-!)G^<6rEG=;q0vo5XH6T`v7_S2ED}m+sV#N>ko>{R_&(r1TeN z-FtiUyj}Ztfyk-rcQw3~&6xhVlsi5qE&ZYWww9;BDB&#dh%9Dc;5!1sj8nDwq!}1k z#XVgdLn`LHy>_s-#X*4O;5^}Ho7Tq~|7hG_oc5%dgMC%2OV+hLcmB=Uy^k?t&F{#k z|KctAKBO`62nZ%LbTBZxut+E<9bgb-Wb5ECaByj0RHB}g%vVN+so81Mf5*|t0t^>l z1Nzf$(Uy1VQ-5DSvwFY%o|)p*_7sMlkN}*x*lt1D**8W1%{QN_UGSKd9^s3_DKv@8 zQM;&;RZ_09#~AOv^S|y~ksQa`-=5Mh=#^5Qtl&>TY7Ze};zn^Y7BUJuF l+4VE)@)@M)Ru24Qd~j9b+8@Coolify \ No newline at end of file diff --git a/public/coolify-logo.svg b/public/coolify-logo.svg deleted file mode 100644 index bff8f6b40..000000000 --- a/public/coolify-logo.svg +++ /dev/null @@ -1 +0,0 @@ -Coolify \ No newline at end of file diff --git a/public/coolify-transparent.png b/public/coolify-transparent.png deleted file mode 100644 index 99a56acbe3cae04dfc76a4bb38fed8b9b84453bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1797 zcmeAS@N?(olHy`uVBq!ia0y~yU`zmE4mO}jYvN)bAg3|Y**Ty%$lXc7)79C`(9+CI z*GSKhfk9(p>BQaM%#H%>`;T;dY;6(~6Kh`)suZZ0ku3O;HEW{FhpQ^-dV)nK3&jOD zisrDgUOX1Qu)c9y(^dtIE`@8iv~I1KQ*5cIls4_=&u`nU55Lo?cpMqJy+-juF{`na zP~fukw5hAoSABe_?&9mTwWsq&!JJLs>bj42UUys`_OtkZ)LW-hK?fg;%LVXmRFq42{7O>vQZg*6ik30Lp+Zt<@)E9mdUo9CdK5hEt zb?MWu%>Qknzta2ZvLvC~N1``&7&)=D8n#KO_?Z7SYUjMUg+R(MRn!8Nh><%O`4c`^yUBi`=X-q`=j^jF-`5?_V*TJ=PcxGZ|* z%ud_iH=n=Yd$jsf==2Snx#t$`OZ+G8(Vc#Sp?CiaV4QFkctjR6Fz_7#VaBQ2e9{aI ztXiHfjv*Cu-d-~dJnA6f7C5a_kmm@q>#OIgtgb9e798--;<8C#P|i=ASlB%$`N8k> zZfonfymvJ=>9x!kEY_t?`Mv(B#eun;1`aL_j7m&A0)hz*9SqDaED{Pz2N(ny**Z9= zCbj7bJ448}()myK$y3ct{EnPhXg6=O-J+71(;DBmm+t@i`|#YKjI{9_hC?D>F=yT0 zb-w8T@9)`DemflJr$LBfSW3g#8?}oznd8I?{u|e7r~Q7PKmVzXfYmzH+y!*Y9)a=! z*7D~g?=zUx{j!@r1Z<7BNU{T88>FVdQ I&MBb@0D3U=`~Uy| diff --git a/public/ente-photos-icon-green.png b/public/ente-photos-icon-green.png deleted file mode 100644 index b74aa472d6e4292f76933f1142c77ba2824119c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30327 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 a2YN+L%XO>8TMV#X*VE(n3*zDc diff --git a/docker/development/etc/s6-overlay/s6-rc.d/scheduler-worker/dependencies.d/init-setup b/public/favicon.ico similarity index 100% rename from docker/development/etc/s6-overlay/s6-rc.d/scheduler-worker/dependencies.d/init-setup rename to public/favicon.ico diff --git a/public/heart.png b/public/heart.png deleted file mode 100644 index c44a21301660dda6cd6e5a6fb64f8c0ed8738cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3972 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::class); - -$response = $kernel->handle( - $request = Request::capture() -)->send(); - -$kernel->terminate($request, $response); +$app->handleRequest(Request::capture()); diff --git a/public/js/apexcharts.js b/public/js/apexcharts.js deleted file mode 100644 index c1353e834..000000000 --- a/public/js/apexcharts.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * ApexCharts v3.49.1 - * (c) 2018-2024 ApexCharts - * Released under the MIT License. - */ -!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).ApexCharts = e() }(this, (function () { - "use strict"; function t(t, e) { var i = Object.keys(t); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(t); e && (a = a.filter((function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable }))), i.push.apply(i, a) } return i } function e(e) { for (var i = 1; i < arguments.length; i++) { var a = null != arguments[i] ? arguments[i] : {}; i % 2 ? t(Object(a), !0).forEach((function (t) { o(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : t(Object(a)).forEach((function (t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } function i(t) { return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i(t) } function a(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } function s(t, e) { for (var i = 0; i < e.length; i++) { var a = e[i]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(t, a.key, a) } } function r(t, e, i) { return e && s(t.prototype, e), i && s(t, i), t } function o(t, e, i) { return e in t ? Object.defineProperty(t, e, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = i, t } function n(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), e && h(t, e) } function l(t) { return l = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) { return t.__proto__ || Object.getPrototypeOf(t) }, l(t) } function h(t, e) { return h = Object.setPrototypeOf || function (t, e) { return t.__proto__ = e, t }, h(t, e) } function c(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t } function d(t) { var e = function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0 } catch (t) { return !1 } }(); return function () { var i, a = l(t); if (e) { var s = l(this).constructor; i = Reflect.construct(a, arguments, s) } else i = a.apply(this, arguments); return function (t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return c(t) }(this, i) } } function g(t, e) { return function (t) { if (Array.isArray(t)) return t }(t) || function (t, e) { var i = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null == i) return; var a, s, r = [], o = !0, n = !1; try { for (i = i.call(t); !(o = (a = i.next()).done) && (r.push(a.value), !e || r.length !== e); o = !0); } catch (t) { n = !0, s = t } finally { try { o || null == i.return || i.return() } finally { if (n) throw s } } return r }(t, e) || p(t, e) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function u(t) { return function (t) { if (Array.isArray(t)) return f(t) }(t) || function (t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t) }(t) || p(t) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function p(t, e) { if (t) { if ("string" == typeof t) return f(t, e); var i = Object.prototype.toString.call(t).slice(8, -1); return "Object" === i && t.constructor && (i = t.constructor.name), "Map" === i || "Set" === i ? Array.from(t) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? f(t, e) : void 0 } } function f(t, e) { (null == e || e > t.length) && (e = t.length); for (var i = 0, a = new Array(e); i < e; i++)a[i] = t[i]; return a } var x = function () { function t() { a(this, t) } return r(t, [{ key: "shadeRGBColor", value: function (t, e) { var i = e.split(","), a = t < 0 ? 0 : 255, s = t < 0 ? -1 * t : t, r = parseInt(i[0].slice(4), 10), o = parseInt(i[1], 10), n = parseInt(i[2], 10); return "rgb(" + (Math.round((a - r) * s) + r) + "," + (Math.round((a - o) * s) + o) + "," + (Math.round((a - n) * s) + n) + ")" } }, { key: "shadeHexColor", value: function (t, e) { var i = parseInt(e.slice(1), 16), a = t < 0 ? 0 : 255, s = t < 0 ? -1 * t : t, r = i >> 16, o = i >> 8 & 255, n = 255 & i; return "#" + (16777216 + 65536 * (Math.round((a - r) * s) + r) + 256 * (Math.round((a - o) * s) + o) + (Math.round((a - n) * s) + n)).toString(16).slice(1) } }, { key: "shadeColor", value: function (e, i) { return t.isColorHex(i) ? this.shadeHexColor(e, i) : this.shadeRGBColor(e, i) } }], [{ key: "bind", value: function (t, e) { return function () { return t.apply(e, arguments) } } }, { key: "isObject", value: function (t) { return t && "object" === i(t) && !Array.isArray(t) && null != t } }, { key: "is", value: function (t, e) { return Object.prototype.toString.call(e) === "[object " + t + "]" } }, { key: "listToArray", value: function (t) { var e, i = []; for (e = 0; e < t.length; e++)i[e] = t[e]; return i } }, { key: "extend", value: function (t, e) { var i = this; "function" != typeof Object.assign && (Object.assign = function (t) { if (null == t) throw new TypeError("Cannot convert undefined or null to object"); for (var e = Object(t), i = 1; i < arguments.length; i++) { var a = arguments[i]; if (null != a) for (var s in a) a.hasOwnProperty(s) && (e[s] = a[s]) } return e }); var a = Object.assign({}, t); return this.isObject(t) && this.isObject(e) && Object.keys(e).forEach((function (s) { i.isObject(e[s]) && s in t ? a[s] = i.extend(t[s], e[s]) : Object.assign(a, o({}, s, e[s])) })), a } }, { key: "extendArray", value: function (e, i) { var a = []; return e.map((function (e) { a.push(t.extend(i, e)) })), e = a } }, { key: "monthMod", value: function (t) { return t % 12 } }, { key: "clone", value: function (e) { if (t.is("Array", e)) { for (var a = [], s = 0; s < e.length; s++)a[s] = this.clone(e[s]); return a } if (t.is("Null", e)) return null; if (t.is("Date", e)) return e; if ("object" === i(e)) { var r = {}; for (var o in e) e.hasOwnProperty(o) && (r[o] = this.clone(e[o])); return r } return e } }, { key: "log10", value: function (t) { return Math.log(t) / Math.LN10 } }, { key: "roundToBase10", value: function (t) { return Math.pow(10, Math.floor(Math.log10(t))) } }, { key: "roundToBase", value: function (t, e) { return Math.pow(e, Math.floor(Math.log(t) / Math.log(e))) } }, { key: "parseNumber", value: function (t) { return null === t ? t : parseFloat(t) } }, { key: "stripNumber", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2; return Number.isInteger(t) ? t : parseFloat(t.toPrecision(e)) } }, { key: "randomId", value: function () { return (Math.random() + 1).toString(36).substring(4) } }, { key: "noExponents", value: function (t) { var e = String(t).split(/[eE]/); if (1 === e.length) return e[0]; var i = "", a = t < 0 ? "-" : "", s = e[0].replace(".", ""), r = Number(e[1]) + 1; if (r < 0) { for (i = a + "0."; r++;)i += "0"; return i + s.replace(/^-/, "") } for (r -= s.length; r--;)i += "0"; return s + i } }, { key: "getDimensions", value: function (t) { var e = getComputedStyle(t, null), i = t.clientHeight, a = t.clientWidth; return i -= parseFloat(e.paddingTop) + parseFloat(e.paddingBottom), [a -= parseFloat(e.paddingLeft) + parseFloat(e.paddingRight), i] } }, { key: "getBoundingClientRect", value: function (t) { var e = t.getBoundingClientRect(); return { top: e.top, right: e.right, bottom: e.bottom, left: e.left, width: t.clientWidth, height: t.clientHeight, x: e.left, y: e.top } } }, { key: "getLargestStringFromArr", value: function (t) { return t.reduce((function (t, e) { return Array.isArray(e) && (e = e.reduce((function (t, e) { return t.length > e.length ? t : e }))), t.length > e.length ? t : e }), 0) } }, { key: "hexToRgba", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "#999999", e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .6; "#" !== t.substring(0, 1) && (t = "#999999"); var i = t.replace("#", ""); i = i.match(new RegExp("(.{" + i.length / 3 + "})", "g")); for (var a = 0; a < i.length; a++)i[a] = parseInt(1 === i[a].length ? i[a] + i[a] : i[a], 16); return void 0 !== e && i.push(e), "rgba(" + i.join(",") + ")" } }, { key: "getOpacityFromRGBA", value: function (t) { return parseFloat(t.replace(/^.*,(.+)\)/, "$1")) } }, { key: "rgb2hex", value: function (t) { return (t = t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)) && 4 === t.length ? "#" + ("0" + parseInt(t[1], 10).toString(16)).slice(-2) + ("0" + parseInt(t[2], 10).toString(16)).slice(-2) + ("0" + parseInt(t[3], 10).toString(16)).slice(-2) : "" } }, { key: "isColorHex", value: function (t) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t) } }, { key: "getPolygonPos", value: function (t, e) { for (var i = [], a = 2 * Math.PI / e, s = 0; s < e; s++) { var r = {}; r.x = t * Math.sin(s * a), r.y = -t * Math.cos(s * a), i.push(r) } return i } }, { key: "polarToCartesian", value: function (t, e, i, a) { var s = (a - 90) * Math.PI / 180; return { x: t + i * Math.cos(s), y: e + i * Math.sin(s) } } }, { key: "escapeString", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "x", i = t.toString().slice(); return i = i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi, e) } }, { key: "negToZero", value: function (t) { return t < 0 ? 0 : t } }, { key: "moveIndexInArray", value: function (t, e, i) { if (i >= t.length) for (var a = i - t.length + 1; a--;)t.push(void 0); return t.splice(i, 0, t.splice(e, 1)[0]), t } }, { key: "extractNumber", value: function (t) { return parseFloat(t.replace(/[^\d.]*/g, "")) } }, { key: "findAncestor", value: function (t, e) { for (; (t = t.parentElement) && !t.classList.contains(e);); return t } }, { key: "setELstyles", value: function (t, e) { for (var i in e) e.hasOwnProperty(i) && (t.style.key = e[i]) } }, { key: "isNumber", value: function (t) { return !isNaN(t) && parseFloat(Number(t)) === t && !isNaN(parseInt(t, 10)) } }, { key: "isFloat", value: function (t) { return Number(t) === t && t % 1 != 0 } }, { key: "isSafari", value: function () { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent) } }, { key: "isFirefox", value: function () { return navigator.userAgent.toLowerCase().indexOf("firefox") > -1 } }, { key: "isIE11", value: function () { if (-1 !== window.navigator.userAgent.indexOf("MSIE") || window.navigator.appVersion.indexOf("Trident/") > -1) return !0 } }, { key: "isIE", value: function () { var t = window.navigator.userAgent, e = t.indexOf("MSIE "); if (e > 0) return parseInt(t.substring(e + 5, t.indexOf(".", e)), 10); if (t.indexOf("Trident/") > 0) { var i = t.indexOf("rv:"); return parseInt(t.substring(i + 3, t.indexOf(".", i)), 10) } var a = t.indexOf("Edge/"); return a > 0 && parseInt(t.substring(a + 5, t.indexOf(".", a)), 10) } }, { key: "getGCD", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 7, a = Math.pow(10, i - Math.floor(Math.log10(Math.max(t, e)))); for (t = Math.round(Math.abs(t) * a), e = Math.round(Math.abs(e) * a); e;) { var s = e; e = t % e, t = s } return t / a } }, { key: "getPrimeFactors", value: function (t) { for (var e = [], i = 2; t >= 2;)t % i == 0 ? (e.push(i), t /= i) : i++; return e } }, { key: "mod", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 7, a = Math.pow(10, i - Math.floor(Math.log10(Math.max(t, e)))); return (t = Math.round(Math.abs(t) * a)) % (e = Math.round(Math.abs(e) * a)) / a } }]), t }(), b = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.setEasingFunctions() } return r(t, [{ key: "setEasingFunctions", value: function () { var t; if (!this.w.globals.easing) { switch (this.w.config.chart.animations.easing) { case "linear": t = "-"; break; case "easein": t = "<"; break; case "easeout": t = ">"; break; case "easeinout": default: t = "<>"; break; case "swing": t = function (t) { var e = 1.70158; return (t -= 1) * t * ((e + 1) * t + e) + 1 }; break; case "bounce": t = function (t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }; break; case "elastic": t = function (t) { return t === !!t ? t : Math.pow(2, -10 * t) * Math.sin((t - .075) * (2 * Math.PI) / .3) + 1 } }this.w.globals.easing = t } } }, { key: "animateLine", value: function (t, e, i, a) { t.attr(e).animate(a).attr(i) } }, { key: "animateMarker", value: function (t, e, i, a, s, r) { e || (e = 0), t.attr({ r: e, width: e, height: e }).animate(a, s).attr({ r: i, width: i.width, height: i.height }).afterAll((function () { r() })) } }, { key: "animateCircle", value: function (t, e, i, a, s) { t.attr({ r: e.r, cx: e.cx, cy: e.cy }).animate(a, s).attr({ r: i.r, cx: i.cx, cy: i.cy }) } }, { key: "animateRect", value: function (t, e, i, a, s) { t.attr(e).animate(a).attr(i).afterAll((function () { return s() })) } }, { key: "animatePathsGradually", value: function (t) { var e = t.el, i = t.realIndex, a = t.j, s = t.fill, r = t.pathFrom, o = t.pathTo, n = t.speed, l = t.delay, h = this.w, c = 0; h.config.chart.animations.animateGradually.enabled && (c = h.config.chart.animations.animateGradually.delay), h.config.chart.animations.dynamicAnimation.enabled && h.globals.dataChanged && "bar" !== h.config.chart.type && (c = 0), this.morphSVG(e, i, a, "line" !== h.config.chart.type || h.globals.comboCharts ? s : "stroke", r, o, n, l * c) } }, { key: "showDelayedElements", value: function () { this.w.globals.delayedElements.forEach((function (t) { var e = t.el; e.classList.remove("apexcharts-element-hidden"), e.classList.add("apexcharts-hidden-element-shown") })) } }, { key: "animationCompleted", value: function (t) { var e = this.w; e.globals.animationEnded || (e.globals.animationEnded = !0, this.showDelayedElements(), "function" == typeof e.config.chart.events.animationEnd && e.config.chart.events.animationEnd(this.ctx, { el: t, w: e })) } }, { key: "morphSVG", value: function (t, e, i, a, s, r, o, n) { var l = this, h = this.w; s || (s = t.attr("pathFrom")), r || (r = t.attr("pathTo")); var c = function (t) { return "radar" === h.config.chart.type && (o = 1), "M 0 ".concat(h.globals.gridHeight) }; (!s || s.indexOf("undefined") > -1 || s.indexOf("NaN") > -1) && (s = c()), (!r || r.indexOf("undefined") > -1 || r.indexOf("NaN") > -1) && (r = c()), h.globals.shouldAnimate || (o = 1), t.plot(s).animate(1, h.globals.easing, n).plot(s).animate(o, h.globals.easing, n).plot(r).afterAll((function () { x.isNumber(i) ? i === h.globals.series[h.globals.maxValsInArrayIndex].length - 2 && h.globals.shouldAnimate && l.animationCompleted(t) : "none" !== a && h.globals.shouldAnimate && (!h.globals.comboCharts && e === h.globals.series.length - 1 || h.globals.comboCharts) && l.animationCompleted(t), l.showDelayedElements() })) } }]), t }(), v = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "getDefaultFilter", value: function (t, e) { var i = this.w; t.unfilter(!0), (new window.SVG.Filter).size("120%", "180%", "-5%", "-40%"), "none" !== i.config.states.normal.filter ? this.applyFilter(t, e, i.config.states.normal.filter.type, i.config.states.normal.filter.value) : i.config.chart.dropShadow.enabled && this.dropShadow(t, i.config.chart.dropShadow, e) } }, { key: "addNormalFilter", value: function (t, e) { var i = this.w; i.config.chart.dropShadow.enabled && !t.node.classList.contains("apexcharts-marker") && this.dropShadow(t, i.config.chart.dropShadow, e) } }, { key: "addLightenFilter", value: function (t, e, i) { var a = this, s = this.w, r = i.intensity; t.unfilter(!0); new window.SVG.Filter; t.filter((function (t) { var i = s.config.chart.dropShadow; (i.enabled ? a.addShadow(t, e, i) : t).componentTransfer({ rgb: { type: "linear", slope: 1.5, intercept: r } }) })), t.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t.filterer.node) } }, { key: "addDarkenFilter", value: function (t, e, i) { var a = this, s = this.w, r = i.intensity; t.unfilter(!0); new window.SVG.Filter; t.filter((function (t) { var i = s.config.chart.dropShadow; (i.enabled ? a.addShadow(t, e, i) : t).componentTransfer({ rgb: { type: "linear", slope: r } }) })), t.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t.filterer.node) } }, { key: "applyFilter", value: function (t, e, i) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : .5; switch (i) { case "none": this.addNormalFilter(t, e); break; case "lighten": this.addLightenFilter(t, e, { intensity: a }); break; case "darken": this.addDarkenFilter(t, e, { intensity: a }) } } }, { key: "addShadow", value: function (t, e, i) { var a, s = this.w, r = i.blur, o = i.top, n = i.left, l = i.color, h = i.opacity; if ((null === (a = s.config.chart.dropShadow.enabledOnSeries) || void 0 === a ? void 0 : a.length) > 0 && -1 === s.config.chart.dropShadow.enabledOnSeries.indexOf(e)) return t; var c = t.flood(Array.isArray(l) ? l[e] : l, h).composite(t.sourceAlpha, "in").offset(n, o).gaussianBlur(r).merge(t.source); return t.blend(t.source, c) } }, { key: "dropShadow", value: function (t, e) { var i, a, s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = e.top, o = e.left, n = e.blur, l = e.color, h = e.opacity, c = e.noUserSpaceOnUse, d = this.w; if (t.unfilter(!0), x.isIE() && "radialBar" === d.config.chart.type) return t; if ((null === (i = d.config.chart.dropShadow.enabledOnSeries) || void 0 === i ? void 0 : i.length) > 0 && -1 === (null === (a = d.config.chart.dropShadow.enabledOnSeries) || void 0 === a ? void 0 : a.indexOf(s))) return t; return l = Array.isArray(l) ? l[s] : l, t.filter((function (t) { var e = null; e = x.isSafari() || x.isFirefox() || x.isIE() ? t.flood(l, h).composite(t.sourceAlpha, "in").offset(o, r).gaussianBlur(n) : t.flood(l, h).composite(t.sourceAlpha, "in").offset(o, r).gaussianBlur(n).merge(t.source), t.blend(t.source, e) })), c || t.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t.filterer.node), t } }, { key: "setSelectionFilter", value: function (t, e, i) { var a = this.w; if (void 0 !== a.globals.selectedDataPoints[e] && a.globals.selectedDataPoints[e].indexOf(i) > -1) { t.node.setAttribute("selected", !0); var s = a.config.states.active.filter; "none" !== s && this.applyFilter(t, e, s.type, s.value) } } }, { key: "_scaleFilterSize", value: function (t) { !function (e) { for (var i in e) e.hasOwnProperty(i) && t.setAttribute(i, e[i]) }({ width: "200%", height: "200%", x: "-50%", y: "-50%" }) } }]), t }(), m = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "roundPathCorners", value: function (t, e) { function i(t, e, i) { var s = e.x - t.x, r = e.y - t.y, o = Math.sqrt(s * s + r * r); return a(t, e, Math.min(1, i / o)) } function a(t, e, i) { return { x: t.x + (e.x - t.x) * i, y: t.y + (e.y - t.y) * i } } function s(t, e) { t.length > 2 && (t[t.length - 2] = e.x, t[t.length - 1] = e.y) } function r(t) { return { x: parseFloat(t[t.length - 2]), y: parseFloat(t[t.length - 1]) } } t.indexOf("NaN") > -1 && (t = ""); var o = t.split(/[,\s]/).reduce((function (t, e) { var i = e.match("([a-zA-Z])(.+)"); return i ? (t.push(i[1]), t.push(i[2])) : t.push(e), t }), []).reduce((function (t, e) { return parseFloat(e) == e && t.length ? t[t.length - 1].push(e) : t.push([e]), t }), []), n = []; if (o.length > 1) { var l = r(o[0]), h = null; "Z" == o[o.length - 1][0] && o[0].length > 2 && (h = ["L", l.x, l.y], o[o.length - 1] = h), n.push(o[0]); for (var c = 1; c < o.length; c++) { var d = n[n.length - 1], g = o[c], u = g == h ? o[1] : o[c + 1]; if (u && d && d.length > 2 && "L" == g[0] && u.length > 2 && "L" == u[0]) { var p, f, x = r(d), b = r(g), v = r(u); p = i(b, x, e), f = i(b, v, e), s(g, p), g.origPoint = b, n.push(g); var m = a(p, b, .5), y = a(b, f, .5), w = ["C", m.x, m.y, y.x, y.y, f.x, f.y]; w.origPoint = b, n.push(w) } else n.push(g) } if (h) { var k = r(n[n.length - 1]); n.push(["Z"]), s(n[0], k) } } else n = o; return n.reduce((function (t, e) { return t + e.join(" ") + " " }), "") } }, { key: "drawLine", value: function (t, e, i, a) { var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : "#a8a8a8", r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, o = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, n = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : "butt"; return this.w.globals.dom.Paper.line().attr({ x1: t, y1: e, x2: i, y2: a, stroke: s, "stroke-dasharray": r, "stroke-width": o, "stroke-linecap": n }) } }, { key: "drawRect", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "#fefefe", o = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 1, n = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null, l = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : null, h = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, c = this.w.globals.dom.Paper.rect(); return c.attr({ x: t, y: e, width: i > 0 ? i : 0, height: a > 0 ? a : 0, rx: s, ry: s, opacity: o, "stroke-width": null !== n ? n : 0, stroke: null !== l ? l : "none", "stroke-dasharray": h }), c.node.setAttribute("fill", r), c } }, { key: "drawPolygon", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "#e1e1e1", i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "none"; return this.w.globals.dom.Paper.polygon(t).attr({ fill: a, stroke: e, "stroke-width": i }) } }, { key: "drawCircle", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; t < 0 && (t = 0); var i = this.w.globals.dom.Paper.circle(2 * t); return null !== e && i.attr(e), i } }, { key: "drawPath", value: function (t) { var e = t.d, i = void 0 === e ? "" : e, a = t.stroke, s = void 0 === a ? "#a8a8a8" : a, r = t.strokeWidth, o = void 0 === r ? 1 : r, n = t.fill, l = t.fillOpacity, h = void 0 === l ? 1 : l, c = t.strokeOpacity, d = void 0 === c ? 1 : c, g = t.classes, u = t.strokeLinecap, p = void 0 === u ? null : u, f = t.strokeDashArray, x = void 0 === f ? 0 : f, b = this.w; return null === p && (p = b.config.stroke.lineCap), (i.indexOf("undefined") > -1 || i.indexOf("NaN") > -1) && (i = "M 0 ".concat(b.globals.gridHeight)), b.globals.dom.Paper.path(i).attr({ fill: n, "fill-opacity": h, stroke: s, "stroke-opacity": d, "stroke-linecap": p, "stroke-width": o, "stroke-dasharray": x, class: g }) } }, { key: "group", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e = this.w.globals.dom.Paper.group(); return null !== t && e.attr(t), e } }, { key: "move", value: function (t, e) { var i = ["M", t, e].join(" "); return i } }, { key: "line", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = null; return null === i ? a = [" L", t, e].join(" ") : "H" === i ? a = [" H", t].join(" ") : "V" === i && (a = [" V", e].join(" ")), a } }, { key: "curve", value: function (t, e, i, a, s, r) { var o = ["C", t, e, i, a, s, r].join(" "); return o } }, { key: "quadraticCurve", value: function (t, e, i, a) { return ["Q", t, e, i, a].join(" ") } }, { key: "arc", value: function (t, e, i, a, s, r, o) { var n = "A"; arguments.length > 7 && void 0 !== arguments[7] && arguments[7] && (n = "a"); var l = [n, t, e, i, a, s, r, o].join(" "); return l } }, { key: "renderPaths", value: function (t) { var i, a = t.j, s = t.realIndex, r = t.pathFrom, o = t.pathTo, n = t.stroke, l = t.strokeWidth, h = t.strokeLinecap, c = t.fill, d = t.animationDelay, g = t.initialSpeed, u = t.dataChangeSpeed, p = t.className, f = t.shouldClipToGrid, x = void 0 === f || f, m = t.bindEventsOnPaths, y = void 0 === m || m, w = t.drawShadow, k = void 0 === w || w, A = this.w, S = new v(this.ctx), C = new b(this.ctx), L = this.w.config.chart.animations.enabled, P = L && this.w.config.chart.animations.dynamicAnimation.enabled, M = !!(L && !A.globals.resized || P && A.globals.dataChanged && A.globals.shouldAnimate); M ? i = r : (i = o, A.globals.animationEnded = !0); var I = A.config.stroke.dashArray, T = 0; T = Array.isArray(I) ? I[s] : A.config.stroke.dashArray; var z = this.drawPath({ d: i, stroke: n, strokeWidth: l, fill: c, fillOpacity: 1, classes: p, strokeLinecap: h, strokeDashArray: T }); if (z.attr("index", s), x && z.attr({ "clip-path": "url(#gridRectMask".concat(A.globals.cuid, ")") }), "none" !== A.config.states.normal.filter.type) S.getDefaultFilter(z, s); else if (A.config.chart.dropShadow.enabled && k) { var X = A.config.chart.dropShadow; S.dropShadow(z, X, s) } y && (z.node.addEventListener("mouseenter", this.pathMouseEnter.bind(this, z)), z.node.addEventListener("mouseleave", this.pathMouseLeave.bind(this, z)), z.node.addEventListener("mousedown", this.pathMouseDown.bind(this, z))), z.attr({ pathTo: o, pathFrom: r }); var E = { el: z, j: a, realIndex: s, pathFrom: r, pathTo: o, fill: c, strokeWidth: l, delay: d }; return !L || A.globals.resized || A.globals.dataChanged ? !A.globals.resized && A.globals.dataChanged || C.showDelayedElements() : C.animatePathsGradually(e(e({}, E), {}, { speed: g })), A.globals.dataChanged && P && M && C.animatePathsGradually(e(e({}, E), {}, { speed: u })), z } }, { key: "drawPattern", value: function (t, e, i) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "#a8a8a8", s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0; return this.w.globals.dom.Paper.pattern(e, i, (function (r) { "horizontalLines" === t ? r.line(0, 0, i, 0).stroke({ color: a, width: s + 1 }) : "verticalLines" === t ? r.line(0, 0, 0, e).stroke({ color: a, width: s + 1 }) : "slantedLines" === t ? r.line(0, 0, e, i).stroke({ color: a, width: s }) : "squares" === t ? r.rect(e, i).fill("none").stroke({ color: a, width: s }) : "circles" === t && r.circle(e).fill("none").stroke({ color: a, width: s }) })) } }, { key: "drawGradient", value: function (t, e, i, a, s) { var r, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, n = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null, h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, c = this.w; e.length < 9 && 0 === e.indexOf("#") && (e = x.hexToRgba(e, a)), i.length < 9 && 0 === i.indexOf("#") && (i = x.hexToRgba(i, s)); var d = 0, g = 1, u = 1, p = null; null !== n && (d = void 0 !== n[0] ? n[0] / 100 : 0, g = void 0 !== n[1] ? n[1] / 100 : 1, u = void 0 !== n[2] ? n[2] / 100 : 1, p = void 0 !== n[3] ? n[3] / 100 : null); var f = !("donut" !== c.config.chart.type && "pie" !== c.config.chart.type && "polarArea" !== c.config.chart.type && "bubble" !== c.config.chart.type); if (r = null === l || 0 === l.length ? c.globals.dom.Paper.gradient(f ? "radial" : "linear", (function (t) { t.at(d, e, a), t.at(g, i, s), t.at(u, i, s), null !== p && t.at(p, e, a) })) : c.globals.dom.Paper.gradient(f ? "radial" : "linear", (function (t) { (Array.isArray(l[h]) ? l[h] : l).forEach((function (e) { t.at(e.offset / 100, e.color, e.opacity) })) })), f) { var b = c.globals.gridWidth / 2, v = c.globals.gridHeight / 2; "bubble" !== c.config.chart.type ? r.attr({ gradientUnits: "userSpaceOnUse", cx: b, cy: v, r: o }) : r.attr({ cx: .5, cy: .5, r: .8, fx: .2, fy: .2 }) } else "vertical" === t ? r.from(0, 0).to(0, 1) : "diagonal" === t ? r.from(0, 0).to(1, 1) : "horizontal" === t ? r.from(0, 1).to(1, 1) : "diagonal2" === t && r.from(1, 0).to(0, 1); return r } }, { key: "getTextBasedOnMaxWidth", value: function (t) { var e = t.text, i = t.maxWidth, a = t.fontSize, s = t.fontFamily, r = this.getTextRects(e, a, s), o = r.width / e.length, n = Math.floor(i / o); return i < r.width ? e.slice(0, n - 3) + "..." : e } }, { key: "drawText", value: function (t) { var i = this, a = t.x, s = t.y, r = t.text, o = t.textAnchor, n = t.fontSize, l = t.fontFamily, h = t.fontWeight, c = t.foreColor, d = t.opacity, g = t.maxWidth, u = t.cssClass, p = void 0 === u ? "" : u, f = t.isPlainText, x = void 0 === f || f, b = t.dominantBaseline, v = void 0 === b ? "auto" : b, m = this.w; void 0 === r && (r = ""); var y = r; o || (o = "start"), c && c.length || (c = m.config.chart.foreColor), l = l || m.config.chart.fontFamily, h = h || "regular"; var w, k = { maxWidth: g, fontSize: n = n || "11px", fontFamily: l }; return Array.isArray(r) ? w = m.globals.dom.Paper.text((function (t) { for (var a = 0; a < r.length; a++)y = r[a], g && (y = i.getTextBasedOnMaxWidth(e({ text: r[a] }, k))), 0 === a ? t.tspan(y) : t.tspan(y).newLine() })) : (g && (y = this.getTextBasedOnMaxWidth(e({ text: r }, k))), w = x ? m.globals.dom.Paper.plain(r) : m.globals.dom.Paper.text((function (t) { return t.tspan(y) }))), w.attr({ x: a, y: s, "text-anchor": o, "dominant-baseline": v, "font-size": n, "font-family": l, "font-weight": h, fill: c, class: "apexcharts-text " + p }), w.node.style.fontFamily = l, w.node.style.opacity = d, w } }, { key: "createGroupWithAttributes", value: function (t, e, i, a) { var s = this.group(); return i.forEach((function (t) { return s.add(t) })), s.attr({ class: a.class ? a.class : "", cy: e, cx: t }), s } }, { key: "drawPlus", value: function (t, e, i, a) { var s = i / 2, r = this.drawLine(t, e - s, t, e + s, a.pointStrokeColor, a.pointStrokeDashArray, a.pointStrokeWidth, a.pointStrokeLineCap), o = this.drawLine(t - s, e, t + s, e, a.pointStrokeColor, a.pointStrokeDashArray, a.pointStrokeWidth, a.pointStrokeLineCap); return this.createGroupWithAttributes(t, e, [r, o], a) } }, { key: "drawX", value: function (t, e, i, a) { var s = i / 2, r = this.drawLine(t - s, e - s, t + s, e + s, a.pointStrokeColor, a.pointStrokeDashArray, a.pointStrokeWidth, a.pointStrokeLineCap), o = this.drawLine(t - s, e + s, t + s, e - s, a.pointStrokeColor, a.pointStrokeDashArray, a.pointStrokeWidth, a.pointStrokeLineCap); return this.createGroupWithAttributes(t, e, [r, o], a) } }, { key: "drawMarker", value: function (t, e, i) { t = t || 0; var a = i.pSize || 0, s = null; if ("X" === (null == i ? void 0 : i.shape) || "x" === (null == i ? void 0 : i.shape)) s = this.drawX(t, e, a, i); else if ("plus" === (null == i ? void 0 : i.shape) || "+" === (null == i ? void 0 : i.shape)) s = this.drawPlus(t, e, a, i); else if ("square" === i.shape || "rect" === i.shape) { var r = void 0 === i.pRadius ? a / 2 : i.pRadius; null !== e && a || (a = 0, r = 0); var o = 1.2 * a + r, n = this.drawRect(o, o, o, o, r); n.attr({ x: t - o / 2, y: e - o / 2, cx: t, cy: e, class: i.class ? i.class : "", fill: i.pointFillColor, "fill-opacity": i.pointFillOpacity ? i.pointFillOpacity : 1, stroke: i.pointStrokeColor, "stroke-width": i.pointStrokeWidth ? i.pointStrokeWidth : 0, "stroke-opacity": i.pointStrokeOpacity ? i.pointStrokeOpacity : 1 }), s = n } else "circle" !== i.shape && i.shape || (x.isNumber(e) || (a = 0, e = 0), s = this.drawCircle(a, { cx: t, cy: e, class: i.class ? i.class : "", stroke: i.pointStrokeColor, fill: i.pointFillColor, "fill-opacity": i.pointFillOpacity ? i.pointFillOpacity : 1, "stroke-width": i.pointStrokeWidth ? i.pointStrokeWidth : 0, "stroke-opacity": i.pointStrokeOpacity ? i.pointStrokeOpacity : 1 })); return s } }, { key: "pathMouseEnter", value: function (t, e) { var i = this.w, a = new v(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), r = parseInt(t.node.getAttribute("j"), 10); if ("function" == typeof i.config.chart.events.dataPointMouseEnter && i.config.chart.events.dataPointMouseEnter(e, this.ctx, { seriesIndex: s, dataPointIndex: r, w: i }), this.ctx.events.fireEvent("dataPointMouseEnter", [e, this.ctx, { seriesIndex: s, dataPointIndex: r, w: i }]), ("none" === i.config.states.active.filter.type || "true" !== t.node.getAttribute("selected")) && "none" !== i.config.states.hover.filter.type && !i.globals.isTouchDevice) { var o = i.config.states.hover.filter; a.applyFilter(t, s, o.type, o.value) } } }, { key: "pathMouseLeave", value: function (t, e) { var i = this.w, a = new v(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), r = parseInt(t.node.getAttribute("j"), 10); "function" == typeof i.config.chart.events.dataPointMouseLeave && i.config.chart.events.dataPointMouseLeave(e, this.ctx, { seriesIndex: s, dataPointIndex: r, w: i }), this.ctx.events.fireEvent("dataPointMouseLeave", [e, this.ctx, { seriesIndex: s, dataPointIndex: r, w: i }]), "none" !== i.config.states.active.filter.type && "true" === t.node.getAttribute("selected") || "none" !== i.config.states.hover.filter.type && a.getDefaultFilter(t, s) } }, { key: "pathMouseDown", value: function (t, e) { var i = this.w, a = new v(this.ctx), s = parseInt(t.node.getAttribute("index"), 10), r = parseInt(t.node.getAttribute("j"), 10), o = "false"; if ("true" === t.node.getAttribute("selected")) { if (t.node.setAttribute("selected", "false"), i.globals.selectedDataPoints[s].indexOf(r) > -1) { var n = i.globals.selectedDataPoints[s].indexOf(r); i.globals.selectedDataPoints[s].splice(n, 1) } } else { if (!i.config.states.active.allowMultipleDataPointsSelection && i.globals.selectedDataPoints.length > 0) { i.globals.selectedDataPoints = []; var l = i.globals.dom.Paper.select(".apexcharts-series path").members, h = i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members, c = function (t) { Array.prototype.forEach.call(t, (function (t) { t.node.setAttribute("selected", "false"), a.getDefaultFilter(t, s) })) }; c(l), c(h) } t.node.setAttribute("selected", "true"), o = "true", void 0 === i.globals.selectedDataPoints[s] && (i.globals.selectedDataPoints[s] = []), i.globals.selectedDataPoints[s].push(r) } if ("true" === o) { var d = i.config.states.active.filter; if ("none" !== d) a.applyFilter(t, s, d.type, d.value); else if ("none" !== i.config.states.hover.filter && !i.globals.isTouchDevice) { var g = i.config.states.hover.filter; a.applyFilter(t, s, g.type, g.value) } } else if ("none" !== i.config.states.active.filter.type) if ("none" === i.config.states.hover.filter.type || i.globals.isTouchDevice) a.getDefaultFilter(t, s); else { g = i.config.states.hover.filter; a.applyFilter(t, s, g.type, g.value) } "function" == typeof i.config.chart.events.dataPointSelection && i.config.chart.events.dataPointSelection(e, this.ctx, { selectedDataPoints: i.globals.selectedDataPoints, seriesIndex: s, dataPointIndex: r, w: i }), e && this.ctx.events.fireEvent("dataPointSelection", [e, this.ctx, { selectedDataPoints: i.globals.selectedDataPoints, seriesIndex: s, dataPointIndex: r, w: i }]) } }, { key: "rotateAroundCenter", value: function (t) { var e = {}; return t && "function" == typeof t.getBBox && (e = t.getBBox()), { x: e.x + e.width / 2, y: e.y + e.height / 2 } } }, { key: "getTextRects", value: function (t, e, i, a) { var s = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], r = this.w, o = this.drawText({ x: -200, y: -200, text: t, textAnchor: "start", fontSize: e, fontFamily: i, foreColor: "#fff", opacity: 0 }); a && o.attr("transform", a), r.globals.dom.Paper.add(o); var n = o.bbox(); return s || (n = o.node.getBoundingClientRect()), o.remove(), { width: n.width, height: n.height } } }, { key: "placeTextWithEllipsis", value: function (t, e, i) { if ("function" == typeof t.getComputedTextLength && (t.textContent = e, e.length > 0 && t.getComputedTextLength() >= i / 1.1)) { for (var a = e.length - 3; a > 0; a -= 3)if (t.getSubStringLength(0, a) <= i / 1.1) return void (t.textContent = e.substring(0, a) + "..."); t.textContent = "." } } }], [{ key: "setAttrs", value: function (t, e) { for (var i in e) e.hasOwnProperty(i) && t.setAttribute(i, e[i]) } }]), t }(), y = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "getStackedSeriesTotals", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e = this.w, i = []; if (0 === e.globals.series.length) return i; for (var a = 0; a < e.globals.series[e.globals.maxValsInArrayIndex].length; a++) { for (var s = 0, r = 0; r < e.globals.series.length; r++)void 0 !== e.globals.series[r][a] && -1 === t.indexOf(r) && (s += e.globals.series[r][a]); i.push(s) } return i } }, { key: "getSeriesTotalByIndex", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; return null === t ? this.w.config.series.reduce((function (t, e) { return t + e }), 0) : this.w.globals.series[t].reduce((function (t, e) { return t + e }), 0) } }, { key: "getStackedSeriesTotalsByGroups", value: function () { var t = this, e = this.w, i = []; return e.globals.seriesGroups.forEach((function (a) { var s = []; e.config.series.forEach((function (t, i) { a.indexOf(e.globals.seriesNames[i]) > -1 && s.push(i) })); var r = e.globals.series.map((function (t, e) { return -1 === s.indexOf(e) ? e : -1 })).filter((function (t) { return -1 !== t })); i.push(t.getStackedSeriesTotals(r)) })), i } }, { key: "setSeriesYAxisMappings", value: function () { var t = this.w.globals, e = this.w.config, i = [], a = [], s = [], r = t.series.length > e.yaxis.length || e.yaxis.some((function (t) { return Array.isArray(t.seriesName) })); e.series.forEach((function (t, e) { s.push(e), a.push(null) })), e.yaxis.forEach((function (t, e) { i[e] = [] })); var o = []; e.yaxis.forEach((function (t, a) { var n = !1; if (t.seriesName) { var l = []; Array.isArray(t.seriesName) ? l = t.seriesName : l.push(t.seriesName), l.forEach((function (t) { e.series.forEach((function (e, o) { if (e.name === t) { var l = o; a === o || r ? !r || s.indexOf(o) > -1 ? i[a].push([a, o]) : console.warn("Series '" + e.name + "' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes.") : (i[o].push([o, a]), l = a), n = !0, -1 !== (l = s.indexOf(l)) && s.splice(l, 1) } })) })) } n || o.push(a) })), i = i.map((function (t, e) { var i = []; return t.forEach((function (t) { a[t[1]] = t[0], i.push(t[1]) })), i })); for (var n = e.yaxis.length - 1, l = 0; l < o.length && (n = o[l], i[n] = [], s); l++) { var h = s[0]; s.shift(), i[n].push(h), a[h] = n } s.forEach((function (t) { i[n].push(t), a[t] = n })), t.seriesYAxisMap = i.map((function (t) { return t })), t.seriesYAxisReverseMap = a.map((function (t) { return t })), t.seriesYAxisMap.forEach((function (t, i) { t.forEach((function (t) { e.series[t] && void 0 === e.series[t].group && (e.series[t].group = "apexcharts-axis-".concat(i.toString())) })) })) } }, { key: "isSeriesNull", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; return 0 === (null === t ? this.w.config.series.filter((function (t) { return null !== t })) : this.w.config.series[t].data.filter((function (t) { return null !== t }))).length } }, { key: "seriesHaveSameValues", value: function (t) { return this.w.globals.series[t].every((function (t, e, i) { return t === i[0] })) } }, { key: "getCategoryLabels", value: function (t) { var e = this.w, i = t.slice(); return e.config.xaxis.convertedCatToNumeric && (i = t.map((function (t, i) { return e.config.xaxis.labels.formatter(t - e.globals.minX + 1) }))), i } }, { key: "getLargestSeries", value: function () { var t = this.w; t.globals.maxValsInArrayIndex = t.globals.series.map((function (t) { return t.length })).indexOf(Math.max.apply(Math, t.globals.series.map((function (t) { return t.length })))) } }, { key: "getLargestMarkerSize", value: function () { var t = this.w, e = 0; return t.globals.markers.size.forEach((function (t) { e = Math.max(e, t) })), t.config.markers.discrete && t.config.markers.discrete.length && t.config.markers.discrete.forEach((function (t) { e = Math.max(e, t.size) })), e > 0 && (e += t.config.markers.hover.sizeOffset + 1), t.globals.markers.largestSize = e, e } }, { key: "getSeriesTotals", value: function () { var t = this.w; t.globals.seriesTotals = t.globals.series.map((function (t, e) { var i = 0; if (Array.isArray(t)) for (var a = 0; a < t.length; a++)i += t[a]; else i += t; return i })) } }, { key: "getSeriesTotalsXRange", value: function (t, e) { var i = this.w; return i.globals.series.map((function (a, s) { for (var r = 0, o = 0; o < a.length; o++)i.globals.seriesX[s][o] > t && i.globals.seriesX[s][o] < e && (r += a[o]); return r })) } }, { key: "getPercentSeries", value: function () { var t = this.w; t.globals.seriesPercent = t.globals.series.map((function (e, i) { var a = []; if (Array.isArray(e)) for (var s = 0; s < e.length; s++) { var r = t.globals.stackedSeriesTotals[s], o = 0; r && (o = 100 * e[s] / r), a.push(o) } else { var n = 100 * e / t.globals.seriesTotals.reduce((function (t, e) { return t + e }), 0); a.push(n) } return a })) } }, { key: "getCalculatedRatios", value: function () { var t, e, i, a = this, s = this.w, r = s.globals, o = [], n = 0, l = [], h = .1, c = 0; if (r.yRange = [], r.isMultipleYAxis) for (var d = 0; d < r.minYArr.length; d++)r.yRange.push(Math.abs(r.minYArr[d] - r.maxYArr[d])), l.push(0); else r.yRange.push(Math.abs(r.minY - r.maxY)); r.xRange = Math.abs(r.maxX - r.minX), r.zRange = Math.abs(r.maxZ - r.minZ); for (var g = 0; g < r.yRange.length; g++)o.push(r.yRange[g] / r.gridHeight); if (e = r.xRange / r.gridWidth, t = r.yRange / r.gridWidth, i = r.xRange / r.gridHeight, (n = r.zRange / r.gridHeight * 16) || (n = 1), r.minY !== Number.MIN_VALUE && 0 !== Math.abs(r.minY) && (r.hasNegs = !0), s.globals.seriesYAxisReverseMap.length > 0) { var u = function (t, e) { var i = s.config.yaxis[s.globals.seriesYAxisReverseMap[e]], r = t < 0 ? -1 : 1; return t = Math.abs(t), i.logarithmic && (t = a.getBaseLog(i.logBase, t)), -r * t / o[e] }; if (r.isMultipleYAxis) { l = []; for (var p = 0; p < o.length; p++)l.push(u(r.minYArr[p], p)) } else (l = []).push(u(r.minY, 0)), r.minY !== Number.MIN_VALUE && 0 !== Math.abs(r.minY) && (h = -r.minY / t, c = r.minX / e) } else (l = []).push(0), h = 0, c = 0; return { yRatio: o, invertedYRatio: t, zRatio: n, xRatio: e, invertedXRatio: i, baseLineInvertedY: h, baseLineY: l, baseLineX: c } } }, { key: "getLogSeries", value: function (t) { var e = this, i = this.w; return i.globals.seriesLog = t.map((function (t, a) { var s = i.globals.seriesYAxisReverseMap[a]; return i.config.yaxis[s] && i.config.yaxis[s].logarithmic ? t.map((function (t) { return null === t ? null : e.getLogVal(i.config.yaxis[s].logBase, t, a) })) : t })), i.globals.invalidLogScale ? t : i.globals.seriesLog } }, { key: "getBaseLog", value: function (t, e) { return Math.log(e) / Math.log(t) } }, { key: "getLogVal", value: function (t, e, i) { if (e <= 0) return 0; var a = this.w, s = 0 === a.globals.minYArr[i] ? -1 : this.getBaseLog(t, a.globals.minYArr[i]), r = (0 === a.globals.maxYArr[i] ? 0 : this.getBaseLog(t, a.globals.maxYArr[i])) - s; return e < 1 ? e / r : (this.getBaseLog(t, e) - s) / r } }, { key: "getLogYRatios", value: function (t) { var e = this, i = this.w, a = this.w.globals; return a.yLogRatio = t.slice(), a.logYRange = a.yRange.map((function (t, s) { var r = i.globals.seriesYAxisReverseMap[s]; if (i.config.yaxis[r] && e.w.config.yaxis[r].logarithmic) { var o, n = -Number.MAX_VALUE, l = Number.MIN_VALUE; return a.seriesLog.forEach((function (t, e) { t.forEach((function (t) { i.config.yaxis[e] && i.config.yaxis[e].logarithmic && (n = Math.max(t, n), l = Math.min(t, l)) })) })), o = Math.pow(a.yRange[s], Math.abs(l - n) / a.yRange[s]), a.yLogRatio[s] = o / a.gridHeight, o } })), a.invalidLogScale ? t.slice() : a.yLogRatio } }, { key: "drawSeriesByGroup", value: function (t, e, i, a) { var s = this.w, r = []; return t.series.length > 0 && e.forEach((function (e) { var o = [], n = []; t.i.forEach((function (i, a) { s.config.series[i].group === e && (o.push(t.series[a]), n.push(i)) })), o.length > 0 && r.push(a.draw(o, i, n)) })), r } }], [{ key: "checkComboSeries", value: function (t, e) { var i = !1, a = 0, s = 0; return void 0 === e && (e = "line"), t.length && void 0 !== t[0].type && t.forEach((function (t) { "bar" !== t.type && "column" !== t.type && "candlestick" !== t.type && "boxPlot" !== t.type || a++, void 0 !== t.type && t.type !== e && s++ })), s > 0 && (i = !0), { comboBarCount: a, comboCharts: i } } }, { key: "extendArrayProps", value: function (t, e, i) { var a, s, r, o, n, l; (null !== (a = e) && void 0 !== a && a.yaxis && (e = t.extendYAxis(e, i)), null !== (s = e) && void 0 !== s && s.annotations) && (e.annotations.yaxis && (e = t.extendYAxisAnnotations(e)), null !== (r = e) && void 0 !== r && null !== (o = r.annotations) && void 0 !== o && o.xaxis && (e = t.extendXAxisAnnotations(e)), null !== (n = e) && void 0 !== n && null !== (l = n.annotations) && void 0 !== l && l.points && (e = t.extendPointAnnotations(e))); return e } }]), t }(), w = function () { function t(e) { a(this, t), this.w = e.w, this.annoCtx = e } return r(t, [{ key: "setOrientations", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i = this.w; if ("vertical" === t.label.orientation) { var a = null !== e ? e : 0, s = i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a, "']")); if (null !== s) { var r = s.getBoundingClientRect(); s.setAttribute("x", parseFloat(s.getAttribute("x")) - r.height + 4), "top" === t.label.position ? s.setAttribute("y", parseFloat(s.getAttribute("y")) + r.width) : s.setAttribute("y", parseFloat(s.getAttribute("y")) - r.width); var o = this.annoCtx.graphics.rotateAroundCenter(s), n = o.x, l = o.y; s.setAttribute("transform", "rotate(-90 ".concat(n, " ").concat(l, ")")) } } } }, { key: "addBackgroundToAnno", value: function (t, e) { var i = this.w; if (!t || void 0 === e.label.text || void 0 !== e.label.text && !String(e.label.text).trim()) return null; var a = i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(), s = t.getBoundingClientRect(), r = e.label.style.padding.left, o = e.label.style.padding.right, n = e.label.style.padding.top, l = e.label.style.padding.bottom; "vertical" === e.label.orientation && (n = e.label.style.padding.left, l = e.label.style.padding.right, r = e.label.style.padding.top, o = e.label.style.padding.bottom); var h = s.left - a.left - r, c = s.top - a.top - n, d = this.annoCtx.graphics.drawRect(h - i.globals.barPadForNumericAxis, c, s.width + r + o, s.height + n + l, e.label.borderRadius, e.label.style.background, 1, e.label.borderWidth, e.label.borderColor, 0); return e.id && d.node.classList.add(e.id), d } }, { key: "annotationsBackground", value: function () { var t = this, e = this.w, i = function (i, a, s) { var r = e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations .apexcharts-").concat(s, "-annotation-label[rel='").concat(a, "']")); if (r) { var o = r.parentNode, n = t.addBackgroundToAnno(r, i); n && (o.insertBefore(n.node, r), i.label.mouseEnter && n.node.addEventListener("mouseenter", i.label.mouseEnter.bind(t, i)), i.label.mouseLeave && n.node.addEventListener("mouseleave", i.label.mouseLeave.bind(t, i)), i.label.click && n.node.addEventListener("click", i.label.click.bind(t, i))) } }; e.config.annotations.xaxis.map((function (t, e) { i(t, e, "xaxis") })), e.config.annotations.yaxis.map((function (t, e) { i(t, e, "yaxis") })), e.config.annotations.points.map((function (t, e) { i(t, e, "point") })) } }, { key: "getY1Y2", value: function (t, e) { var i, a = "y1" === t ? e.y : e.y2, s = !1, r = this.w; if (this.annoCtx.invertAxis) { var o = r.globals.labels; r.config.xaxis.convertedCatToNumeric && (o = r.globals.categoryLabels); var n = o.indexOf(a), l = r.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child(" + (n + 1) + ")"); i = l ? parseFloat(l.getAttribute("y")) : (r.globals.gridHeight / o.length - 1) * (n + 1) - r.globals.barHeight, void 0 !== e.seriesIndex && r.globals.barHeight && (i = i - r.globals.barHeight / 2 * (r.globals.series.length - 1) + r.globals.barHeight * e.seriesIndex) } else { var h, c = r.globals.seriesYAxisMap[e.yAxisIndex][0]; if (r.config.yaxis[e.yAxisIndex].logarithmic) h = (a = new y(this.annoCtx.ctx).getLogVal(r.config.yaxis[e.yAxisIndex].logBase, a, c)) / r.globals.yLogRatio[c]; else h = (a - r.globals.minYArr[c]) / (r.globals.yRange[c] / r.globals.gridHeight); h > r.globals.gridHeight ? (h = r.globals.gridHeight, s = !0) : h < 0 && (h = 0, s = !0), i = r.globals.gridHeight - h, !e.marker || void 0 !== e.y && null !== e.y || (i = 0), r.config.yaxis[e.yAxisIndex] && r.config.yaxis[e.yAxisIndex].reversed && (i = h) } return "string" == typeof a && a.indexOf("px") > -1 && (i = parseFloat(a)), { yP: i, clipped: s } } }, { key: "getX1X2", value: function (t, e) { var i, a = "x1" === t ? e.x : e.x2, s = this.w, r = this.annoCtx.invertAxis ? s.globals.minY : s.globals.minX, o = this.annoCtx.invertAxis ? s.globals.maxY : s.globals.maxX, n = this.annoCtx.invertAxis ? s.globals.yRange[0] : s.globals.xRange, l = !1; return i = this.annoCtx.inversedReversedAxis ? (o - a) / (n / s.globals.gridWidth) : (a - r) / (n / s.globals.gridWidth), "category" !== s.config.xaxis.type && !s.config.xaxis.convertedCatToNumeric || this.annoCtx.invertAxis || s.globals.dataFormatXNumeric || s.config.chart.sparkline.enabled || (i = this.getStringX(a)), "string" == typeof a && a.indexOf("px") > -1 && (i = parseFloat(a)), null == a && e.marker && (i = s.globals.gridWidth), void 0 !== e.seriesIndex && s.globals.barWidth && !this.annoCtx.invertAxis && (i = i - s.globals.barWidth / 2 * (s.globals.series.length - 1) + s.globals.barWidth * e.seriesIndex), i > s.globals.gridWidth ? (i = s.globals.gridWidth, l = !0) : i < 0 && (i = 0, l = !0), { x: i, clipped: l } } }, { key: "getStringX", value: function (t) { var e = this.w, i = t; e.config.xaxis.convertedCatToNumeric && e.globals.categoryLabels.length && (t = e.globals.categoryLabels.indexOf(t) + 1); var a = e.globals.labels.indexOf(t), s = e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child(" + (a + 1) + ")"); return s && (i = parseFloat(s.getAttribute("x"))), i } }]), t }(), k = function () { function t(e) { a(this, t), this.w = e.w, this.annoCtx = e, this.invertAxis = this.annoCtx.invertAxis, this.helpers = new w(this.annoCtx) } return r(t, [{ key: "addXaxisAnnotation", value: function (t, e, i) { var a, s = this.w, r = this.helpers.getX1X2("x1", t), o = r.x, n = r.clipped, l = !0, h = t.label.text, c = t.strokeDashArray; if (x.isNumber(o)) { if (null === t.x2 || void 0 === t.x2) { if (!n) { var d = this.annoCtx.graphics.drawLine(o + t.offsetX, 0 + t.offsetY, o + t.offsetX, s.globals.gridHeight + t.offsetY, t.borderColor, c, t.borderWidth); e.appendChild(d.node), t.id && d.node.classList.add(t.id) } } else { var g = this.helpers.getX1X2("x2", t); if (a = g.x, l = g.clipped, !n || !l) { if (a < o) { var u = o; o = a, a = u } var p = this.annoCtx.graphics.drawRect(o + t.offsetX, 0 + t.offsetY, a - o, s.globals.gridHeight + t.offsetY, 0, t.fillColor, t.opacity, 1, t.borderColor, c); p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(s.globals.cuid, ")")), e.appendChild(p.node), t.id && p.node.classList.add(t.id) } } if (!n || !l) { var f = this.annoCtx.graphics.getTextRects(h, parseFloat(t.label.style.fontSize)), b = "top" === t.label.position ? 4 : "center" === t.label.position ? s.globals.gridHeight / 2 + ("vertical" === t.label.orientation ? f.width / 2 : 0) : s.globals.gridHeight, v = this.annoCtx.graphics.drawText({ x: o + t.label.offsetX, y: b + t.label.offsetY - ("vertical" === t.label.orientation ? "top" === t.label.position ? f.width / 2 - 12 : -f.width / 2 : 0), text: h, textAnchor: t.label.textAnchor, fontSize: t.label.style.fontSize, fontFamily: t.label.style.fontFamily, fontWeight: t.label.style.fontWeight, foreColor: t.label.style.color, cssClass: "apexcharts-xaxis-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") }); v.attr({ rel: i }), e.appendChild(v.node), this.annoCtx.helpers.setOrientations(t, i) } } } }, { key: "drawXAxisAnnotations", value: function () { var t = this, e = this.w, i = this.annoCtx.graphics.group({ class: "apexcharts-xaxis-annotations" }); return e.config.annotations.xaxis.map((function (e, a) { t.addXaxisAnnotation(e, i.node, a) })), i } }]), t }(), A = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.months31 = [1, 3, 5, 7, 8, 10, 12], this.months30 = [2, 4, 6, 9, 11], this.daysCntOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334] } return r(t, [{ key: "isValidDate", value: function (t) { return "number" != typeof t && !isNaN(this.parseDate(t)) } }, { key: "getTimeStamp", value: function (t) { return Date.parse(t) ? this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toISOString().substr(0, 25)).getTime() : new Date(t).getTime() : t } }, { key: "getDate", value: function (t) { return this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toUTCString()) : new Date(t) } }, { key: "parseDate", value: function (t) { var e = Date.parse(t); if (!isNaN(e)) return this.getTimeStamp(t); var i = Date.parse(t.replace(/-/g, "/").replace(/[a-z]+/gi, " ")); return i = this.getTimeStamp(i) } }, { key: "parseDateWithTimezone", value: function (t) { return Date.parse(t.replace(/-/g, "/").replace(/[a-z]+/gi, " ")) } }, { key: "formatDate", value: function (t, e) { var i = this.w.globals.locale, a = this.w.config.xaxis.labels.datetimeUTC, s = ["\0"].concat(u(i.months)), r = ["\x01"].concat(u(i.shortMonths)), o = ["\x02"].concat(u(i.days)), n = ["\x03"].concat(u(i.shortDays)); function l(t, e) { var i = t + ""; for (e = e || 2; i.length < e;)i = "0" + i; return i } var h = a ? t.getUTCFullYear() : t.getFullYear(); e = (e = (e = e.replace(/(^|[^\\])yyyy+/g, "$1" + h)).replace(/(^|[^\\])yy/g, "$1" + h.toString().substr(2, 2))).replace(/(^|[^\\])y/g, "$1" + h); var c = (a ? t.getUTCMonth() : t.getMonth()) + 1; e = (e = (e = (e = e.replace(/(^|[^\\])MMMM+/g, "$1" + s[0])).replace(/(^|[^\\])MMM/g, "$1" + r[0])).replace(/(^|[^\\])MM/g, "$1" + l(c))).replace(/(^|[^\\])M/g, "$1" + c); var d = a ? t.getUTCDate() : t.getDate(); e = (e = (e = (e = e.replace(/(^|[^\\])dddd+/g, "$1" + o[0])).replace(/(^|[^\\])ddd/g, "$1" + n[0])).replace(/(^|[^\\])dd/g, "$1" + l(d))).replace(/(^|[^\\])d/g, "$1" + d); var g = a ? t.getUTCHours() : t.getHours(), p = g > 12 ? g - 12 : 0 === g ? 12 : g; e = (e = (e = (e = e.replace(/(^|[^\\])HH+/g, "$1" + l(g))).replace(/(^|[^\\])H/g, "$1" + g)).replace(/(^|[^\\])hh+/g, "$1" + l(p))).replace(/(^|[^\\])h/g, "$1" + p); var f = a ? t.getUTCMinutes() : t.getMinutes(); e = (e = e.replace(/(^|[^\\])mm+/g, "$1" + l(f))).replace(/(^|[^\\])m/g, "$1" + f); var x = a ? t.getUTCSeconds() : t.getSeconds(); e = (e = e.replace(/(^|[^\\])ss+/g, "$1" + l(x))).replace(/(^|[^\\])s/g, "$1" + x); var b = a ? t.getUTCMilliseconds() : t.getMilliseconds(); e = e.replace(/(^|[^\\])fff+/g, "$1" + l(b, 3)), b = Math.round(b / 10), e = e.replace(/(^|[^\\])ff/g, "$1" + l(b)), b = Math.round(b / 10); var v = g < 12 ? "AM" : "PM"; e = (e = (e = e.replace(/(^|[^\\])f/g, "$1" + b)).replace(/(^|[^\\])TT+/g, "$1" + v)).replace(/(^|[^\\])T/g, "$1" + v.charAt(0)); var m = v.toLowerCase(); e = (e = e.replace(/(^|[^\\])tt+/g, "$1" + m)).replace(/(^|[^\\])t/g, "$1" + m.charAt(0)); var y = -t.getTimezoneOffset(), w = a || !y ? "Z" : y > 0 ? "+" : "-"; if (!a) { var k = (y = Math.abs(y)) % 60; w += l(Math.floor(y / 60)) + ":" + l(k) } e = e.replace(/(^|[^\\])K/g, "$1" + w); var A = (a ? t.getUTCDay() : t.getDay()) + 1; return e = (e = (e = (e = (e = e.replace(new RegExp(o[0], "g"), o[A])).replace(new RegExp(n[0], "g"), n[A])).replace(new RegExp(s[0], "g"), s[c])).replace(new RegExp(r[0], "g"), r[c])).replace(/\\(.)/g, "$1") } }, { key: "getTimeUnitsfromTimestamp", value: function (t, e, i) { var a = this.w; void 0 !== a.config.xaxis.min && (t = a.config.xaxis.min), void 0 !== a.config.xaxis.max && (e = a.config.xaxis.max); var s = this.getDate(t), r = this.getDate(e), o = this.formatDate(s, "yyyy MM dd HH mm ss fff").split(" "), n = this.formatDate(r, "yyyy MM dd HH mm ss fff").split(" "); return { minMillisecond: parseInt(o[6], 10), maxMillisecond: parseInt(n[6], 10), minSecond: parseInt(o[5], 10), maxSecond: parseInt(n[5], 10), minMinute: parseInt(o[4], 10), maxMinute: parseInt(n[4], 10), minHour: parseInt(o[3], 10), maxHour: parseInt(n[3], 10), minDate: parseInt(o[2], 10), maxDate: parseInt(n[2], 10), minMonth: parseInt(o[1], 10) - 1, maxMonth: parseInt(n[1], 10) - 1, minYear: parseInt(o[0], 10), maxYear: parseInt(n[0], 10) } } }, { key: "isLeapYear", value: function (t) { return t % 4 == 0 && t % 100 != 0 || t % 400 == 0 } }, { key: "calculcateLastDaysOfMonth", value: function (t, e, i) { return this.determineDaysOfMonths(t, e) - i } }, { key: "determineDaysOfYear", value: function (t) { var e = 365; return this.isLeapYear(t) && (e = 366), e } }, { key: "determineRemainingDaysOfYear", value: function (t, e, i) { var a = this.daysCntOfYear[e] + i; return e > 1 && this.isLeapYear() && a++, a } }, { key: "determineDaysOfMonths", value: function (t, e) { var i = 30; switch (t = x.monthMod(t), !0) { case this.months30.indexOf(t) > -1: 2 === t && (i = this.isLeapYear(e) ? 29 : 28); break; case this.months31.indexOf(t) > -1: default: i = 31 }return i } }]), t }(), S = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.tooltipKeyFormat = "dd MMM" } return r(t, [{ key: "xLabelFormat", value: function (t, e, i, a) { var s = this.w; if ("datetime" === s.config.xaxis.type && void 0 === s.config.xaxis.labels.formatter && void 0 === s.config.tooltip.x.formatter) { var r = new A(this.ctx); return r.formatDate(r.getDate(e), s.config.tooltip.x.format) } return t(e, i, a) } }, { key: "defaultGeneralFormatter", value: function (t) { return Array.isArray(t) ? t.map((function (t) { return t })) : t } }, { key: "defaultYFormatter", value: function (t, e, i) { var a = this.w; if (x.isNumber(t)) if (0 !== a.globals.yValueDecimal) t = t.toFixed(void 0 !== e.decimalsInFloat ? e.decimalsInFloat : a.globals.yValueDecimal); else { var s = t.toFixed(0); t = t == s ? s : t.toFixed(1) } return t } }, { key: "setLabelFormatters", value: function () { var t = this, e = this.w; return e.globals.xaxisTooltipFormatter = function (e) { return t.defaultGeneralFormatter(e) }, e.globals.ttKeyFormatter = function (e) { return t.defaultGeneralFormatter(e) }, e.globals.ttZFormatter = function (t) { return t }, e.globals.legendFormatter = function (e) { return t.defaultGeneralFormatter(e) }, void 0 !== e.config.xaxis.labels.formatter ? e.globals.xLabelFormatter = e.config.xaxis.labels.formatter : e.globals.xLabelFormatter = function (t) { if (x.isNumber(t)) { if (!e.config.xaxis.convertedCatToNumeric && "numeric" === e.config.xaxis.type) { if (x.isNumber(e.config.xaxis.decimalsInFloat)) return t.toFixed(e.config.xaxis.decimalsInFloat); var i = e.globals.maxX - e.globals.minX; return i > 0 && i < 100 ? t.toFixed(1) : t.toFixed(0) } if (e.globals.isBarHorizontal) if (e.globals.maxY - e.globals.minYArr < 4) return t.toFixed(1); return t.toFixed(0) } return t }, "function" == typeof e.config.tooltip.x.formatter ? e.globals.ttKeyFormatter = e.config.tooltip.x.formatter : e.globals.ttKeyFormatter = e.globals.xLabelFormatter, "function" == typeof e.config.xaxis.tooltip.formatter && (e.globals.xaxisTooltipFormatter = e.config.xaxis.tooltip.formatter), (Array.isArray(e.config.tooltip.y) || void 0 !== e.config.tooltip.y.formatter) && (e.globals.ttVal = e.config.tooltip.y), void 0 !== e.config.tooltip.z.formatter && (e.globals.ttZFormatter = e.config.tooltip.z.formatter), void 0 !== e.config.legend.formatter && (e.globals.legendFormatter = e.config.legend.formatter), e.config.yaxis.forEach((function (i, a) { void 0 !== i.labels.formatter ? e.globals.yLabelFormatters[a] = i.labels.formatter : e.globals.yLabelFormatters[a] = function (s) { return e.globals.xyCharts ? Array.isArray(s) ? s.map((function (e) { return t.defaultYFormatter(e, i, a) })) : t.defaultYFormatter(s, i, a) : s } })), e.globals } }, { key: "heatmapLabelFormatters", value: function () { var t = this.w; if ("heatmap" === t.config.chart.type) { t.globals.yAxisScale[0].result = t.globals.seriesNames.slice(); var e = t.globals.seriesNames.reduce((function (t, e) { return t.length > e.length ? t : e }), 0); t.globals.yAxisScale[0].niceMax = e, t.globals.yAxisScale[0].niceMin = e } } }]), t }(), C = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "getLabel", value: function (t, e, i, a) { var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : [], r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "12px", o = !(arguments.length > 6 && void 0 !== arguments[6]) || arguments[6], n = this.w, l = void 0 === t[a] ? "" : t[a], h = l, c = n.globals.xLabelFormatter, d = n.config.xaxis.labels.formatter, g = !1, u = new S(this.ctx), p = l; o && (h = u.xLabelFormat(c, l, p, { i: a, dateFormatter: new A(this.ctx).formatDate, w: n }), void 0 !== d && (h = d(l, t[a], { i: a, dateFormatter: new A(this.ctx).formatDate, w: n }))); var f, x; e.length > 0 ? (f = e[a].unit, x = null, e.forEach((function (t) { "month" === t.unit ? x = "year" : "day" === t.unit ? x = "month" : "hour" === t.unit ? x = "day" : "minute" === t.unit && (x = "hour") })), g = x === f, i = e[a].position, h = e[a].value) : "datetime" === n.config.xaxis.type && void 0 === d && (h = ""), void 0 === h && (h = ""), h = Array.isArray(h) ? h : h.toString(); var b = new m(this.ctx), v = {}; v = n.globals.rotateXLabels && o ? b.getTextRects(h, parseInt(r, 10), null, "rotate(".concat(n.config.xaxis.labels.rotate, " 0 0)"), !1) : b.getTextRects(h, parseInt(r, 10)); var y = !n.config.xaxis.labels.showDuplicates && this.ctx.timeScale; return !Array.isArray(h) && ("NaN" === String(h) || s.indexOf(h) >= 0 && y) && (h = ""), { x: i, text: h, textRect: v, isBold: g } } }, { key: "checkLabelBasedOnTickamount", value: function (t, e, i) { var a = this.w, s = a.config.xaxis.tickAmount; return "dataPoints" === s && (s = Math.round(a.globals.gridWidth / 120)), s > i || t % Math.round(i / (s + 1)) == 0 || (e.text = ""), e } }, { key: "checkForOverflowingLabels", value: function (t, e, i, a, s) { var r = this.w; if (0 === t && r.globals.skipFirstTimelinelabel && (e.text = ""), t === i - 1 && r.globals.skipLastTimelinelabel && (e.text = ""), r.config.xaxis.labels.hideOverlappingLabels && a.length > 0) { var o = s[s.length - 1]; e.x < o.textRect.width / (r.globals.rotateXLabels ? Math.abs(r.config.xaxis.labels.rotate) / 12 : 1.01) + o.x && (e.text = "") } return e } }, { key: "checkForReversedLabels", value: function (t, e) { var i = this.w; return i.config.yaxis[t] && i.config.yaxis[t].reversed && e.reverse(), e } }, { key: "yAxisAllSeriesCollapsed", value: function (t) { var e = this.w.globals; return !e.seriesYAxisMap[t].some((function (t) { return -1 === e.collapsedSeriesIndices.indexOf(t) })) } }, { key: "translateYAxisIndex", value: function (t) { var e = this.w, i = e.globals, a = e.config.yaxis; return i.series.length > a.length || a.some((function (t) { return Array.isArray(t.seriesName) })) ? t : i.seriesYAxisReverseMap[t] } }, { key: "isYAxisHidden", value: function (t) { var e = this.w, i = e.config.yaxis[t]; if (!i.show || this.yAxisAllSeriesCollapsed(t)) return !0; if (!i.showForNullSeries) { var a = e.globals.seriesYAxisMap[t], s = new y(this.ctx); return a.every((function (t) { return s.isSeriesNull(t) })) } return !1 } }, { key: "getYAxisForeColor", value: function (t, e) { var i = this.w; return Array.isArray(t) && i.globals.yAxisScale[e] && this.ctx.theme.pushExtraColors(t, i.globals.yAxisScale[e].result.length, !1), t } }, { key: "drawYAxisTicks", value: function (t, e, i, a, s, r, o) { var n = this.w, l = new m(this.ctx), h = n.globals.translateY + n.config.yaxis[s].labels.offsetY; if (n.globals.isBarHorizontal ? h = 0 : "heatmap" === n.config.chart.type && (h += r / 2), a.show && e > 0) { !0 === n.config.yaxis[s].opposite && (t += a.width); for (var c = e; c >= 0; c--) { var d = l.drawLine(t + i.offsetX - a.width + a.offsetX, h + a.offsetY, t + i.offsetX + a.offsetX, h + a.offsetY, a.color); o.add(d), h += r } } } }]), t }(), L = function () { function t(e) { a(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new w(this.annoCtx), this.axesUtils = new C(this.annoCtx) } return r(t, [{ key: "addYaxisAnnotation", value: function (t, e, i) { var a, s = this.w, r = t.strokeDashArray, o = this.helpers.getY1Y2("y1", t), n = o.yP, l = o.clipped, h = !0, c = !1, d = t.label.text; if (null === t.y2 || void 0 === t.y2) { if (!l) { c = !0; var g = this.annoCtx.graphics.drawLine(0 + t.offsetX, n + t.offsetY, this._getYAxisAnnotationWidth(t), n + t.offsetY, t.borderColor, r, t.borderWidth); e.appendChild(g.node), t.id && g.node.classList.add(t.id) } } else { if (a = (o = this.helpers.getY1Y2("y2", t)).yP, h = o.clipped, a > n) { var u = n; n = a, a = u } if (!l || !h) { c = !0; var p = this.annoCtx.graphics.drawRect(0 + t.offsetX, a + t.offsetY, this._getYAxisAnnotationWidth(t), n - a, 0, t.fillColor, t.opacity, 1, t.borderColor, r); p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(s.globals.cuid, ")")), e.appendChild(p.node), t.id && p.node.classList.add(t.id) } } if (c) { var f = "right" === t.label.position ? s.globals.gridWidth : "center" === t.label.position ? s.globals.gridWidth / 2 : 0, x = this.annoCtx.graphics.drawText({ x: f + t.label.offsetX, y: (null != a ? a : n) + t.label.offsetY - 3, text: d, textAnchor: t.label.textAnchor, fontSize: t.label.style.fontSize, fontFamily: t.label.style.fontFamily, fontWeight: t.label.style.fontWeight, foreColor: t.label.style.color, cssClass: "apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") }); x.attr({ rel: i }), e.appendChild(x.node) } } }, { key: "_getYAxisAnnotationWidth", value: function (t) { var e = this.w; e.globals.gridWidth; return (t.width.indexOf("%") > -1 ? e.globals.gridWidth * parseInt(t.width, 10) / 100 : parseInt(t.width, 10)) + t.offsetX } }, { key: "drawYAxisAnnotations", value: function () { var t = this, e = this.w, i = this.annoCtx.graphics.group({ class: "apexcharts-yaxis-annotations" }); return e.config.annotations.yaxis.forEach((function (e, a) { e.yAxisIndex = t.axesUtils.translateYAxisIndex(e.yAxisIndex), t.axesUtils.isYAxisHidden(e.yAxisIndex) && t.axesUtils.yAxisAllSeriesCollapsed(e.yAxisIndex) || t.addYaxisAnnotation(e, i.node, a) })), i } }]), t }(), P = function () { function t(e) { a(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new w(this.annoCtx) } return r(t, [{ key: "addPointAnnotation", value: function (t, e, i) { if (!(this.w.globals.collapsedSeriesIndices.indexOf(t.seriesIndex) > -1)) { var a = this.helpers.getX1X2("x1", t), s = a.x, r = a.clipped, o = (a = this.helpers.getY1Y2("y1", t)).yP, n = a.clipped; if (x.isNumber(s) && !n && !r) { var l = { pSize: t.marker.size, pointStrokeWidth: t.marker.strokeWidth, pointFillColor: t.marker.fillColor, pointStrokeColor: t.marker.strokeColor, shape: t.marker.shape, pRadius: t.marker.radius, class: "apexcharts-point-annotation-marker ".concat(t.marker.cssClass, " ").concat(t.id ? t.id : "") }, h = this.annoCtx.graphics.drawMarker(s + t.marker.offsetX, o + t.marker.offsetY, l); e.appendChild(h.node); var c = t.label.text ? t.label.text : "", d = this.annoCtx.graphics.drawText({ x: s + t.label.offsetX, y: o + t.label.offsetY - t.marker.size - parseFloat(t.label.style.fontSize) / 1.6, text: c, textAnchor: t.label.textAnchor, fontSize: t.label.style.fontSize, fontFamily: t.label.style.fontFamily, fontWeight: t.label.style.fontWeight, foreColor: t.label.style.color, cssClass: "apexcharts-point-annotation-label ".concat(t.label.style.cssClass, " ").concat(t.id ? t.id : "") }); if (d.attr({ rel: i }), e.appendChild(d.node), t.customSVG.SVG) { var g = this.annoCtx.graphics.group({ class: "apexcharts-point-annotations-custom-svg " + t.customSVG.cssClass }); g.attr({ transform: "translate(".concat(s + t.customSVG.offsetX, ", ").concat(o + t.customSVG.offsetY, ")") }), g.node.innerHTML = t.customSVG.SVG, e.appendChild(g.node) } if (t.image.path) { var u = t.image.width ? t.image.width : 20, p = t.image.height ? t.image.height : 20; h = this.annoCtx.addImage({ x: s + t.image.offsetX - u / 2, y: o + t.image.offsetY - p / 2, width: u, height: p, path: t.image.path, appendTo: ".apexcharts-point-annotations" }) } t.mouseEnter && h.node.addEventListener("mouseenter", t.mouseEnter.bind(this, t)), t.mouseLeave && h.node.addEventListener("mouseleave", t.mouseLeave.bind(this, t)), t.click && h.node.addEventListener("click", t.click.bind(this, t)) } } } }, { key: "drawPointAnnotations", value: function () { var t = this, e = this.w, i = this.annoCtx.graphics.group({ class: "apexcharts-point-annotations" }); return e.config.annotations.points.map((function (e, a) { t.addPointAnnotation(e, i.node, a) })), i } }]), t }(); var M = { name: "en", options: { months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], toolbar: { exportToSVG: "Download SVG", exportToPNG: "Download PNG", exportToCSV: "Download CSV", menu: "Menu", selection: "Selection", selectionZoom: "Selection Zoom", zoomIn: "Zoom In", zoomOut: "Zoom Out", pan: "Panning", reset: "Reset Zoom" } } }, I = function () { function t() { a(this, t), this.yAxis = { show: !0, showAlways: !1, showForNullSeries: !0, seriesName: void 0, opposite: !1, reversed: !1, logarithmic: !1, logBase: 10, tickAmount: void 0, stepSize: void 0, forceNiceScale: !1, max: void 0, min: void 0, floating: !1, decimalsInFloat: void 0, labels: { show: !0, minWidth: 0, maxWidth: 160, offsetX: 0, offsetY: 0, align: void 0, rotate: 0, padding: 20, style: { colors: [], fontSize: "11px", fontWeight: 400, fontFamily: void 0, cssClass: "" }, formatter: void 0 }, axisBorder: { show: !1, color: "#e0e0e0", width: 1, offsetX: 0, offsetY: 0 }, axisTicks: { show: !1, color: "#e0e0e0", width: 6, offsetX: 0, offsetY: 0 }, title: { text: void 0, rotate: -90, offsetY: 0, offsetX: 0, style: { color: void 0, fontSize: "11px", fontWeight: 900, fontFamily: void 0, cssClass: "" } }, tooltip: { enabled: !1, offsetX: 0 }, crosshairs: { show: !0, position: "front", stroke: { color: "#b6b6b6", width: 1, dashArray: 0 } } }, this.pointAnnotation = { id: void 0, x: 0, y: null, yAxisIndex: 0, seriesIndex: void 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, marker: { size: 4, fillColor: "#fff", strokeWidth: 2, strokeColor: "#333", shape: "circle", offsetX: 0, offsetY: 0, radius: 2, cssClass: "" }, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "middle", offsetX: 0, offsetY: 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } }, customSVG: { SVG: void 0, cssClass: void 0, offsetX: 0, offsetY: 0 }, image: { path: void 0, width: 20, height: 20, offsetX: 0, offsetY: 0 } }, this.yAxisAnnotation = { id: void 0, y: 0, y2: null, strokeDashArray: 1, fillColor: "#c2c2c2", borderColor: "#c2c2c2", borderWidth: 1, opacity: .3, offsetX: 0, offsetY: 0, width: "100%", yAxisIndex: 0, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "end", position: "right", offsetX: 0, offsetY: -3, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } } }, this.xAxisAnnotation = { id: void 0, x: 0, x2: null, strokeDashArray: 1, fillColor: "#c2c2c2", borderColor: "#c2c2c2", borderWidth: 1, opacity: .3, offsetX: 0, offsetY: 0, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "middle", orientation: "vertical", position: "top", offsetX: 0, offsetY: 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } } }, this.text = { x: 0, y: 0, text: "", textAnchor: "start", foreColor: void 0, fontSize: "13px", fontFamily: void 0, fontWeight: 400, appendTo: ".apexcharts-annotations", backgroundColor: "transparent", borderColor: "#c2c2c2", borderRadius: 0, borderWidth: 0, paddingLeft: 4, paddingRight: 4, paddingTop: 2, paddingBottom: 2 } } return r(t, [{ key: "init", value: function () { return { annotations: { yaxis: [this.yAxisAnnotation], xaxis: [this.xAxisAnnotation], points: [this.pointAnnotation], texts: [], images: [], shapes: [] }, chart: { animations: { enabled: !0, easing: "easeinout", speed: 800, animateGradually: { delay: 150, enabled: !0 }, dynamicAnimation: { enabled: !0, speed: 350 } }, background: "transparent", locales: [M], defaultLocale: "en", dropShadow: { enabled: !1, enabledOnSeries: void 0, top: 2, left: 2, blur: 4, color: "#000", opacity: .35 }, events: { animationEnd: void 0, beforeMount: void 0, mounted: void 0, updated: void 0, click: void 0, mouseMove: void 0, mouseLeave: void 0, xAxisLabelClick: void 0, legendClick: void 0, markerClick: void 0, selection: void 0, dataPointSelection: void 0, dataPointMouseEnter: void 0, dataPointMouseLeave: void 0, beforeZoom: void 0, beforeResetZoom: void 0, zoomed: void 0, scrolled: void 0, brushScrolled: void 0 }, foreColor: "#373d3f", fontFamily: "Helvetica, Arial, sans-serif", height: "auto", parentHeightOffset: 15, redrawOnParentResize: !0, redrawOnWindowResize: !0, id: void 0, group: void 0, nonce: void 0, offsetX: 0, offsetY: 0, selection: { enabled: !1, type: "x", fill: { color: "#24292e", opacity: .1 }, stroke: { width: 1, color: "#24292e", opacity: .4, dashArray: 3 }, xaxis: { min: void 0, max: void 0 }, yaxis: { min: void 0, max: void 0 } }, sparkline: { enabled: !1 }, brush: { enabled: !1, autoScaleYaxis: !0, target: void 0, targets: void 0 }, stacked: !1, stackOnlyBar: !0, stackType: "normal", toolbar: { show: !0, offsetX: 0, offsetY: 0, tools: { download: !0, selection: !0, zoom: !0, zoomin: !0, zoomout: !0, pan: !0, reset: !0, customIcons: [] }, export: { csv: { filename: void 0, columnDelimiter: ",", headerCategory: "category", headerValue: "value", dateFormatter: function (t) { return new Date(t).toDateString() } }, png: { filename: void 0 }, svg: { filename: void 0 } }, autoSelected: "zoom" }, type: "line", width: "100%", zoom: { enabled: !0, type: "x", autoScaleYaxis: !1, zoomedArea: { fill: { color: "#90CAF9", opacity: .4 }, stroke: { color: "#0D47A1", opacity: .4, width: 1 } } } }, plotOptions: { line: { isSlopeChart: !1 }, area: { fillTo: "origin" }, bar: { horizontal: !1, columnWidth: "70%", barHeight: "70%", distributed: !1, borderRadius: 0, borderRadiusApplication: "around", borderRadiusWhenStacked: "last", rangeBarOverlap: !0, rangeBarGroupRows: !1, hideZeroBarsWhenGrouped: !1, isDumbbell: !1, dumbbellColors: void 0, isFunnel: !1, isFunnel3d: !0, colors: { ranges: [], backgroundBarColors: [], backgroundBarOpacity: 1, backgroundBarRadius: 0 }, dataLabels: { position: "top", maxItems: 100, hideOverflowingLabels: !0, orientation: "horizontal", total: { enabled: !1, formatter: void 0, offsetX: 0, offsetY: 0, style: { color: "#373d3f", fontSize: "12px", fontFamily: void 0, fontWeight: 600 } } } }, bubble: { zScaling: !0, minBubbleRadius: void 0, maxBubbleRadius: void 0 }, candlestick: { colors: { upward: "#00B746", downward: "#EF403C" }, wick: { useFillColor: !0 } }, boxPlot: { colors: { upper: "#00E396", lower: "#008FFB" } }, heatmap: { radius: 2, enableShades: !0, shadeIntensity: .5, reverseNegativeShade: !1, distributed: !1, useFillColorAsStroke: !1, colorScale: { inverse: !1, ranges: [], min: void 0, max: void 0 } }, treemap: { enableShades: !0, shadeIntensity: .5, distributed: !1, reverseNegativeShade: !1, useFillColorAsStroke: !1, borderRadius: 4, dataLabels: { format: "scale" }, colorScale: { inverse: !1, ranges: [], min: void 0, max: void 0 } }, radialBar: { inverseOrder: !1, startAngle: 0, endAngle: 360, offsetX: 0, offsetY: 0, hollow: { margin: 5, size: "50%", background: "transparent", image: void 0, imageWidth: 150, imageHeight: 150, imageOffsetX: 0, imageOffsetY: 0, imageClipped: !0, position: "front", dropShadow: { enabled: !1, top: 0, left: 0, blur: 3, color: "#000", opacity: .5 } }, track: { show: !0, startAngle: void 0, endAngle: void 0, background: "#f2f2f2", strokeWidth: "97%", opacity: 1, margin: 5, dropShadow: { enabled: !1, top: 0, left: 0, blur: 3, color: "#000", opacity: .5 } }, dataLabels: { show: !0, name: { show: !0, fontSize: "16px", fontFamily: void 0, fontWeight: 600, color: void 0, offsetY: 0, formatter: function (t) { return t } }, value: { show: !0, fontSize: "14px", fontFamily: void 0, fontWeight: 400, color: void 0, offsetY: 16, formatter: function (t) { return t + "%" } }, total: { show: !1, label: "Total", fontSize: "16px", fontWeight: 600, fontFamily: void 0, color: void 0, formatter: function (t) { return t.globals.seriesTotals.reduce((function (t, e) { return t + e }), 0) / t.globals.series.length + "%" } } }, barLabels: { enabled: !1, margin: 5, useSeriesColors: !0, fontFamily: void 0, fontWeight: 600, fontSize: "16px", formatter: function (t) { return t }, onClick: void 0 } }, pie: { customScale: 1, offsetX: 0, offsetY: 0, startAngle: 0, endAngle: 360, expandOnClick: !0, dataLabels: { offset: 0, minAngleToShowLabel: 10 }, donut: { size: "65%", background: "transparent", labels: { show: !1, name: { show: !0, fontSize: "16px", fontFamily: void 0, fontWeight: 600, color: void 0, offsetY: -10, formatter: function (t) { return t } }, value: { show: !0, fontSize: "20px", fontFamily: void 0, fontWeight: 400, color: void 0, offsetY: 10, formatter: function (t) { return t } }, total: { show: !1, showAlways: !1, label: "Total", fontSize: "16px", fontWeight: 400, fontFamily: void 0, color: void 0, formatter: function (t) { return t.globals.seriesTotals.reduce((function (t, e) { return t + e }), 0) } } } } }, polarArea: { rings: { strokeWidth: 1, strokeColor: "#e8e8e8" }, spokes: { strokeWidth: 1, connectorColors: "#e8e8e8" } }, radar: { size: void 0, offsetX: 0, offsetY: 0, polygons: { strokeWidth: 1, strokeColors: "#e8e8e8", connectorColors: "#e8e8e8", fill: { colors: void 0 } } } }, colors: void 0, dataLabels: { enabled: !0, enabledOnSeries: void 0, formatter: function (t) { return null !== t ? t : "" }, textAnchor: "middle", distributed: !1, offsetX: 0, offsetY: 0, style: { fontSize: "12px", fontFamily: void 0, fontWeight: 600, colors: void 0 }, background: { enabled: !0, foreColor: "#fff", borderRadius: 2, padding: 4, opacity: .9, borderWidth: 1, borderColor: "#fff", dropShadow: { enabled: !1, top: 1, left: 1, blur: 1, color: "#000", opacity: .45 } }, dropShadow: { enabled: !1, top: 1, left: 1, blur: 1, color: "#000", opacity: .45 } }, fill: { type: "solid", colors: void 0, opacity: .85, gradient: { shade: "dark", type: "horizontal", shadeIntensity: .5, gradientToColors: void 0, inverseColors: !0, opacityFrom: 1, opacityTo: 1, stops: [0, 50, 100], colorStops: [] }, image: { src: [], width: void 0, height: void 0 }, pattern: { style: "squares", width: 6, height: 6, strokeWidth: 2 } }, forecastDataPoints: { count: 0, fillOpacity: .5, strokeWidth: void 0, dashArray: 4 }, grid: { show: !0, borderColor: "#e0e0e0", strokeDashArray: 0, position: "back", xaxis: { lines: { show: !1 } }, yaxis: { lines: { show: !0 } }, row: { colors: void 0, opacity: .5 }, column: { colors: void 0, opacity: .5 }, padding: { top: 0, right: 10, bottom: 0, left: 12 } }, labels: [], legend: { show: !0, showForSingleSeries: !1, showForNullSeries: !0, showForZeroSeries: !0, floating: !1, position: "bottom", horizontalAlign: "center", inverseOrder: !1, fontSize: "12px", fontFamily: void 0, fontWeight: 400, width: void 0, height: void 0, formatter: void 0, tooltipHoverFormatter: void 0, offsetX: -20, offsetY: 4, customLegendItems: [], labels: { colors: void 0, useSeriesColors: !1 }, markers: { width: 12, height: 12, strokeWidth: 0, fillColors: void 0, strokeColor: "#fff", radius: 12, customHTML: void 0, offsetX: 0, offsetY: 0, onClick: void 0 }, itemMargin: { horizontal: 5, vertical: 2 }, onItemClick: { toggleDataSeries: !0 }, onItemHover: { highlightDataSeries: !0 } }, markers: { discrete: [], size: 0, colors: void 0, strokeColors: "#fff", strokeWidth: 2, strokeOpacity: .9, strokeDashArray: 0, fillOpacity: 1, shape: "circle", width: 8, height: 8, radius: 2, offsetX: 0, offsetY: 0, onClick: void 0, onDblClick: void 0, showNullDataPoints: !0, hover: { size: void 0, sizeOffset: 3 } }, noData: { text: void 0, align: "center", verticalAlign: "middle", offsetX: 0, offsetY: 0, style: { color: void 0, fontSize: "14px", fontFamily: void 0 } }, responsive: [], series: void 0, states: { normal: { filter: { type: "none", value: 0 } }, hover: { filter: { type: "lighten", value: .1 } }, active: { allowMultipleDataPointsSelection: !1, filter: { type: "darken", value: .5 } } }, title: { text: void 0, align: "left", margin: 5, offsetX: 0, offsetY: 0, floating: !1, style: { fontSize: "14px", fontWeight: 900, fontFamily: void 0, color: void 0 } }, subtitle: { text: void 0, align: "left", margin: 5, offsetX: 0, offsetY: 30, floating: !1, style: { fontSize: "12px", fontWeight: 400, fontFamily: void 0, color: void 0 } }, stroke: { show: !0, curve: "smooth", lineCap: "butt", width: 2, colors: void 0, dashArray: 0, fill: { type: "solid", colors: void 0, opacity: .85, gradient: { shade: "dark", type: "horizontal", shadeIntensity: .5, gradientToColors: void 0, inverseColors: !0, opacityFrom: 1, opacityTo: 1, stops: [0, 50, 100], colorStops: [] } } }, tooltip: { enabled: !0, enabledOnSeries: void 0, shared: !0, hideEmptySeries: !1, followCursor: !1, intersect: !1, inverseOrder: !1, custom: void 0, fillSeriesColor: !1, theme: "light", cssClass: "", style: { fontSize: "12px", fontFamily: void 0 }, onDatasetHover: { highlightDataSeries: !1 }, x: { show: !0, format: "dd MMM", formatter: void 0 }, y: { formatter: void 0, title: { formatter: function (t) { return t ? t + ": " : "" } } }, z: { formatter: void 0, title: "Size: " }, marker: { show: !0, fillColors: void 0 }, items: { display: "flex" }, fixed: { enabled: !1, position: "topRight", offsetX: 0, offsetY: 0 } }, xaxis: { type: "category", categories: [], convertedCatToNumeric: !1, offsetX: 0, offsetY: 0, overwriteCategories: void 0, labels: { show: !0, rotate: -45, rotateAlways: !1, hideOverlappingLabels: !0, trim: !1, minHeight: void 0, maxHeight: 120, showDuplicates: !0, style: { colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: "" }, offsetX: 0, offsetY: 0, format: void 0, formatter: void 0, datetimeUTC: !0, datetimeFormatter: { year: "yyyy", month: "MMM 'yy", day: "dd MMM", hour: "HH:mm", minute: "HH:mm:ss", second: "HH:mm:ss" } }, group: { groups: [], style: { colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: "" } }, axisBorder: { show: !0, color: "#e0e0e0", width: "100%", height: 1, offsetX: 0, offsetY: 0 }, axisTicks: { show: !0, color: "#e0e0e0", height: 6, offsetX: 0, offsetY: 0 }, stepSize: void 0, tickAmount: void 0, tickPlacement: "on", min: void 0, max: void 0, range: void 0, floating: !1, decimalsInFloat: void 0, position: "bottom", title: { text: void 0, offsetX: 0, offsetY: 0, style: { color: void 0, fontSize: "12px", fontWeight: 900, fontFamily: void 0, cssClass: "" } }, crosshairs: { show: !0, width: 1, position: "back", opacity: .9, stroke: { color: "#b6b6b6", width: 1, dashArray: 3 }, fill: { type: "solid", color: "#B1B9C4", gradient: { colorFrom: "#D8E3F0", colorTo: "#BED1E6", stops: [0, 100], opacityFrom: .4, opacityTo: .5 } }, dropShadow: { enabled: !1, left: 0, top: 0, blur: 1, opacity: .4 } }, tooltip: { enabled: !0, offsetY: 0, formatter: void 0, style: { fontSize: "12px", fontFamily: void 0 } } }, yaxis: this.yAxis, theme: { mode: "light", palette: "palette1", monochrome: { enabled: !1, color: "#008FFB", shadeTo: "light", shadeIntensity: .65 } } } } }]), t }(), T = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.graphics = new m(this.ctx), this.w.globals.isBarHorizontal && (this.invertAxis = !0), this.helpers = new w(this), this.xAxisAnnotations = new k(this), this.yAxisAnnotations = new L(this), this.pointsAnnotations = new P(this), this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed && (this.inversedReversedAxis = !0), this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints } return r(t, [{ key: "drawAxesAnnotations", value: function () { var t = this.w; if (t.globals.axisCharts) { for (var e = this.yAxisAnnotations.drawYAxisAnnotations(), i = this.xAxisAnnotations.drawXAxisAnnotations(), a = this.pointsAnnotations.drawPointAnnotations(), s = t.config.chart.animations.enabled, r = [e, i, a], o = [i.node, e.node, a.node], n = 0; n < 3; n++)t.globals.dom.elGraphical.add(r[n]), !s || t.globals.resized || t.globals.dataChanged || "scatter" !== t.config.chart.type && "bubble" !== t.config.chart.type && t.globals.dataPoints > 1 && o[n].classList.add("apexcharts-element-hidden"), t.globals.delayedElements.push({ el: o[n], index: 0 }); this.helpers.annotationsBackground() } } }, { key: "drawImageAnnos", value: function () { var t = this; this.w.config.annotations.images.map((function (e, i) { t.addImage(e, i) })) } }, { key: "drawTextAnnos", value: function () { var t = this; this.w.config.annotations.texts.map((function (e, i) { t.addText(e, i) })) } }, { key: "addXaxisAnnotation", value: function (t, e, i) { this.xAxisAnnotations.addXaxisAnnotation(t, e, i) } }, { key: "addYaxisAnnotation", value: function (t, e, i) { this.yAxisAnnotations.addYaxisAnnotation(t, e, i) } }, { key: "addPointAnnotation", value: function (t, e, i) { this.pointsAnnotations.addPointAnnotation(t, e, i) } }, { key: "addText", value: function (t, e) { var i = t.x, a = t.y, s = t.text, r = t.textAnchor, o = t.foreColor, n = t.fontSize, l = t.fontFamily, h = t.fontWeight, c = t.cssClass, d = t.backgroundColor, g = t.borderWidth, u = t.strokeDashArray, p = t.borderRadius, f = t.borderColor, x = t.appendTo, b = void 0 === x ? ".apexcharts-svg" : x, v = t.paddingLeft, m = void 0 === v ? 4 : v, y = t.paddingRight, w = void 0 === y ? 4 : y, k = t.paddingBottom, A = void 0 === k ? 2 : k, S = t.paddingTop, C = void 0 === S ? 2 : S, L = this.w, P = this.graphics.drawText({ x: i, y: a, text: s, textAnchor: r || "start", fontSize: n || "12px", fontWeight: h || "regular", fontFamily: l || L.config.chart.fontFamily, foreColor: o || L.config.chart.foreColor, cssClass: c }), M = L.globals.dom.baseEl.querySelector(b); M && M.appendChild(P.node); var I = P.bbox(); if (s) { var T = this.graphics.drawRect(I.x - m, I.y - C, I.width + m + w, I.height + A + C, p, d || "transparent", 1, g, f, u); M.insertBefore(T.node, P.node) } } }, { key: "addImage", value: function (t, e) { var i = this.w, a = t.path, s = t.x, r = void 0 === s ? 0 : s, o = t.y, n = void 0 === o ? 0 : o, l = t.width, h = void 0 === l ? 20 : l, c = t.height, d = void 0 === c ? 20 : c, g = t.appendTo, u = void 0 === g ? ".apexcharts-svg" : g, p = i.globals.dom.Paper.image(a); p.size(h, d).move(r, n); var f = i.globals.dom.baseEl.querySelector(u); return f && f.appendChild(p.node), p } }, { key: "addXaxisAnnotationExternal", value: function (t, e, i) { return this.addAnnotationExternal({ params: t, pushToMemory: e, context: i, type: "xaxis", contextMethod: i.addXaxisAnnotation }), i } }, { key: "addYaxisAnnotationExternal", value: function (t, e, i) { return this.addAnnotationExternal({ params: t, pushToMemory: e, context: i, type: "yaxis", contextMethod: i.addYaxisAnnotation }), i } }, { key: "addPointAnnotationExternal", value: function (t, e, i) { return void 0 === this.invertAxis && (this.invertAxis = i.w.globals.isBarHorizontal), this.addAnnotationExternal({ params: t, pushToMemory: e, context: i, type: "point", contextMethod: i.addPointAnnotation }), i } }, { key: "addAnnotationExternal", value: function (t) { var e = t.params, i = t.pushToMemory, a = t.context, s = t.type, r = t.contextMethod, o = a, n = o.w, l = n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations")), h = l.childNodes.length + 1, c = new I, d = Object.assign({}, "xaxis" === s ? c.xAxisAnnotation : "yaxis" === s ? c.yAxisAnnotation : c.pointAnnotation), g = x.extend(d, e); switch (s) { case "xaxis": this.addXaxisAnnotation(g, l, h); break; case "yaxis": this.addYaxisAnnotation(g, l, h); break; case "point": this.addPointAnnotation(g, l, h) }var u = n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s, "-annotations .apexcharts-").concat(s, "-annotation-label[rel='").concat(h, "']")), p = this.helpers.addBackgroundToAnno(u, g); return p && l.insertBefore(p.node, u), i && n.globals.memory.methodsToExec.push({ context: o, id: g.id ? g.id : x.randomId(), method: r, label: "addAnnotation", params: e }), a } }, { key: "clearAnnotations", value: function (t) { var e = t.w, i = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations"); e.globals.memory.methodsToExec.map((function (t, i) { "addText" !== t.label && "addAnnotation" !== t.label || e.globals.memory.methodsToExec.splice(i, 1) })), i = x.listToArray(i), Array.prototype.forEach.call(i, (function (t) { for (; t.firstChild;)t.removeChild(t.firstChild) })) } }, { key: "removeAnnotation", value: function (t, e) { var i = t.w, a = i.globals.dom.baseEl.querySelectorAll(".".concat(e)); a && (i.globals.memory.methodsToExec.map((function (t, a) { t.id === e && i.globals.memory.methodsToExec.splice(a, 1) })), Array.prototype.forEach.call(a, (function (t) { t.parentElement.removeChild(t) }))) } }]), t }(), z = function (t) { var e, i = t.isTimeline, a = t.ctx, s = t.seriesIndex, r = t.dataPointIndex, o = t.y1, n = t.y2, l = t.w, h = l.globals.seriesRangeStart[s][r], c = l.globals.seriesRangeEnd[s][r], d = l.globals.labels[r], g = l.config.series[s].name ? l.config.series[s].name : "", u = l.globals.ttKeyFormatter, p = l.config.tooltip.y.title.formatter, f = { w: l, seriesIndex: s, dataPointIndex: r, start: h, end: c }; ("function" == typeof p && (g = p(g, f)), null !== (e = l.config.series[s].data[r]) && void 0 !== e && e.x && (d = l.config.series[s].data[r].x), i) || "datetime" === l.config.xaxis.type && (d = new S(a).xLabelFormat(l.globals.ttKeyFormatter, d, d, { i: void 0, dateFormatter: new A(a).formatDate, w: l })); "function" == typeof u && (d = u(d, f)), Number.isFinite(o) && Number.isFinite(n) && (h = o, c = n); var x = "", b = "", v = l.globals.colors[s]; if (void 0 === l.config.tooltip.x.formatter) if ("datetime" === l.config.xaxis.type) { var m = new A(a); x = m.formatDate(m.getDate(h), l.config.tooltip.x.format), b = m.formatDate(m.getDate(c), l.config.tooltip.x.format) } else x = h, b = c; else x = l.config.tooltip.x.formatter(h), b = l.config.tooltip.x.formatter(c); return { start: h, end: c, startVal: x, endVal: b, ylabel: d, color: v, seriesName: g } }, X = function (t) { var e = t.color, i = t.seriesName, a = t.ylabel, s = t.start, r = t.end, o = t.seriesIndex, n = t.dataPointIndex, l = t.ctx.tooltip.tooltipLabels.getFormatters(o); s = l.yLbFormatter(s), r = l.yLbFormatter(r); var h = l.yLbFormatter(t.w.globals.series[o][n]), c = '\n '.concat(s, '\n - \n ').concat(r, "\n "); return '
    ' + (i || "") + '
    ' + a + ": " + (t.w.globals.comboCharts ? "rangeArea" === t.w.config.series[o].type || "rangeBar" === t.w.config.series[o].type ? c : "".concat(h, "") : c) + "
    " }, E = function () { function t(e) { a(this, t), this.opts = e } return r(t, [{ key: "hideYAxis", value: function () { this.opts.yaxis[0].show = !1, this.opts.yaxis[0].title.text = "", this.opts.yaxis[0].axisBorder.show = !1, this.opts.yaxis[0].axisTicks.show = !1, this.opts.yaxis[0].floating = !0 } }, { key: "line", value: function () { return { chart: { animations: { easing: "swing" } }, dataLabels: { enabled: !1 }, stroke: { width: 5, curve: "straight" }, markers: { size: 0, hover: { sizeOffset: 6 } }, xaxis: { crosshairs: { width: 1 } } } } }, { key: "sparkline", value: function (t) { this.hideYAxis(); return x.extend(t, { grid: { show: !1, padding: { left: 0, right: 0, top: 0, bottom: 0 } }, legend: { show: !1 }, xaxis: { labels: { show: !1 }, tooltip: { enabled: !1 }, axisBorder: { show: !1 }, axisTicks: { show: !1 } }, chart: { toolbar: { show: !1 }, zoom: { enabled: !1 } }, dataLabels: { enabled: !1 } }) } }, { key: "slope", value: function () { return this.hideYAxis(), { chart: { toolbar: { show: !1 }, zoom: { enabled: !1 } }, dataLabels: { enabled: !0, formatter: function (t, e) { var i = e.w.config.series[e.seriesIndex].name; return null !== t ? i + ": " + t : "" }, background: { enabled: !1 }, offsetX: -5 }, grid: { xaxis: { lines: { show: !0 } }, yaxis: { lines: { show: !1 } } }, xaxis: { position: "top", labels: { style: { fontSize: 14, fontWeight: 900 } }, tooltip: { enabled: !1 }, crosshairs: { show: !1 } }, markers: { size: 8, hover: { sizeOffset: 1 } }, legend: { show: !1 }, tooltip: { shared: !1, intersect: !0, followCursor: !0 }, stroke: { width: 5, curve: "straight" } } } }, { key: "bar", value: function () { return { chart: { stacked: !1, animations: { easing: "swing" } }, plotOptions: { bar: { dataLabels: { position: "center" } } }, dataLabels: { style: { colors: ["#fff"] }, background: { enabled: !1 } }, stroke: { width: 0, lineCap: "round" }, fill: { opacity: .85 }, legend: { markers: { shape: "square", radius: 2, size: 8 } }, tooltip: { shared: !1, intersect: !0 }, xaxis: { tooltip: { enabled: !1 }, tickPlacement: "between", crosshairs: { width: "barWidth", position: "back", fill: { type: "gradient" }, dropShadow: { enabled: !1 }, stroke: { width: 0 } } } } } }, { key: "funnel", value: function () { return this.hideYAxis(), e(e({}, this.bar()), {}, { chart: { animations: { easing: "linear", speed: 800, animateGradually: { enabled: !1 } } }, plotOptions: { bar: { horizontal: !0, borderRadiusApplication: "around", borderRadius: 0, dataLabels: { position: "center" } } }, grid: { show: !1, padding: { left: 0, right: 0 } }, xaxis: { labels: { show: !1 }, tooltip: { enabled: !1 }, axisBorder: { show: !1 }, axisTicks: { show: !1 } } }) } }, { key: "candlestick", value: function () { var t = this; return { stroke: { width: 1, colors: ["#333"] }, fill: { opacity: 1 }, dataLabels: { enabled: !1 }, tooltip: { shared: !0, custom: function (e) { var i = e.seriesIndex, a = e.dataPointIndex, s = e.w; return t._getBoxTooltip(s, i, a, ["Open", "High", "", "Low", "Close"], "candlestick") } }, states: { active: { filter: { type: "none" } } }, xaxis: { crosshairs: { width: 1 } } } } }, { key: "boxPlot", value: function () { var t = this; return { chart: { animations: { dynamicAnimation: { enabled: !1 } } }, stroke: { width: 1, colors: ["#24292e"] }, dataLabels: { enabled: !1 }, tooltip: { shared: !0, custom: function (e) { var i = e.seriesIndex, a = e.dataPointIndex, s = e.w; return t._getBoxTooltip(s, i, a, ["Minimum", "Q1", "Median", "Q3", "Maximum"], "boxPlot") } }, markers: { size: 5, strokeWidth: 1, strokeColors: "#111" }, xaxis: { crosshairs: { width: 1 } } } } }, { key: "rangeBar", value: function () { return { chart: { animations: { animateGradually: !1 } }, stroke: { width: 0, lineCap: "square" }, plotOptions: { bar: { borderRadius: 0, dataLabels: { position: "center" } } }, dataLabels: { enabled: !1, formatter: function (t, e) { e.ctx; var i = e.seriesIndex, a = e.dataPointIndex, s = e.w, r = function () { var t = s.globals.seriesRangeStart[i][a]; return s.globals.seriesRangeEnd[i][a] - t }; return s.globals.comboCharts ? "rangeBar" === s.config.series[i].type || "rangeArea" === s.config.series[i].type ? r() : t : r() }, background: { enabled: !1 }, style: { colors: ["#fff"] } }, markers: { size: 10 }, tooltip: { shared: !1, followCursor: !0, custom: function (t) { return t.w.config.plotOptions && t.w.config.plotOptions.bar && t.w.config.plotOptions.bar.horizontal ? function (t) { var i = z(e(e({}, t), {}, { isTimeline: !0 })), a = i.color, s = i.seriesName, r = i.ylabel, o = i.startVal, n = i.endVal; return X(e(e({}, t), {}, { color: a, seriesName: s, ylabel: r, start: o, end: n })) }(t) : function (t) { var i = z(t), a = i.color, s = i.seriesName, r = i.ylabel, o = i.start, n = i.end; return X(e(e({}, t), {}, { color: a, seriesName: s, ylabel: r, start: o, end: n })) }(t) } }, xaxis: { tickPlacement: "between", tooltip: { enabled: !1 }, crosshairs: { stroke: { width: 0 } } } } } }, { key: "dumbbell", value: function (t) { var e, i; return null !== (e = t.plotOptions.bar) && void 0 !== e && e.barHeight || (t.plotOptions.bar.barHeight = 2), null !== (i = t.plotOptions.bar) && void 0 !== i && i.columnWidth || (t.plotOptions.bar.columnWidth = 2), t } }, { key: "area", value: function () { return { stroke: { width: 4, fill: { type: "solid", gradient: { inverseColors: !1, shade: "light", type: "vertical", opacityFrom: .65, opacityTo: .5, stops: [0, 100, 100] } } }, fill: { type: "gradient", gradient: { inverseColors: !1, shade: "light", type: "vertical", opacityFrom: .65, opacityTo: .5, stops: [0, 100, 100] } }, markers: { size: 0, hover: { sizeOffset: 6 } }, tooltip: { followCursor: !1 } } } }, { key: "rangeArea", value: function () { return { stroke: { curve: "straight", width: 0 }, fill: { type: "solid", opacity: .6 }, markers: { size: 0 }, states: { hover: { filter: { type: "none" } }, active: { filter: { type: "none" } } }, tooltip: { intersect: !1, shared: !0, followCursor: !0, custom: function (t) { return function (t) { var i = z(t), a = i.color, s = i.seriesName, r = i.ylabel, o = i.start, n = i.end; return X(e(e({}, t), {}, { color: a, seriesName: s, ylabel: r, start: o, end: n })) }(t) } } } } }, { key: "brush", value: function (t) { return x.extend(t, { chart: { toolbar: { autoSelected: "selection", show: !1 }, zoom: { enabled: !1 } }, dataLabels: { enabled: !1 }, stroke: { width: 1 }, tooltip: { enabled: !1 }, xaxis: { tooltip: { enabled: !1 } } }) } }, { key: "stacked100", value: function (t) { t.dataLabels = t.dataLabels || {}, t.dataLabels.formatter = t.dataLabels.formatter || void 0; var e = t.dataLabels.formatter; return t.yaxis.forEach((function (e, i) { t.yaxis[i].min = 0, t.yaxis[i].max = 100 })), "bar" === t.chart.type && (t.dataLabels.formatter = e || function (t) { return "number" == typeof t && t ? t.toFixed(0) + "%" : t }), t } }, { key: "stackedBars", value: function () { var t = this.bar(); return e(e({}, t), {}, { plotOptions: e(e({}, t.plotOptions), {}, { bar: e(e({}, t.plotOptions.bar), {}, { borderRadiusApplication: "end", borderRadiusWhenStacked: "last" }) }) }) } }, { key: "convertCatToNumeric", value: function (t) { return t.xaxis.convertedCatToNumeric = !0, t } }, { key: "convertCatToNumericXaxis", value: function (t, e, i) { t.xaxis.type = "numeric", t.xaxis.labels = t.xaxis.labels || {}, t.xaxis.labels.formatter = t.xaxis.labels.formatter || function (t) { return x.isNumber(t) ? Math.floor(t) : t }; var a = t.xaxis.labels.formatter, s = t.xaxis.categories && t.xaxis.categories.length ? t.xaxis.categories : t.labels; return i && i.length && (s = i.map((function (t) { return Array.isArray(t) ? t : String(t) }))), s && s.length && (t.xaxis.labels.formatter = function (t) { return x.isNumber(t) ? a(s[Math.floor(t) - 1]) : a(t) }), t.xaxis.categories = [], t.labels = [], t.xaxis.tickAmount = t.xaxis.tickAmount || "dataPoints", t } }, { key: "bubble", value: function () { return { dataLabels: { style: { colors: ["#fff"] } }, tooltip: { shared: !1, intersect: !0 }, xaxis: { crosshairs: { width: 0 } }, fill: { type: "solid", gradient: { shade: "light", inverse: !0, shadeIntensity: .55, opacityFrom: .4, opacityTo: .8 } } } } }, { key: "scatter", value: function () { return { dataLabels: { enabled: !1 }, tooltip: { shared: !1, intersect: !0 }, markers: { size: 6, strokeWidth: 1, hover: { sizeOffset: 2 } } } } }, { key: "heatmap", value: function () { return { chart: { stacked: !1 }, fill: { opacity: 1 }, dataLabels: { style: { colors: ["#fff"] } }, stroke: { colors: ["#fff"] }, tooltip: { followCursor: !0, marker: { show: !1 }, x: { show: !1 } }, legend: { position: "top", markers: { shape: "square", size: 10, offsetY: 2 } }, grid: { padding: { right: 20 } } } } }, { key: "treemap", value: function () { return { chart: { zoom: { enabled: !1 } }, dataLabels: { style: { fontSize: 14, fontWeight: 600, colors: ["#fff"] } }, stroke: { show: !0, width: 2, colors: ["#fff"] }, legend: { show: !1 }, fill: { gradient: { stops: [0, 100] } }, tooltip: { followCursor: !0, x: { show: !1 } }, grid: { padding: { left: 0, right: 0 } }, xaxis: { crosshairs: { show: !1 }, tooltip: { enabled: !1 } } } } }, { key: "pie", value: function () { return { chart: { toolbar: { show: !1 } }, plotOptions: { pie: { donut: { labels: { show: !1 } } } }, dataLabels: { formatter: function (t) { return t.toFixed(1) + "%" }, style: { colors: ["#fff"] }, background: { enabled: !1 }, dropShadow: { enabled: !0 } }, stroke: { colors: ["#fff"] }, fill: { opacity: 1, gradient: { shade: "light", stops: [0, 100] } }, tooltip: { theme: "dark", fillSeriesColor: !0 }, legend: { position: "right" } } } }, { key: "donut", value: function () { return { chart: { toolbar: { show: !1 } }, dataLabels: { formatter: function (t) { return t.toFixed(1) + "%" }, style: { colors: ["#fff"] }, background: { enabled: !1 }, dropShadow: { enabled: !0 } }, stroke: { colors: ["#fff"] }, fill: { opacity: 1, gradient: { shade: "light", shadeIntensity: .35, stops: [80, 100], opacityFrom: 1, opacityTo: 1 } }, tooltip: { theme: "dark", fillSeriesColor: !0 }, legend: { position: "right" } } } }, { key: "polarArea", value: function () { return { chart: { toolbar: { show: !1 } }, dataLabels: { formatter: function (t) { return t.toFixed(1) + "%" }, enabled: !1 }, stroke: { show: !0, width: 2 }, fill: { opacity: .7 }, tooltip: { theme: "dark", fillSeriesColor: !0 }, legend: { position: "right" } } } }, { key: "radar", value: function () { return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6, { dataLabels: { enabled: !1, style: { fontSize: "11px" } }, stroke: { width: 2 }, markers: { size: 3, strokeWidth: 1, strokeOpacity: 1 }, fill: { opacity: .2 }, tooltip: { shared: !1, intersect: !0, followCursor: !0 }, grid: { show: !1 }, xaxis: { labels: { formatter: function (t) { return t }, style: { colors: ["#a8a8a8"], fontSize: "11px" } }, tooltip: { enabled: !1 }, crosshairs: { show: !1 } } } } }, { key: "radialBar", value: function () { return { chart: { animations: { dynamicAnimation: { enabled: !0, speed: 800 } }, toolbar: { show: !1 } }, fill: { gradient: { shade: "dark", shadeIntensity: .4, inverseColors: !1, type: "diagonal2", opacityFrom: 1, opacityTo: 1, stops: [70, 98, 100] } }, legend: { show: !1, position: "right" }, tooltip: { enabled: !1, fillSeriesColor: !0 } } } }, { key: "_getBoxTooltip", value: function (t, e, i, a, s) { var r = t.globals.seriesCandleO[e][i], o = t.globals.seriesCandleH[e][i], n = t.globals.seriesCandleM[e][i], l = t.globals.seriesCandleL[e][i], h = t.globals.seriesCandleC[e][i]; return t.config.series[e].type && t.config.series[e].type !== s ? '
    \n '.concat(t.config.series[e].name ? t.config.series[e].name : "series-" + (e + 1), ": ").concat(t.globals.series[e][i], "\n
    ") : '
    ') + "
    ".concat(a[0], ': ') + r + "
    " + "
    ".concat(a[1], ': ') + o + "
    " + (n ? "
    ".concat(a[2], ': ') + n + "
    " : "") + "
    ".concat(a[3], ': ') + l + "
    " + "
    ".concat(a[4], ': ') + h + "
    " } }]), t }(), Y = function () { function t(e) { a(this, t), this.opts = e } return r(t, [{ key: "init", value: function (t) { var e = t.responsiveOverride, a = this.opts, s = new I, r = new E(a); this.chartType = a.chart.type, a = this.extendYAxis(a), a = this.extendAnnotations(a); var o = s.init(), n = {}; if (a && "object" === i(a)) { var l, h, c, d, g, u, p, f, b, v, m = {}; m = -1 !== ["line", "area", "bar", "candlestick", "boxPlot", "rangeBar", "rangeArea", "bubble", "scatter", "heatmap", "treemap", "pie", "polarArea", "donut", "radar", "radialBar"].indexOf(a.chart.type) ? r[a.chart.type]() : r.line(), null !== (l = a.plotOptions) && void 0 !== l && null !== (h = l.bar) && void 0 !== h && h.isFunnel && (m = r.funnel()), a.chart.stacked && "bar" === a.chart.type && (m = r.stackedBars()), null !== (c = a.chart.brush) && void 0 !== c && c.enabled && (m = r.brush(m)), null !== (d = a.plotOptions) && void 0 !== d && null !== (g = d.line) && void 0 !== g && g.isSlopeChart && (m = r.slope()), a.chart.stacked && "100%" === a.chart.stackType && (a = r.stacked100(a)), null !== (u = a.plotOptions) && void 0 !== u && null !== (p = u.bar) && void 0 !== p && p.isDumbbell && (a = r.dumbbell(a)), this.checkForDarkTheme(window.Apex), this.checkForDarkTheme(a), a.xaxis = a.xaxis || window.Apex.xaxis || {}, e || (a.xaxis.convertedCatToNumeric = !1), (null !== (f = (a = this.checkForCatToNumericXAxis(this.chartType, m, a)).chart.sparkline) && void 0 !== f && f.enabled || null !== (b = window.Apex.chart) && void 0 !== b && null !== (v = b.sparkline) && void 0 !== v && v.enabled) && (m = r.sparkline(m)), n = x.extend(o, m) } var y = x.extend(n, window.Apex); return o = x.extend(y, a), o = this.handleUserInputErrors(o) } }, { key: "checkForCatToNumericXAxis", value: function (t, e, i) { var a, s, r = new E(i), o = ("bar" === t || "boxPlot" === t) && (null === (a = i.plotOptions) || void 0 === a || null === (s = a.bar) || void 0 === s ? void 0 : s.horizontal), n = "pie" === t || "polarArea" === t || "donut" === t || "radar" === t || "radialBar" === t || "heatmap" === t, l = "datetime" !== i.xaxis.type && "numeric" !== i.xaxis.type, h = i.xaxis.tickPlacement ? i.xaxis.tickPlacement : e.xaxis && e.xaxis.tickPlacement; return o || n || !l || "between" === h || (i = r.convertCatToNumeric(i)), i } }, { key: "extendYAxis", value: function (t, e) { var i = new I; (void 0 === t.yaxis || !t.yaxis || Array.isArray(t.yaxis) && 0 === t.yaxis.length) && (t.yaxis = {}), t.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array && (t.yaxis = x.extend(t.yaxis, window.Apex.yaxis)), t.yaxis.constructor !== Array ? t.yaxis = [x.extend(i.yAxis, t.yaxis)] : t.yaxis = x.extendArray(t.yaxis, i.yAxis); var a = !1; t.yaxis.forEach((function (t) { t.logarithmic && (a = !0) })); var s = t.series; return e && !s && (s = e.config.series), a && s.length !== t.yaxis.length && s.length && (t.yaxis = s.map((function (e, a) { if (e.name || (s[a].name = "series-".concat(a + 1)), t.yaxis[a]) return t.yaxis[a].seriesName = s[a].name, t.yaxis[a]; var r = x.extend(i.yAxis, t.yaxis[0]); return r.show = !1, r }))), a && s.length > 1 && s.length !== t.yaxis.length && console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"), t } }, { key: "extendAnnotations", value: function (t) { return void 0 === t.annotations && (t.annotations = {}, t.annotations.yaxis = [], t.annotations.xaxis = [], t.annotations.points = []), t = this.extendYAxisAnnotations(t), t = this.extendXAxisAnnotations(t), t = this.extendPointAnnotations(t) } }, { key: "extendYAxisAnnotations", value: function (t) { var e = new I; return t.annotations.yaxis = x.extendArray(void 0 !== t.annotations.yaxis ? t.annotations.yaxis : [], e.yAxisAnnotation), t } }, { key: "extendXAxisAnnotations", value: function (t) { var e = new I; return t.annotations.xaxis = x.extendArray(void 0 !== t.annotations.xaxis ? t.annotations.xaxis : [], e.xAxisAnnotation), t } }, { key: "extendPointAnnotations", value: function (t) { var e = new I; return t.annotations.points = x.extendArray(void 0 !== t.annotations.points ? t.annotations.points : [], e.pointAnnotation), t } }, { key: "checkForDarkTheme", value: function (t) { t.theme && "dark" === t.theme.mode && (t.tooltip || (t.tooltip = {}), "light" !== t.tooltip.theme && (t.tooltip.theme = "dark"), t.chart.foreColor || (t.chart.foreColor = "#f6f7f8"), t.chart.background || (t.chart.background = "#424242"), t.theme.palette || (t.theme.palette = "palette4")) } }, { key: "handleUserInputErrors", value: function (t) { var e = t; if (e.tooltip.shared && e.tooltip.intersect) throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false."); if ("bar" === e.chart.type && e.plotOptions.bar.horizontal) { if (e.yaxis.length > 1) throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false"); e.yaxis[0].reversed && (e.yaxis[0].opposite = !0), e.xaxis.tooltip.enabled = !1, e.yaxis[0].tooltip.enabled = !1, e.chart.zoom.enabled = !1 } return "bar" !== e.chart.type && "rangeBar" !== e.chart.type || e.tooltip.shared && "barWidth" === e.xaxis.crosshairs.width && e.series.length > 1 && (e.xaxis.crosshairs.width = "tickWidth"), "candlestick" !== e.chart.type && "boxPlot" !== e.chart.type || e.yaxis[0].reversed && (console.warn("Reversed y-axis in ".concat(e.chart.type, " chart is not supported.")), e.yaxis[0].reversed = !1), e } }]), t }(), F = function () { function t() { a(this, t) } return r(t, [{ key: "initGlobalVars", value: function (t) { t.series = [], t.seriesCandleO = [], t.seriesCandleH = [], t.seriesCandleM = [], t.seriesCandleL = [], t.seriesCandleC = [], t.seriesRangeStart = [], t.seriesRangeEnd = [], t.seriesRange = [], t.seriesPercent = [], t.seriesGoals = [], t.seriesX = [], t.seriesZ = [], t.seriesNames = [], t.seriesTotals = [], t.seriesLog = [], t.seriesColors = [], t.stackedSeriesTotals = [], t.seriesXvalues = [], t.seriesYvalues = [], t.labels = [], t.hasXaxisGroups = !1, t.groups = [], t.barGroups = [], t.lineGroups = [], t.areaGroups = [], t.hasSeriesGroups = !1, t.seriesGroups = [], t.categoryLabels = [], t.timescaleLabels = [], t.noLabelsProvided = !1, t.resizeTimer = null, t.selectionResizeTimer = null, t.delayedElements = [], t.pointsArray = [], t.dataLabelsRects = [], t.isXNumeric = !1, t.skipLastTimelinelabel = !1, t.skipFirstTimelinelabel = !1, t.isDataXYZ = !1, t.isMultiLineX = !1, t.isMultipleYAxis = !1, t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE, t.minYArr = [], t.maxYArr = [], t.maxX = -Number.MAX_VALUE, t.minX = Number.MAX_VALUE, t.initialMaxX = -Number.MAX_VALUE, t.initialMinX = Number.MAX_VALUE, t.maxDate = 0, t.minDate = Number.MAX_VALUE, t.minZ = Number.MAX_VALUE, t.maxZ = -Number.MAX_VALUE, t.minXDiff = Number.MAX_VALUE, t.yAxisScale = [], t.xAxisScale = null, t.xAxisTicksPositions = [], t.yLabelsCoords = [], t.yTitleCoords = [], t.barPadForNumericAxis = 0, t.padHorizontal = 0, t.xRange = 0, t.yRange = [], t.zRange = 0, t.dataPoints = 0, t.xTickAmount = 0, t.multiAxisTickAmount = 0 } }, { key: "globalVars", value: function (t) { return { chartID: null, cuid: null, events: { beforeMount: [], mounted: [], updated: [], clicked: [], selection: [], dataPointSelection: [], zoomed: [], scrolled: [] }, colors: [], clientX: null, clientY: null, fill: { colors: [] }, stroke: { colors: [] }, dataLabels: { style: { colors: [] } }, radarPolygons: { fill: { colors: [] } }, markers: { colors: [], size: t.markers.size, largestSize: 0 }, animationEnded: !1, isTouchDevice: "ontouchstart" in window || navigator.msMaxTouchPoints, isDirty: !1, isExecCalled: !1, initialConfig: null, initialSeries: [], lastXAxis: [], lastYAxis: [], columnSeries: null, labels: [], timescaleLabels: [], noLabelsProvided: !1, allSeriesCollapsed: !1, collapsedSeries: [], collapsedSeriesIndices: [], ancillaryCollapsedSeries: [], ancillaryCollapsedSeriesIndices: [], risingSeries: [], dataFormatXNumeric: !1, capturedSeriesIndex: -1, capturedDataPointIndex: -1, selectedDataPoints: [], goldenPadding: 35, invalidLogScale: !1, ignoreYAxisIndexes: [], maxValsInArrayIndex: 0, radialSize: 0, selection: void 0, zoomEnabled: "zoom" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.zoom && t.chart.zoom.enabled, panEnabled: "pan" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.pan, selectionEnabled: "selection" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.selection, yaxis: null, mousedown: !1, lastClientPosition: {}, visibleXRange: void 0, yValueDecimal: 0, total: 0, SVGNS: "http://www.w3.org/2000/svg", svgWidth: 0, svgHeight: 0, noData: !1, locale: {}, dom: {}, memory: { methodsToExec: [] }, shouldAnimate: !0, skipLastTimelinelabel: !1, skipFirstTimelinelabel: !1, delayedElements: [], axisCharts: !0, isDataXYZ: !1, isSlopeChart: t.plotOptions.line.isSlopeChart, resized: !1, resizeTimer: null, comboCharts: !1, dataChanged: !1, previousPaths: [], allSeriesHasEqualX: !0, pointsArray: [], dataLabelsRects: [], lastDrawnDataLabelsIndexes: [], hasNullValues: !1, easing: null, zoomed: !1, gridWidth: 0, gridHeight: 0, rotateXLabels: !1, defaultLabels: !1, xLabelFormatter: void 0, yLabelFormatters: [], xaxisTooltipFormatter: void 0, ttKeyFormatter: void 0, ttVal: void 0, ttZFormatter: void 0, LINE_HEIGHT_RATIO: 1.618, xAxisLabelsHeight: 0, xAxisGroupLabelsHeight: 0, xAxisLabelsWidth: 0, yAxisLabelsWidth: 0, scaleX: 1, scaleY: 1, translateX: 0, translateY: 0, translateYAxisX: [], yAxisWidths: [], translateXAxisY: 0, translateXAxisX: 0, tooltip: null, niceScaleAllowedMagMsd: [[1, 1, 2, 5, 5, 5, 10, 10, 10, 10, 10], [1, 1, 2, 5, 5, 5, 10, 10, 10, 10, 10]], niceScaleDefaultTicks: [1, 2, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 24], seriesYAxisMap: [], seriesYAxisReverseMap: [] } } }, { key: "init", value: function (t) { var e = this.globalVars(t); return this.initGlobalVars(e), e.initialConfig = x.extend({}, t), e.initialSeries = x.clone(t.series), e.lastXAxis = x.clone(e.initialConfig.xaxis), e.lastYAxis = x.clone(e.initialConfig.yaxis), e } }]), t }(), R = function () { function t(e) { a(this, t), this.opts = e } return r(t, [{ key: "init", value: function () { var t = new Y(this.opts).init({ responsiveOverride: !1 }); return { config: t, globals: (new F).init(t) } } }]), t }(), H = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.opts = null, this.seriesIndex = 0 } return r(t, [{ key: "clippedImgArea", value: function (t) { var e = this.w, i = e.config, a = parseInt(e.globals.gridWidth, 10), s = parseInt(e.globals.gridHeight, 10), r = a > s ? a : s, o = t.image, n = 0, l = 0; void 0 === t.width && void 0 === t.height ? void 0 !== i.fill.image.width && void 0 !== i.fill.image.height ? (n = i.fill.image.width + 1, l = i.fill.image.height) : (n = r + 1, l = r) : (n = t.width, l = t.height); var h = document.createElementNS(e.globals.SVGNS, "pattern"); m.setAttrs(h, { id: t.patternID, patternUnits: t.patternUnits ? t.patternUnits : "userSpaceOnUse", width: n + "px", height: l + "px" }); var c = document.createElementNS(e.globals.SVGNS, "image"); h.appendChild(c), c.setAttributeNS(window.SVG.xlink, "href", o), m.setAttrs(c, { x: 0, y: 0, preserveAspectRatio: "none", width: n + "px", height: l + "px" }), c.style.opacity = t.opacity, e.globals.dom.elDefs.node.appendChild(h) } }, { key: "getSeriesIndex", value: function (t) { var e = this.w, i = e.config.chart.type; return ("bar" === i || "rangeBar" === i) && e.config.plotOptions.bar.distributed || "heatmap" === i || "treemap" === i ? this.seriesIndex = t.seriesNumber : this.seriesIndex = t.seriesNumber % e.globals.series.length, this.seriesIndex } }, { key: "fillPath", value: function (t) { var e = this.w; this.opts = t; var i, a, s, r = this.w.config; this.seriesIndex = this.getSeriesIndex(t); var o = this.getFillColors()[this.seriesIndex]; void 0 !== e.globals.seriesColors[this.seriesIndex] && (o = e.globals.seriesColors[this.seriesIndex]), "function" == typeof o && (o = o({ seriesIndex: this.seriesIndex, dataPointIndex: t.dataPointIndex, value: t.value, w: e })); var n = t.fillType ? t.fillType : this.getFillType(this.seriesIndex), l = Array.isArray(r.fill.opacity) ? r.fill.opacity[this.seriesIndex] : r.fill.opacity; t.color && (o = t.color), o || (o = "#fff", console.warn("undefined color - ApexCharts")); var h = o; if (-1 === o.indexOf("rgb") ? o.length < 9 && (h = x.hexToRgba(o, l)) : o.indexOf("rgba") > -1 && (l = x.getOpacityFromRGBA(o)), t.opacity && (l = t.opacity), "pattern" === n && (a = this.handlePatternFill({ fillConfig: t.fillConfig, patternFill: a, fillColor: o, fillOpacity: l, defaultColor: h })), "gradient" === n && (s = this.handleGradientFill({ fillConfig: t.fillConfig, fillColor: o, fillOpacity: l, i: this.seriesIndex })), "image" === n) { var c = r.fill.image.src, d = t.patternID ? t.patternID : ""; this.clippedImgArea({ opacity: l, image: Array.isArray(c) ? t.seriesNumber < c.length ? c[t.seriesNumber] : c[0] : c, width: t.width ? t.width : void 0, height: t.height ? t.height : void 0, patternUnits: t.patternUnits, patternID: "pattern".concat(e.globals.cuid).concat(t.seriesNumber + 1).concat(d) }), i = "url(#pattern".concat(e.globals.cuid).concat(t.seriesNumber + 1).concat(d, ")") } else i = "gradient" === n ? s : "pattern" === n ? a : h; return t.solid && (i = h), i } }, { key: "getFillType", value: function (t) { var e = this.w; return Array.isArray(e.config.fill.type) ? e.config.fill.type[t] : e.config.fill.type } }, { key: "getFillColors", value: function () { var t = this.w, e = t.config, i = this.opts, a = []; return t.globals.comboCharts ? "line" === t.config.series[this.seriesIndex].type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors) : "line" === e.chart.type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors), void 0 !== i.fillColors && (a = [], Array.isArray(i.fillColors) ? a = i.fillColors.slice() : a.push(i.fillColors)), a } }, { key: "handlePatternFill", value: function (t) { var e = t.fillConfig, i = t.patternFill, a = t.fillColor, s = t.fillOpacity, r = t.defaultColor, o = this.w.config.fill; e && (o = e); var n = this.opts, l = new m(this.ctx), h = Array.isArray(o.pattern.strokeWidth) ? o.pattern.strokeWidth[this.seriesIndex] : o.pattern.strokeWidth, c = a; Array.isArray(o.pattern.style) ? i = void 0 !== o.pattern.style[n.seriesNumber] ? l.drawPattern(o.pattern.style[n.seriesNumber], o.pattern.width, o.pattern.height, c, h, s) : r : i = l.drawPattern(o.pattern.style, o.pattern.width, o.pattern.height, c, h, s); return i } }, { key: "handleGradientFill", value: function (t) { var i = t.fillColor, a = t.fillOpacity, s = t.fillConfig, r = t.i, o = this.w.config.fill; s && (o = e(e({}, o), s)); var n, l = this.opts, h = new m(this.ctx), c = new x, d = o.gradient.type, g = i, u = void 0 === o.gradient.opacityFrom ? a : Array.isArray(o.gradient.opacityFrom) ? o.gradient.opacityFrom[r] : o.gradient.opacityFrom; g.indexOf("rgba") > -1 && (u = x.getOpacityFromRGBA(g)); var p = void 0 === o.gradient.opacityTo ? a : Array.isArray(o.gradient.opacityTo) ? o.gradient.opacityTo[r] : o.gradient.opacityTo; if (void 0 === o.gradient.gradientToColors || 0 === o.gradient.gradientToColors.length) n = "dark" === o.gradient.shade ? c.shadeColor(-1 * parseFloat(o.gradient.shadeIntensity), i.indexOf("rgb") > -1 ? x.rgb2hex(i) : i) : c.shadeColor(parseFloat(o.gradient.shadeIntensity), i.indexOf("rgb") > -1 ? x.rgb2hex(i) : i); else if (o.gradient.gradientToColors[l.seriesNumber]) { var f = o.gradient.gradientToColors[l.seriesNumber]; n = f, f.indexOf("rgba") > -1 && (p = x.getOpacityFromRGBA(f)) } else n = i; if (o.gradient.gradientFrom && (g = o.gradient.gradientFrom), o.gradient.gradientTo && (n = o.gradient.gradientTo), o.gradient.inverseColors) { var b = g; g = n, n = b } return g.indexOf("rgb") > -1 && (g = x.rgb2hex(g)), n.indexOf("rgb") > -1 && (n = x.rgb2hex(n)), h.drawGradient(d, g, n, u, p, l.size, o.gradient.stops, o.gradient.colorStops, r) } }]), t }(), D = function () { function t(e, i) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "setGlobalMarkerSize", value: function () { var t = this.w; if (t.globals.markers.size = Array.isArray(t.config.markers.size) ? t.config.markers.size : [t.config.markers.size], t.globals.markers.size.length > 0) { if (t.globals.markers.size.length < t.globals.series.length + 1) for (var e = 0; e <= t.globals.series.length; e++)void 0 === t.globals.markers.size[e] && t.globals.markers.size.push(t.globals.markers.size[0]) } else t.globals.markers.size = t.config.series.map((function (e) { return t.config.markers.size })) } }, { key: "plotChartMarkers", value: function (t, e, i, a) { var s, r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], o = this.w, n = e, l = t, h = null, c = new m(this.ctx), d = o.config.markers.discrete && o.config.markers.discrete.length; if ((o.globals.markers.size[e] > 0 || r || d) && (h = c.group({ class: r || d ? "" : "apexcharts-series-markers" })).attr("clip-path", "url(#gridRectMarkerMask".concat(o.globals.cuid, ")")), Array.isArray(l.x)) for (var g = 0; g < l.x.length; g++) { var u = i; 1 === i && 0 === g && (u = 0), 1 === i && 1 === g && (u = 1); var p = "apexcharts-marker"; if ("line" !== o.config.chart.type && "area" !== o.config.chart.type || o.globals.comboCharts || o.config.tooltip.intersect || (p += " no-pointer-events"), (Array.isArray(o.config.markers.size) ? o.globals.markers.size[e] > 0 : o.config.markers.size > 0) || r || d) { x.isNumber(l.y[g]) ? p += " w".concat(x.randomId()) : p = "apexcharts-nullpoint"; var f = this.getMarkerConfig({ cssClass: p, seriesIndex: e, dataPointIndex: u }); o.config.series[n].data[u] && (o.config.series[n].data[u].fillColor && (f.pointFillColor = o.config.series[n].data[u].fillColor), o.config.series[n].data[u].strokeColor && (f.pointStrokeColor = o.config.series[n].data[u].strokeColor)), a && (f.pSize = a), (l.x[g] < -o.globals.markers.largestSize || l.x[g] > o.globals.gridWidth + o.globals.markers.largestSize || l.y[g] < -o.globals.markers.largestSize || l.y[g] > o.globals.gridHeight + o.globals.markers.largestSize) && (f.pSize = 0), (s = c.drawMarker(l.x[g], l.y[g], f)).attr("rel", u), s.attr("j", u), s.attr("index", e), s.node.setAttribute("default-marker-size", f.pSize), new v(this.ctx).setSelectionFilter(s, e, u), this.addEvents(s), h && h.add(s) } else void 0 === o.globals.pointsArray[e] && (o.globals.pointsArray[e] = []), o.globals.pointsArray[e].push([l.x[g], l.y[g]]) } return h } }, { key: "getMarkerConfig", value: function (t) { var e = t.cssClass, i = t.seriesIndex, a = t.dataPointIndex, s = void 0 === a ? null : a, r = t.finishRadius, o = void 0 === r ? null : r, n = this.w, l = this.getMarkerStyle(i), h = n.globals.markers.size[i], c = n.config.markers; return null !== s && c.discrete.length && c.discrete.map((function (t) { t.seriesIndex === i && t.dataPointIndex === s && (l.pointStrokeColor = t.strokeColor, l.pointFillColor = t.fillColor, h = t.size, l.pointShape = t.shape) })), { pSize: null === o ? h : o, pRadius: c.radius, width: Array.isArray(c.width) ? c.width[i] : c.width, height: Array.isArray(c.height) ? c.height[i] : c.height, pointStrokeWidth: Array.isArray(c.strokeWidth) ? c.strokeWidth[i] : c.strokeWidth, pointStrokeColor: l.pointStrokeColor, pointFillColor: l.pointFillColor, shape: l.pointShape || (Array.isArray(c.shape) ? c.shape[i] : c.shape), class: e, pointStrokeOpacity: Array.isArray(c.strokeOpacity) ? c.strokeOpacity[i] : c.strokeOpacity, pointStrokeDashArray: Array.isArray(c.strokeDashArray) ? c.strokeDashArray[i] : c.strokeDashArray, pointFillOpacity: Array.isArray(c.fillOpacity) ? c.fillOpacity[i] : c.fillOpacity, seriesIndex: i } } }, { key: "addEvents", value: function (t) { var e = this.w, i = new m(this.ctx); t.node.addEventListener("mouseenter", i.pathMouseEnter.bind(this.ctx, t)), t.node.addEventListener("mouseleave", i.pathMouseLeave.bind(this.ctx, t)), t.node.addEventListener("mousedown", i.pathMouseDown.bind(this.ctx, t)), t.node.addEventListener("click", e.config.markers.onClick), t.node.addEventListener("dblclick", e.config.markers.onDblClick), t.node.addEventListener("touchstart", i.pathMouseDown.bind(this.ctx, t), { passive: !0 }) } }, { key: "getMarkerStyle", value: function (t) { var e = this.w, i = e.globals.markers.colors, a = e.config.markers.strokeColor || e.config.markers.strokeColors; return { pointStrokeColor: Array.isArray(a) ? a[t] : a, pointFillColor: Array.isArray(i) ? i[t] : i } } }]), t }(), O = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled } return r(t, [{ key: "draw", value: function (t, e, i) { var a = this.w, s = new m(this.ctx), r = i.realIndex, o = i.pointsPos, n = i.zRatio, l = i.elParent, h = s.group({ class: "apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type) }); if (h.attr("clip-path", "url(#gridRectMarkerMask".concat(a.globals.cuid, ")")), Array.isArray(o.x)) for (var c = 0; c < o.x.length; c++) { var d = e + 1, g = !0; 0 === e && 0 === c && (d = 0), 0 === e && 1 === c && (d = 1); var u = 0, p = a.globals.markers.size[r]; if (n !== 1 / 0) { var f = a.config.plotOptions.bubble; p = a.globals.seriesZ[r][d], f.zScaling && (p /= n), f.minBubbleRadius && p < f.minBubbleRadius && (p = f.minBubbleRadius), f.maxBubbleRadius && p > f.maxBubbleRadius && (p = f.maxBubbleRadius) } a.config.chart.animations.enabled || (u = p); var x = o.x[c], b = o.y[c]; if (u = u || 0, null !== b && void 0 !== a.globals.series[r][d] || (g = !1), g) { var v = this.drawPoint(x, b, u, p, r, d, e); h.add(v) } l.add(h) } } }, { key: "drawPoint", value: function (t, e, i, a, s, r, o) { var n = this.w, l = s, h = new b(this.ctx), c = new v(this.ctx), d = new H(this.ctx), g = new D(this.ctx), u = new m(this.ctx), p = g.getMarkerConfig({ cssClass: "apexcharts-marker", seriesIndex: l, dataPointIndex: r, finishRadius: "bubble" === n.config.chart.type || n.globals.comboCharts && n.config.series[s] && "bubble" === n.config.series[s].type ? a : null }); a = p.pSize; var f, x = d.fillPath({ seriesNumber: s, dataPointIndex: r, color: p.pointFillColor, patternUnits: "objectBoundingBox", value: n.globals.series[s][o] }); if ("circle" === p.shape ? f = u.drawCircle(i) : "square" !== p.shape && "rect" !== p.shape || (f = u.drawRect(0, 0, p.width - p.pointStrokeWidth / 2, p.height - p.pointStrokeWidth / 2, p.pRadius)), n.config.series[l].data[r] && n.config.series[l].data[r].fillColor && (x = n.config.series[l].data[r].fillColor), f.attr({ x: t - p.width / 2 - p.pointStrokeWidth / 2, y: e - p.height / 2 - p.pointStrokeWidth / 2, cx: t, cy: e, fill: x, "fill-opacity": p.pointFillOpacity, stroke: p.pointStrokeColor, r: a, "stroke-width": p.pointStrokeWidth, "stroke-dasharray": p.pointStrokeDashArray, "stroke-opacity": p.pointStrokeOpacity }), n.config.chart.dropShadow.enabled) { var y = n.config.chart.dropShadow; c.dropShadow(f, y, s) } if (!this.initialAnim || n.globals.dataChanged || n.globals.resized) n.globals.animationEnded = !0; else { var w = n.config.chart.animations.speed; h.animateMarker(f, 0, "circle" === p.shape ? a : { width: p.width, height: p.height }, w, n.globals.easing, (function () { window.setTimeout((function () { h.animationCompleted(f) }), 100) })) } if (n.globals.dataChanged && "circle" === p.shape) if (this.dynamicAnim) { var k, A, S, C, L = n.config.chart.animations.dynamicAnimation.speed; null != (C = n.globals.previousPaths[s] && n.globals.previousPaths[s][o]) && (k = C.x, A = C.y, S = void 0 !== C.r ? C.r : a); for (var P = 0; P < n.globals.collapsedSeries.length; P++)n.globals.collapsedSeries[P].index === s && (L = 1, a = 0); 0 === t && 0 === e && (a = 0), h.animateCircle(f, { cx: k, cy: A, r: S }, { cx: t, cy: e, r: a }, L, n.globals.easing) } else f.attr({ r: a }); return f.attr({ rel: r, j: r, index: s, "default-marker-size": a }), c.setSelectionFilter(f, s, r), g.addEvents(f), f.node.classList.add("apexcharts-marker"), f } }, { key: "centerTextInBubble", value: function (t) { var e = this.w; return { y: t += parseInt(e.config.dataLabels.style.fontSize, 10) / 4 } } }]), t }(), N = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "dataLabelsCorrection", value: function (t, e, i, a, s, r, o) { var n = this.w, l = !1, h = new m(this.ctx).getTextRects(i, o), c = h.width, d = h.height; e < 0 && (e = 0), e > n.globals.gridHeight + d && (e = n.globals.gridHeight + d / 2), void 0 === n.globals.dataLabelsRects[a] && (n.globals.dataLabelsRects[a] = []), n.globals.dataLabelsRects[a].push({ x: t, y: e, width: c, height: d }); var g = n.globals.dataLabelsRects[a].length - 2, u = void 0 !== n.globals.lastDrawnDataLabelsIndexes[a] ? n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length - 1] : 0; if (void 0 !== n.globals.dataLabelsRects[a][g]) { var p = n.globals.dataLabelsRects[a][u]; (t > p.x + p.width || e > p.y + p.height || e + d < p.y || t + c < p.x) && (l = !0) } return (0 === s || r) && (l = !0), { x: t, y: e, textRects: h, drawnextLabel: l } } }, { key: "drawDataLabel", value: function (t) { var e = this, i = t.type, a = t.pos, s = t.i, r = t.j, o = t.isRangeStart, n = t.strokeWidth, l = void 0 === n ? 2 : n, h = this.w, c = new m(this.ctx), d = h.config.dataLabels, g = 0, u = 0, p = r, f = null; if (-1 !== h.globals.collapsedSeriesIndices.indexOf(s) || !d.enabled || !Array.isArray(a.x)) return f; f = c.group({ class: "apexcharts-data-labels" }); for (var x = 0; x < a.x.length; x++)if (g = a.x[x] + d.offsetX, u = a.y[x] + d.offsetY + l, !isNaN(g)) { 1 === r && 0 === x && (p = 0), 1 === r && 1 === x && (p = 1); var b = h.globals.series[s][p]; "rangeArea" === i && (b = o ? h.globals.seriesRangeStart[s][p] : h.globals.seriesRangeEnd[s][p]); var v = "", y = function (t) { return h.config.dataLabels.formatter(t, { ctx: e.ctx, seriesIndex: s, dataPointIndex: p, w: h }) }; if ("bubble" === h.config.chart.type) v = y(b = h.globals.seriesZ[s][p]), u = a.y[x], u = new O(this.ctx).centerTextInBubble(u, s, p).y; else void 0 !== b && (v = y(b)); var w = h.config.dataLabels.textAnchor; h.globals.isSlopeChart && (w = 0 === p ? "end" : p === h.config.series[s].data.length - 1 ? "start" : "middle"), this.plotDataLabelsText({ x: g, y: u, text: v, i: s, j: p, parent: f, offsetCorrection: !0, dataLabelsConfig: h.config.dataLabels, textAnchor: w }) } return f } }, { key: "plotDataLabelsText", value: function (t) { var e = this.w, i = new m(this.ctx), a = t.x, s = t.y, r = t.i, o = t.j, n = t.text, l = t.textAnchor, h = t.fontSize, c = t.parent, d = t.dataLabelsConfig, g = t.color, u = t.alwaysDrawDataLabel, p = t.offsetCorrection; if (!(Array.isArray(e.config.dataLabels.enabledOnSeries) && e.config.dataLabels.enabledOnSeries.indexOf(r) < 0)) { var f = { x: a, y: s, drawnextLabel: !0, textRects: null }; p && (f = this.dataLabelsCorrection(a, s, n, r, o, u, parseInt(d.style.fontSize, 10))), e.globals.zoomed || (a = f.x, s = f.y), f.textRects && (a < -20 - f.textRects.width || a > e.globals.gridWidth + f.textRects.width + 30) && (n = ""); var x = e.globals.dataLabels.style.colors[r]; (("bar" === e.config.chart.type || "rangeBar" === e.config.chart.type) && e.config.plotOptions.bar.distributed || e.config.dataLabels.distributed) && (x = e.globals.dataLabels.style.colors[o]), "function" == typeof x && (x = x({ series: e.globals.series, seriesIndex: r, dataPointIndex: o, w: e })), g && (x = g); var b = d.offsetX, y = d.offsetY; if ("bar" !== e.config.chart.type && "rangeBar" !== e.config.chart.type || (b = 0, y = 0), e.globals.isSlopeChart && (0 !== o && (b = -2 * d.offsetX + 5), 0 !== o && o !== e.config.series[r].data.length - 1 && (b = 0)), f.drawnextLabel) { var w = i.drawText({ width: 100, height: parseInt(d.style.fontSize, 10), x: a + b, y: s + y, foreColor: x, textAnchor: l || d.textAnchor, text: n, fontSize: h || d.style.fontSize, fontFamily: d.style.fontFamily, fontWeight: d.style.fontWeight || "normal" }); if (w.attr({ class: "apexcharts-datalabel", cx: a, cy: s }), d.dropShadow.enabled) { var k = d.dropShadow; new v(this.ctx).dropShadow(w, k) } c.add(w), void 0 === e.globals.lastDrawnDataLabelsIndexes[r] && (e.globals.lastDrawnDataLabelsIndexes[r] = []), e.globals.lastDrawnDataLabelsIndexes[r].push(o) } } } }, { key: "addBackgroundToDataLabel", value: function (t, e) { var i = this.w, a = i.config.dataLabels.background, s = a.padding, r = a.padding / 2, o = e.width, n = e.height, l = new m(this.ctx).drawRect(e.x - s, e.y - r / 2, o + 2 * s, n + r, a.borderRadius, "transparent" === i.config.chart.background ? "#fff" : i.config.chart.background, a.opacity, a.borderWidth, a.borderColor); a.dropShadow.enabled && new v(this.ctx).dropShadow(l, a.dropShadow); return l } }, { key: "dataLabelsBackground", value: function () { var t = this.w; if ("bubble" !== t.config.chart.type) for (var e = t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"), i = 0; i < e.length; i++) { var a = e[i], s = a.getBBox(), r = null; if (s.width && s.height && (r = this.addBackgroundToDataLabel(a, s)), r) { a.parentNode.insertBefore(r.node, a); var o = a.getAttribute("fill"); t.config.chart.animations.enabled && !t.globals.resized && !t.globals.dataChanged ? r.animate().attr({ fill: o }) : r.attr({ fill: o }), a.setAttribute("fill", t.config.dataLabels.background.foreColor) } } } }, { key: "bringForward", value: function () { for (var t = this.w, e = t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels"), i = t.globals.dom.baseEl.querySelector(".apexcharts-plot-series:last-child"), a = 0; a < e.length; a++)i && i.insertBefore(e[a], i.nextSibling) } }]), t }(), W = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.legendInactiveClass = "legend-mouseover-inactive" } return r(t, [{ key: "getAllSeriesEls", value: function () { return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series") } }, { key: "getSeriesByName", value: function (t) { return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(x.escapeString(t), "']")) } }, { key: "isSeriesHidden", value: function (t) { var e = this.getSeriesByName(t), i = parseInt(e.getAttribute("data:realIndex"), 10); return { isHidden: e.classList.contains("apexcharts-series-collapsed"), realIndex: i } } }, { key: "addCollapsedClassToSeries", value: function (t, e) { var i = this.w; function a(i) { for (var a = 0; a < i.length; a++)i[a].index === e && t.node.classList.add("apexcharts-series-collapsed") } a(i.globals.collapsedSeries), a(i.globals.ancillaryCollapsedSeries) } }, { key: "toggleSeries", value: function (t) { var e = this.isSeriesHidden(t); return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, e.isHidden), e.isHidden } }, { key: "showSeries", value: function (t) { var e = this.isSeriesHidden(t); e.isHidden && this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !0) } }, { key: "hideSeries", value: function (t) { var e = this.isSeriesHidden(t); e.isHidden || this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !1) } }, { key: "resetSeries", value: function () { var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], a = this.w, s = x.clone(a.globals.initialSeries); a.globals.previousPaths = [], i ? (a.globals.collapsedSeries = [], a.globals.ancillaryCollapsedSeries = [], a.globals.collapsedSeriesIndices = [], a.globals.ancillaryCollapsedSeriesIndices = []) : s = this.emptyCollapsedSeries(s), a.config.series = s, t && (e && (a.globals.zoomed = !1, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled)) } }, { key: "emptyCollapsedSeries", value: function (t) { for (var e = this.w, i = 0; i < t.length; i++)e.globals.collapsedSeriesIndices.indexOf(i) > -1 && (t[i].data = []); return t } }, { key: "toggleSeriesOnHover", value: function (t, e) { var i = this.w; e || (e = t.target); var a = i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"); if ("mousemove" === t.type) { var s = parseInt(e.getAttribute("rel"), 10) - 1, r = null, o = null, n = null; if (i.globals.axisCharts || "radialBar" === i.config.chart.type) if (i.globals.axisCharts) { r = i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s, "']")), o = i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s, "']")); var l = i.globals.seriesYAxisReverseMap[s]; n = i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(l, "']")) } else r = i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s + 1, "']")); else r = i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s + 1, "'] path")); for (var h = 0; h < a.length; h++)a[h].classList.add(this.legendInactiveClass); null !== r && (i.globals.axisCharts || r.parentNode.classList.remove(this.legendInactiveClass), r.classList.remove(this.legendInactiveClass), null !== o && o.classList.remove(this.legendInactiveClass), null !== n && n.classList.remove(this.legendInactiveClass)) } else if ("mouseout" === t.type) for (var c = 0; c < a.length; c++)a[c].classList.remove(this.legendInactiveClass) } }, { key: "highlightRangeInSeries", value: function (t, e) { var i = this, a = this.w, s = a.globals.dom.baseEl.getElementsByClassName("apexcharts-heatmap-rect"), r = function (t) { for (var e = 0; e < s.length; e++)s[e].classList[t](i.legendInactiveClass) }; if ("mousemove" === t.type) { var o = parseInt(e.getAttribute("rel"), 10) - 1; r("add"), function (t) { for (var e = 0; e < s.length; e++) { var a = parseInt(s[e].getAttribute("val"), 10); a >= t.from && a <= t.to && s[e].classList.remove(i.legendInactiveClass) } }(a.config.plotOptions.heatmap.colorScale.ranges[o]) } else "mouseout" === t.type && r("remove") } }, { key: "getActiveConfigSeriesIndex", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "asc", e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], i = this.w, a = 0; if (i.config.series.length > 1) for (var s = i.config.series.map((function (t, a) { return t.data && t.data.length > 0 && -1 === i.globals.collapsedSeriesIndices.indexOf(a) && (!i.globals.comboCharts || 0 === e.length || e.length && e.indexOf(i.config.series[a].type) > -1) ? a : -1 })), r = "asc" === t ? 0 : s.length - 1; "asc" === t ? r < s.length : r >= 0; "asc" === t ? r++ : r--)if (-1 !== s[r]) { a = s[r]; break } return a } }, { key: "getBarSeriesIndices", value: function () { return this.w.globals.comboCharts ? this.w.config.series.map((function (t, e) { return "bar" === t.type || "column" === t.type ? e : -1 })).filter((function (t) { return -1 !== t })) : this.w.config.series.map((function (t, e) { return e })) } }, { key: "getPreviousPaths", value: function () { var t = this.w; function e(e, i, a) { for (var s = e[i].childNodes, r = { type: a, paths: [], realIndex: e[i].getAttribute("data:realIndex") }, o = 0; o < s.length; o++)if (s[o].hasAttribute("pathTo")) { var n = s[o].getAttribute("pathTo"); r.paths.push({ d: n }) } t.globals.previousPaths.push(r) } t.globals.previousPaths = [];["line", "area", "bar", "rangebar", "rangeArea", "candlestick", "radar"].forEach((function (i) { for (var a, s = (a = i, t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(a, "-series .apexcharts-series"))), r = 0; r < s.length; r++)e(s, r, i) })), this.handlePrevBubbleScatterPaths("bubble"), this.handlePrevBubbleScatterPaths("scatter"); var i = t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type, " .apexcharts-series")); if (i.length > 0) for (var a = function (e) { for (var i = t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type, " .apexcharts-series[data\\:realIndex='").concat(e, "'] rect")), a = [], s = function (t) { var e = function (e) { return i[t].getAttribute(e) }, s = { x: parseFloat(e("x")), y: parseFloat(e("y")), width: parseFloat(e("width")), height: parseFloat(e("height")) }; a.push({ rect: s, color: i[t].getAttribute("color") }) }, r = 0; r < i.length; r++)s(r); t.globals.previousPaths.push(a) }, s = 0; s < i.length; s++)a(s); t.globals.axisCharts || (t.globals.previousPaths = t.globals.series) } }, { key: "handlePrevBubbleScatterPaths", value: function (t) { var e = this.w, i = e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t, "-series .apexcharts-series")); if (i.length > 0) for (var a = 0; a < i.length; a++) { for (var s = e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t, "-series .apexcharts-series[data\\:realIndex='").concat(a, "'] circle")), r = [], o = 0; o < s.length; o++)r.push({ x: s[o].getAttribute("cx"), y: s[o].getAttribute("cy"), r: s[o].getAttribute("r") }); e.globals.previousPaths.push(r) } } }, { key: "clearPreviousPaths", value: function () { var t = this.w; t.globals.previousPaths = [], t.globals.allSeriesCollapsed = !1 } }, { key: "handleNoData", value: function () { var t = this.w, e = t.config.noData, i = new m(this.ctx), a = t.globals.svgWidth / 2, s = t.globals.svgHeight / 2, r = "middle"; if (t.globals.noData = !0, t.globals.animationEnded = !0, "left" === e.align ? (a = 10, r = "start") : "right" === e.align && (a = t.globals.svgWidth - 10, r = "end"), "top" === e.verticalAlign ? s = 50 : "bottom" === e.verticalAlign && (s = t.globals.svgHeight - 50), a += e.offsetX, s = s + parseInt(e.style.fontSize, 10) + 2 + e.offsetY, void 0 !== e.text && "" !== e.text) { var o = i.drawText({ x: a, y: s, text: e.text, textAnchor: r, fontSize: e.style.fontSize, fontFamily: e.style.fontFamily, foreColor: e.style.color, opacity: 1, class: "apexcharts-text-nodata" }); t.globals.dom.Paper.add(o) } } }, { key: "setNullSeriesToZeroValues", value: function (t) { for (var e = this.w, i = 0; i < t.length; i++)if (0 === t[i].length) for (var a = 0; a < t[e.globals.maxValsInArrayIndex].length; a++)t[i].push(0); return t } }, { key: "hasAllSeriesEqualX", value: function () { for (var t = !0, e = this.w, i = this.filteredSeriesX(), a = 0; a < i.length - 1; a++)if (i[a][0] !== i[a + 1][0]) { t = !1; break } return e.globals.allSeriesHasEqualX = t, t } }, { key: "filteredSeriesX", value: function () { var t = this.w.globals.seriesX.map((function (t) { return t.length > 0 ? t : [] })); return t } }]), t }(), B = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.seriesGoals = [], this.coreUtils = new y(this.ctx) } return r(t, [{ key: "isMultiFormat", value: function () { return this.isFormatXY() || this.isFormat2DArray() } }, { key: "isFormatXY", value: function () { var t = this.w.config.series.slice(), e = new W(this.ctx); if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && null !== t[this.activeSeriesIndex].data[0] && void 0 !== t[this.activeSeriesIndex].data[0].x && null !== t[this.activeSeriesIndex].data[0]) return !0 } }, { key: "isFormat2DArray", value: function () { var t = this.w.config.series.slice(), e = new W(this.ctx); if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && void 0 !== t[this.activeSeriesIndex].data[0] && null !== t[this.activeSeriesIndex].data[0] && t[this.activeSeriesIndex].data[0].constructor === Array) return !0 } }, { key: "handleFormat2DArray", value: function (t, e) { for (var i = this.w.config, a = this.w.globals, s = "boxPlot" === i.chart.type || "boxPlot" === i.series[e].type, r = 0; r < t[e].data.length; r++)if (void 0 !== t[e].data[r][1] && (Array.isArray(t[e].data[r][1]) && 4 === t[e].data[r][1].length && !s ? this.twoDSeries.push(x.parseNumber(t[e].data[r][1][3])) : t[e].data[r].length >= 5 ? this.twoDSeries.push(x.parseNumber(t[e].data[r][4])) : this.twoDSeries.push(x.parseNumber(t[e].data[r][1])), a.dataFormatXNumeric = !0), "datetime" === i.xaxis.type) { var o = new Date(t[e].data[r][0]); o = new Date(o).getTime(), this.twoDSeriesX.push(o) } else this.twoDSeriesX.push(t[e].data[r][0]); for (var n = 0; n < t[e].data.length; n++)void 0 !== t[e].data[n][2] && (this.threeDSeries.push(t[e].data[n][2]), a.isDataXYZ = !0) } }, { key: "handleFormatXY", value: function (t, e) { var i = this.w.config, a = this.w.globals, s = new A(this.ctx), r = e; a.collapsedSeriesIndices.indexOf(e) > -1 && (r = this.activeSeriesIndex); for (var o = 0; o < t[e].data.length; o++)void 0 !== t[e].data[o].y && (Array.isArray(t[e].data[o].y) ? this.twoDSeries.push(x.parseNumber(t[e].data[o].y[t[e].data[o].y.length - 1])) : this.twoDSeries.push(x.parseNumber(t[e].data[o].y))), void 0 !== t[e].data[o].goals && Array.isArray(t[e].data[o].goals) ? (void 0 === this.seriesGoals[e] && (this.seriesGoals[e] = []), this.seriesGoals[e].push(t[e].data[o].goals)) : (void 0 === this.seriesGoals[e] && (this.seriesGoals[e] = []), this.seriesGoals[e].push(null)); for (var n = 0; n < t[r].data.length; n++) { var l = "string" == typeof t[r].data[n].x, h = Array.isArray(t[r].data[n].x), c = !h && !!s.isValidDate(t[r].data[n].x); if (l || c) if (l || i.xaxis.convertedCatToNumeric) { var d = a.isBarHorizontal && a.isRangeData; "datetime" !== i.xaxis.type || d ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[n].x), isNaN(t[r].data[n].x) || "category" === this.w.config.xaxis.type || "string" == typeof t[r].data[n].x || (a.isXNumeric = !0)) : this.twoDSeriesX.push(s.parseDate(t[r].data[n].x)) } else "datetime" === i.xaxis.type ? this.twoDSeriesX.push(s.parseDate(t[r].data[n].x.toString())) : (a.dataFormatXNumeric = !0, a.isXNumeric = !0, this.twoDSeriesX.push(parseFloat(t[r].data[n].x))); else h ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[n].x)) : (a.isXNumeric = !0, a.dataFormatXNumeric = !0, this.twoDSeriesX.push(t[r].data[n].x)) } if (t[e].data[0] && void 0 !== t[e].data[0].z) { for (var g = 0; g < t[e].data.length; g++)this.threeDSeries.push(t[e].data[g].z); a.isDataXYZ = !0 } } }, { key: "handleRangeData", value: function (t, e) { var i = this.w.globals, a = {}; return this.isFormat2DArray() ? a = this.handleRangeDataFormat("array", t, e) : this.isFormatXY() && (a = this.handleRangeDataFormat("xy", t, e)), i.seriesRangeStart.push(void 0 === a.start ? [] : a.start), i.seriesRangeEnd.push(void 0 === a.end ? [] : a.end), i.seriesRange.push(a.rangeUniques), i.seriesRange.forEach((function (t, e) { t && t.forEach((function (t, e) { t.y.forEach((function (e, i) { for (var a = 0; a < t.y.length; a++)if (i !== a) { var s = e.y1, r = e.y2, o = t.y[a].y1; s <= t.y[a].y2 && o <= r && (t.overlaps.indexOf(e.rangeName) < 0 && t.overlaps.push(e.rangeName), t.overlaps.indexOf(t.y[a].rangeName) < 0 && t.overlaps.push(t.y[a].rangeName)) } })) })) })), a } }, { key: "handleCandleStickBoxData", value: function (t, e) { var i = this.w.globals, a = {}; return this.isFormat2DArray() ? a = this.handleCandleStickBoxDataFormat("array", t, e) : this.isFormatXY() && (a = this.handleCandleStickBoxDataFormat("xy", t, e)), i.seriesCandleO[e] = a.o, i.seriesCandleH[e] = a.h, i.seriesCandleM[e] = a.m, i.seriesCandleL[e] = a.l, i.seriesCandleC[e] = a.c, a } }, { key: "handleRangeDataFormat", value: function (t, e, i) { var a = [], s = [], r = e[i].data.filter((function (t, e, i) { return e === i.findIndex((function (e) { return e.x === t.x })) })).map((function (t, e) { return { x: t.x, overlaps: [], y: [] } })); if ("array" === t) for (var o = 0; o < e[i].data.length; o++)Array.isArray(e[i].data[o]) ? (a.push(e[i].data[o][1][0]), s.push(e[i].data[o][1][1])) : (a.push(e[i].data[o]), s.push(e[i].data[o])); else if ("xy" === t) for (var n = function (t) { var o = Array.isArray(e[i].data[t].y), n = x.randomId(), l = e[i].data[t].x, h = { y1: o ? e[i].data[t].y[0] : e[i].data[t].y, y2: o ? e[i].data[t].y[1] : e[i].data[t].y, rangeName: n }; e[i].data[t].rangeName = n; var c = r.findIndex((function (t) { return t.x === l })); r[c].y.push(h), a.push(h.y1), s.push(h.y2) }, l = 0; l < e[i].data.length; l++)n(l); return { start: a, end: s, rangeUniques: r } } }, { key: "handleCandleStickBoxDataFormat", value: function (t, e, i) { var a = this.w, s = "boxPlot" === a.config.chart.type || "boxPlot" === a.config.series[i].type, r = [], o = [], n = [], l = [], h = []; if ("array" === t) if (s && 6 === e[i].data[0].length || !s && 5 === e[i].data[0].length) for (var c = 0; c < e[i].data.length; c++)r.push(e[i].data[c][1]), o.push(e[i].data[c][2]), s ? (n.push(e[i].data[c][3]), l.push(e[i].data[c][4]), h.push(e[i].data[c][5])) : (l.push(e[i].data[c][3]), h.push(e[i].data[c][4])); else for (var d = 0; d < e[i].data.length; d++)Array.isArray(e[i].data[d][1]) && (r.push(e[i].data[d][1][0]), o.push(e[i].data[d][1][1]), s ? (n.push(e[i].data[d][1][2]), l.push(e[i].data[d][1][3]), h.push(e[i].data[d][1][4])) : (l.push(e[i].data[d][1][2]), h.push(e[i].data[d][1][3]))); else if ("xy" === t) for (var g = 0; g < e[i].data.length; g++)Array.isArray(e[i].data[g].y) && (r.push(e[i].data[g].y[0]), o.push(e[i].data[g].y[1]), s ? (n.push(e[i].data[g].y[2]), l.push(e[i].data[g].y[3]), h.push(e[i].data[g].y[4])) : (l.push(e[i].data[g].y[2]), h.push(e[i].data[g].y[3]))); return { o: r, h: o, m: n, l: l, c: h } } }, { key: "parseDataAxisCharts", value: function (t) { var e = this, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.ctx, a = this.w.config, s = this.w.globals, r = new A(i), o = a.labels.length > 0 ? a.labels.slice() : a.xaxis.categories.slice(); s.isRangeBar = "rangeBar" === a.chart.type && s.isBarHorizontal, s.hasXaxisGroups = "category" === a.xaxis.type && a.xaxis.group.groups.length > 0, s.hasXaxisGroups && (s.groups = a.xaxis.group.groups), t.forEach((function (t, e) { void 0 !== t.name ? s.seriesNames.push(t.name) : s.seriesNames.push("series-" + parseInt(e + 1, 10)) })), this.coreUtils.setSeriesYAxisMappings(); var n = [], l = u(new Set(a.series.map((function (t) { return t.group })))); a.series.forEach((function (t, e) { var i = l.indexOf(t.group); n[i] || (n[i] = []), n[i].push(s.seriesNames[e]) })), s.seriesGroups = n; for (var h = function () { for (var t = 0; t < o.length; t++)if ("string" == typeof o[t]) { if (!r.isValidDate(o[t])) throw new Error("You have provided invalid Date format. Please provide a valid JavaScript Date"); e.twoDSeriesX.push(r.parseDate(o[t])) } else e.twoDSeriesX.push(o[t]) }, c = 0; c < t.length; c++) { if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], void 0 === t[c].data) return void console.error("It is a possibility that you may have not included 'data' property in series."); if ("rangeBar" !== a.chart.type && "rangeArea" !== a.chart.type && "rangeBar" !== t[c].type && "rangeArea" !== t[c].type || (s.isRangeData = !0, "rangeBar" !== a.chart.type && "rangeArea" !== a.chart.type || this.handleRangeData(t, c)), this.isMultiFormat()) this.isFormat2DArray() ? this.handleFormat2DArray(t, c) : this.isFormatXY() && this.handleFormatXY(t, c), "candlestick" !== a.chart.type && "candlestick" !== t[c].type && "boxPlot" !== a.chart.type && "boxPlot" !== t[c].type || this.handleCandleStickBoxData(t, c), s.series.push(this.twoDSeries), s.labels.push(this.twoDSeriesX), s.seriesX.push(this.twoDSeriesX), s.seriesGoals = this.seriesGoals, c !== this.activeSeriesIndex || this.fallbackToCategory || (s.isXNumeric = !0); else { "datetime" === a.xaxis.type ? (s.isXNumeric = !0, h(), s.seriesX.push(this.twoDSeriesX)) : "numeric" === a.xaxis.type && (s.isXNumeric = !0, o.length > 0 && (this.twoDSeriesX = o, s.seriesX.push(this.twoDSeriesX))), s.labels.push(this.twoDSeriesX); var d = t[c].data.map((function (t) { return x.parseNumber(t) })); s.series.push(d) } s.seriesZ.push(this.threeDSeries), void 0 !== t[c].color ? s.seriesColors.push(t[c].color) : s.seriesColors.push(void 0) } return this.w } }, { key: "parseDataNonAxisCharts", value: function (t) { var e = this.w.globals, i = this.w.config; e.series = t.slice(), e.seriesNames = i.labels.slice(); for (var a = 0; a < e.series.length; a++)void 0 === e.seriesNames[a] && e.seriesNames.push("series-" + (a + 1)); return this.w } }, { key: "handleExternalLabelsData", value: function (t) { var e = this.w.config, i = this.w.globals; if (e.xaxis.categories.length > 0) i.labels = e.xaxis.categories; else if (e.labels.length > 0) i.labels = e.labels.slice(); else if (this.fallbackToCategory) { if (i.labels = i.labels[0], i.seriesRange.length && (i.seriesRange.map((function (t) { t.forEach((function (t) { i.labels.indexOf(t.x) < 0 && t.x && i.labels.push(t.x) })) })), i.labels = Array.from(new Set(i.labels.map(JSON.stringify)), JSON.parse)), e.xaxis.convertedCatToNumeric) new E(e).convertCatToNumericXaxis(e, this.ctx, i.seriesX[0]), this._generateExternalLabels(t) } else this._generateExternalLabels(t) } }, { key: "_generateExternalLabels", value: function (t) { var e = this.w.globals, i = this.w.config, a = []; if (e.axisCharts) { if (e.series.length > 0) if (this.isFormatXY()) for (var s = i.series.map((function (t, e) { return t.data.filter((function (t, e, i) { return i.findIndex((function (e) { return e.x === t.x })) === e })) })), r = s.reduce((function (t, e, i, a) { return a[t].length > e.length ? t : i }), 0), o = 0; o < s[r].length; o++)a.push(o + 1); else for (var n = 0; n < e.series[e.maxValsInArrayIndex].length; n++)a.push(n + 1); e.seriesX = []; for (var l = 0; l < t.length; l++)e.seriesX.push(a); this.w.globals.isBarHorizontal || (e.isXNumeric = !0) } if (0 === a.length) { a = e.axisCharts ? [] : e.series.map((function (t, e) { return e + 1 })); for (var h = 0; h < t.length; h++)e.seriesX.push(a) } e.labels = a, i.xaxis.convertedCatToNumeric && (e.categoryLabels = a.map((function (t) { return i.xaxis.labels.formatter(t) }))), e.noLabelsProvided = !0 } }, { key: "parseData", value: function (t) { var e = this.w, i = e.config, a = e.globals; if (this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = !1, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), a.axisCharts ? (this.parseDataAxisCharts(t), this.coreUtils.getLargestSeries()) : this.parseDataNonAxisCharts(t), i.chart.stacked) { var s = new W(this.ctx); a.series = s.setNullSeriesToZeroValues(a.series) } this.coreUtils.getSeriesTotals(), a.axisCharts && (a.stackedSeriesTotals = this.coreUtils.getStackedSeriesTotals(), a.stackedSeriesTotalsByGroups = this.coreUtils.getStackedSeriesTotalsByGroups()), this.coreUtils.getPercentSeries(), a.dataFormatXNumeric || a.isXNumeric && ("numeric" !== i.xaxis.type || 0 !== i.labels.length || 0 !== i.xaxis.categories.length) || this.handleExternalLabelsData(t); for (var r = this.coreUtils.getCategoryLabels(a.labels), o = 0; o < r.length; o++)if (Array.isArray(r[o])) { a.isMultiLineX = !0; break } } }, { key: "excludeCollapsedSeriesInYAxis", value: function () { var t = this.w, e = []; t.globals.seriesYAxisMap.forEach((function (i, a) { var s = 0; i.forEach((function (e) { -1 !== t.globals.collapsedSeriesIndices.indexOf(e) && s++ })), s > 0 && s == i.length && e.push(a) })), t.globals.ignoreYAxisIndexes = e.map((function (t) { return t })) } }]), t }(), G = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "scaleSvgNode", value: function (t, e) { var i = parseFloat(t.getAttributeNS(null, "width")), a = parseFloat(t.getAttributeNS(null, "height")); t.setAttributeNS(null, "width", i * e), t.setAttributeNS(null, "height", a * e), t.setAttributeNS(null, "viewBox", "0 0 " + i + " " + a) } }, { key: "fixSvgStringForIe11", value: function (t) { if (!x.isIE11()) return t.replace(/ /g, " "); var e = 0, i = t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g, (function (t) { return 2 === ++e ? 'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"' : t })); return i = (i = i.replace(/xmlns:NS\d+=""/g, "")).replace(/NS\d+:(\w+:\w+=")/g, "$1") } }, { key: "getSvgString", value: function (t) { null == t && (t = 1); var e = this.w.globals.dom.Paper.svg(); if (1 !== t) { var i = this.w.globals.dom.Paper.node.cloneNode(!0); this.scaleSvgNode(i, t), e = (new XMLSerializer).serializeToString(i) } return this.fixSvgStringForIe11(e) } }, { key: "cleanup", value: function () { var t = this.w, e = t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"), i = t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"), a = t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect"); Array.prototype.forEach.call(a, (function (t) { t.setAttribute("width", 0) })), e && e[0] && (e[0].setAttribute("x", -500), e[0].setAttribute("x1", -500), e[0].setAttribute("x2", -500)), i && i[0] && (i[0].setAttribute("y", -100), i[0].setAttribute("y1", -100), i[0].setAttribute("y2", -100)) } }, { key: "svgUrl", value: function () { this.cleanup(); var t = this.getSvgString(), e = new Blob([t], { type: "image/svg+xml;charset=utf-8" }); return URL.createObjectURL(e) } }, { key: "dataURI", value: function (t) { var e = this; return new Promise((function (i) { var a = e.w, s = t ? t.scale || t.width / a.globals.svgWidth : 1; e.cleanup(); var r = document.createElement("canvas"); r.width = a.globals.svgWidth * s, r.height = parseInt(a.globals.dom.elWrap.style.height, 10) * s; var o = "transparent" === a.config.chart.background ? "#fff" : a.config.chart.background, n = r.getContext("2d"); n.fillStyle = o, n.fillRect(0, 0, r.width * s, r.height * s); var l = e.getSvgString(s); if (window.canvg && x.isIE11()) { var h = window.canvg.Canvg.fromString(n, l, { ignoreClear: !0, ignoreDimensions: !0 }); h.start(); var c = r.msToBlob(); h.stop(), i({ blob: c }) } else { var d = "data:image/svg+xml," + encodeURIComponent(l), g = new Image; g.crossOrigin = "anonymous", g.onload = function () { if (n.drawImage(g, 0, 0), r.msToBlob) { var t = r.msToBlob(); i({ blob: t }) } else { var e = r.toDataURL("image/png"); i({ imgURI: e }) } }, g.src = d } })) } }, { key: "exportToSVG", value: function () { this.triggerDownload(this.svgUrl(), this.w.config.chart.toolbar.export.svg.filename, ".svg") } }, { key: "exportToPng", value: function () { var t = this; this.dataURI().then((function (e) { var i = e.imgURI, a = e.blob; a ? navigator.msSaveOrOpenBlob(a, t.w.globals.chartID + ".png") : t.triggerDownload(i, t.w.config.chart.toolbar.export.png.filename, ".png") })) } }, { key: "exportToCSV", value: function (t) { var e = this, i = t.series, a = t.fileName, s = t.columnDelimiter, r = void 0 === s ? "," : s, o = t.lineDelimiter, n = void 0 === o ? "\n" : o, l = this.w; i || (i = l.config.series); var h, c, d = [], g = [], p = "", f = l.globals.series.map((function (t, e) { return -1 === l.globals.collapsedSeriesIndices.indexOf(e) ? t : [] })), b = function (t) { return "datetime" === l.config.xaxis.type && String(t).length >= 10 }, v = Math.max.apply(Math, u(i.map((function (t) { return t.data ? t.data.length : 0 })))), m = new B(this.ctx), y = new C(this.ctx), w = function (t) { var i = ""; if (l.globals.axisCharts) { if ("category" === l.config.xaxis.type || l.config.xaxis.convertedCatToNumeric) if (l.globals.isBarHorizontal) { var a = l.globals.yLabelFormatters[0], s = new W(e.ctx).getActiveConfigSeriesIndex(); i = a(l.globals.labels[t], { seriesIndex: s, dataPointIndex: t, w: l }) } else i = y.getLabel(l.globals.labels, l.globals.timescaleLabels, 0, t).text; "datetime" === l.config.xaxis.type && (l.config.xaxis.categories.length ? i = l.config.xaxis.categories[t] : l.config.labels.length && (i = l.config.labels[t])) } else i = l.config.labels[t]; return null === i ? "nullvalue" : (Array.isArray(i) && (i = i.join(" ")), x.isNumber(i) ? i : i.split(r).join("")) }, k = function (t, e) { if (d.length && 0 === e && g.push(d.join(r)), t.data) { t.data = t.data.length && t.data || u(Array(v)).map((function () { return "" })); for (var a = 0; a < t.data.length; a++) { d = []; var s = w(a); if ("nullvalue" !== s) { if (s || (m.isFormatXY() ? s = i[e].data[a].x : m.isFormat2DArray() && (s = i[e].data[a] ? i[e].data[a][0] : "")), 0 === e) { d.push(b(s) ? l.config.chart.toolbar.export.csv.dateFormatter(s) : x.isNumber(s) ? s : s.split(r).join("")); for (var o = 0; o < l.globals.series.length; o++) { var n; if (m.isFormatXY()) d.push(null === (n = i[o].data[a]) || void 0 === n ? void 0 : n.y); else d.push(f[o][a]) } } ("candlestick" === l.config.chart.type || t.type && "candlestick" === t.type) && (d.pop(), d.push(l.globals.seriesCandleO[e][a]), d.push(l.globals.seriesCandleH[e][a]), d.push(l.globals.seriesCandleL[e][a]), d.push(l.globals.seriesCandleC[e][a])), ("boxPlot" === l.config.chart.type || t.type && "boxPlot" === t.type) && (d.pop(), d.push(l.globals.seriesCandleO[e][a]), d.push(l.globals.seriesCandleH[e][a]), d.push(l.globals.seriesCandleM[e][a]), d.push(l.globals.seriesCandleL[e][a]), d.push(l.globals.seriesCandleC[e][a])), "rangeBar" === l.config.chart.type && (d.pop(), d.push(l.globals.seriesRangeStart[e][a]), d.push(l.globals.seriesRangeEnd[e][a])), d.length && g.push(d.join(r)) } } } }; d.push(l.config.chart.toolbar.export.csv.headerCategory), "boxPlot" === l.config.chart.type ? (d.push("minimum"), d.push("q1"), d.push("median"), d.push("q3"), d.push("maximum")) : "candlestick" === l.config.chart.type ? (d.push("open"), d.push("high"), d.push("low"), d.push("close")) : "rangeBar" === l.config.chart.type ? (d.push("minimum"), d.push("maximum")) : i.map((function (t, e) { var i = (t.name ? t.name : "series-".concat(e)) + ""; l.globals.axisCharts && d.push(i.split(r).join("") ? i.split(r).join("") : "series-".concat(e)) })), l.globals.axisCharts || (d.push(l.config.chart.toolbar.export.csv.headerValue), g.push(d.join(r))), l.globals.allSeriesHasEqualX || !l.globals.axisCharts || l.config.xaxis.categories.length || l.config.labels.length ? i.map((function (t, e) { l.globals.axisCharts ? k(t, e) : ((d = []).push(l.globals.labels[e].split(r).join("")), d.push(f[e]), g.push(d.join(r))) })) : (h = new Set, c = {}, i.forEach((function (t, e) { null == t || t.data.forEach((function (t) { var a, s; if (m.isFormatXY()) a = t.x, s = t.y; else { if (!m.isFormat2DArray()) return; a = t[0], s = t[1] } c[a] || (c[a] = Array(i.length).fill("")), c[a][e] = s, h.add(a) })) })), d.length && g.push(d.join(r)), Array.from(h).sort().forEach((function (t) { g.push([b(t) && "datetime" === l.config.xaxis.type ? l.config.chart.toolbar.export.csv.dateFormatter(t) : x.isNumber(t) ? t : t.split(r).join(""), c[t].join(r)]) }))), p += g.join(n), this.triggerDownload("data:text/csv; charset=utf-8," + encodeURIComponent("\ufeff" + p), a || l.config.chart.toolbar.export.csv.filename, ".csv") } }, { key: "triggerDownload", value: function (t, e, i) { var a = document.createElement("a"); a.href = t, a.download = (e || this.w.globals.chartID) + i, document.body.appendChild(a), a.click(), document.body.removeChild(a) } }]), t }(), V = function () { function t(e, i) { a(this, t), this.ctx = e, this.elgrid = i, this.w = e.w; var s = this.w; this.axesUtils = new C(e), this.xaxisLabels = s.globals.labels.slice(), s.globals.timescaleLabels.length > 0 && !s.globals.isBarHorizontal && (this.xaxisLabels = s.globals.timescaleLabels.slice()), s.config.xaxis.overwriteCategories && (this.xaxisLabels = s.config.xaxis.overwriteCategories), this.drawnLabels = [], this.drawnLabelsRects = [], "top" === s.config.xaxis.position ? this.offY = 0 : this.offY = s.globals.gridHeight, this.offY = this.offY + s.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = "bar" === s.config.chart.type && s.config.plotOptions.bar.horizontal, this.xaxisFontSize = s.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = s.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s.config.xaxis.labels.style.colors, this.xaxisBorderWidth = s.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal && (this.xaxisBorderWidth = s.config.yaxis[0].axisBorder.width.toString()), this.xaxisBorderWidth.indexOf("%") > -1 ? this.xaxisBorderWidth = s.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100 : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10), this.xaxisBorderHeight = s.config.xaxis.axisBorder.height, this.yaxis = s.config.yaxis[0] } return r(t, [{ key: "drawXaxis", value: function () { var t = this.w, e = new m(this.ctx), i = e.group({ class: "apexcharts-xaxis", transform: "translate(".concat(t.config.xaxis.offsetX, ", ").concat(t.config.xaxis.offsetY, ")") }), a = e.group({ class: "apexcharts-xaxis-texts-g", transform: "translate(".concat(t.globals.translateXAxisX, ", ").concat(t.globals.translateXAxisY, ")") }); i.add(a); for (var s = [], r = 0; r < this.xaxisLabels.length; r++)s.push(this.xaxisLabels[r]); if (this.drawXAxisLabelAndGroup(!0, e, a, s, t.globals.isXNumeric, (function (t, e) { return e })), t.globals.hasXaxisGroups) { var o = t.globals.groups; s = []; for (var n = 0; n < o.length; n++)s.push(o[n].title); var l = {}; t.config.xaxis.group.style && (l.xaxisFontSize = t.config.xaxis.group.style.fontSize, l.xaxisFontFamily = t.config.xaxis.group.style.fontFamily, l.xaxisForeColors = t.config.xaxis.group.style.colors, l.fontWeight = t.config.xaxis.group.style.fontWeight, l.cssClass = t.config.xaxis.group.style.cssClass), this.drawXAxisLabelAndGroup(!1, e, a, s, !1, (function (t, e) { return o[t].cols * e }), l) } if (void 0 !== t.config.xaxis.title.text) { var h = e.group({ class: "apexcharts-xaxis-title" }), c = e.drawText({ x: t.globals.gridWidth / 2 + t.config.xaxis.title.offsetX, y: this.offY + parseFloat(this.xaxisFontSize) + ("bottom" === t.config.xaxis.position ? t.globals.xAxisLabelsHeight : -t.globals.xAxisLabelsHeight - 10) + t.config.xaxis.title.offsetY, text: t.config.xaxis.title.text, textAnchor: "middle", fontSize: t.config.xaxis.title.style.fontSize, fontFamily: t.config.xaxis.title.style.fontFamily, fontWeight: t.config.xaxis.title.style.fontWeight, foreColor: t.config.xaxis.title.style.color, cssClass: "apexcharts-xaxis-title-text " + t.config.xaxis.title.style.cssClass }); h.add(c), i.add(h) } if (t.config.xaxis.axisBorder.show) { var d = t.globals.barPadForNumericAxis, g = e.drawLine(t.globals.padHorizontal + t.config.xaxis.axisBorder.offsetX - d, this.offY, this.xaxisBorderWidth + d, this.offY, t.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight); this.elgrid && this.elgrid.elGridBorders && t.config.grid.show ? this.elgrid.elGridBorders.add(g) : i.add(g) } return i } }, { key: "drawXAxisLabelAndGroup", value: function (t, e, i, a, s, r) { var o, n = this, l = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : {}, h = [], c = [], d = this.w, g = l.xaxisFontSize || this.xaxisFontSize, u = l.xaxisFontFamily || this.xaxisFontFamily, p = l.xaxisForeColors || this.xaxisForeColors, f = l.fontWeight || d.config.xaxis.labels.style.fontWeight, x = l.cssClass || d.config.xaxis.labels.style.cssClass, b = d.globals.padHorizontal, v = a.length, m = "category" === d.config.xaxis.type ? d.globals.dataPoints : v; if (0 === m && v > m && (m = v), s) { var y = m > 1 ? m - 1 : m; o = d.globals.gridWidth / Math.min(y, v - 1), b = b + r(0, o) / 2 + d.config.xaxis.labels.offsetX } else o = d.globals.gridWidth / m, b = b + r(0, o) + d.config.xaxis.labels.offsetX; for (var w = function (s) { var l = b - r(s, o) / 2 + d.config.xaxis.labels.offsetX; 0 === s && 1 === v && o / 2 === b && 1 === m && (l = d.globals.gridWidth / 2); var y = n.axesUtils.getLabel(a, d.globals.timescaleLabels, l, s, h, g, t), w = 28; d.globals.rotateXLabels && t && (w = 22), d.config.xaxis.title.text && "top" === d.config.xaxis.position && (w += parseFloat(d.config.xaxis.title.style.fontSize) + 2), t || (w = w + parseFloat(g) + (d.globals.xAxisLabelsHeight - d.globals.xAxisGroupLabelsHeight) + (d.globals.rotateXLabels ? 10 : 0)), y = void 0 !== d.config.xaxis.tickAmount && "dataPoints" !== d.config.xaxis.tickAmount && "datetime" !== d.config.xaxis.type ? n.axesUtils.checkLabelBasedOnTickamount(s, y, v) : n.axesUtils.checkForOverflowingLabels(s, y, v, h, c); if (d.config.xaxis.labels.show) { var k = e.drawText({ x: y.x, y: n.offY + d.config.xaxis.labels.offsetY + w - ("top" === d.config.xaxis.position ? d.globals.xAxisHeight + d.config.xaxis.axisTicks.height - 2 : 0), text: y.text, textAnchor: "middle", fontWeight: y.isBold ? 600 : f, fontSize: g, fontFamily: u, foreColor: Array.isArray(p) ? t && d.config.xaxis.convertedCatToNumeric ? p[d.globals.minX + s - 1] : p[s] : p, isPlainText: !1, cssClass: (t ? "apexcharts-xaxis-label " : "apexcharts-xaxis-group-label ") + x }); if (i.add(k), k.on("click", (function (t) { if ("function" == typeof d.config.chart.events.xAxisLabelClick) { var e = Object.assign({}, d, { labelIndex: s }); d.config.chart.events.xAxisLabelClick(t, n.ctx, e) } })), t) { var A = document.createElementNS(d.globals.SVGNS, "title"); A.textContent = Array.isArray(y.text) ? y.text.join(" ") : y.text, k.node.appendChild(A), "" !== y.text && (h.push(y.text), c.push(y)) } } s < v - 1 && (b += r(s + 1, o)) }, k = 0; k <= v - 1; k++)w(k) } }, { key: "drawXaxisInversed", value: function (t) { var e, i, a = this, s = this.w, r = new m(this.ctx), o = s.config.yaxis[0].opposite ? s.globals.translateYAxisX[t] : 0, n = r.group({ class: "apexcharts-yaxis apexcharts-xaxis-inversed", rel: t }), l = r.group({ class: "apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g", transform: "translate(" + o + ", 0)" }); n.add(l); var h = []; if (s.config.yaxis[t].show) for (var c = 0; c < this.xaxisLabels.length; c++)h.push(this.xaxisLabels[c]); e = s.globals.gridHeight / h.length, i = -e / 2.2; var d = s.globals.yLabelFormatters[0], g = s.config.yaxis[0].labels; if (g.show) for (var u = function (o) { var n = void 0 === h[o] ? "" : h[o]; n = d(n, { seriesIndex: t, dataPointIndex: o, w: s }); var c = a.axesUtils.getYAxisForeColor(g.style.colors, t), u = 0; Array.isArray(n) && (u = n.length / 2 * parseInt(g.style.fontSize, 10)); var p = g.offsetX - 15, f = "end"; a.yaxis.opposite && (f = "start"), "left" === s.config.yaxis[0].labels.align ? (p = g.offsetX, f = "start") : "center" === s.config.yaxis[0].labels.align ? (p = g.offsetX, f = "middle") : "right" === s.config.yaxis[0].labels.align && (f = "end"); var x = r.drawText({ x: p, y: i + e + g.offsetY - u, text: n, textAnchor: f, foreColor: Array.isArray(c) ? c[o] : c, fontSize: g.style.fontSize, fontFamily: g.style.fontFamily, fontWeight: g.style.fontWeight, isPlainText: !1, cssClass: "apexcharts-yaxis-label " + g.style.cssClass, maxWidth: g.maxWidth }); l.add(x), x.on("click", (function (t) { if ("function" == typeof s.config.chart.events.xAxisLabelClick) { var e = Object.assign({}, s, { labelIndex: o }); s.config.chart.events.xAxisLabelClick(t, a.ctx, e) } })); var b = document.createElementNS(s.globals.SVGNS, "title"); if (b.textContent = Array.isArray(n) ? n.join(" ") : n, x.node.appendChild(b), 0 !== s.config.yaxis[t].labels.rotate) { var v = r.rotateAroundCenter(x.node); x.node.setAttribute("transform", "rotate(".concat(s.config.yaxis[t].labels.rotate, " 0 ").concat(v.y, ")")) } i += e }, p = 0; p <= h.length - 1; p++)u(p); if (void 0 !== s.config.yaxis[0].title.text) { var f = r.group({ class: "apexcharts-yaxis-title apexcharts-xaxis-title-inversed", transform: "translate(" + o + ", 0)" }), x = r.drawText({ x: s.config.yaxis[0].title.offsetX, y: s.globals.gridHeight / 2 + s.config.yaxis[0].title.offsetY, text: s.config.yaxis[0].title.text, textAnchor: "middle", foreColor: s.config.yaxis[0].title.style.color, fontSize: s.config.yaxis[0].title.style.fontSize, fontWeight: s.config.yaxis[0].title.style.fontWeight, fontFamily: s.config.yaxis[0].title.style.fontFamily, cssClass: "apexcharts-yaxis-title-text " + s.config.yaxis[0].title.style.cssClass }); f.add(x), n.add(f) } var b = 0; this.isCategoryBarHorizontal && s.config.yaxis[0].opposite && (b = s.globals.gridWidth); var v = s.config.xaxis.axisBorder; if (v.show) { var y = r.drawLine(s.globals.padHorizontal + v.offsetX + b, 1 + v.offsetY, s.globals.padHorizontal + v.offsetX + b, s.globals.gridHeight + v.offsetY, v.color, 0); this.elgrid && this.elgrid.elGridBorders && s.config.grid.show ? this.elgrid.elGridBorders.add(y) : n.add(y) } return s.config.yaxis[0].axisTicks.show && this.axesUtils.drawYAxisTicks(b, h.length, s.config.yaxis[0].axisBorder, s.config.yaxis[0].axisTicks, 0, e, n), n } }, { key: "drawXaxisTicks", value: function (t, e, i) { var a = this.w, s = t; if (!(t < 0 || t - 2 > a.globals.gridWidth)) { var r = this.offY + a.config.xaxis.axisTicks.offsetY; if (e = e + r + a.config.xaxis.axisTicks.height, "top" === a.config.xaxis.position && (e = r - a.config.xaxis.axisTicks.height), a.config.xaxis.axisTicks.show) { var o = new m(this.ctx).drawLine(t + a.config.xaxis.axisTicks.offsetX, r + a.config.xaxis.offsetY, s + a.config.xaxis.axisTicks.offsetX, e + a.config.xaxis.offsetY, a.config.xaxis.axisTicks.color); i.add(o), o.node.classList.add("apexcharts-xaxis-tick") } } } }, { key: "getXAxisTicksPositions", value: function () { var t = this.w, e = [], i = this.xaxisLabels.length, a = t.globals.padHorizontal; if (t.globals.timescaleLabels.length > 0) for (var s = 0; s < i; s++)a = this.xaxisLabels[s].position, e.push(a); else for (var r = i, o = 0; o < r; o++) { var n = r; t.globals.isXNumeric && "bar" !== t.config.chart.type && (n -= 1), a += t.globals.gridWidth / n, e.push(a) } return e } }, { key: "xAxisLabelCorrections", value: function () { var t = this.w, e = new m(this.ctx), i = t.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g"), a = t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)"), s = t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-inversed text"), r = t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-inversed-texts-g text tspan"); if (t.globals.rotateXLabels || t.config.xaxis.labels.rotateAlways) for (var o = 0; o < a.length; o++) { var n = e.rotateAroundCenter(a[o]); n.y = n.y - 1, n.x = n.x + 1, a[o].setAttribute("transform", "rotate(".concat(t.config.xaxis.labels.rotate, " ").concat(n.x, " ").concat(n.y, ")")), a[o].setAttribute("text-anchor", "end"); i.setAttribute("transform", "translate(0, ".concat(-10, ")")); var l = a[o].childNodes; t.config.xaxis.labels.trim && Array.prototype.forEach.call(l, (function (i) { e.placeTextWithEllipsis(i, i.textContent, t.globals.xAxisLabelsHeight - ("bottom" === t.config.legend.position ? 20 : 10)) })) } else !function () { for (var i = t.globals.gridWidth / (t.globals.labels.length + 1), s = 0; s < a.length; s++) { var r = a[s].childNodes; t.config.xaxis.labels.trim && "datetime" !== t.config.xaxis.type && Array.prototype.forEach.call(r, (function (t) { e.placeTextWithEllipsis(t, t.textContent, i) })) } }(); if (s.length > 0) { var h = s[s.length - 1].getBBox(), c = s[0].getBBox(); h.x < -20 && s[s.length - 1].parentNode.removeChild(s[s.length - 1]), c.x + c.width > t.globals.gridWidth && !t.globals.isBarHorizontal && s[0].parentNode.removeChild(s[0]); for (var d = 0; d < r.length; d++)e.placeTextWithEllipsis(r[d], r[d].textContent, t.config.yaxis[0].labels.maxWidth - (t.config.yaxis[0].title.text ? 2 * parseFloat(t.config.yaxis[0].title.style.fontSize) : 0) - 15) } } }]), t }(), j = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w; var i = this.w; this.xaxisLabels = i.globals.labels.slice(), this.axesUtils = new C(e), this.isRangeBar = i.globals.seriesRange.length && i.globals.isBarHorizontal, i.globals.timescaleLabels.length > 0 && (this.xaxisLabels = i.globals.timescaleLabels.slice()) } return r(t, [{ key: "drawGridArea", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e = this.w, i = new m(this.ctx); null === t && (t = i.group({ class: "apexcharts-grid" })); var a = i.drawLine(e.globals.padHorizontal, 1, e.globals.padHorizontal, e.globals.gridHeight, "transparent"), s = i.drawLine(e.globals.padHorizontal, e.globals.gridHeight, e.globals.gridWidth, e.globals.gridHeight, "transparent"); return t.add(s), t.add(a), t } }, { key: "drawGrid", value: function () { var t = null; return this.w.globals.axisCharts && (t = this.renderGrid(), this.drawGridArea(t.el)), t } }, { key: "createGridMask", value: function () { var t = this.w, e = t.globals, i = new m(this.ctx), a = Array.isArray(t.config.stroke.width) ? 0 : t.config.stroke.width; if (Array.isArray(t.config.stroke.width)) { var s = 0; t.config.stroke.width.forEach((function (t) { s = Math.max(s, t) })), a = s } e.dom.elGridRectMask = document.createElementNS(e.SVGNS, "clipPath"), e.dom.elGridRectMask.setAttribute("id", "gridRectMask".concat(e.cuid)), e.dom.elGridRectMarkerMask = document.createElementNS(e.SVGNS, "clipPath"), e.dom.elGridRectMarkerMask.setAttribute("id", "gridRectMarkerMask".concat(e.cuid)), e.dom.elForecastMask = document.createElementNS(e.SVGNS, "clipPath"), e.dom.elForecastMask.setAttribute("id", "forecastMask".concat(e.cuid)), e.dom.elNonForecastMask = document.createElementNS(e.SVGNS, "clipPath"), e.dom.elNonForecastMask.setAttribute("id", "nonForecastMask".concat(e.cuid)); var r = t.config.chart.type, o = 0, n = 0; ("bar" === r || "rangeBar" === r || "candlestick" === r || "boxPlot" === r || t.globals.comboBarCount > 0) && t.globals.isXNumeric && !t.globals.isBarHorizontal && (o = t.config.grid.padding.left, n = t.config.grid.padding.right, e.barPadForNumericAxis > o && (o = e.barPadForNumericAxis, n = e.barPadForNumericAxis)), e.dom.elGridRect = i.drawRect(-a / 2 - o - 2, -a / 2 - 2, e.gridWidth + a + n + o + 4, e.gridHeight + a + 4, 0, "#fff"); var l = t.globals.markers.largestSize + 1; e.dom.elGridRectMarker = i.drawRect(2 * -l, 2 * -l, e.gridWidth + 4 * l, e.gridHeight + 4 * l, 0, "#fff"), e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node), e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node); var h = e.dom.baseEl.querySelector("defs"); h.appendChild(e.dom.elGridRectMask), h.appendChild(e.dom.elForecastMask), h.appendChild(e.dom.elNonForecastMask), h.appendChild(e.dom.elGridRectMarkerMask) } }, { key: "_drawGridLines", value: function (t) { var e = t.i, i = t.x1, a = t.y1, s = t.x2, r = t.y2, o = t.xCount, n = t.parent, l = this.w; if (!(0 === e && l.globals.skipFirstTimelinelabel || e === o - 1 && l.globals.skipLastTimelinelabel && !l.config.xaxis.labels.formatter || "radar" === l.config.chart.type)) { l.config.grid.xaxis.lines.show && this._drawGridLine({ i: e, x1: i, y1: a, x2: s, y2: r, xCount: o, parent: n }); var h = 0; if (l.globals.hasXaxisGroups && "between" === l.config.xaxis.tickPlacement) { var c = l.globals.groups; if (c) { for (var d = 0, g = 0; d < e && g < c.length; g++)d += c[g].cols; d === e && (h = .6 * l.globals.xAxisLabelsHeight) } } new V(this.ctx).drawXaxisTicks(i, h, l.globals.dom.elGraphical) } } }, { key: "_drawGridLine", value: function (t) { var e = t.i, i = t.x1, a = t.y1, s = t.x2, r = t.y2, o = t.xCount, n = t.parent, l = this.w, h = !1, c = n.node.classList.contains("apexcharts-gridlines-horizontal"), d = l.config.grid.strokeDashArray, g = l.globals.barPadForNumericAxis; (0 === a && 0 === r || 0 === i && 0 === s) && (h = !0), a === l.globals.gridHeight && r === l.globals.gridHeight && (h = !0), !l.globals.isBarHorizontal || 0 !== e && e !== o - 1 || (h = !0); var u = new m(this).drawLine(i - (c ? g : 0), a, s + (c ? g : 0), r, l.config.grid.borderColor, d); u.node.classList.add("apexcharts-gridline"), h && l.config.grid.show ? this.elGridBorders.add(u) : n.add(u) } }, { key: "_drawGridBandRect", value: function (t) { var e = t.c, i = t.x1, a = t.y1, s = t.x2, r = t.y2, o = t.type, n = this.w, l = new m(this.ctx), h = n.globals.barPadForNumericAxis; if ("column" !== o || "datetime" !== n.config.xaxis.type) { var c = n.config.grid[o].colors[e], d = l.drawRect(i - ("row" === o ? h : 0), a, s + ("row" === o ? 2 * h : 0), r, 0, c, n.config.grid[o].opacity); this.elg.add(d), d.attr("clip-path", "url(#gridRectMask".concat(n.globals.cuid, ")")), d.node.classList.add("apexcharts-grid-".concat(o)) } } }, { key: "_drawXYLines", value: function (t) { var e = this, i = t.xCount, a = t.tickAmount, s = this.w; if (s.config.grid.xaxis.lines.show || s.config.xaxis.axisTicks.show) { var r, o = s.globals.padHorizontal, n = s.globals.gridHeight; s.globals.timescaleLabels.length ? function (t) { for (var a = t.xC, s = t.x1, r = t.y1, o = t.x2, n = t.y2, l = 0; l < a; l++)s = e.xaxisLabels[l].position, o = e.xaxisLabels[l].position, e._drawGridLines({ i: l, x1: s, y1: r, x2: o, y2: n, xCount: i, parent: e.elgridLinesV }) }({ xC: i, x1: o, y1: 0, x2: r, y2: n }) : (s.globals.isXNumeric && (i = s.globals.xAxisScale.result.length), function (t) { for (var a = t.xC, r = t.x1, o = t.y1, n = t.x2, l = t.y2, h = 0; h < a + (s.globals.isXNumeric ? 0 : 1); h++)0 === h && 1 === a && 1 === s.globals.dataPoints && (n = r = s.globals.gridWidth / 2), e._drawGridLines({ i: h, x1: r, y1: o, x2: n, y2: l, xCount: i, parent: e.elgridLinesV }), n = r += s.globals.gridWidth / (s.globals.isXNumeric ? a - 1 : a) }({ xC: i, x1: o, y1: 0, x2: r, y2: n })) } if (s.config.grid.yaxis.lines.show) { var l = 0, h = 0, c = s.globals.gridWidth, d = a + 1; this.isRangeBar && (d = s.globals.labels.length); for (var g = 0; g < d + (this.isRangeBar ? 1 : 0); g++)this._drawGridLine({ i: g, xCount: d + (this.isRangeBar ? 1 : 0), x1: 0, y1: l, x2: c, y2: h, parent: this.elgridLinesH }), h = l += s.globals.gridHeight / (this.isRangeBar ? d : a) } } }, { key: "_drawInvertedXYLines", value: function (t) { var e = t.xCount, i = this.w; if (i.config.grid.xaxis.lines.show || i.config.xaxis.axisTicks.show) for (var a, s = i.globals.padHorizontal, r = i.globals.gridHeight, o = 0; o < e + 1; o++) { i.config.grid.xaxis.lines.show && this._drawGridLine({ i: o, xCount: e + 1, x1: s, y1: 0, x2: a, y2: r, parent: this.elgridLinesV }), new V(this.ctx).drawXaxisTicks(s, 0, i.globals.dom.elGraphical), a = s += i.globals.gridWidth / e } if (i.config.grid.yaxis.lines.show) for (var n = 0, l = 0, h = i.globals.gridWidth, c = 0; c < i.globals.dataPoints + 1; c++)this._drawGridLine({ i: c, xCount: i.globals.dataPoints + 1, x1: 0, y1: n, x2: h, y2: l, parent: this.elgridLinesH }), l = n += i.globals.gridHeight / i.globals.dataPoints } }, { key: "renderGrid", value: function () { var t = this.w, e = t.globals, i = new m(this.ctx); this.elg = i.group({ class: "apexcharts-grid" }), this.elgridLinesH = i.group({ class: "apexcharts-gridlines-horizontal" }), this.elgridLinesV = i.group({ class: "apexcharts-gridlines-vertical" }), this.elGridBorders = i.group({ class: "apexcharts-grid-borders" }), this.elg.add(this.elgridLinesH), this.elg.add(this.elgridLinesV), t.config.grid.show || (this.elgridLinesV.hide(), this.elgridLinesH.hide(), this.elGridBorders.hide()); for (var a = 0; a < e.seriesYAxisMap.length && -1 !== e.ignoreYAxisIndexes.indexOf(a);)a++; a === e.seriesYAxisMap.length && (a = 0); var s, r = e.yAxisScale[a].result.length - 1; if (!e.isBarHorizontal || this.isRangeBar) { var o, n, l; if (s = this.xaxisLabels.length, this.isRangeBar) r = e.labels.length, t.config.xaxis.tickAmount && t.config.xaxis.labels.formatter && (s = t.config.xaxis.tickAmount), (null === (o = e.yAxisScale) || void 0 === o || null === (n = o[a]) || void 0 === n || null === (l = n.result) || void 0 === l ? void 0 : l.length) > 0 && "datetime" !== t.config.xaxis.type && (s = e.yAxisScale[a].result.length - 1); this._drawXYLines({ xCount: s, tickAmount: r }) } else s = r, r = e.xTickAmount, this._drawInvertedXYLines({ xCount: s, tickAmount: r }); return this.drawGridBands(s, r), { el: this.elg, elGridBorders: this.elGridBorders, xAxisTickWidth: e.gridWidth / s } } }, { key: "drawGridBands", value: function (t, e) { var i = this.w; if (void 0 !== i.config.grid.row.colors && i.config.grid.row.colors.length > 0) for (var a = 0, s = i.globals.gridHeight / e, r = i.globals.gridWidth, o = 0, n = 0; o < e; o++, n++)n >= i.config.grid.row.colors.length && (n = 0), this._drawGridBandRect({ c: n, x1: 0, y1: a, x2: r, y2: s, type: "row" }), a += i.globals.gridHeight / e; if (void 0 !== i.config.grid.column.colors && i.config.grid.column.colors.length > 0) for (var l = i.globals.isBarHorizontal || "on" !== i.config.xaxis.tickPlacement || "category" !== i.config.xaxis.type && !i.config.xaxis.convertedCatToNumeric ? t : t - 1, h = i.globals.padHorizontal, c = i.globals.padHorizontal + i.globals.gridWidth / l, d = i.globals.gridHeight, g = 0, u = 0; g < t; g++, u++)u >= i.config.grid.column.colors.length && (u = 0), this._drawGridBandRect({ c: u, x1: h, y1: 0, x2: c, y2: d, type: "column" }), h += i.globals.gridWidth / l } }]), t }(), _ = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "niceScale", value: function (t, e) { var i, a, s, r, o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, n = 1e-11, l = this.w, h = l.globals; h.isBarHorizontal ? (i = l.config.xaxis, a = Math.max((h.svgWidth - 100) / 25, 2)) : (i = l.config.yaxis[o], a = Math.max((h.svgHeight - 100) / 15, 2)), s = void 0 !== i.min && null !== i.min, r = void 0 !== i.max && null !== i.min; var c = void 0 !== i.stepSize && null !== i.stepSize, d = void 0 !== i.tickAmount && null !== i.tickAmount, g = d ? i.tickAmount : i.forceNiceScale ? h.niceScaleDefaultTicks[Math.min(Math.round(a / 2), h.niceScaleDefaultTicks.length - 1)] : 10; if (h.isMultipleYAxis && !d && h.multiAxisTickAmount > 0 && (g = h.multiAxisTickAmount, d = !0), g = "dataPoints" === g ? h.dataPoints - 1 : Math.abs(Math.round(g)), (t === Number.MIN_VALUE && 0 === e || !x.isNumber(t) && !x.isNumber(e) || t === Number.MIN_VALUE && e === -Number.MAX_VALUE) && (t = x.isNumber(i.min) ? i.min : 0, e = x.isNumber(i.max) ? i.max : t + g, h.allSeriesCollapsed = !1), t > e) { console.warn("axis.min cannot be greater than axis.max: swapping min and max"); var u = e; e = t, t = u } else t === e && (t = 0 === t ? 0 : t - 1, e = 0 === e ? 2 : e + 1); var p = []; g < 1 && (g = 1); var f = g, b = Math.abs(e - t); if (i.forceNiceScale) { !s && t > 0 && t / b < .15 && (t = 0, s = !0), !r && e < 0 && -e / b < .15 && (e = 0, r = !0), b = Math.abs(e - t) } var v = b / f, m = v, y = Math.floor(Math.log10(m)), w = Math.pow(10, y), k = Math.ceil(m / w); if (v = m = (k = h.niceScaleAllowedMagMsd[0 === h.yValueDecimal ? 0 : 1][k]) * w, h.isBarHorizontal && i.stepSize && "datetime" !== i.type ? (v = i.stepSize, c = !0) : c && (v = i.stepSize), c && i.forceNiceScale) { var A = Math.floor(Math.log10(v)); v *= Math.pow(10, y - A) } if (s && r) { var S = b / f; if (d) if (c) if (0 != x.mod(b, v)) { var C = x.getGCD(v, S); v = S / C < 10 ? C : S } else 0 == x.mod(v, S) ? v = S : (S = v, d = !1); else v = S; else if (c) 0 == x.mod(b, v) ? S = v : v = S; else if (0 == x.mod(b, v)) S = v; else { S = b / (f = Math.ceil(b / v)); var L = x.getGCD(b, v); b / L < a && (S = L), v = S } f = Math.round(b / v) } else { if (s || r) { if (r) if (d) t = e - v * f; else { var P = t; t = v * Math.floor(t / v), Math.abs(e - t) / x.getGCD(b, v) > a && (t = e - v * g, t += v * Math.floor((P - t) / v)) } else if (s) if (d) e = t + v * f; else { var M = e; e = v * Math.ceil(e / v), Math.abs(e - t) / x.getGCD(b, v) > a && (e = t + v * g, e += v * Math.ceil((M - e) / v)) } } else if (d) { var I = v / (e - t > e ? 1 : 2), T = I * Math.floor(t / I); Math.abs(T - t) <= I / 2 ? e = (t = T) + v * f : t = (e = I * Math.ceil(e / I)) - v * f } else t = v * Math.floor(t / v), e = v * Math.ceil(e / v); b = Math.abs(e - t), v = x.getGCD(b, v), f = Math.round(b / v) } if (d || s || r || (f = Math.ceil((b - n) / (v + n))) > 16 && x.getPrimeFactors(f).length < 2 && f++, !d && i.forceNiceScale && 0 === h.yValueDecimal && f > b && (f = b, v = Math.round(b / f)), f > a && (!d && !c || i.forceNiceScale)) { var z = x.getPrimeFactors(f), X = z.length - 1, E = f; t: for (var Y = 0; Y < X; Y++)for (var F = 0; F <= X - Y; F++) { for (var R = Math.min(F + Y, X), H = E, D = 1, O = F; O <= R; O++)D *= z[O]; if ((H /= D) < a) { E = H; break t } } v = E === f ? b : b / E, f = Math.round(b / v) } h.isMultipleYAxis && 0 == h.multiAxisTickAmount && h.ignoreYAxisIndexes.indexOf(o) < 0 && (h.multiAxisTickAmount = f); var N = t - v, W = v * n; do { N += v, p.push(x.stripNumber(N, 7)) } while (e - N > W); return { result: p, niceMin: p[0], niceMax: p[p.length - 1] } } }, { key: "linearScale", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : void 0, r = Math.abs(e - t); "dataPoints" === (i = this._adjustTicksForSmallRange(i, a, r)) && (i = this.w.globals.dataPoints - 1), s || (s = r / i), i === Number.MAX_VALUE && (i = 5, s = 1); for (var o = [], n = t; i >= 0;)o.push(n), n += s, i -= 1; return { result: o, niceMin: o[0], niceMax: o[o.length - 1] } } }, { key: "logarithmicScaleNice", value: function (t, e, i) { e <= 0 && (e = Math.max(t, i)), t <= 0 && (t = Math.min(e, i)); for (var a = [], s = Math.ceil(Math.log(e) / Math.log(i) + 1), r = Math.floor(Math.log(t) / Math.log(i)); r < s; r++)a.push(Math.pow(i, r)); return { result: a, niceMin: a[0], niceMax: a[a.length - 1] } } }, { key: "logarithmicScale", value: function (t, e, i) { e <= 0 && (e = Math.max(t, i)), t <= 0 && (t = Math.min(e, i)); for (var a = [], s = Math.log(e) / Math.log(i), r = Math.log(t) / Math.log(i), o = s - r, n = Math.round(o), l = o / n, h = 0, c = r; h < n; h++, c += l)a.push(Math.pow(i, c)); return a.push(Math.pow(i, s)), { result: a, niceMin: t, niceMax: e } } }, { key: "_adjustTicksForSmallRange", value: function (t, e, i) { var a = t; if (void 0 !== e && this.w.config.yaxis[e].labels.formatter && void 0 === this.w.config.yaxis[e].tickAmount) { var s = Number(this.w.config.yaxis[e].labels.formatter(1)); x.isNumber(s) && 0 === this.w.globals.yValueDecimal && (a = Math.ceil(i)) } return a < t ? a : t } }, { key: "setYScaleForIndex", value: function (t, e, i) { var a = this.w.globals, s = this.w.config, r = a.isBarHorizontal ? s.xaxis : s.yaxis[t]; void 0 === a.yAxisScale[t] && (a.yAxisScale[t] = []); var o = Math.abs(i - e); r.logarithmic && o <= 5 && (a.invalidLogScale = !0), r.logarithmic && o > 5 ? (a.allSeriesCollapsed = !1, a.yAxisScale[t] = r.forceNiceScale ? this.logarithmicScaleNice(e, i, r.logBase) : this.logarithmicScale(e, i, r.logBase)) : i !== -Number.MAX_VALUE && x.isNumber(i) && e !== Number.MAX_VALUE && x.isNumber(e) ? (a.allSeriesCollapsed = !1, a.yAxisScale[t] = this.niceScale(e, i, t)) : a.yAxisScale[t] = this.niceScale(Number.MIN_VALUE, 0, t) } }, { key: "setXScale", value: function (t, e) { var i = this.w, a = i.globals, s = Math.abs(e - t); return e !== -Number.MAX_VALUE && x.isNumber(e) ? a.xAxisScale = this.linearScale(t, e, i.config.xaxis.tickAmount ? i.config.xaxis.tickAmount : s < 10 && s > 1 ? s + 1 : 10, 0, i.config.xaxis.stepSize) : a.xAxisScale = this.linearScale(0, 10, 10), a.xAxisScale } }, { key: "setSeriesYAxisMappings", value: function () { var t = this.w.globals, e = this.w.config; t.minYArr, t.maxYArr; var i = [], a = [], s = [], r = t.series.length > e.yaxis.length || e.yaxis.some((function (t) { return Array.isArray(t.seriesName) })); e.series.forEach((function (t, e) { s.push(e), a.push(null) })), e.yaxis.forEach((function (t, e) { i[e] = [] })); var o = []; e.yaxis.forEach((function (t, a) { var n = !1; if (t.seriesName) { var l = []; Array.isArray(t.seriesName) ? l = t.seriesName : l.push(t.seriesName), l.forEach((function (t) { e.series.forEach((function (e, o) { if (e.name === t) { var l = o; a === o || r ? !r || s.indexOf(o) > -1 ? i[a].push([a, o]) : console.warn("Series '" + e.name + "' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes.") : (i[o].push([o, a]), l = a), n = !0, -1 !== (l = s.indexOf(l)) && s.splice(l, 1) } })) })) } n || o.push(a) })), i = i.map((function (t, e) { var i = []; return t.forEach((function (t) { a[t[1]] = t[0], i.push(t[1]) })), i })); for (var n = e.yaxis.length - 1, l = 0; l < o.length && (n = o[l], i[n] = [], s); l++) { var h = s[0]; s.shift(), i[n].push(h), a[h] = n } s.forEach((function (t) { i[n].push(t), a[t] = n })), t.seriesYAxisMap = i.map((function (t) { return t })), t.seriesYAxisReverseMap = a.map((function (t) { return t })) } }, { key: "scaleMultipleYAxes", value: function () { var t = this, e = this.w.config, i = this.w.globals; this.setSeriesYAxisMappings(); var a = i.seriesYAxisMap, s = i.minYArr, r = i.maxYArr; i.allSeriesCollapsed = !0, i.barGroups = [], a.forEach((function (a, o) { var n = []; a.forEach((function (t) { var i = e.series[t].group; n.indexOf(i) < 0 && n.push(i) })), a.length > 0 ? function () { var l, h, c = Number.MAX_VALUE, d = -Number.MAX_VALUE, g = c, u = d; if (e.chart.stacked) !function () { var t = i.seriesX[a[0]], s = [], r = [], p = []; n.forEach((function () { s.push(t.map((function () { return Number.MIN_VALUE }))), r.push(t.map((function () { return Number.MIN_VALUE }))), p.push(t.map((function () { return Number.MIN_VALUE }))) })); for (var f = function (t) { !l && e.series[a[t]].type && (l = e.series[a[t]].type); var c = a[t]; h = e.series[c].group ? e.series[c].group : "axis-".concat(o), !(i.collapsedSeriesIndices.indexOf(c) < 0 && i.ancillaryCollapsedSeriesIndices.indexOf(c) < 0) || (i.allSeriesCollapsed = !1, n.forEach((function (t, a) { if (e.series[c].group === t) for (var o = 0; o < i.series[c].length; o++) { var n = i.series[c][o]; n >= 0 ? r[a][o] += n : p[a][o] += n, s[a][o] += n, g = Math.min(g, n), u = Math.max(u, n) } }))), "bar" !== l && "column" !== l || i.barGroups.push(h) }, x = 0; x < a.length; x++)f(x); l || (l = e.chart.type), "bar" === l || "column" === l ? n.forEach((function (t, e) { c = Math.min(c, Math.min.apply(null, p[e])), d = Math.max(d, Math.max.apply(null, r[e])) })) : (n.forEach((function (t, e) { g = Math.min(g, Math.min.apply(null, s[e])), u = Math.max(u, Math.max.apply(null, s[e])) })), c = g, d = u), c === Number.MIN_VALUE && d === Number.MIN_VALUE && (d = -Number.MAX_VALUE) }(); else for (var p = 0; p < a.length; p++) { var f = a[p]; c = Math.min(c, s[f]), d = Math.max(d, r[f]), !(i.collapsedSeriesIndices.indexOf(f) < 0 && i.ancillaryCollapsedSeriesIndices.indexOf(f) < 0) || (i.allSeriesCollapsed = !1) } void 0 !== e.yaxis[o].min && (c = "function" == typeof e.yaxis[o].min ? e.yaxis[o].min(c) : e.yaxis[o].min), void 0 !== e.yaxis[o].max && (d = "function" == typeof e.yaxis[o].max ? e.yaxis[o].max(d) : e.yaxis[o].max), i.barGroups = i.barGroups.filter((function (t, e, i) { return i.indexOf(t) === e })), t.setYScaleForIndex(o, c, d), a.forEach((function (t) { s[t] = i.yAxisScale[o].niceMin, r[t] = i.yAxisScale[o].niceMax })) }() : t.setYScaleForIndex(o, 0, -Number.MAX_VALUE) })) } }]), t }(), U = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.scales = new _(e) } return r(t, [{ key: "init", value: function () { this.setYRange(), this.setXRange(), this.setZRange() } }, { key: "getMinYMaxY", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -Number.MAX_VALUE, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s = this.w.config, r = this.w.globals, o = -Number.MAX_VALUE, n = Number.MIN_VALUE; null === a && (a = t + 1); var l = 0, h = 0, c = void 0; if (r.seriesX.length >= a) { var d, g; l = 0, h = (c = u(new Set((d = []).concat.apply(d, u(r.seriesX.slice(t, a)))))).length - 1; var p = null === (g = r.brushSource) || void 0 === g ? void 0 : g.w.config.chart.brush; if (s.chart.zoom.enabled && s.chart.zoom.autoScaleYaxis || null != p && p.enabled && null != p && p.autoScaleYaxis) { if (s.xaxis.min) for (l = 0; l < h && c[l] < s.xaxis.min; l++); if (s.xaxis.max) for (; h > l && c[h] > s.xaxis.max; h--); } } var f = r.series, b = f, v = f; "candlestick" === s.chart.type ? (b = r.seriesCandleL, v = r.seriesCandleH) : "boxPlot" === s.chart.type ? (b = r.seriesCandleO, v = r.seriesCandleC) : r.isRangeData && (b = r.seriesRangeStart, v = r.seriesRangeEnd); for (var m = t; m < a; m++) { r.dataPoints = Math.max(r.dataPoints, f[m].length); var y = s.series[m].type; r.categoryLabels.length && (r.dataPoints = r.categoryLabels.filter((function (t) { return void 0 !== t })).length), r.labels.length && "datetime" !== s.xaxis.type && 0 !== r.series.reduce((function (t, e) { return t + e.length }), 0) && (r.dataPoints = Math.max(r.dataPoints, r.labels.length)), c || (l = 0, h = r.series[m].length); for (var w = l; w <= h && w < r.series[m].length; w++) { var k = f[m][w]; if (null !== k && x.isNumber(k)) { switch (void 0 !== v[m][w] && (o = Math.max(o, v[m][w]), e = Math.min(e, v[m][w])), void 0 !== b[m][w] && (e = Math.min(e, b[m][w]), i = Math.max(i, b[m][w])), y) { case "candlestick": void 0 !== r.seriesCandleC[m][w] && (o = Math.max(o, r.seriesCandleH[m][w]), e = Math.min(e, r.seriesCandleL[m][w])); break; case "boxPlot": void 0 !== r.seriesCandleC[m][w] && (o = Math.max(o, r.seriesCandleC[m][w]), e = Math.min(e, r.seriesCandleO[m][w])) }y && "candlestick" !== y && "boxPlot" !== y && "rangeArea" !== y && "rangeBar" !== y && (o = Math.max(o, r.series[m][w]), e = Math.min(e, r.series[m][w])), i = o, r.seriesGoals[m] && r.seriesGoals[m][w] && Array.isArray(r.seriesGoals[m][w]) && r.seriesGoals[m][w].forEach((function (t) { n !== Number.MIN_VALUE && (n = Math.min(n, t.value), e = n), o = Math.max(o, t.value), i = o })), x.isFloat(k) && (k = x.noExponents(k), r.yValueDecimal = Math.max(r.yValueDecimal, k.toString().split(".")[1].length)), n > b[m][w] && b[m][w] < 0 && (n = b[m][w]) } else r.hasNullValues = !0 } "bar" !== y && "column" !== y || (n < 0 && o < 0 && (o = 0, i = Math.max(i, 0)), n === Number.MIN_VALUE && (n = 0, e = Math.min(e, 0))) } return "rangeBar" === s.chart.type && r.seriesRangeStart.length && r.isBarHorizontal && (n = e), "bar" === s.chart.type && (n < 0 && o < 0 && (o = 0), n === Number.MIN_VALUE && (n = 0)), { minY: n, maxY: o, lowestY: e, highestY: i } } }, { key: "setYRange", value: function () { var t = this.w.globals, e = this.w.config; t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE; var i, a = Number.MAX_VALUE; if (t.isMultipleYAxis) { a = Number.MAX_VALUE; for (var s = 0; s < t.series.length; s++)i = this.getMinYMaxY(s), t.minYArr[s] = i.lowestY, t.maxYArr[s] = i.highestY, a = Math.min(a, i.lowestY) } if (i = this.getMinYMaxY(0, a, null, t.series.length), "bar" === e.chart.type ? (t.minY = i.minY, t.maxY = i.maxY) : (t.minY = i.lowestY, t.maxY = i.highestY), a = i.lowestY, e.chart.stacked && this._setStackedMinMax(), "line" === e.chart.type || "area" === e.chart.type || "scatter" === e.chart.type || "candlestick" === e.chart.type || "boxPlot" === e.chart.type || "rangeBar" === e.chart.type && !t.isBarHorizontal ? t.minY === Number.MIN_VALUE && a !== -Number.MAX_VALUE && a !== t.maxY && (t.minY = a) : t.minY = i.minY, e.yaxis.forEach((function (e, i) { void 0 !== e.max && ("number" == typeof e.max ? t.maxYArr[i] = e.max : "function" == typeof e.max && (t.maxYArr[i] = e.max(t.isMultipleYAxis ? t.maxYArr[i] : t.maxY)), t.maxY = t.maxYArr[i]), void 0 !== e.min && ("number" == typeof e.min ? t.minYArr[i] = e.min : "function" == typeof e.min && (t.minYArr[i] = e.min(t.isMultipleYAxis ? t.minYArr[i] === Number.MIN_VALUE ? 0 : t.minYArr[i] : t.minY)), t.minY = t.minYArr[i]) })), t.isBarHorizontal) { ["min", "max"].forEach((function (i) { void 0 !== e.xaxis[i] && "number" == typeof e.xaxis[i] && ("min" === i ? t.minY = e.xaxis[i] : t.maxY = e.xaxis[i]) })) } return t.isMultipleYAxis ? (this.scales.scaleMultipleYAxes(), t.minY = a) : (this.scales.setYScaleForIndex(0, t.minY, t.maxY), t.minY = t.yAxisScale[0].niceMin, t.maxY = t.yAxisScale[0].niceMax, t.minYArr[0] = t.minY, t.maxYArr[0] = t.maxY), t.barGroups = [], t.lineGroups = [], t.areaGroups = [], e.series.forEach((function (i) { switch (i.type || e.chart.type) { case "bar": case "column": t.barGroups.push(i.group); break; case "line": t.lineGroups.push(i.group); break; case "area": t.areaGroups.push(i.group) } })), t.barGroups = t.barGroups.filter((function (t, e, i) { return i.indexOf(t) === e })), t.lineGroups = t.lineGroups.filter((function (t, e, i) { return i.indexOf(t) === e })), t.areaGroups = t.areaGroups.filter((function (t, e, i) { return i.indexOf(t) === e })), { minY: t.minY, maxY: t.maxY, minYArr: t.minYArr, maxYArr: t.maxYArr, yAxisScale: t.yAxisScale } } }, { key: "setXRange", value: function () { var t = this.w.globals, e = this.w.config, i = "numeric" === e.xaxis.type || "datetime" === e.xaxis.type || "category" === e.xaxis.type && !t.noLabelsProvided || t.noLabelsProvided || t.isXNumeric; if (t.isXNumeric && function () { for (var e = 0; e < t.series.length; e++)if (t.labels[e]) for (var i = 0; i < t.labels[e].length; i++)null !== t.labels[e][i] && x.isNumber(t.labels[e][i]) && (t.maxX = Math.max(t.maxX, t.labels[e][i]), t.initialMaxX = Math.max(t.maxX, t.labels[e][i]), t.minX = Math.min(t.minX, t.labels[e][i]), t.initialMinX = Math.min(t.minX, t.labels[e][i])) }(), t.noLabelsProvided && 0 === e.xaxis.categories.length && (t.maxX = t.labels[t.labels.length - 1], t.initialMaxX = t.labels[t.labels.length - 1], t.minX = 1, t.initialMinX = 1), t.isXNumeric || t.noLabelsProvided || t.dataFormatXNumeric) { var a; if (void 0 === e.xaxis.tickAmount ? (a = Math.round(t.svgWidth / 150), "numeric" === e.xaxis.type && t.dataPoints < 30 && (a = t.dataPoints - 1), a > t.dataPoints && 0 !== t.dataPoints && (a = t.dataPoints - 1)) : "dataPoints" === e.xaxis.tickAmount ? (t.series.length > 1 && (a = t.series[t.maxValsInArrayIndex].length - 1), t.isXNumeric && (a = t.maxX - t.minX - 1)) : a = e.xaxis.tickAmount, t.xTickAmount = a, void 0 !== e.xaxis.max && "number" == typeof e.xaxis.max && (t.maxX = e.xaxis.max), void 0 !== e.xaxis.min && "number" == typeof e.xaxis.min && (t.minX = e.xaxis.min), void 0 !== e.xaxis.range && (t.minX = t.maxX - e.xaxis.range), t.minX !== Number.MAX_VALUE && t.maxX !== -Number.MAX_VALUE) if (e.xaxis.convertedCatToNumeric && !t.dataFormatXNumeric) { for (var s = [], r = t.minX - 1; r < t.maxX; r++)s.push(r + 1); t.xAxisScale = { result: s, niceMin: s[0], niceMax: s[s.length - 1] } } else t.xAxisScale = this.scales.setXScale(t.minX, t.maxX); else t.xAxisScale = this.scales.linearScale(0, a, a, 0, e.xaxis.stepSize), t.noLabelsProvided && t.labels.length > 0 && (t.xAxisScale = this.scales.linearScale(1, t.labels.length, a - 1, 0, e.xaxis.stepSize), t.seriesX = t.labels.slice()); i && (t.labels = t.xAxisScale.result.slice()) } return t.isBarHorizontal && t.labels.length && (t.xTickAmount = t.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), { minX: t.minX, maxX: t.maxX } } }, { key: "setZRange", value: function () { var t = this.w.globals; if (t.isDataXYZ) for (var e = 0; e < t.series.length; e++)if (void 0 !== t.seriesZ[e]) for (var i = 0; i < t.seriesZ[e].length; i++)null !== t.seriesZ[e][i] && x.isNumber(t.seriesZ[e][i]) && (t.maxZ = Math.max(t.maxZ, t.seriesZ[e][i]), t.minZ = Math.min(t.minZ, t.seriesZ[e][i])) } }, { key: "_handleSingleDataPoint", value: function () { var t = this.w.globals, e = this.w.config; if (t.minX === t.maxX) { var i = new A(this.ctx); if ("datetime" === e.xaxis.type) { var a = i.getDate(t.minX); e.xaxis.labels.datetimeUTC ? a.setUTCDate(a.getUTCDate() - 2) : a.setDate(a.getDate() - 2), t.minX = new Date(a).getTime(); var s = i.getDate(t.maxX); e.xaxis.labels.datetimeUTC ? s.setUTCDate(s.getUTCDate() + 2) : s.setDate(s.getDate() + 2), t.maxX = new Date(s).getTime() } else ("numeric" === e.xaxis.type || "category" === e.xaxis.type && !t.noLabelsProvided) && (t.minX = t.minX - 2, t.initialMinX = t.minX, t.maxX = t.maxX + 2, t.initialMaxX = t.maxX) } } }, { key: "_getMinXDiff", value: function () { var t = this.w.globals; t.isXNumeric && t.seriesX.forEach((function (e, i) { 1 === e.length && e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length - 1]); var a = e.slice(); a.sort((function (t, e) { return t - e })), a.forEach((function (e, i) { if (i > 0) { var s = e - a[i - 1]; s > 0 && (t.minXDiff = Math.min(s, t.minXDiff)) } })), 1 !== t.dataPoints && t.minXDiff !== Number.MAX_VALUE || (t.minXDiff = .5) })) } }, { key: "_setStackedMinMax", value: function () { var t = this, e = this.w.globals; if (e.series.length) { var i = e.seriesGroups; i.length || (i = [this.w.globals.seriesNames.map((function (t) { return t }))]); var a = {}, s = {}; i.forEach((function (i) { a[i] = [], s[i] = [], t.w.config.series.map((function (t, a) { return i.indexOf(e.seriesNames[a]) > -1 ? a : null })).filter((function (t) { return null !== t })).forEach((function (r) { for (var o = 0; o < e.series[e.maxValsInArrayIndex].length; o++) { var n, l, h, c; void 0 === a[i][o] && (a[i][o] = 0, s[i][o] = 0), (t.w.config.chart.stacked && !e.comboCharts || t.w.config.chart.stacked && e.comboCharts && (!t.w.config.chart.stackOnlyBar || "bar" === (null === (n = t.w.config.series) || void 0 === n || null === (l = n[r]) || void 0 === l ? void 0 : l.type) || "column" === (null === (h = t.w.config.series) || void 0 === h || null === (c = h[r]) || void 0 === c ? void 0 : c.type))) && null !== e.series[r][o] && x.isNumber(e.series[r][o]) && (e.series[r][o] > 0 ? a[i][o] += parseFloat(e.series[r][o]) + 1e-4 : s[i][o] += parseFloat(e.series[r][o])) } })) })), Object.entries(a).forEach((function (t) { var i = g(t, 1)[0]; a[i].forEach((function (t, r) { e.maxY = Math.max(e.maxY, a[i][r]), e.minY = Math.min(e.minY, s[i][r]) })) })) } } }]), t }(), q = function () { function t(e, i) { a(this, t), this.ctx = e, this.elgrid = i, this.w = e.w; var s = this.w; this.xaxisFontSize = s.config.xaxis.labels.style.fontSize, this.axisFontFamily = s.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = "bar" === s.config.chart.type && s.config.plotOptions.bar.horizontal, this.xAxisoffX = 0, "bottom" === s.config.xaxis.position && (this.xAxisoffX = s.globals.gridHeight), this.drawnLabels = [], this.axesUtils = new C(e) } return r(t, [{ key: "drawYaxis", value: function (t) { var e = this, i = this.w, a = new m(this.ctx), s = i.config.yaxis[t].labels.style, r = s.fontSize, o = s.fontFamily, n = s.fontWeight, l = a.group({ class: "apexcharts-yaxis", rel: t, transform: "translate(" + i.globals.translateYAxisX[t] + ", 0)" }); if (this.axesUtils.isYAxisHidden(t)) return l; var h = a.group({ class: "apexcharts-yaxis-texts-g" }); l.add(h); var c = i.globals.yAxisScale[t].result.length - 1, d = i.globals.gridHeight / c, g = i.globals.yLabelFormatters[t], u = i.globals.yAxisScale[t].result.slice(); u = this.axesUtils.checkForReversedLabels(t, u); var p = ""; if (i.config.yaxis[t].labels.show) { var f = i.globals.translateY + i.config.yaxis[t].labels.offsetY; i.globals.isBarHorizontal ? f = 0 : "heatmap" === i.config.chart.type && (f -= d / 2), f += parseInt(i.config.yaxis[t].labels.style.fontSize, 10) / 3; for (var x = function (l) { var x = u[l]; x = g(x, l, i); var b = i.config.yaxis[t].labels.padding; i.config.yaxis[t].opposite && 0 !== i.config.yaxis.length && (b *= -1); var v = "end"; i.config.yaxis[t].opposite && (v = "start"), "left" === i.config.yaxis[t].labels.align ? v = "start" : "center" === i.config.yaxis[t].labels.align ? v = "middle" : "right" === i.config.yaxis[t].labels.align && (v = "end"); var m = e.axesUtils.getYAxisForeColor(s.colors, t), y = a.drawText({ x: b, y: f, text: x, textAnchor: v, fontSize: r, fontFamily: o, fontWeight: n, maxWidth: i.config.yaxis[t].labels.maxWidth, foreColor: Array.isArray(m) ? m[l] : m, isPlainText: !1, cssClass: "apexcharts-yaxis-label " + s.cssClass }); l === c && (p = y), h.add(y); var w = document.createElementNS(i.globals.SVGNS, "title"); if (w.textContent = Array.isArray(x) ? x.join(" ") : x, y.node.appendChild(w), 0 !== i.config.yaxis[t].labels.rotate) { var k = a.rotateAroundCenter(p.node), A = a.rotateAroundCenter(y.node); y.node.setAttribute("transform", "rotate(".concat(i.config.yaxis[t].labels.rotate, " ").concat(k.x, " ").concat(A.y, ")")) } f += d }, b = c; b >= 0; b--)x(b) } if (void 0 !== i.config.yaxis[t].title.text) { var v = a.group({ class: "apexcharts-yaxis-title" }), y = 0; i.config.yaxis[t].opposite && (y = i.globals.translateYAxisX[t]); var w = a.drawText({ x: y, y: i.globals.gridHeight / 2 + i.globals.translateY + i.config.yaxis[t].title.offsetY, text: i.config.yaxis[t].title.text, textAnchor: "end", foreColor: i.config.yaxis[t].title.style.color, fontSize: i.config.yaxis[t].title.style.fontSize, fontWeight: i.config.yaxis[t].title.style.fontWeight, fontFamily: i.config.yaxis[t].title.style.fontFamily, cssClass: "apexcharts-yaxis-title-text " + i.config.yaxis[t].title.style.cssClass }); v.add(w), l.add(v) } var k = i.config.yaxis[t].axisBorder, A = 31 + k.offsetX; if (i.config.yaxis[t].opposite && (A = -31 - k.offsetX), k.show) { var S = a.drawLine(A, i.globals.translateY + k.offsetY - 2, A, i.globals.gridHeight + i.globals.translateY + k.offsetY + 2, k.color, 0, k.width); l.add(S) } return i.config.yaxis[t].axisTicks.show && this.axesUtils.drawYAxisTicks(A, c, k, i.config.yaxis[t].axisTicks, t, d, l), l } }, { key: "drawYaxisInversed", value: function (t) { var e = this.w, i = new m(this.ctx), a = i.group({ class: "apexcharts-xaxis apexcharts-yaxis-inversed" }), s = i.group({ class: "apexcharts-xaxis-texts-g", transform: "translate(".concat(e.globals.translateXAxisX, ", ").concat(e.globals.translateXAxisY, ")") }); a.add(s); var r = e.globals.yAxisScale[t].result.length - 1, o = e.globals.gridWidth / r + .1, n = o + e.config.xaxis.labels.offsetX, l = e.globals.xLabelFormatter, h = e.globals.yAxisScale[t].result.slice(), c = e.globals.timescaleLabels; c.length > 0 && (this.xaxisLabels = c.slice(), r = (h = c.slice()).length), h = this.axesUtils.checkForReversedLabels(t, h); var d = c.length; if (e.config.xaxis.labels.show) for (var g = d ? 0 : r; d ? g < d : g >= 0; d ? g++ : g--) { var u = h[g]; u = l(u, g, e); var p = e.globals.gridWidth + e.globals.padHorizontal - (n - o + e.config.xaxis.labels.offsetX); if (c.length) { var f = this.axesUtils.getLabel(h, c, p, g, this.drawnLabels, this.xaxisFontSize); p = f.x, u = f.text, this.drawnLabels.push(f.text), 0 === g && e.globals.skipFirstTimelinelabel && (u = ""), g === h.length - 1 && e.globals.skipLastTimelinelabel && (u = "") } var x = i.drawText({ x: p, y: this.xAxisoffX + e.config.xaxis.labels.offsetY + 30 - ("top" === e.config.xaxis.position ? e.globals.xAxisHeight + e.config.xaxis.axisTicks.height - 2 : 0), text: u, textAnchor: "middle", foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[t] : this.xaxisForeColors, fontSize: this.xaxisFontSize, fontFamily: this.xaxisFontFamily, fontWeight: e.config.xaxis.labels.style.fontWeight, isPlainText: !1, cssClass: "apexcharts-xaxis-label " + e.config.xaxis.labels.style.cssClass }); s.add(x), x.tspan(u); var b = document.createElementNS(e.globals.SVGNS, "title"); b.textContent = u, x.node.appendChild(b), n += o } return this.inversedYAxisTitleText(a), this.inversedYAxisBorder(a), a } }, { key: "inversedYAxisBorder", value: function (t) { var e = this.w, i = new m(this.ctx), a = e.config.xaxis.axisBorder; if (a.show) { var s = 0; "bar" === e.config.chart.type && e.globals.isXNumeric && (s -= 15); var r = i.drawLine(e.globals.padHorizontal + s + a.offsetX, this.xAxisoffX, e.globals.gridWidth, this.xAxisoffX, a.color, 0, a.height); this.elgrid && this.elgrid.elGridBorders && e.config.grid.show ? this.elgrid.elGridBorders.add(r) : t.add(r) } } }, { key: "inversedYAxisTitleText", value: function (t) { var e = this.w, i = new m(this.ctx); if (void 0 !== e.config.xaxis.title.text) { var a = i.group({ class: "apexcharts-xaxis-title apexcharts-yaxis-title-inversed" }), s = i.drawText({ x: e.globals.gridWidth / 2 + e.config.xaxis.title.offsetX, y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(e.config.xaxis.title.style.fontSize) + e.config.xaxis.title.offsetY + 20, text: e.config.xaxis.title.text, textAnchor: "middle", fontSize: e.config.xaxis.title.style.fontSize, fontFamily: e.config.xaxis.title.style.fontFamily, fontWeight: e.config.xaxis.title.style.fontWeight, foreColor: e.config.xaxis.title.style.color, cssClass: "apexcharts-xaxis-title-text " + e.config.xaxis.title.style.cssClass }); a.add(s), t.add(a) } } }, { key: "yAxisTitleRotate", value: function (t, e) { var i = this.w, a = new m(this.ctx), s = { width: 0, height: 0 }, r = { width: 0, height: 0 }, o = i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t, "'] .apexcharts-yaxis-texts-g")); null !== o && (s = o.getBoundingClientRect()); var n = i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t, "'] .apexcharts-yaxis-title text")); if (null !== n && (r = n.getBoundingClientRect()), null !== n) { var l = this.xPaddingForYAxisTitle(t, s, r, e); n.setAttribute("x", l.xPos - (e ? 10 : 0)) } if (null !== n) { var h = a.rotateAroundCenter(n); n.setAttribute("transform", "rotate(".concat(e ? -1 * i.config.yaxis[t].title.rotate : i.config.yaxis[t].title.rotate, " ").concat(h.x, " ").concat(h.y, ")")) } } }, { key: "xPaddingForYAxisTitle", value: function (t, e, i, a) { var s = this.w, r = 0, o = 0, n = 10; return void 0 === s.config.yaxis[t].title.text || t < 0 ? { xPos: o, padd: 0 } : (a ? (o = e.width + s.config.yaxis[t].title.offsetX + i.width / 2 + n / 2, 0 === (r += 1) && (o -= n / 2)) : (o = -1 * e.width + s.config.yaxis[t].title.offsetX + n / 2 + i.width / 2, s.globals.isBarHorizontal && (n = 25, o = -1 * e.width - s.config.yaxis[t].title.offsetX - n)), { xPos: o, padd: n }) } }, { key: "setYAxisXPosition", value: function (t, e) { var i = this.w, a = 0, s = 0, r = 18, o = 1; i.config.yaxis.length > 1 && (this.multipleYs = !0), i.config.yaxis.map((function (n, l) { var h = i.globals.ignoreYAxisIndexes.indexOf(l) > -1 || !n.show || n.floating || 0 === t[l].width, c = t[l].width + e[l].width; n.opposite ? i.globals.isBarHorizontal ? (s = i.globals.gridWidth + i.globals.translateX - 1, i.globals.translateYAxisX[l] = s - n.labels.offsetX) : (s = i.globals.gridWidth + i.globals.translateX + o, h || (o = o + c + 20), i.globals.translateYAxisX[l] = s - n.labels.offsetX + 20) : (a = i.globals.translateX - r, h || (r = r + c + 20), i.globals.translateYAxisX[l] = a + n.labels.offsetX) })) } }, { key: "setYAxisTextAlignments", value: function () { var t = this.w, e = t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis"); (e = x.listToArray(e)).forEach((function (e, i) { var a = t.config.yaxis[i]; if (a && !a.floating && void 0 !== a.labels.align) { var s = t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i, "'] .apexcharts-yaxis-texts-g")), r = t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i, "'] .apexcharts-yaxis-label")); r = x.listToArray(r); var o = s.getBoundingClientRect(); "left" === a.labels.align ? (r.forEach((function (t, e) { t.setAttribute("text-anchor", "start") })), a.opposite || s.setAttribute("transform", "translate(-".concat(o.width, ", 0)"))) : "center" === a.labels.align ? (r.forEach((function (t, e) { t.setAttribute("text-anchor", "middle") })), s.setAttribute("transform", "translate(".concat(o.width / 2 * (a.opposite ? 1 : -1), ", 0)"))) : "right" === a.labels.align && (r.forEach((function (t, e) { t.setAttribute("text-anchor", "end") })), a.opposite && s.setAttribute("transform", "translate(".concat(o.width, ", 0)"))) } })) } }]), t }(), Z = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.documentEvent = x.bind(this.documentEvent, this) } return r(t, [{ key: "addEventListener", value: function (t, e) { var i = this.w; i.globals.events.hasOwnProperty(t) ? i.globals.events[t].push(e) : i.globals.events[t] = [e] } }, { key: "removeEventListener", value: function (t, e) { var i = this.w; if (i.globals.events.hasOwnProperty(t)) { var a = i.globals.events[t].indexOf(e); -1 !== a && i.globals.events[t].splice(a, 1) } } }, { key: "fireEvent", value: function (t, e) { var i = this.w; if (i.globals.events.hasOwnProperty(t)) { e && e.length || (e = []); for (var a = i.globals.events[t], s = a.length, r = 0; r < s; r++)a[r].apply(null, e) } } }, { key: "setupEventHandlers", value: function () { var t = this, e = this.w, i = this.ctx, a = e.globals.dom.baseEl.querySelector(e.globals.chartClass); this.ctx.eventList.forEach((function (t) { a.addEventListener(t, (function (t) { var a = Object.assign({}, e, { seriesIndex: e.globals.axisCharts ? e.globals.capturedSeriesIndex : 0, dataPointIndex: e.globals.capturedDataPointIndex }); "mousemove" === t.type || "touchmove" === t.type ? "function" == typeof e.config.chart.events.mouseMove && e.config.chart.events.mouseMove(t, i, a) : "mouseleave" === t.type || "touchleave" === t.type ? "function" == typeof e.config.chart.events.mouseLeave && e.config.chart.events.mouseLeave(t, i, a) : ("mouseup" === t.type && 1 === t.which || "touchend" === t.type) && ("function" == typeof e.config.chart.events.click && e.config.chart.events.click(t, i, a), i.ctx.events.fireEvent("click", [t, i, a])) }), { capture: !1, passive: !0 }) })), this.ctx.eventList.forEach((function (i) { e.globals.dom.baseEl.addEventListener(i, t.documentEvent, { passive: !0 }) })), this.ctx.core.setupBrushHandler() } }, { key: "documentEvent", value: function (t) { var e = this.w, i = t.target.className; if ("click" === t.type) { var a = e.globals.dom.baseEl.querySelector(".apexcharts-menu"); a && a.classList.contains("apexcharts-menu-open") && "apexcharts-menu-icon" !== i && a.classList.remove("apexcharts-menu-open") } e.globals.clientX = "touchmove" === t.type ? t.touches[0].clientX : t.clientX, e.globals.clientY = "touchmove" === t.type ? t.touches[0].clientY : t.clientY } }]), t }(), $ = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "setCurrentLocaleValues", value: function (t) { var e = this.w.config.chart.locales; window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0 && (e = this.w.config.chart.locales.concat(window.Apex.chart.locales)); var i = e.filter((function (e) { return e.name === t }))[0]; if (!i) throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options"); var a = x.extend(M, i); this.w.globals.locale = a.options } }]), t }(), J = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "drawAxis", value: function (t, e) { var i, a, s = this, r = this.w.globals, o = this.w.config, n = new V(this.ctx, e), l = new q(this.ctx, e); r.axisCharts && "radar" !== t && (r.isBarHorizontal ? (a = l.drawYaxisInversed(0), i = n.drawXaxisInversed(0), r.dom.elGraphical.add(i), r.dom.elGraphical.add(a)) : (i = n.drawXaxis(), r.dom.elGraphical.add(i), o.yaxis.map((function (t, e) { if (-1 === r.ignoreYAxisIndexes.indexOf(e) && (a = l.drawYaxis(e), r.dom.Paper.add(a), "back" === s.w.config.grid.position)) { var i = r.dom.Paper.children()[1]; i.remove(), r.dom.Paper.add(i) } })))) } }]), t }(), Q = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "drawXCrosshairs", value: function () { var t = this.w, e = new m(this.ctx), i = new v(this.ctx), a = t.config.xaxis.crosshairs.fill.gradient, s = t.config.xaxis.crosshairs.dropShadow, r = t.config.xaxis.crosshairs.fill.type, o = a.colorFrom, n = a.colorTo, l = a.opacityFrom, h = a.opacityTo, c = a.stops, d = s.enabled, g = s.left, u = s.top, p = s.blur, f = s.color, b = s.opacity, y = t.config.xaxis.crosshairs.fill.color; if (t.config.xaxis.crosshairs.show) { "gradient" === r && (y = e.drawGradient("vertical", o, n, l, h, null, c, null)); var w = e.drawRect(); 1 === t.config.xaxis.crosshairs.width && (w = e.drawLine()); var k = t.globals.gridHeight; (!x.isNumber(k) || k < 0) && (k = 0); var A = t.config.xaxis.crosshairs.width; (!x.isNumber(A) || A < 0) && (A = 0), w.attr({ class: "apexcharts-xcrosshairs", x: 0, y: 0, y2: k, width: A, height: k, fill: y, filter: "none", "fill-opacity": t.config.xaxis.crosshairs.opacity, stroke: t.config.xaxis.crosshairs.stroke.color, "stroke-width": t.config.xaxis.crosshairs.stroke.width, "stroke-dasharray": t.config.xaxis.crosshairs.stroke.dashArray }), d && (w = i.dropShadow(w, { left: g, top: u, blur: p, color: f, opacity: b })), t.globals.dom.elGraphical.add(w) } } }, { key: "drawYCrosshairs", value: function () { var t = this.w, e = new m(this.ctx), i = t.config.yaxis[0].crosshairs, a = t.globals.barPadForNumericAxis; if (t.config.yaxis[0].crosshairs.show) { var s = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, i.stroke.dashArray, i.stroke.width); s.attr({ class: "apexcharts-ycrosshairs" }), t.globals.dom.elGraphical.add(s) } var r = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, 0, 0); r.attr({ class: "apexcharts-ycrosshairs-hidden" }), t.globals.dom.elGraphical.add(r) } }]), t }(), K = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "checkResponsiveConfig", value: function (t) { var e = this, i = this.w, a = i.config; if (0 !== a.responsive.length) { var s = a.responsive.slice(); s.sort((function (t, e) { return t.breakpoint > e.breakpoint ? 1 : e.breakpoint > t.breakpoint ? -1 : 0 })).reverse(); var r = new Y({}), o = function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, a = s[0].breakpoint, o = window.innerWidth > 0 ? window.innerWidth : screen.width; if (o > a) { var n = x.clone(i.globals.initialConfig); n.series = x.clone(i.config.series); var l = y.extendArrayProps(r, n, i); t = x.extend(l, t), t = x.extend(i.config, t), e.overrideResponsiveOptions(t) } else for (var h = 0; h < s.length; h++)if (o < s[h].breakpoint) { var c = y.extendArrayProps(r, s[h].options, i); t = x.extend(c, t), t = x.extend(i.config, t), e.overrideResponsiveOptions(t) } }; if (t) { var n = y.extendArrayProps(r, t, i); n = x.extend(i.config, n), o(n = x.extend(n, t)) } else o({}) } } }, { key: "overrideResponsiveOptions", value: function (t) { var e = new Y(t).init({ responsiveOverride: !0 }); this.w.config = e } }]), t }(), tt = function () { function t(e) { a(this, t), this.ctx = e, this.colors = [], this.w = e.w; var i = this.w; this.isColorFn = !1, this.isHeatmapDistributed = "treemap" === i.config.chart.type && i.config.plotOptions.treemap.distributed || "heatmap" === i.config.chart.type && i.config.plotOptions.heatmap.distributed, this.isBarDistributed = i.config.plotOptions.bar.distributed && ("bar" === i.config.chart.type || "rangeBar" === i.config.chart.type) } return r(t, [{ key: "init", value: function () { this.setDefaultColors() } }, { key: "setDefaultColors", value: function () { var t, e = this, i = this.w, a = new x; if (i.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(i.config.theme.mode)), void 0 === i.config.colors || 0 === (null === (t = i.config.colors) || void 0 === t ? void 0 : t.length) ? i.globals.colors = this.predefined() : (i.globals.colors = i.config.colors, Array.isArray(i.config.colors) && i.config.colors.length > 0 && "function" == typeof i.config.colors[0] && (i.globals.colors = i.config.series.map((function (t, a) { var s = i.config.colors[a]; return s || (s = i.config.colors[0]), "function" == typeof s ? (e.isColorFn = !0, s({ value: i.globals.axisCharts ? i.globals.series[a][0] ? i.globals.series[a][0] : 0 : i.globals.series[a], seriesIndex: a, dataPointIndex: a, w: i })) : s })))), i.globals.seriesColors.map((function (t, e) { t && (i.globals.colors[e] = t) })), i.config.theme.monochrome.enabled) { var s = [], r = i.globals.series.length; (this.isBarDistributed || this.isHeatmapDistributed) && (r = i.globals.series[0].length * i.globals.series.length); for (var o = i.config.theme.monochrome.color, n = 1 / (r / i.config.theme.monochrome.shadeIntensity), l = i.config.theme.monochrome.shadeTo, h = 0, c = 0; c < r; c++) { var d = void 0; "dark" === l ? (d = a.shadeColor(-1 * h, o), h += n) : (d = a.shadeColor(h, o), h += n), s.push(d) } i.globals.colors = s.slice() } var g = i.globals.colors.slice(); this.pushExtraColors(i.globals.colors);["fill", "stroke"].forEach((function (t) { void 0 === i.config[t].colors ? i.globals[t].colors = e.isColorFn ? i.config.colors : g : i.globals[t].colors = i.config[t].colors.slice(), e.pushExtraColors(i.globals[t].colors) })), void 0 === i.config.dataLabels.style.colors ? i.globals.dataLabels.style.colors = g : i.globals.dataLabels.style.colors = i.config.dataLabels.style.colors.slice(), this.pushExtraColors(i.globals.dataLabels.style.colors, 50), void 0 === i.config.plotOptions.radar.polygons.fill.colors ? i.globals.radarPolygons.fill.colors = ["dark" === i.config.theme.mode ? "#424242" : "none"] : i.globals.radarPolygons.fill.colors = i.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(i.globals.radarPolygons.fill.colors, 20), void 0 === i.config.markers.colors ? i.globals.markers.colors = g : i.globals.markers.colors = i.config.markers.colors.slice(), this.pushExtraColors(i.globals.markers.colors) } }, { key: "pushExtraColors", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = this.w, s = e || a.globals.series.length; if (null === i && (i = this.isBarDistributed || this.isHeatmapDistributed || "heatmap" === a.config.chart.type && a.config.plotOptions.heatmap.colorScale.inverse), i && a.globals.series.length && (s = a.globals.series[a.globals.maxValsInArrayIndex].length * a.globals.series.length), t.length < s) for (var r = s - t.length, o = 0; o < r; o++)t.push(t[o]) } }, { key: "updateThemeOptions", value: function (t) { t.chart = t.chart || {}, t.tooltip = t.tooltip || {}; var e = t.theme.mode || "light", i = t.theme.palette ? t.theme.palette : "dark" === e ? "palette4" : "palette1", a = t.chart.foreColor ? t.chart.foreColor : "dark" === e ? "#f6f7f8" : "#373d3f"; return t.tooltip.theme = e, t.chart.foreColor = a, t.theme.palette = i, t } }, { key: "predefined", value: function () { switch (this.w.config.theme.palette) { case "palette1": default: this.colors = ["#008FFB", "#00E396", "#FEB019", "#FF4560", "#775DD0"]; break; case "palette2": this.colors = ["#3f51b5", "#03a9f4", "#4caf50", "#f9ce1d", "#FF9800"]; break; case "palette3": this.colors = ["#33b2df", "#546E7A", "#d4526e", "#13d8aa", "#A5978B"]; break; case "palette4": this.colors = ["#4ecdc4", "#c7f464", "#81D4FA", "#fd6a6a", "#546E7A"]; break; case "palette5": this.colors = ["#2b908f", "#f9a3a4", "#90ee7e", "#fa4443", "#69d2e7"]; break; case "palette6": this.colors = ["#449DD1", "#F86624", "#EA3546", "#662E9B", "#C5D86D"]; break; case "palette7": this.colors = ["#D7263D", "#1B998B", "#2E294E", "#F46036", "#E2C044"]; break; case "palette8": this.colors = ["#662E9B", "#F86624", "#F9C80E", "#EA3546", "#43BCCD"]; break; case "palette9": this.colors = ["#5C4742", "#A5978B", "#8D5B4C", "#5A2A27", "#C4BBAF"]; break; case "palette10": this.colors = ["#A300D6", "#7D02EB", "#5653FE", "#2983FF", "#00B1F2"] }return this.colors } }]), t }(), et = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "draw", value: function () { this.drawTitleSubtitle("title"), this.drawTitleSubtitle("subtitle") } }, { key: "drawTitleSubtitle", value: function (t) { var e = this.w, i = "title" === t ? e.config.title : e.config.subtitle, a = e.globals.svgWidth / 2, s = i.offsetY, r = "middle"; if ("left" === i.align ? (a = 10, r = "start") : "right" === i.align && (a = e.globals.svgWidth - 10, r = "end"), a += i.offsetX, s = s + parseInt(i.style.fontSize, 10) + i.margin / 2, void 0 !== i.text) { var o = new m(this.ctx).drawText({ x: a, y: s, text: i.text, textAnchor: r, fontSize: i.style.fontSize, fontFamily: i.style.fontFamily, fontWeight: i.style.fontWeight, foreColor: i.style.color, opacity: 1 }); o.node.setAttribute("class", "apexcharts-".concat(t, "-text")), e.globals.dom.Paper.add(o) } } }]), t }(), it = function () { function t(e) { a(this, t), this.w = e.w, this.dCtx = e } return r(t, [{ key: "getTitleSubtitleCoords", value: function (t) { var e = this.w, i = 0, a = 0, s = "title" === t ? e.config.title.floating : e.config.subtitle.floating, r = e.globals.dom.baseEl.querySelector(".apexcharts-".concat(t, "-text")); if (null !== r && !s) { var o = r.getBoundingClientRect(); i = o.width, a = e.globals.axisCharts ? o.height + 5 : o.height } return { width: i, height: a } } }, { key: "getLegendsRect", value: function () { var t = this.w, e = t.globals.dom.elLegendWrap; t.config.legend.height || "top" !== t.config.legend.position && "bottom" !== t.config.legend.position || (e.style.maxHeight = t.globals.svgHeight / 2 + "px"); var i = Object.assign({}, x.getBoundingClientRect(e)); return null !== e && !t.config.legend.floating && t.config.legend.show ? this.dCtx.lgRect = { x: i.x, y: i.y, height: i.height, width: 0 === i.height ? 0 : i.width } : this.dCtx.lgRect = { x: 0, y: 0, height: 0, width: 0 }, "left" !== t.config.legend.position && "right" !== t.config.legend.position || 1.5 * this.dCtx.lgRect.width > t.globals.svgWidth && (this.dCtx.lgRect.width = t.globals.svgWidth / 1.5), this.dCtx.lgRect } }, { key: "getDatalabelsRect", value: function () { var t = this, e = this.w, i = []; e.config.series.forEach((function (s, r) { s.data.forEach((function (s, o) { var n; n = e.globals.series[r][o], a = e.config.dataLabels.formatter(n, { ctx: t.dCtx.ctx, seriesIndex: r, dataPointIndex: o, w: e }), i.push(a) })) })); var a = x.getLargestStringFromArr(i), s = new m(this.dCtx.ctx), r = e.config.dataLabels.style, o = s.getTextRects(a, parseInt(r.fontSize), r.fontFamily); return { width: 1.05 * o.width, height: o.height } } }, { key: "getLargestStringFromMultiArr", value: function (t, e) { var i = t; if (this.w.globals.isMultiLineX) { var a = e.map((function (t, e) { return Array.isArray(t) ? t.length : 1 })), s = Math.max.apply(Math, u(a)); i = e[a.indexOf(s)] } return i } }]), t }(), at = function () { function t(e) { a(this, t), this.w = e.w, this.dCtx = e } return r(t, [{ key: "getxAxisLabelsCoords", value: function () { var t, e = this.w, i = e.globals.labels.slice(); if (e.config.xaxis.convertedCatToNumeric && 0 === i.length && (i = e.globals.categoryLabels), e.globals.timescaleLabels.length > 0) { var a = this.getxAxisTimeScaleLabelsCoords(); t = { width: a.width, height: a.height }, e.globals.rotateXLabels = !1 } else { this.dCtx.lgWidthForSideLegends = "left" !== e.config.legend.position && "right" !== e.config.legend.position || e.config.legend.floating ? 0 : this.dCtx.lgRect.width; var s = e.globals.xLabelFormatter, r = x.getLargestStringFromArr(i), o = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r, i); e.globals.isBarHorizontal && (o = r = e.globals.yAxisScale[0].result.reduce((function (t, e) { return t.length > e.length ? t : e }), 0)); var n = new S(this.dCtx.ctx), l = r; r = n.xLabelFormat(s, r, l, { i: void 0, dateFormatter: new A(this.dCtx.ctx).formatDate, w: e }), o = n.xLabelFormat(s, o, l, { i: void 0, dateFormatter: new A(this.dCtx.ctx).formatDate, w: e }), (e.config.xaxis.convertedCatToNumeric && void 0 === r || "" === String(r).trim()) && (o = r = "1"); var h = new m(this.dCtx.ctx), c = h.getTextRects(r, e.config.xaxis.labels.style.fontSize), d = c; if (r !== o && (d = h.getTextRects(o, e.config.xaxis.labels.style.fontSize)), (t = { width: c.width >= d.width ? c.width : d.width, height: c.height >= d.height ? c.height : d.height }).width * i.length > e.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && 0 !== e.config.xaxis.labels.rotate || e.config.xaxis.labels.rotateAlways) { if (!e.globals.isBarHorizontal) { e.globals.rotateXLabels = !0; var g = function (t) { return h.getTextRects(t, e.config.xaxis.labels.style.fontSize, e.config.xaxis.labels.style.fontFamily, "rotate(".concat(e.config.xaxis.labels.rotate, " 0 0)"), !1) }; c = g(r), r !== o && (d = g(o)), t.height = (c.height > d.height ? c.height : d.height) / 1.5, t.width = c.width > d.width ? c.width : d.width } } else e.globals.rotateXLabels = !1 } return e.config.xaxis.labels.show || (t = { width: 0, height: 0 }), { width: t.width, height: t.height } } }, { key: "getxAxisGroupLabelsCoords", value: function () { var t, e = this.w; if (!e.globals.hasXaxisGroups) return { width: 0, height: 0 }; var i, a = (null === (t = e.config.xaxis.group.style) || void 0 === t ? void 0 : t.fontSize) || e.config.xaxis.labels.style.fontSize, s = e.globals.groups.map((function (t) { return t.title })), r = x.getLargestStringFromArr(s), o = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r, s), n = new m(this.dCtx.ctx), l = n.getTextRects(r, a), h = l; return r !== o && (h = n.getTextRects(o, a)), i = { width: l.width >= h.width ? l.width : h.width, height: l.height >= h.height ? l.height : h.height }, e.config.xaxis.labels.show || (i = { width: 0, height: 0 }), { width: i.width, height: i.height } } }, { key: "getxAxisTitleCoords", value: function () { var t = this.w, e = 0, i = 0; if (void 0 !== t.config.xaxis.title.text) { var a = new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text, t.config.xaxis.title.style.fontSize); e = a.width, i = a.height } return { width: e, height: i } } }, { key: "getxAxisTimeScaleLabelsCoords", value: function () { var t, e = this.w; this.dCtx.timescaleLabels = e.globals.timescaleLabels.slice(); var i = this.dCtx.timescaleLabels.map((function (t) { return t.value })), a = i.reduce((function (t, e) { return void 0 === t ? (console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"), 0) : t.length > e.length ? t : e }), 0); return 1.05 * (t = new m(this.dCtx.ctx).getTextRects(a, e.config.xaxis.labels.style.fontSize)).width * i.length > e.globals.gridWidth && 0 !== e.config.xaxis.labels.rotate && (e.globals.overlappingXLabels = !0), t } }, { key: "additionalPaddingXLabels", value: function (t) { var e = this, i = this.w, a = i.globals, s = i.config, r = s.xaxis.type, o = t.width; a.skipLastTimelinelabel = !1, a.skipFirstTimelinelabel = !1; var n = i.config.yaxis[0].opposite && i.globals.isBarHorizontal, l = function (t, n) { s.yaxis.length > 1 && function (t) { return -1 !== a.collapsedSeriesIndices.indexOf(t) }(n) || function (t) { if (e.dCtx.timescaleLabels && e.dCtx.timescaleLabels.length) { var n = e.dCtx.timescaleLabels[0], l = e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length - 1].position + o / 1.75 - e.dCtx.yAxisWidthRight, h = n.position - o / 1.75 + e.dCtx.yAxisWidthLeft, c = "right" === i.config.legend.position && e.dCtx.lgRect.width > 0 ? e.dCtx.lgRect.width : 0; l > a.svgWidth - a.translateX - c && (a.skipLastTimelinelabel = !0), h < -(t.show && !t.floating || "bar" !== s.chart.type && "candlestick" !== s.chart.type && "rangeBar" !== s.chart.type && "boxPlot" !== s.chart.type ? 10 : o / 1.75) && (a.skipFirstTimelinelabel = !0) } else "datetime" === r ? e.dCtx.gridPad.right < o && !a.rotateXLabels && (a.skipLastTimelinelabel = !0) : "datetime" !== r && e.dCtx.gridPad.right < o / 2 - e.dCtx.yAxisWidthRight && !a.rotateXLabels && !i.config.xaxis.labels.trim && ("between" !== i.config.xaxis.tickPlacement || i.globals.isBarHorizontal) && (e.dCtx.xPadRight = o / 2 + 1) }(t) }; s.yaxis.forEach((function (t, i) { n ? (e.dCtx.gridPad.left < o && (e.dCtx.xPadLeft = o / 2 + 1), e.dCtx.xPadRight = o / 2 + 1) : l(t, i) })) } }]), t }(), st = function () { function t(e) { a(this, t), this.w = e.w, this.dCtx = e } return r(t, [{ key: "getyAxisLabelsCoords", value: function () { var t = this, e = this.w, i = [], a = 10, s = new C(this.dCtx.ctx); return e.config.yaxis.map((function (r, o) { var n = { seriesIndex: o, dataPointIndex: -1, w: e }, l = e.globals.yAxisScale[o], h = 0; if (!s.isYAxisHidden(o) && r.labels.show && void 0 !== r.labels.minWidth && (h = r.labels.minWidth), !s.isYAxisHidden(o) && r.labels.show && l.result.length) { var c = e.globals.yLabelFormatters[o], d = l.niceMin === Number.MIN_VALUE ? 0 : l.niceMin, g = l.result.reduce((function (t, e) { var i, a; return (null === (i = String(c(t, n))) || void 0 === i ? void 0 : i.length) > (null === (a = String(c(e, n))) || void 0 === a ? void 0 : a.length) ? t : e }), d), u = g = c(g, n); if (void 0 !== g && 0 !== g.length || (g = l.niceMax), e.globals.isBarHorizontal) { a = 0; var p = e.globals.labels.slice(); g = x.getLargestStringFromArr(p), g = c(g, { seriesIndex: o, dataPointIndex: -1, w: e }), u = t.dCtx.dimHelpers.getLargestStringFromMultiArr(g, p) } var f = new m(t.dCtx.ctx), b = "rotate(".concat(r.labels.rotate, " 0 0)"), v = f.getTextRects(g, r.labels.style.fontSize, r.labels.style.fontFamily, b, !1), y = v; g !== u && (y = f.getTextRects(u, r.labels.style.fontSize, r.labels.style.fontFamily, b, !1)), i.push({ width: (h > y.width || h > v.width ? h : y.width > v.width ? y.width : v.width) + a, height: y.height > v.height ? y.height : v.height }) } else i.push({ width: 0, height: 0 }) })), i } }, { key: "getyAxisTitleCoords", value: function () { var t = this, e = this.w, i = []; return e.config.yaxis.map((function (e, a) { if (e.show && void 0 !== e.title.text) { var s = new m(t.dCtx.ctx), r = "rotate(".concat(e.title.rotate, " 0 0)"), o = s.getTextRects(e.title.text, e.title.style.fontSize, e.title.style.fontFamily, r, !1); i.push({ width: o.width, height: o.height }) } else i.push({ width: 0, height: 0 }) })), i } }, { key: "getTotalYAxisWidth", value: function () { var t = this.w, e = 0, i = 0, a = 0, s = t.globals.yAxisScale.length > 1 ? 10 : 0, r = new C(this.dCtx.ctx), o = function (o, n) { var l = t.config.yaxis[n].floating, h = 0; o.width > 0 && !l ? (h = o.width + s, function (e) { return t.globals.ignoreYAxisIndexes.indexOf(e) > -1 }(n) && (h = h - o.width - s)) : h = l || r.isYAxisHidden(n) ? 0 : 5, t.config.yaxis[n].opposite ? a += h : i += h, e += h }; return t.globals.yLabelsCoords.map((function (t, e) { o(t, e) })), t.globals.yTitleCoords.map((function (t, e) { o(t, e) })), t.globals.isBarHorizontal && !t.config.yaxis[0].floating && (e = t.globals.yLabelsCoords[0].width + t.globals.yTitleCoords[0].width + 15), this.dCtx.yAxisWidthLeft = i, this.dCtx.yAxisWidthRight = a, e } }]), t }(), rt = function () { function t(e) { a(this, t), this.w = e.w, this.dCtx = e } return r(t, [{ key: "gridPadForColumnsInNumericAxis", value: function (t) { var e = this.w, i = e.config, a = e.globals; if (a.noData || a.collapsedSeries.length + a.ancillaryCollapsedSeries.length === i.series.length) return 0; var s = function (t) { return "bar" === t || "rangeBar" === t || "candlestick" === t || "boxPlot" === t }, r = i.chart.type, o = 0, n = s(r) ? i.series.length : 1; if (a.comboBarCount > 0 && (n = a.comboBarCount), a.collapsedSeries.forEach((function (t) { s(t.type) && (n -= 1) })), i.chart.stacked && (n = 1), (s(r) || a.comboBarCount > 0) && a.isXNumeric && !a.isBarHorizontal && n > 0) { var l, h, c = Math.abs(a.initialMaxX - a.initialMinX); c <= 3 && (c = a.dataPoints), l = c / t, a.minXDiff && a.minXDiff / l > 0 && (h = a.minXDiff / l), h > t / 2 && (h /= 2), (o = h * parseInt(i.plotOptions.bar.columnWidth, 10) / 100) < 1 && (o = 1), a.barPadForNumericAxis = o } return o } }, { key: "gridPadFortitleSubtitle", value: function () { var t = this, e = this.w, i = e.globals, a = this.dCtx.isSparkline || !e.globals.axisCharts ? 0 : 10;["title", "subtitle"].forEach((function (i) { void 0 !== e.config[i].text ? a += e.config[i].margin : a += t.dCtx.isSparkline || !e.globals.axisCharts ? 0 : 5 })), !e.config.legend.show || "bottom" !== e.config.legend.position || e.config.legend.floating || e.globals.axisCharts || (a += 10); var s = this.dCtx.dimHelpers.getTitleSubtitleCoords("title"), r = this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle"); i.gridHeight = i.gridHeight - s.height - r.height - a, i.translateY = i.translateY + s.height + r.height + a } }, { key: "setGridXPosForDualYAxis", value: function (t, e) { var i = this.w, a = new C(this.dCtx.ctx); i.config.yaxis.map((function (s, r) { -1 !== i.globals.ignoreYAxisIndexes.indexOf(r) || s.floating || a.isYAxisHidden(r) || (s.opposite && (i.globals.translateX = i.globals.translateX - (e[r].width + t[r].width) - parseInt(i.config.yaxis[r].labels.style.fontSize, 10) / 1.2 - 12), i.globals.translateX < 2 && (i.globals.translateX = 2)) })) } }]), t }(), ot = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new it(this), this.dimYAxis = new st(this), this.dimXAxis = new at(this), this.dimGrid = new rt(this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0 } return r(t, [{ key: "plotCoords", value: function () { var t = this, e = this.w, i = e.globals; this.lgRect = this.dimHelpers.getLegendsRect(), this.datalabelsCoords = { width: 0, height: 0 }; var a = Array.isArray(e.config.stroke.width) ? Math.max.apply(Math, u(e.config.stroke.width)) : e.config.stroke.width; this.isSparkline && ((e.config.markers.discrete.length > 0 || e.config.markers.size > 0) && Object.entries(this.gridPad).forEach((function (e) { var i = g(e, 2), a = i[0], s = i[1]; t.gridPad[a] = Math.max(s, t.w.globals.markers.largestSize / 1.5) })), this.gridPad.top = Math.max(a / 2, this.gridPad.top), this.gridPad.bottom = Math.max(a / 2, this.gridPad.bottom)), i.axisCharts ? this.setDimensionsForAxisCharts() : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), i.gridHeight = i.gridHeight - this.gridPad.top - this.gridPad.bottom, i.gridWidth = i.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft; var s = this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth); i.gridWidth = i.gridWidth - 2 * s, i.translateX = i.translateX + this.gridPad.left + this.xPadLeft + (s > 0 ? s : 0), i.translateY = i.translateY + this.gridPad.top } }, { key: "setDimensionsForAxisCharts", value: function () { var t = this, e = this.w, i = e.globals, a = this.dimYAxis.getyAxisLabelsCoords(), s = this.dimYAxis.getyAxisTitleCoords(); i.isSlopeChart && (this.datalabelsCoords = this.dimHelpers.getDatalabelsRect()), e.globals.yLabelsCoords = [], e.globals.yTitleCoords = [], e.config.yaxis.map((function (t, i) { e.globals.yLabelsCoords.push({ width: a[i].width, index: i }), e.globals.yTitleCoords.push({ width: s[i].width, index: i }) })), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth(); var r = this.dimXAxis.getxAxisLabelsCoords(), o = this.dimXAxis.getxAxisGroupLabelsCoords(), n = this.dimXAxis.getxAxisTitleCoords(); this.conditionalChecksForAxisCoords(r, n, o), i.translateXAxisY = e.globals.rotateXLabels ? this.xAxisHeight / 8 : -4, i.translateXAxisX = e.globals.rotateXLabels && e.globals.isXNumeric && e.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0, e.globals.isBarHorizontal && (i.rotateXLabels = !1, i.translateXAxisY = parseInt(e.config.xaxis.labels.style.fontSize, 10) / 1.5 * -1), i.translateXAxisY = i.translateXAxisY + e.config.xaxis.labels.offsetY, i.translateXAxisX = i.translateXAxisX + e.config.xaxis.labels.offsetX; var l = this.yAxisWidth, h = this.xAxisHeight; i.xAxisLabelsHeight = this.xAxisHeight - n.height, i.xAxisGroupLabelsHeight = i.xAxisLabelsHeight - r.height, i.xAxisLabelsWidth = this.xAxisWidth, i.xAxisHeight = this.xAxisHeight; var c = 10; ("radar" === e.config.chart.type || this.isSparkline) && (l = 0, h = i.goldenPadding), this.isSparkline && (this.lgRect = { height: 0, width: 0 }), (this.isSparkline || "treemap" === e.config.chart.type) && (l = 0, h = 0, c = 0), this.isSparkline || this.dimXAxis.additionalPaddingXLabels(r); var d = function () { i.translateX = l + t.datalabelsCoords.width, i.gridHeight = i.svgHeight - t.lgRect.height - h - (t.isSparkline || "treemap" === e.config.chart.type ? 0 : e.globals.rotateXLabels ? 10 : 15), i.gridWidth = i.svgWidth - l - 2 * t.datalabelsCoords.width }; switch ("top" === e.config.xaxis.position && (c = i.xAxisHeight - e.config.xaxis.axisTicks.height - 5), e.config.legend.position) { case "bottom": i.translateY = c, d(); break; case "top": i.translateY = this.lgRect.height + c, d(); break; case "left": i.translateY = c, i.translateX = this.lgRect.width + l + this.datalabelsCoords.width, i.gridHeight = i.svgHeight - h - 12, i.gridWidth = i.svgWidth - this.lgRect.width - l - 2 * this.datalabelsCoords.width; break; case "right": i.translateY = c, i.translateX = l + this.datalabelsCoords.width, i.gridHeight = i.svgHeight - h - 12, i.gridWidth = i.svgWidth - this.lgRect.width - l - 2 * this.datalabelsCoords.width - 5; break; default: throw new Error("Legend position not supported") }this.dimGrid.setGridXPosForDualYAxis(s, a), new q(this.ctx).setYAxisXPosition(a, s) } }, { key: "setDimensionsForNonAxisCharts", value: function () { var t = this.w, e = t.globals, i = t.config, a = 0; t.config.legend.show && !t.config.legend.floating && (a = 20); var s = "pie" === i.chart.type || "polarArea" === i.chart.type || "donut" === i.chart.type ? "pie" : "radialBar", r = i.plotOptions[s].offsetY, o = i.plotOptions[s].offsetX; if (!i.legend.show || i.legend.floating) return e.gridHeight = e.svgHeight - i.grid.padding.left + i.grid.padding.right, e.gridWidth = Math.min(e.svgWidth, e.gridHeight), e.translateY = r, void (e.translateX = o + (e.svgWidth - e.gridWidth) / 2); switch (i.legend.position) { case "bottom": e.gridHeight = e.svgHeight - this.lgRect.height - e.goldenPadding, e.gridWidth = e.svgWidth, e.translateY = r - 10, e.translateX = o + (e.svgWidth - e.gridWidth) / 2; break; case "top": e.gridHeight = e.svgHeight - this.lgRect.height - e.goldenPadding, e.gridWidth = e.svgWidth, e.translateY = this.lgRect.height + r + 10, e.translateX = o + (e.svgWidth - e.gridWidth) / 2; break; case "left": e.gridWidth = e.svgWidth - this.lgRect.width - a, e.gridHeight = "auto" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = o + this.lgRect.width + a; break; case "right": e.gridWidth = e.svgWidth - this.lgRect.width - a - 5, e.gridHeight = "auto" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = o + 10; break; default: throw new Error("Legend position not supported") } } }, { key: "conditionalChecksForAxisCoords", value: function (t, e, i) { var a = this.w, s = a.globals.hasXaxisGroups ? 2 : 1, r = i.height + t.height + e.height, o = a.globals.isMultiLineX ? 1.2 : a.globals.LINE_HEIGHT_RATIO, n = a.globals.rotateXLabels ? 22 : 10, l = a.globals.rotateXLabels && "bottom" === a.config.legend.position ? 10 : 0; this.xAxisHeight = r * o + s * n + l, this.xAxisWidth = t.width, this.xAxisHeight - e.height > a.config.xaxis.labels.maxHeight && (this.xAxisHeight = a.config.xaxis.labels.maxHeight), a.config.xaxis.labels.minHeight && this.xAxisHeight < a.config.xaxis.labels.minHeight && (this.xAxisHeight = a.config.xaxis.labels.minHeight), a.config.xaxis.floating && (this.xAxisHeight = 0); var h = 0, c = 0; a.config.yaxis.forEach((function (t) { h += t.labels.minWidth, c += t.labels.maxWidth })), this.yAxisWidth < h && (this.yAxisWidth = h), this.yAxisWidth > c && (this.yAxisWidth = c) } }]), t }(), nt = function () { function t(e) { a(this, t), this.w = e.w, this.lgCtx = e } return r(t, [{ key: "getLegendStyles", value: function () { var t, e, i, a = document.createElement("style"); a.setAttribute("type", "text/css"); var s = (null === (t = this.lgCtx.ctx) || void 0 === t || null === (e = t.opts) || void 0 === e || null === (i = e.chart) || void 0 === i ? void 0 : i.nonce) || this.w.config.chart.nonce; s && a.setAttribute("nonce", s); var r = document.createTextNode("\n .apexcharts-legend {\n display: flex;\n overflow: auto;\n padding: 0 10px;\n }\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\n flex-wrap: wrap\n }\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n flex-direction: column;\n bottom: 0;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n justify-content: flex-start;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\n justify-content: center;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\n justify-content: flex-end;\n }\n .apexcharts-legend-series {\n cursor: pointer;\n line-height: normal;\n }\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\n display: flex;\n align-items: center;\n }\n .apexcharts-legend-text {\n position: relative;\n font-size: 14px;\n }\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\n pointer-events: none;\n }\n .apexcharts-legend-marker {\n position: relative;\n display: inline-block;\n cursor: pointer;\n margin-right: 3px;\n border-style: solid;\n }\n\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\n display: inline-block;\n }\n .apexcharts-legend-series.apexcharts-no-click {\n cursor: auto;\n }\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\n display: none !important;\n }\n .apexcharts-inactive-legend {\n opacity: 0.45;\n }"); return a.appendChild(r), a } }, { key: "getLegendBBox", value: function () { var t = this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(), e = t.width; return { clwh: t.height, clww: e } } }, { key: "appendToForeignObject", value: function () { this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles()) } }, { key: "toggleDataSeries", value: function (t, e) { var i = this, a = this.w; if (a.globals.axisCharts || "radialBar" === a.config.chart.type) { a.globals.resized = !0; var s = null, r = null; if (a.globals.risingSeries = [], a.globals.axisCharts ? (s = a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t, "']")), r = parseInt(s.getAttribute("data:realIndex"), 10)) : (s = a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t + 1, "']")), r = parseInt(s.getAttribute("rel"), 10) - 1), e) [{ cs: a.globals.collapsedSeries, csi: a.globals.collapsedSeriesIndices }, { cs: a.globals.ancillaryCollapsedSeries, csi: a.globals.ancillaryCollapsedSeriesIndices }].forEach((function (t) { i.riseCollapsedSeries(t.cs, t.csi, r) })); else this.hideSeries({ seriesEl: s, realIndex: r }) } else { var o = a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t + 1, "'] path")), n = a.config.chart.type; if ("pie" === n || "polarArea" === n || "donut" === n) { var l = a.config.plotOptions.pie.donut.labels; new m(this.lgCtx.ctx).pathMouseDown(o.members[0], null), this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node, l) } o.fire("click") } } }, { key: "hideSeries", value: function (t) { var e = t.seriesEl, i = t.realIndex, a = this.w, s = a.globals, r = x.clone(a.config.series); if (s.axisCharts) { var o = a.config.yaxis[s.seriesYAxisReverseMap[i]]; if (o && o.show && o.showAlways) s.ancillaryCollapsedSeriesIndices.indexOf(i) < 0 && (s.ancillaryCollapsedSeries.push({ index: i, data: r[i].data.slice(), type: e.parentNode.className.baseVal.split("-")[1] }), s.ancillaryCollapsedSeriesIndices.push(i)); else if (s.collapsedSeriesIndices.indexOf(i) < 0) { s.collapsedSeries.push({ index: i, data: r[i].data.slice(), type: e.parentNode.className.baseVal.split("-")[1] }), s.collapsedSeriesIndices.push(i); var n = s.risingSeries.indexOf(i); s.risingSeries.splice(n, 1) } } else s.collapsedSeries.push({ index: i, data: r[i] }), s.collapsedSeriesIndices.push(i); for (var l = e.childNodes, h = 0; h < l.length; h++)l[h].classList.contains("apexcharts-series-markers-wrap") && (l[h].classList.contains("apexcharts-hide") ? l[h].classList.remove("apexcharts-hide") : l[h].classList.add("apexcharts-hide")); s.allSeriesCollapsed = s.collapsedSeries.length + s.ancillaryCollapsedSeries.length === a.config.series.length, r = this._getSeriesBasedOnCollapsedState(r), this.lgCtx.ctx.updateHelpers._updateSeries(r, a.config.chart.animations.dynamicAnimation.enabled) } }, { key: "riseCollapsedSeries", value: function (t, e, i) { var a = this.w, s = x.clone(a.config.series); if (t.length > 0) { for (var r = 0; r < t.length; r++)t[r].index === i && (a.globals.axisCharts ? (s[i].data = t[r].data.slice(), t.splice(r, 1), e.splice(r, 1), a.globals.risingSeries.push(i)) : (s[i] = t[r].data, t.splice(r, 1), e.splice(r, 1), a.globals.risingSeries.push(i))); s = this._getSeriesBasedOnCollapsedState(s), this.lgCtx.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled) } } }, { key: "_getSeriesBasedOnCollapsedState", value: function (t) { var e = this.w, i = 0; return e.globals.axisCharts ? t.forEach((function (a, s) { e.globals.collapsedSeriesIndices.indexOf(s) < 0 && e.globals.ancillaryCollapsedSeriesIndices.indexOf(s) < 0 || (t[s].data = [], i++) })) : t.forEach((function (a, s) { !e.globals.collapsedSeriesIndices.indexOf(s) < 0 && (t[s] = 0, i++) })), e.globals.allSeriesCollapsed = i === t.length, t } }]), t }(), lt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.onLegendClick = this.onLegendClick.bind(this), this.onLegendHovered = this.onLegendHovered.bind(this), this.isBarsDistributed = "bar" === this.w.config.chart.type && this.w.config.plotOptions.bar.distributed && 1 === this.w.config.series.length, this.legendHelpers = new nt(this) } return r(t, [{ key: "init", value: function () { var t = this.w, e = t.globals, i = t.config; if ((i.legend.showForSingleSeries && 1 === e.series.length || this.isBarsDistributed || e.series.length > 1 || !e.axisCharts) && i.legend.show) { for (; e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild); this.drawLegends(), x.isIE11() ? document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()) : this.legendHelpers.appendToForeignObject(), "bottom" === i.legend.position || "top" === i.legend.position ? this.legendAlignHorizontal() : "right" !== i.legend.position && "left" !== i.legend.position || this.legendAlignVertical() } } }, { key: "drawLegends", value: function () { var t = this, e = this.w, i = e.config.legend.fontFamily, a = e.globals.seriesNames, s = e.globals.colors.slice(); if ("heatmap" === e.config.chart.type) { var r = e.config.plotOptions.heatmap.colorScale.ranges; a = r.map((function (t) { return t.name ? t.name : t.from + " - " + t.to })), s = r.map((function (t) { return t.color })) } else this.isBarsDistributed && (a = e.globals.labels.slice()); e.config.legend.customLegendItems.length && (a = e.config.legend.customLegendItems); for (var o = e.globals.legendFormatter, n = e.config.legend.inverseOrder, l = n ? a.length - 1 : 0; n ? l >= 0 : l <= a.length - 1; n ? l-- : l++) { var h, c = o(a[l], { seriesIndex: l, w: e }), d = !1, g = !1; if (e.globals.collapsedSeries.length > 0) for (var u = 0; u < e.globals.collapsedSeries.length; u++)e.globals.collapsedSeries[u].index === l && (d = !0); if (e.globals.ancillaryCollapsedSeriesIndices.length > 0) for (var p = 0; p < e.globals.ancillaryCollapsedSeriesIndices.length; p++)e.globals.ancillaryCollapsedSeriesIndices[p] === l && (g = !0); var f = document.createElement("span"); f.classList.add("apexcharts-legend-marker"); var b = e.config.legend.markers.offsetX, v = e.config.legend.markers.offsetY, w = e.config.legend.markers.height, k = e.config.legend.markers.width, A = e.config.legend.markers.strokeWidth, S = e.config.legend.markers.strokeColor, C = e.config.legend.markers.radius, L = f.style; L.background = s[l], L.color = s[l], L.setProperty("background", s[l], "important"), e.config.legend.markers.fillColors && e.config.legend.markers.fillColors[l] && (L.background = e.config.legend.markers.fillColors[l]), void 0 !== e.globals.seriesColors[l] && (L.background = e.globals.seriesColors[l], L.color = e.globals.seriesColors[l]), L.height = Array.isArray(w) ? parseFloat(w[l]) + "px" : parseFloat(w) + "px", L.width = Array.isArray(k) ? parseFloat(k[l]) + "px" : parseFloat(k) + "px", L.left = (Array.isArray(b) ? parseFloat(b[l]) : parseFloat(b)) + "px", L.top = (Array.isArray(v) ? parseFloat(v[l]) : parseFloat(v)) + "px", L.borderWidth = Array.isArray(A) ? A[l] : A, L.borderColor = Array.isArray(S) ? S[l] : S, L.borderRadius = Array.isArray(C) ? parseFloat(C[l]) + "px" : parseFloat(C) + "px", e.config.legend.markers.customHTML && (Array.isArray(e.config.legend.markers.customHTML) ? e.config.legend.markers.customHTML[l] && (f.innerHTML = e.config.legend.markers.customHTML[l]()) : f.innerHTML = e.config.legend.markers.customHTML()), m.setAttrs(f, { rel: l + 1, "data:collapsed": d || g }), (d || g) && f.classList.add("apexcharts-inactive-legend"); var P = document.createElement("div"), M = document.createElement("span"); M.classList.add("apexcharts-legend-text"), M.innerHTML = Array.isArray(c) ? c.join(" ") : c; var I = e.config.legend.labels.useSeriesColors ? e.globals.colors[l] : Array.isArray(e.config.legend.labels.colors) ? null === (h = e.config.legend.labels.colors) || void 0 === h ? void 0 : h[l] : e.config.legend.labels.colors; I || (I = e.config.chart.foreColor), M.style.color = I, M.style.fontSize = parseFloat(e.config.legend.fontSize) + "px", M.style.fontWeight = e.config.legend.fontWeight, M.style.fontFamily = i || e.config.chart.fontFamily, m.setAttrs(M, { rel: l + 1, i: l, "data:default-text": encodeURIComponent(c), "data:collapsed": d || g }), P.appendChild(f), P.appendChild(M); var T = new y(this.ctx); if (!e.config.legend.showForZeroSeries) 0 === T.getSeriesTotalByIndex(l) && T.seriesHaveSameValues(l) && !T.isSeriesNull(l) && -1 === e.globals.collapsedSeriesIndices.indexOf(l) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(l) && P.classList.add("apexcharts-hidden-zero-series"); e.config.legend.showForNullSeries || T.isSeriesNull(l) && -1 === e.globals.collapsedSeriesIndices.indexOf(l) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(l) && P.classList.add("apexcharts-hidden-null-series"), e.globals.dom.elLegendWrap.appendChild(P), e.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(e.config.legend.horizontalAlign)), e.globals.dom.elLegendWrap.classList.add("apx-legend-position-" + e.config.legend.position), P.classList.add("apexcharts-legend-series"), P.style.margin = "".concat(e.config.legend.itemMargin.vertical, "px ").concat(e.config.legend.itemMargin.horizontal, "px"), e.globals.dom.elLegendWrap.style.width = e.config.legend.width ? e.config.legend.width + "px" : "", e.globals.dom.elLegendWrap.style.height = e.config.legend.height ? e.config.legend.height + "px" : "", m.setAttrs(P, { rel: l + 1, seriesName: x.escapeString(a[l]), "data:collapsed": d || g }), (d || g) && P.classList.add("apexcharts-inactive-legend"), e.config.legend.onItemClick.toggleDataSeries || P.classList.add("apexcharts-no-click") } e.globals.dom.elWrap.addEventListener("click", t.onLegendClick, !0), e.config.legend.onItemHover.highlightDataSeries && 0 === e.config.legend.customLegendItems.length && (e.globals.dom.elWrap.addEventListener("mousemove", t.onLegendHovered, !0), e.globals.dom.elWrap.addEventListener("mouseout", t.onLegendHovered, !0)) } }, { key: "setLegendWrapXY", value: function (t, e) { var i = this.w, a = i.globals.dom.elLegendWrap, s = a.getBoundingClientRect(), r = 0, o = 0; if ("bottom" === i.config.legend.position) o += i.globals.svgHeight - s.height / 2; else if ("top" === i.config.legend.position) { var n = new ot(this.ctx), l = n.dimHelpers.getTitleSubtitleCoords("title").height, h = n.dimHelpers.getTitleSubtitleCoords("subtitle").height; o = o + (l > 0 ? l - 10 : 0) + (h > 0 ? h - 10 : 0) } a.style.position = "absolute", r = r + t + i.config.legend.offsetX, o = o + e + i.config.legend.offsetY, a.style.left = r + "px", a.style.top = o + "px", "bottom" === i.config.legend.position ? (a.style.top = "auto", a.style.bottom = 5 - i.config.legend.offsetY + "px") : "right" === i.config.legend.position && (a.style.left = "auto", a.style.right = 25 + i.config.legend.offsetX + "px");["width", "height"].forEach((function (t) { a.style[t] && (a.style[t] = parseInt(i.config.legend[t], 10) + "px") })) } }, { key: "legendAlignHorizontal", value: function () { var t = this.w; t.globals.dom.elLegendWrap.style.right = 0; var e = this.legendHelpers.getLegendBBox(), i = new ot(this.ctx), a = i.dimHelpers.getTitleSubtitleCoords("title"), s = i.dimHelpers.getTitleSubtitleCoords("subtitle"), r = 0; "bottom" === t.config.legend.position ? r = -e.clwh / 1.8 : "top" === t.config.legend.position && (r = a.height + s.height + t.config.title.margin + t.config.subtitle.margin - 10), this.setLegendWrapXY(20, r) } }, { key: "legendAlignVertical", value: function () { var t = this.w, e = this.legendHelpers.getLegendBBox(), i = 0; "left" === t.config.legend.position && (i = 20), "right" === t.config.legend.position && (i = t.globals.svgWidth - e.clww - 10), this.setLegendWrapXY(i, 20) } }, { key: "onLegendHovered", value: function (t) { var e = this.w, i = t.target.classList.contains("apexcharts-legend-series") || t.target.classList.contains("apexcharts-legend-text") || t.target.classList.contains("apexcharts-legend-marker"); if ("heatmap" === e.config.chart.type || this.isBarsDistributed) { if (i) { var a = parseInt(t.target.getAttribute("rel"), 10) - 1; this.ctx.events.fireEvent("legendHover", [this.ctx, a, this.w]), new W(this.ctx).highlightRangeInSeries(t, t.target) } } else !t.target.classList.contains("apexcharts-inactive-legend") && i && new W(this.ctx).toggleSeriesOnHover(t, t.target) } }, { key: "onLegendClick", value: function (t) { var e = this.w; if (!e.config.legend.customLegendItems.length && (t.target.classList.contains("apexcharts-legend-series") || t.target.classList.contains("apexcharts-legend-text") || t.target.classList.contains("apexcharts-legend-marker"))) { var i = parseInt(t.target.getAttribute("rel"), 10) - 1, a = "true" === t.target.getAttribute("data:collapsed"), s = this.w.config.chart.events.legendClick; "function" == typeof s && s(this.ctx, i, this.w), this.ctx.events.fireEvent("legendClick", [this.ctx, i, this.w]); var r = this.w.config.legend.markers.onClick; "function" == typeof r && t.target.classList.contains("apexcharts-legend-marker") && (r(this.ctx, i, this.w), this.ctx.events.fireEvent("legendMarkerClick", [this.ctx, i, this.w])), "treemap" !== e.config.chart.type && "heatmap" !== e.config.chart.type && !this.isBarsDistributed && e.config.legend.onItemClick.toggleDataSeries && this.legendHelpers.toggleDataSeries(i, a) } } }]), t }(), ht = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w; var i = this.w; this.ev = this.w.config.chart.events, this.selectedClass = "apexcharts-selected", this.localeValues = this.w.globals.locale.toolbar, this.minX = i.globals.minX, this.maxX = i.globals.maxX } return r(t, [{ key: "createToolbar", value: function () { var t = this, e = this.w, i = function () { return document.createElement("div") }, a = i(); if (a.setAttribute("class", "apexcharts-toolbar"), a.style.top = e.config.chart.toolbar.offsetY + "px", a.style.right = 3 - e.config.chart.toolbar.offsetX + "px", e.globals.dom.elWrap.appendChild(a), this.elZoom = i(), this.elZoomIn = i(), this.elZoomOut = i(), this.elPan = i(), this.elSelection = i(), this.elZoomReset = i(), this.elMenuIcon = i(), this.elMenu = i(), this.elCustomIcons = [], this.t = e.config.chart.toolbar.tools, Array.isArray(this.t.customIcons)) for (var s = 0; s < this.t.customIcons.length; s++)this.elCustomIcons.push(i()); var r = [], o = function (i, a, s) { var o = i.toLowerCase(); t.t[o] && e.config.chart.zoom.enabled && r.push({ el: a, icon: "string" == typeof t.t[o] ? t.t[o] : s, title: t.localeValues[i], class: "apexcharts-".concat(o, "-icon") }) }; o("zoomIn", this.elZoomIn, '\n \n \n\n'), o("zoomOut", this.elZoomOut, '\n \n \n\n'); var n = function (i) { t.t[i] && e.config.chart[i].enabled && r.push({ el: "zoom" === i ? t.elZoom : t.elSelection, icon: "string" == typeof t.t[i] ? t.t[i] : "zoom" === i ? '\n \n \n \n' : '\n \n \n', title: t.localeValues["zoom" === i ? "selectionZoom" : "selection"], class: e.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-".concat(i, "-icon") }) }; n("zoom"), n("selection"), this.t.pan && e.config.chart.zoom.enabled && r.push({ el: this.elPan, icon: "string" == typeof this.t.pan ? this.t.pan : '\n \n \n \n \n \n \n \n', title: this.localeValues.pan, class: e.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-pan-icon" }), o("reset", this.elZoomReset, '\n \n \n'), this.t.download && r.push({ el: this.elMenuIcon, icon: "string" == typeof this.t.download ? this.t.download : '', title: this.localeValues.menu, class: "apexcharts-menu-icon" }); for (var l = 0; l < this.elCustomIcons.length; l++)r.push({ el: this.elCustomIcons[l], icon: this.t.customIcons[l].icon, title: this.t.customIcons[l].title, index: this.t.customIcons[l].index, class: "apexcharts-toolbar-custom-icon " + this.t.customIcons[l].class }); r.forEach((function (t, e) { t.index && x.moveIndexInArray(r, e, t.index) })); for (var h = 0; h < r.length; h++)m.setAttrs(r[h].el, { class: r[h].class, title: r[h].title }), r[h].el.innerHTML = r[h].icon, a.appendChild(r[h].el); this._createHamburgerMenu(a), e.globals.zoomEnabled ? this.elZoom.classList.add(this.selectedClass) : e.globals.panEnabled ? this.elPan.classList.add(this.selectedClass) : e.globals.selectionEnabled && this.elSelection.classList.add(this.selectedClass), this.addToolbarEventListeners() } }, { key: "_createHamburgerMenu", value: function (t) { this.elMenuItems = [], t.appendChild(this.elMenu), m.setAttrs(this.elMenu, { class: "apexcharts-menu" }); for (var e = [{ name: "exportSVG", title: this.localeValues.exportToSVG }, { name: "exportPNG", title: this.localeValues.exportToPNG }, { name: "exportCSV", title: this.localeValues.exportToCSV }], i = 0; i < e.length; i++)this.elMenuItems.push(document.createElement("div")), this.elMenuItems[i].innerHTML = e[i].title, m.setAttrs(this.elMenuItems[i], { class: "apexcharts-menu-item ".concat(e[i].name), title: e[i].title }), this.elMenu.appendChild(this.elMenuItems[i]) } }, { key: "addToolbarEventListeners", value: function () { var t = this; this.elZoomReset.addEventListener("click", this.handleZoomReset.bind(this)), this.elSelection.addEventListener("click", this.toggleZoomSelection.bind(this, "selection")), this.elZoom.addEventListener("click", this.toggleZoomSelection.bind(this, "zoom")), this.elZoomIn.addEventListener("click", this.handleZoomIn.bind(this)), this.elZoomOut.addEventListener("click", this.handleZoomOut.bind(this)), this.elPan.addEventListener("click", this.togglePanning.bind(this)), this.elMenuIcon.addEventListener("click", this.toggleMenu.bind(this)), this.elMenuItems.forEach((function (e) { e.classList.contains("exportSVG") ? e.addEventListener("click", t.handleDownload.bind(t, "svg")) : e.classList.contains("exportPNG") ? e.addEventListener("click", t.handleDownload.bind(t, "png")) : e.classList.contains("exportCSV") && e.addEventListener("click", t.handleDownload.bind(t, "csv")) })); for (var e = 0; e < this.t.customIcons.length; e++)this.elCustomIcons[e].addEventListener("click", this.t.customIcons[e].click.bind(this, this.ctx, this.ctx.w)) } }, { key: "toggleZoomSelection", value: function (t) { this.ctx.getSyncedCharts().forEach((function (e) { e.ctx.toolbar.toggleOtherControls(); var i = "selection" === t ? e.ctx.toolbar.elSelection : e.ctx.toolbar.elZoom, a = "selection" === t ? "selectionEnabled" : "zoomEnabled"; e.w.globals[a] = !e.w.globals[a], i.classList.contains(e.ctx.toolbar.selectedClass) ? i.classList.remove(e.ctx.toolbar.selectedClass) : i.classList.add(e.ctx.toolbar.selectedClass) })) } }, { key: "getToolbarIconsReference", value: function () { var t = this.w; this.elZoom || (this.elZoom = t.globals.dom.baseEl.querySelector(".apexcharts-zoom-icon")), this.elPan || (this.elPan = t.globals.dom.baseEl.querySelector(".apexcharts-pan-icon")), this.elSelection || (this.elSelection = t.globals.dom.baseEl.querySelector(".apexcharts-selection-icon")) } }, { key: "enableZoomPanFromToolbar", value: function (t) { this.toggleOtherControls(), "pan" === t ? this.w.globals.panEnabled = !0 : this.w.globals.zoomEnabled = !0; var e = "pan" === t ? this.elPan : this.elZoom, i = "pan" === t ? this.elZoom : this.elPan; e && e.classList.add(this.selectedClass), i && i.classList.remove(this.selectedClass) } }, { key: "togglePanning", value: function () { this.ctx.getSyncedCharts().forEach((function (t) { t.ctx.toolbar.toggleOtherControls(), t.w.globals.panEnabled = !t.w.globals.panEnabled, t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass) ? t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass) : t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass) })) } }, { key: "toggleOtherControls", value: function () { var t = this, e = this.w; e.globals.panEnabled = !1, e.globals.zoomEnabled = !1, e.globals.selectionEnabled = !1, this.getToolbarIconsReference(), [this.elPan, this.elSelection, this.elZoom].forEach((function (e) { e && e.classList.remove(t.selectedClass) })) } }, { key: "handleZoomIn", value: function () { var t = this.w; t.globals.isRangeBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY); var e = (this.minX + this.maxX) / 2, i = (this.minX + e) / 2, a = (this.maxX + e) / 2, s = this._getNewMinXMaxX(i, a); t.globals.disableZoomIn || this.zoomUpdateOptions(s.minX, s.maxX) } }, { key: "handleZoomOut", value: function () { var t = this.w; if (t.globals.isRangeBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY), !("datetime" === t.config.xaxis.type && new Date(this.minX).getUTCFullYear() < 1e3)) { var e = (this.minX + this.maxX) / 2, i = this.minX - (e - this.minX), a = this.maxX - (e - this.maxX), s = this._getNewMinXMaxX(i, a); t.globals.disableZoomOut || this.zoomUpdateOptions(s.minX, s.maxX) } } }, { key: "_getNewMinXMaxX", value: function (t, e) { var i = this.w.config.xaxis.convertedCatToNumeric; return { minX: i ? Math.floor(t) : t, maxX: i ? Math.floor(e) : e } } }, { key: "zoomUpdateOptions", value: function (t, e) { var i = this.w; if (void 0 !== t || void 0 !== e) { if (!(i.config.xaxis.convertedCatToNumeric && (t < 1 && (t = 1, e = i.globals.dataPoints), e - t < 2))) { var a = { min: t, max: e }, s = this.getBeforeZoomRange(a); s && (a = s.xaxis); var r = { xaxis: a }, o = x.clone(i.globals.initialConfig.yaxis); i.config.chart.group || (r.yaxis = o), this.w.globals.zoomed = !0, this.ctx.updateHelpers._updateOptions(r, !1, this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(a, o) } } else this.handleZoomReset() } }, { key: "zoomCallback", value: function (t, e) { "function" == typeof this.ev.zoomed && this.ev.zoomed(this.ctx, { xaxis: t, yaxis: e }) } }, { key: "getBeforeZoomRange", value: function (t, e) { var i = null; return "function" == typeof this.ev.beforeZoom && (i = this.ev.beforeZoom(this, { xaxis: t, yaxis: e })), i } }, { key: "toggleMenu", value: function () { var t = this; window.setTimeout((function () { t.elMenu.classList.contains("apexcharts-menu-open") ? t.elMenu.classList.remove("apexcharts-menu-open") : t.elMenu.classList.add("apexcharts-menu-open") }), 0) } }, { key: "handleDownload", value: function (t) { var e = this.w, i = new G(this.ctx); switch (t) { case "svg": i.exportToSVG(this.ctx); break; case "png": i.exportToPng(this.ctx); break; case "csv": i.exportToCSV({ series: e.config.series, columnDelimiter: e.config.chart.toolbar.export.csv.columnDelimiter }) } } }, { key: "handleZoomReset", value: function (t) { this.ctx.getSyncedCharts().forEach((function (t) { var e = t.w; if (e.globals.lastXAxis.min = e.globals.initialConfig.xaxis.min, e.globals.lastXAxis.max = e.globals.initialConfig.xaxis.max, t.updateHelpers.revertDefaultAxisMinMax(), "function" == typeof e.config.chart.events.beforeResetZoom) { var i = e.config.chart.events.beforeResetZoom(t, e); i && t.updateHelpers.revertDefaultAxisMinMax(i) } "function" == typeof e.config.chart.events.zoomed && t.ctx.toolbar.zoomCallback({ min: e.config.xaxis.min, max: e.config.xaxis.max }), e.globals.zoomed = !1; var a = t.ctx.series.emptyCollapsedSeries(x.clone(e.globals.initialSeries)); t.updateHelpers._updateSeries(a, e.config.chart.animations.dynamicAnimation.enabled) })) } }, { key: "destroy", value: function () { this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null } }]), t }(), ct = function (t) { n(i, t); var e = d(i); function i(t) { var s; return a(this, i), (s = e.call(this, t)).ctx = t, s.w = t.w, s.dragged = !1, s.graphics = new m(s.ctx), s.eventList = ["mousedown", "mouseleave", "mousemove", "touchstart", "touchmove", "mouseup", "touchend"], s.clientX = 0, s.clientY = 0, s.startX = 0, s.endX = 0, s.dragX = 0, s.startY = 0, s.endY = 0, s.dragY = 0, s.moveDirection = "none", s } return r(i, [{ key: "init", value: function (t) { var e = this, i = t.xyRatios, a = this.w, s = this; this.xyRatios = i, this.zoomRect = this.graphics.drawRect(0, 0, 0, 0), this.selectionRect = this.graphics.drawRect(0, 0, 0, 0), this.gridRect = a.globals.dom.baseEl.querySelector(".apexcharts-grid"), this.zoomRect.node.classList.add("apexcharts-zoom-rect"), this.selectionRect.node.classList.add("apexcharts-selection-rect"), a.globals.dom.elGraphical.add(this.zoomRect), a.globals.dom.elGraphical.add(this.selectionRect), "x" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ minX: 0, minY: 0, maxX: a.globals.gridWidth, maxY: a.globals.gridHeight }).on("dragmove", this.selectionDragging.bind(this, "dragging")) : "y" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ minX: 0, maxX: a.globals.gridWidth }).on("dragmove", this.selectionDragging.bind(this, "dragging")) : this.slDraggableRect = this.selectionRect.draggable().on("dragmove", this.selectionDragging.bind(this, "dragging")), this.preselectedSelection(), this.hoverArea = a.globals.dom.baseEl.querySelector("".concat(a.globals.chartClass, " .apexcharts-svg")), this.hoverArea.classList.add("apexcharts-zoomable"), this.eventList.forEach((function (t) { e.hoverArea.addEventListener(t, s.svgMouseEvents.bind(s, i), { capture: !1, passive: !0 }) })) } }, { key: "destroy", value: function () { this.slDraggableRect && (this.slDraggableRect.draggable(!1), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null } }, { key: "svgMouseEvents", value: function (t, e) { var i = this.w, a = this, s = this.ctx.toolbar, r = i.globals.zoomEnabled ? i.config.chart.zoom.type : i.config.chart.selection.type, o = i.config.chart.toolbar.autoSelected; if (e.shiftKey ? (this.shiftWasPressed = !0, s.enableZoomPanFromToolbar("pan" === o ? "zoom" : "pan")) : this.shiftWasPressed && (s.enableZoomPanFromToolbar(o), this.shiftWasPressed = !1), e.target) { var n, l = e.target.classList; if (e.target.parentNode && null !== e.target.parentNode && (n = e.target.parentNode.classList), !(l.contains("apexcharts-selection-rect") || l.contains("apexcharts-legend-marker") || l.contains("apexcharts-legend-text") || n && n.contains("apexcharts-toolbar"))) { if (a.clientX = "touchmove" === e.type || "touchstart" === e.type ? e.touches[0].clientX : "touchend" === e.type ? e.changedTouches[0].clientX : e.clientX, a.clientY = "touchmove" === e.type || "touchstart" === e.type ? e.touches[0].clientY : "touchend" === e.type ? e.changedTouches[0].clientY : e.clientY, "mousedown" === e.type && 1 === e.which) { var h = a.gridRect.getBoundingClientRect(); a.startX = a.clientX - h.left, a.startY = a.clientY - h.top, a.dragged = !1, a.w.globals.mousedown = !0 } if (("mousemove" === e.type && 1 === e.which || "touchmove" === e.type) && (a.dragged = !0, i.globals.panEnabled ? (i.globals.selection = null, a.w.globals.mousedown && a.panDragging({ context: a, zoomtype: r, xyRatios: t })) : (a.w.globals.mousedown && i.globals.zoomEnabled || a.w.globals.mousedown && i.globals.selectionEnabled) && (a.selection = a.selectionDrawing({ context: a, zoomtype: r }))), "mouseup" === e.type || "touchend" === e.type || "mouseleave" === e.type) { var c = a.gridRect.getBoundingClientRect(); a.w.globals.mousedown && (a.endX = a.clientX - c.left, a.endY = a.clientY - c.top, a.dragX = Math.abs(a.endX - a.startX), a.dragY = Math.abs(a.endY - a.startY), (i.globals.zoomEnabled || i.globals.selectionEnabled) && a.selectionDrawn({ context: a, zoomtype: r }), i.globals.panEnabled && i.config.xaxis.convertedCatToNumeric && a.delayedPanScrolled()), i.globals.zoomEnabled && a.hideSelectionRect(this.selectionRect), a.dragged = !1, a.w.globals.mousedown = !1 } this.makeSelectionRectDraggable() } } } }, { key: "makeSelectionRectDraggable", value: function () { var t = this.w; if (this.selectionRect) { var e = this.selectionRect.node.getBoundingClientRect(); e.width > 0 && e.height > 0 && this.slDraggableRect.selectize({ points: "l, r", pointSize: 8, pointType: "rect" }).resize({ constraint: { minX: 0, minY: 0, maxX: t.globals.gridWidth, maxY: t.globals.gridHeight } }).on("resizing", this.selectionDragging.bind(this, "resizing")) } } }, { key: "preselectedSelection", value: function () { var t = this.w, e = this.xyRatios; if (!t.globals.zoomEnabled) if (void 0 !== t.globals.selection && null !== t.globals.selection) this.drawSelectionRect(t.globals.selection); else if (void 0 !== t.config.chart.selection.xaxis.min && void 0 !== t.config.chart.selection.xaxis.max) { var i = (t.config.chart.selection.xaxis.min - t.globals.minX) / e.xRatio, a = t.globals.gridWidth - (t.globals.maxX - t.config.chart.selection.xaxis.max) / e.xRatio - i; t.globals.isRangeBar && (i = (t.config.chart.selection.xaxis.min - t.globals.yAxisScale[0].niceMin) / e.invertedYRatio, a = (t.config.chart.selection.xaxis.max - t.config.chart.selection.xaxis.min) / e.invertedYRatio); var s = { x: i, y: 0, width: a, height: t.globals.gridHeight, translateX: 0, translateY: 0, selectionEnabled: !0 }; this.drawSelectionRect(s), this.makeSelectionRectDraggable(), "function" == typeof t.config.chart.events.selection && t.config.chart.events.selection(this.ctx, { xaxis: { min: t.config.chart.selection.xaxis.min, max: t.config.chart.selection.xaxis.max }, yaxis: {} }) } } }, { key: "drawSelectionRect", value: function (t) { var e = t.x, i = t.y, a = t.width, s = t.height, r = t.translateX, o = void 0 === r ? 0 : r, n = t.translateY, l = void 0 === n ? 0 : n, h = this.w, c = this.zoomRect, d = this.selectionRect; if (this.dragged || null !== h.globals.selection) { var g = { transform: "translate(" + o + ", " + l + ")" }; h.globals.zoomEnabled && this.dragged && (a < 0 && (a = 1), c.attr({ x: e, y: i, width: a, height: s, fill: h.config.chart.zoom.zoomedArea.fill.color, "fill-opacity": h.config.chart.zoom.zoomedArea.fill.opacity, stroke: h.config.chart.zoom.zoomedArea.stroke.color, "stroke-width": h.config.chart.zoom.zoomedArea.stroke.width, "stroke-opacity": h.config.chart.zoom.zoomedArea.stroke.opacity }), m.setAttrs(c.node, g)), h.globals.selectionEnabled && (d.attr({ x: e, y: i, width: a > 0 ? a : 0, height: s > 0 ? s : 0, fill: h.config.chart.selection.fill.color, "fill-opacity": h.config.chart.selection.fill.opacity, stroke: h.config.chart.selection.stroke.color, "stroke-width": h.config.chart.selection.stroke.width, "stroke-dasharray": h.config.chart.selection.stroke.dashArray, "stroke-opacity": h.config.chart.selection.stroke.opacity }), m.setAttrs(d.node, g)) } } }, { key: "hideSelectionRect", value: function (t) { t && t.attr({ x: 0, y: 0, width: 0, height: 0 }) } }, { key: "selectionDrawing", value: function (t) { var e = t.context, i = t.zoomtype, a = this.w, s = e, r = this.gridRect.getBoundingClientRect(), o = s.startX - 1, n = s.startY, l = !1, h = !1, c = s.clientX - r.left - o, d = s.clientY - r.top - n, g = {}; return Math.abs(c + o) > a.globals.gridWidth ? c = a.globals.gridWidth - o : s.clientX - r.left < 0 && (c = o), o > s.clientX - r.left && (l = !0, c = Math.abs(c)), n > s.clientY - r.top && (h = !0, d = Math.abs(d)), g = "x" === i ? { x: l ? o - c : o, y: 0, width: c, height: a.globals.gridHeight } : "y" === i ? { x: 0, y: h ? n - d : n, width: a.globals.gridWidth, height: d } : { x: l ? o - c : o, y: h ? n - d : n, width: c, height: d }, s.drawSelectionRect(g), s.selectionDragging("resizing"), g } }, { key: "selectionDragging", value: function (t, e) { var i = this, a = this.w, s = this.xyRatios, r = this.selectionRect, o = 0; "resizing" === t && (o = 30); var n = function (t) { return parseFloat(r.node.getAttribute(t)) }, l = { x: n("x"), y: n("y"), width: n("width"), height: n("height") }; a.globals.selection = l, "function" == typeof a.config.chart.events.selection && a.globals.selectionEnabled && (clearTimeout(this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout((function () { var t, e, o, n, l = i.gridRect.getBoundingClientRect(), h = r.node.getBoundingClientRect(); a.globals.isRangeBar ? (t = a.globals.yAxisScale[0].niceMin + (h.left - l.left) * s.invertedYRatio, e = a.globals.yAxisScale[0].niceMin + (h.right - l.left) * s.invertedYRatio, o = 0, n = 1) : (t = a.globals.xAxisScale.niceMin + (h.left - l.left) * s.xRatio, e = a.globals.xAxisScale.niceMin + (h.right - l.left) * s.xRatio, o = a.globals.yAxisScale[0].niceMin + (l.bottom - h.bottom) * s.yRatio[0], n = a.globals.yAxisScale[0].niceMax - (h.top - l.top) * s.yRatio[0]); var c = { xaxis: { min: t, max: e }, yaxis: { min: o, max: n } }; a.config.chart.events.selection(i.ctx, c), a.config.chart.brush.enabled && void 0 !== a.config.chart.events.brushScrolled && a.config.chart.events.brushScrolled(i.ctx, c) }), o)) } }, { key: "selectionDrawn", value: function (t) { var e = t.context, i = t.zoomtype, a = this.w, s = e, r = this.xyRatios, o = this.ctx.toolbar; if (s.startX > s.endX) { var n = s.startX; s.startX = s.endX, s.endX = n } if (s.startY > s.endY) { var l = s.startY; s.startY = s.endY, s.endY = l } var h = void 0, c = void 0; a.globals.isRangeBar ? (h = a.globals.yAxisScale[0].niceMin + s.startX * r.invertedYRatio, c = a.globals.yAxisScale[0].niceMin + s.endX * r.invertedYRatio) : (h = a.globals.xAxisScale.niceMin + s.startX * r.xRatio, c = a.globals.xAxisScale.niceMin + s.endX * r.xRatio); var d = [], g = []; if (a.config.yaxis.forEach((function (t, e) { if (a.globals.seriesYAxisMap[e].length > 0) { var i = a.globals.seriesYAxisMap[e][0]; d.push(a.globals.yAxisScale[e].niceMax - r.yRatio[i] * s.startY), g.push(a.globals.yAxisScale[e].niceMax - r.yRatio[i] * s.endY) } })), s.dragged && (s.dragX > 10 || s.dragY > 10) && h !== c) if (a.globals.zoomEnabled) { var u = x.clone(a.globals.initialConfig.yaxis), p = x.clone(a.globals.initialConfig.xaxis); if (a.globals.zoomed = !0, a.config.xaxis.convertedCatToNumeric && (h = Math.floor(h), c = Math.floor(c), h < 1 && (h = 1, c = a.globals.dataPoints), c - h < 2 && (c = h + 1)), "xy" !== i && "x" !== i || (p = { min: h, max: c }), "xy" !== i && "y" !== i || u.forEach((function (t, e) { u[e].min = g[e], u[e].max = d[e] })), o) { var f = o.getBeforeZoomRange(p, u); f && (p = f.xaxis ? f.xaxis : p, u = f.yaxis ? f.yaxis : u) } var b = { xaxis: p }; a.config.chart.group || (b.yaxis = u), s.ctx.updateHelpers._updateOptions(b, !1, s.w.config.chart.animations.dynamicAnimation.enabled), "function" == typeof a.config.chart.events.zoomed && o.zoomCallback(p, u) } else if (a.globals.selectionEnabled) { var v, m = null; v = { min: h, max: c }, "xy" !== i && "y" !== i || (m = x.clone(a.config.yaxis)).forEach((function (t, e) { m[e].min = g[e], m[e].max = d[e] })), a.globals.selection = s.selection, "function" == typeof a.config.chart.events.selection && a.config.chart.events.selection(s.ctx, { xaxis: v, yaxis: m }) } } }, { key: "panDragging", value: function (t) { var e = t.context, i = this.w, a = e; if (void 0 !== i.globals.lastClientPosition.x) { var s = i.globals.lastClientPosition.x - a.clientX, r = i.globals.lastClientPosition.y - a.clientY; Math.abs(s) > Math.abs(r) && s > 0 ? this.moveDirection = "left" : Math.abs(s) > Math.abs(r) && s < 0 ? this.moveDirection = "right" : Math.abs(r) > Math.abs(s) && r > 0 ? this.moveDirection = "up" : Math.abs(r) > Math.abs(s) && r < 0 && (this.moveDirection = "down") } i.globals.lastClientPosition = { x: a.clientX, y: a.clientY }; var o = i.globals.isRangeBar ? i.globals.minY : i.globals.minX, n = i.globals.isRangeBar ? i.globals.maxY : i.globals.maxX; i.config.xaxis.convertedCatToNumeric || a.panScrolled(o, n) } }, { key: "delayedPanScrolled", value: function () { var t = this.w, e = t.globals.minX, i = t.globals.maxX, a = (t.globals.maxX - t.globals.minX) / 2; "left" === this.moveDirection ? (e = t.globals.minX + a, i = t.globals.maxX + a) : "right" === this.moveDirection && (e = t.globals.minX - a, i = t.globals.maxX - a), e = Math.floor(e), i = Math.floor(i), this.updateScrolledChart({ xaxis: { min: e, max: i } }, e, i) } }, { key: "panScrolled", value: function (t, e) { var i = this.w, a = this.xyRatios, s = x.clone(i.globals.initialConfig.yaxis), r = a.xRatio, o = i.globals.minX, n = i.globals.maxX; i.globals.isRangeBar && (r = a.invertedYRatio, o = i.globals.minY, n = i.globals.maxY), "left" === this.moveDirection ? (t = o + i.globals.gridWidth / 15 * r, e = n + i.globals.gridWidth / 15 * r) : "right" === this.moveDirection && (t = o - i.globals.gridWidth / 15 * r, e = n - i.globals.gridWidth / 15 * r), i.globals.isRangeBar || (t < i.globals.initialMinX || e > i.globals.initialMaxX) && (t = o, e = n); var l = { xaxis: { min: t, max: e } }; i.config.chart.group || (l.yaxis = s), this.updateScrolledChart(l, t, e) } }, { key: "updateScrolledChart", value: function (t, e, i) { var a = this.w; this.ctx.updateHelpers._updateOptions(t, !1, !1), "function" == typeof a.config.chart.events.scrolled && a.config.chart.events.scrolled(this.ctx, { xaxis: { min: e, max: i } }) } }]), i }(ht), dt = function () { function t(e) { a(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx } return r(t, [{ key: "getNearestValues", value: function (t) { var e = t.hoverArea, i = t.elGrid, a = t.clientX, s = t.clientY, r = this.w, o = i.getBoundingClientRect(), n = o.width, l = o.height, h = n / (r.globals.dataPoints - 1), c = l / r.globals.dataPoints, d = this.hasBars(); !r.globals.comboCharts && !d || r.config.xaxis.convertedCatToNumeric || (h = n / r.globals.dataPoints); var g = a - o.left - r.globals.barPadForNumericAxis, u = s - o.top; g < 0 || u < 0 || g > n || u > l ? (e.classList.remove("hovering-zoom"), e.classList.remove("hovering-pan")) : r.globals.zoomEnabled ? (e.classList.remove("hovering-pan"), e.classList.add("hovering-zoom")) : r.globals.panEnabled && (e.classList.remove("hovering-zoom"), e.classList.add("hovering-pan")); var p = Math.round(g / h), f = Math.floor(u / c); d && !r.config.xaxis.convertedCatToNumeric && (p = Math.ceil(g / h), p -= 1); var b = null, v = null, m = r.globals.seriesXvalues.map((function (t) { return t.filter((function (t) { return x.isNumber(t) })) })), y = r.globals.seriesYvalues.map((function (t) { return t.filter((function (t) { return x.isNumber(t) })) })); if (r.globals.isXNumeric) { var w = this.ttCtx.getElGrid().getBoundingClientRect(), k = g * (w.width / n), A = u * (w.height / l); b = (v = this.closestInMultiArray(k, A, m, y)).index, p = v.j, null !== b && (m = r.globals.seriesXvalues[b], p = (v = this.closestInArray(k, m)).index) } return r.globals.capturedSeriesIndex = null === b ? -1 : b, (!p || p < 1) && (p = 0), r.globals.isBarHorizontal ? r.globals.capturedDataPointIndex = f : r.globals.capturedDataPointIndex = p, { capturedSeries: b, j: r.globals.isBarHorizontal ? f : p, hoverX: g, hoverY: u } } }, { key: "closestInMultiArray", value: function (t, e, i, a) { var s = this.w, r = 0, o = null, n = -1; s.globals.series.length > 1 ? r = this.getFirstActiveXArray(i) : o = 0; var l = i[r][0], h = Math.abs(t - l); if (i.forEach((function (e) { e.forEach((function (e, i) { var a = Math.abs(t - e); a <= h && (h = a, n = i) })) })), -1 !== n) { var c = a[r][n], d = Math.abs(e - c); o = r, a.forEach((function (t, i) { var a = Math.abs(e - t[n]); a <= d && (d = a, o = i) })) } return { index: o, j: n } } }, { key: "getFirstActiveXArray", value: function (t) { for (var e = this.w, i = 0, a = t.map((function (t, e) { return t.length > 0 ? e : -1 })), s = 0; s < a.length; s++)if (-1 !== a[s] && -1 === e.globals.collapsedSeriesIndices.indexOf(s) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(s)) { i = a[s]; break } return i } }, { key: "closestInArray", value: function (t, e) { for (var i = e[0], a = null, s = Math.abs(t - i), r = 0; r < e.length; r++) { var o = Math.abs(t - e[r]); o < s && (s = o, a = r) } return { index: a } } }, { key: "isXoverlap", value: function (t) { var e = [], i = this.w.globals.seriesX.filter((function (t) { return void 0 !== t[0] })); if (i.length > 0) for (var a = 0; a < i.length - 1; a++)void 0 !== i[a][t] && void 0 !== i[a + 1][t] && i[a][t] !== i[a + 1][t] && e.push("unEqual"); return 0 === e.length } }, { key: "isInitialSeriesSameLen", value: function () { for (var t = !0, e = this.w.globals.initialSeries, i = 0; i < e.length - 1; i++)if (e[i].data.length !== e[i + 1].data.length) { t = !1; break } return t } }, { key: "getBarsHeight", value: function (t) { return u(t).reduce((function (t, e) { return t + e.getBBox().height }), 0) } }, { key: "getElMarkers", value: function (t) { return "number" == typeof t ? this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:realIndex='".concat(t, "'] .apexcharts-series-markers-wrap > *")) : this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *") } }, { key: "getAllMarkers", value: function () { var t = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap"); (t = u(t)).sort((function (t, e) { var i = Number(t.getAttribute("data:realIndex")), a = Number(e.getAttribute("data:realIndex")); return a < i ? 1 : a > i ? -1 : 0 })); var e = []; return t.forEach((function (t) { e.push(t.querySelector(".apexcharts-marker")) })), e } }, { key: "hasMarkers", value: function (t) { return this.getElMarkers(t).length > 0 } }, { key: "getElBars", value: function () { return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series") } }, { key: "hasBars", value: function () { return this.getElBars().length > 0 } }, { key: "getHoverMarkerSize", value: function (t) { var e = this.w, i = e.config.markers.hover.size; return void 0 === i && (i = e.globals.markers.size[t] + e.config.markers.hover.sizeOffset), i } }, { key: "toggleAllTooltipSeriesGroups", value: function (t) { var e = this.w, i = this.ttCtx; 0 === i.allTooltipSeriesGroups.length && (i.allTooltipSeriesGroups = e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group")); for (var a = i.allTooltipSeriesGroups, s = 0; s < a.length; s++)"enable" === t ? (a[s].classList.add("apexcharts-active"), a[s].style.display = e.config.tooltip.items.display) : (a[s].classList.remove("apexcharts-active"), a[s].style.display = "none") } }]), t }(), gt = function () { function t(e) { a(this, t), this.w = e.w, this.ctx = e.ctx, this.ttCtx = e, this.tooltipUtil = new dt(e) } return r(t, [{ key: "drawSeriesTexts", value: function (t) { var e = t.shared, i = void 0 === e || e, a = t.ttItems, s = t.i, r = void 0 === s ? 0 : s, o = t.j, n = void 0 === o ? null : o, l = t.y1, h = t.y2, c = t.e, d = this.w; void 0 !== d.config.tooltip.custom ? this.handleCustomTooltip({ i: r, j: n, y1: l, y2: h, w: d }) : this.toggleActiveInactiveSeries(i); var g = this.getValuesToPrint({ i: r, j: n }); this.printLabels({ i: r, j: n, values: g, ttItems: a, shared: i, e: c }); var u = this.ttCtx.getElTooltip(); this.ttCtx.tooltipRect.ttWidth = u.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = u.getBoundingClientRect().height } }, { key: "printLabels", value: function (t) { var i, a = this, s = t.i, r = t.j, o = t.values, n = t.ttItems, l = t.shared, h = t.e, c = this.w, d = [], g = function (t) { return c.globals.seriesGoals[t] && c.globals.seriesGoals[t][r] && Array.isArray(c.globals.seriesGoals[t][r]) }, u = o.xVal, p = o.zVal, f = o.xAxisTTVal, x = "", b = c.globals.colors[s]; null !== r && c.config.plotOptions.bar.distributed && (b = c.globals.colors[r]); for (var v = function (t, o) { var v = a.getFormatters(s); x = a.getSeriesName({ fn: v.yLbTitleFormatter, index: s, seriesIndex: s, j: r }), "treemap" === c.config.chart.type && (x = v.yLbTitleFormatter(String(c.config.series[s].data[r].x), { series: c.globals.series, seriesIndex: s, dataPointIndex: r, w: c })); var m = c.config.tooltip.inverseOrder ? o : t; if (c.globals.axisCharts) { var y = function (t) { var e, i, a, s; return c.globals.isRangeData ? v.yLbFormatter(null === (e = c.globals.seriesRangeStart) || void 0 === e || null === (i = e[t]) || void 0 === i ? void 0 : i[r], { series: c.globals.seriesRangeStart, seriesIndex: t, dataPointIndex: r, w: c }) + " - " + v.yLbFormatter(null === (a = c.globals.seriesRangeEnd) || void 0 === a || null === (s = a[t]) || void 0 === s ? void 0 : s[r], { series: c.globals.seriesRangeEnd, seriesIndex: t, dataPointIndex: r, w: c }) : v.yLbFormatter(c.globals.series[t][r], { series: c.globals.series, seriesIndex: t, dataPointIndex: r, w: c }) }; if (l) v = a.getFormatters(m), x = a.getSeriesName({ fn: v.yLbTitleFormatter, index: m, seriesIndex: s, j: r }), b = c.globals.colors[m], i = y(m), g(m) && (d = c.globals.seriesGoals[m][r].map((function (t) { return { attrs: t, val: v.yLbFormatter(t.value, { seriesIndex: m, dataPointIndex: r, w: c }) } }))); else { var w, k = null == h || null === (w = h.target) || void 0 === w ? void 0 : w.getAttribute("fill"); k && (b = -1 !== k.indexOf("url") ? document.querySelector(k.substr(4).slice(0, -1)).childNodes[0].getAttribute("stroke") : k), i = y(s), g(s) && Array.isArray(c.globals.seriesGoals[s][r]) && (d = c.globals.seriesGoals[s][r].map((function (t) { return { attrs: t, val: v.yLbFormatter(t.value, { seriesIndex: s, dataPointIndex: r, w: c }) } }))) } } null === r && (i = v.yLbFormatter(c.globals.series[s], e(e({}, c), {}, { seriesIndex: s, dataPointIndex: s }))), a.DOMHandling({ i: s, t: m, j: r, ttItems: n, values: { val: i, goalVals: d, xVal: u, xAxisTTVal: f, zVal: p }, seriesName: x, shared: l, pColor: b }) }, m = 0, y = c.globals.series.length - 1; m < c.globals.series.length; m++, y--)v(m, y) } }, { key: "getFormatters", value: function (t) { var e, i = this.w, a = i.globals.yLabelFormatters[t]; return void 0 !== i.globals.ttVal ? Array.isArray(i.globals.ttVal) ? (a = i.globals.ttVal[t] && i.globals.ttVal[t].formatter, e = i.globals.ttVal[t] && i.globals.ttVal[t].title && i.globals.ttVal[t].title.formatter) : (a = i.globals.ttVal.formatter, "function" == typeof i.globals.ttVal.title.formatter && (e = i.globals.ttVal.title.formatter)) : e = i.config.tooltip.y.title.formatter, "function" != typeof a && (a = i.globals.yLabelFormatters[0] ? i.globals.yLabelFormatters[0] : function (t) { return t }), "function" != typeof e && (e = function (t) { return t }), { yLbFormatter: a, yLbTitleFormatter: e } } }, { key: "getSeriesName", value: function (t) { var e = t.fn, i = t.index, a = t.seriesIndex, s = t.j, r = this.w; return e(String(r.globals.seriesNames[i]), { series: r.globals.series, seriesIndex: a, dataPointIndex: s, w: r }) } }, { key: "DOMHandling", value: function (t) { t.i; var e = t.t, i = t.j, a = t.ttItems, s = t.values, r = t.seriesName, o = t.shared, n = t.pColor, l = this.w, h = this.ttCtx, c = s.val, d = s.goalVals, g = s.xVal, u = s.xAxisTTVal, p = s.zVal, f = null; f = a[e].children, l.config.tooltip.fillSeriesColor && (a[e].style.backgroundColor = n, f[0].style.display = "none"), h.showTooltipTitle && (null === h.tooltipTitle && (h.tooltipTitle = l.globals.dom.baseEl.querySelector(".apexcharts-tooltip-title")), h.tooltipTitle.innerHTML = g), h.isXAxisTooltipEnabled && (h.xaxisTooltipText.innerHTML = "" !== u ? u : g); var x = a[e].querySelector(".apexcharts-tooltip-text-y-label"); x && (x.innerHTML = r || ""); var b = a[e].querySelector(".apexcharts-tooltip-text-y-value"); b && (b.innerHTML = void 0 !== c ? c : ""), f[0] && f[0].classList.contains("apexcharts-tooltip-marker") && (l.config.tooltip.marker.fillColors && Array.isArray(l.config.tooltip.marker.fillColors) && (n = l.config.tooltip.marker.fillColors[e]), f[0].style.backgroundColor = n), l.config.tooltip.marker.show || (f[0].style.display = "none"); var v = a[e].querySelector(".apexcharts-tooltip-text-goals-label"), m = a[e].querySelector(".apexcharts-tooltip-text-goals-value"); if (d.length && l.globals.seriesGoals[e]) { var y = function () { var t = "
    ", e = "
    "; d.forEach((function (i, a) { t += '
    ').concat(i.attrs.name, "
    "), e += "
    ".concat(i.val, "
    ") })), v.innerHTML = t + "
    ", m.innerHTML = e + "
    " }; o ? l.globals.seriesGoals[e][i] && Array.isArray(l.globals.seriesGoals[e][i]) ? y() : (v.innerHTML = "", m.innerHTML = "") : y() } else v.innerHTML = "", m.innerHTML = ""; null !== p && (a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML = l.config.tooltip.z.title, a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML = void 0 !== p ? p : ""); if (o && f[0]) { if (l.config.tooltip.hideEmptySeries) { var w = a[e].querySelector(".apexcharts-tooltip-marker"), k = a[e].querySelector(".apexcharts-tooltip-text"); 0 == parseFloat(c) ? (w.style.display = "none", k.style.display = "none") : (w.style.display = "block", k.style.display = "block") } null == c || l.globals.ancillaryCollapsedSeriesIndices.indexOf(e) > -1 || l.globals.collapsedSeriesIndices.indexOf(e) > -1 ? f[0].parentNode.style.display = "none" : f[0].parentNode.style.display = l.config.tooltip.items.display } } }, { key: "toggleActiveInactiveSeries", value: function (t) { var e = this.w; if (t) this.tooltipUtil.toggleAllTooltipSeriesGroups("enable"); else { this.tooltipUtil.toggleAllTooltipSeriesGroups("disable"); var i = e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group"); i && (i.classList.add("apexcharts-active"), i.style.display = e.config.tooltip.items.display) } } }, { key: "getValuesToPrint", value: function (t) { var e = t.i, i = t.j, a = this.w, s = this.ctx.series.filteredSeriesX(), r = "", o = "", n = null, l = null, h = { series: a.globals.series, seriesIndex: e, dataPointIndex: i, w: a }, c = a.globals.ttZFormatter; null === i ? l = a.globals.series[e] : a.globals.isXNumeric && "treemap" !== a.config.chart.type ? (r = s[e][i], 0 === s[e].length && (r = s[this.tooltipUtil.getFirstActiveXArray(s)][i])) : r = void 0 !== a.globals.labels[i] ? a.globals.labels[i] : ""; var d = r; a.globals.isXNumeric && "datetime" === a.config.xaxis.type ? r = new S(this.ctx).xLabelFormat(a.globals.ttKeyFormatter, d, d, { i: void 0, dateFormatter: new A(this.ctx).formatDate, w: this.w }) : r = a.globals.isBarHorizontal ? a.globals.yLabelFormatters[0](d, h) : a.globals.xLabelFormatter(d, h); return void 0 !== a.config.tooltip.x.formatter && (r = a.globals.ttKeyFormatter(d, h)), a.globals.seriesZ.length > 0 && a.globals.seriesZ[e].length > 0 && (n = c(a.globals.seriesZ[e][i], a)), o = "function" == typeof a.config.xaxis.tooltip.formatter ? a.globals.xaxisTooltipFormatter(d, h) : r, { val: Array.isArray(l) ? l.join(" ") : l, xVal: Array.isArray(r) ? r.join(" ") : r, xAxisTTVal: Array.isArray(o) ? o.join(" ") : o, zVal: n } } }, { key: "handleCustomTooltip", value: function (t) { var e = t.i, i = t.j, a = t.y1, s = t.y2, r = t.w, o = this.ttCtx.getElTooltip(), n = r.config.tooltip.custom; Array.isArray(n) && n[e] && (n = n[e]), o.innerHTML = n({ ctx: this.ctx, series: r.globals.series, seriesIndex: e, dataPointIndex: i, y1: a, y2: s, w: r }) } }]), t }(), ut = function () { function t(e) { a(this, t), this.ttCtx = e, this.ctx = e.ctx, this.w = e.w } return r(t, [{ key: "moveXCrosshairs", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i = this.ttCtx, a = this.w, s = i.getElXCrosshairs(), r = t - i.xcrosshairsWidth / 2, o = a.globals.labels.slice().length; if (null !== e && (r = a.globals.gridWidth / o * e), null === s || a.globals.isBarHorizontal || (s.setAttribute("x", r), s.setAttribute("x1", r), s.setAttribute("x2", r), s.setAttribute("y2", a.globals.gridHeight), s.classList.add("apexcharts-active")), r < 0 && (r = 0), r > a.globals.gridWidth && (r = a.globals.gridWidth), i.isXAxisTooltipEnabled) { var n = r; "tickWidth" !== a.config.xaxis.crosshairs.width && "barWidth" !== a.config.xaxis.crosshairs.width || (n = r + i.xcrosshairsWidth / 2), this.moveXAxisTooltip(n) } } }, { key: "moveYCrosshairs", value: function (t) { var e = this.ttCtx; null !== e.ycrosshairs && m.setAttrs(e.ycrosshairs, { y1: t, y2: t }), null !== e.ycrosshairsHidden && m.setAttrs(e.ycrosshairsHidden, { y1: t, y2: t }) } }, { key: "moveXAxisTooltip", value: function (t) { var e = this.w, i = this.ttCtx; if (null !== i.xaxisTooltip && 0 !== i.xcrosshairsWidth) { i.xaxisTooltip.classList.add("apexcharts-active"); var a = i.xaxisOffY + e.config.xaxis.tooltip.offsetY + e.globals.translateY + 1 + e.config.xaxis.offsetY; if (t -= i.xaxisTooltip.getBoundingClientRect().width / 2, !isNaN(t)) { t += e.globals.translateX; var s; s = new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML), i.xaxisTooltipText.style.minWidth = s.width + "px", i.xaxisTooltip.style.left = t + "px", i.xaxisTooltip.style.top = a + "px" } } } }, { key: "moveYAxisTooltip", value: function (t) { var e = this.w, i = this.ttCtx; null === i.yaxisTTEls && (i.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip")); var a = parseInt(i.ycrosshairsHidden.getAttribute("y1"), 10), s = e.globals.translateY + a, r = i.yaxisTTEls[t].getBoundingClientRect().height, o = e.globals.translateYAxisX[t] - 2; e.config.yaxis[t].opposite && (o -= 26), s -= r / 2, -1 === e.globals.ignoreYAxisIndexes.indexOf(t) ? (i.yaxisTTEls[t].classList.add("apexcharts-active"), i.yaxisTTEls[t].style.top = s + "px", i.yaxisTTEls[t].style.left = o + e.config.yaxis[t].tooltip.offsetX + "px") : i.yaxisTTEls[t].classList.remove("apexcharts-active") } }, { key: "moveTooltip", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = this.w, s = this.ttCtx, r = s.getElTooltip(), o = s.tooltipRect, n = null !== i ? parseFloat(i) : 1, l = parseFloat(t) + n + 5, h = parseFloat(e) + n / 2; if (l > a.globals.gridWidth / 2 && (l = l - o.ttWidth - n - 10), l > a.globals.gridWidth - o.ttWidth - 10 && (l = a.globals.gridWidth - o.ttWidth), l < -20 && (l = -20), a.config.tooltip.followCursor) { var c = s.getElGrid().getBoundingClientRect(); (l = s.e.clientX - c.left) > a.globals.gridWidth / 2 && (l -= s.tooltipRect.ttWidth), (h = s.e.clientY + a.globals.translateY - c.top) > a.globals.gridHeight / 2 && (h -= s.tooltipRect.ttHeight) } else a.globals.isBarHorizontal || o.ttHeight / 2 + h > a.globals.gridHeight && (h = a.globals.gridHeight - o.ttHeight + a.globals.translateY); isNaN(l) || (l += a.globals.translateX, r.style.left = l + "px", r.style.top = h + "px") } }, { key: "moveMarkers", value: function (t, e) { var i = this.w, a = this.ttCtx; if (i.globals.markers.size[t] > 0) for (var s = i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t, "'] .apexcharts-marker")), r = 0; r < s.length; r++)parseInt(s[r].getAttribute("rel"), 10) === e && (a.marker.resetPointsSize(), a.marker.enlargeCurrentPoint(e, s[r])); else a.marker.resetPointsSize(), this.moveDynamicPointOnHover(e, t) } }, { key: "moveDynamicPointOnHover", value: function (t, e) { var i, a, s = this.w, r = this.ttCtx, o = s.globals.pointsArray, n = r.tooltipUtil.getHoverMarkerSize(e), l = s.config.series[e].type; if (!l || "column" !== l && "candlestick" !== l && "boxPlot" !== l) { i = o[e][t][0], a = o[e][t][1] ? o[e][t][1] : 0; var h = s.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e, "'] .apexcharts-series-markers circle")); h && a < s.globals.gridHeight && a > 0 && (h.setAttribute("r", n), h.setAttribute("cx", i), h.setAttribute("cy", a)), this.moveXCrosshairs(i), r.fixedTooltip || this.moveTooltip(i, a, n) } } }, { key: "moveDynamicPointsOnHover", value: function (t) { var e, i = this.ttCtx, a = i.w, s = 0, r = 0, o = a.globals.pointsArray; e = new W(this.ctx).getActiveConfigSeriesIndex("asc", ["line", "area", "scatter", "bubble"]); var n = i.tooltipUtil.getHoverMarkerSize(e); o[e] && (s = o[e][t][0], r = o[e][t][1]); var l = i.tooltipUtil.getAllMarkers(); if (null !== l) for (var h = 0; h < a.globals.series.length; h++) { var c = o[h]; if (a.globals.comboCharts && void 0 === c && l.splice(h, 0, null), c && c.length) { var d = o[h][t][1], g = void 0; if (l[h].setAttribute("cx", s), "rangeArea" === a.config.chart.type && !a.globals.comboCharts) { var u = t + a.globals.series[h].length; g = o[h][u][1], d -= Math.abs(d - g) / 2 } null !== d && !isNaN(d) && d < a.globals.gridHeight + n && d + n > 0 ? (l[h] && l[h].setAttribute("r", n), l[h] && l[h].setAttribute("cy", d)) : l[h] && l[h].setAttribute("r", 0) } } this.moveXCrosshairs(s), i.fixedTooltip || this.moveTooltip(s, r || a.globals.gridHeight, n) } }, { key: "moveStickyTooltipOverBars", value: function (t, e) { var i = this.w, a = this.ttCtx, s = i.globals.columnSeries ? i.globals.columnSeries.length : i.globals.series.length, r = s >= 2 && s % 2 == 0 ? Math.floor(s / 2) : Math.floor(s / 2) + 1; i.globals.isBarHorizontal && (r = new W(this.ctx).getActiveConfigSeriesIndex("desc") + 1); var o = i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r, "'] path[j='").concat(t, "'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r, "'] path[j='").concat(t, "']")); o || "number" != typeof e || (o = i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "'],\n .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='").concat(e, "'] path[j='").concat(t, "']"))); var n = o ? parseFloat(o.getAttribute("cx")) : 0, l = o ? parseFloat(o.getAttribute("cy")) : 0, h = o ? parseFloat(o.getAttribute("barWidth")) : 0, c = a.getElGrid().getBoundingClientRect(), d = o && (o.classList.contains("apexcharts-candlestick-area") || o.classList.contains("apexcharts-boxPlot-area")); i.globals.isXNumeric ? (o && !d && (n -= s % 2 != 0 ? h / 2 : 0), o && d && i.globals.comboCharts && (n -= h / 2)) : i.globals.isBarHorizontal || (n = a.xAxisTicksPositions[t - 1] + a.dataPointsDividedWidth / 2, isNaN(n) && (n = a.xAxisTicksPositions[t] - a.dataPointsDividedWidth / 2)), i.globals.isBarHorizontal ? l -= a.tooltipRect.ttHeight : i.config.tooltip.followCursor ? l = a.e.clientY - c.top - a.tooltipRect.ttHeight / 2 : l + a.tooltipRect.ttHeight + 15 > i.globals.gridHeight && (l = i.globals.gridHeight), i.globals.isBarHorizontal || this.moveXCrosshairs(n), a.fixedTooltip || this.moveTooltip(n, l || i.globals.gridHeight) } }]), t }(), pt = function () { function t(e) { a(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx, this.tooltipPosition = new ut(e) } return r(t, [{ key: "drawDynamicPoints", value: function () { var t = this.w, e = new m(this.ctx), i = new D(this.ctx), a = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series"); a = u(a), t.config.chart.stacked && a.sort((function (t, e) { return parseFloat(t.getAttribute("data:realIndex")) - parseFloat(e.getAttribute("data:realIndex")) })); for (var s = 0; s < a.length; s++) { var r = a[s].querySelector(".apexcharts-series-markers-wrap"); if (null !== r) { var o = void 0, n = "apexcharts-marker w".concat((Math.random() + 1).toString(36).substring(4)); "line" !== t.config.chart.type && "area" !== t.config.chart.type || t.globals.comboCharts || t.config.tooltip.intersect || (n += " no-pointer-events"); var l = i.getMarkerConfig({ cssClass: n, seriesIndex: Number(r.getAttribute("data:realIndex")) }); (o = e.drawMarker(0, 0, l)).node.setAttribute("default-marker-size", 0); var h = document.createElementNS(t.globals.SVGNS, "g"); h.classList.add("apexcharts-series-markers"), h.appendChild(o.node), r.appendChild(h) } } } }, { key: "enlargeCurrentPoint", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s = this.w; "bubble" !== s.config.chart.type && this.newPointSize(t, e); var r = e.getAttribute("cx"), o = e.getAttribute("cy"); if (null !== i && null !== a && (r = i, o = a), this.tooltipPosition.moveXCrosshairs(r), !this.fixedTooltip) { if ("radar" === s.config.chart.type) { var n = this.ttCtx.getElGrid().getBoundingClientRect(); r = this.ttCtx.e.clientX - n.left } this.tooltipPosition.moveTooltip(r, o, s.config.markers.hover.size) } } }, { key: "enlargePoints", value: function (t) { for (var e = this.w, i = this, a = this.ttCtx, s = t, r = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), o = e.config.markers.hover.size, n = 0; n < r.length; n++) { var l = r[n].getAttribute("rel"), h = r[n].getAttribute("index"); if (void 0 === o && (o = e.globals.markers.size[h] + e.config.markers.hover.sizeOffset), s === parseInt(l, 10)) { i.newPointSize(s, r[n]); var c = r[n].getAttribute("cx"), d = r[n].getAttribute("cy"); i.tooltipPosition.moveXCrosshairs(c), a.fixedTooltip || i.tooltipPosition.moveTooltip(c, d, o) } else i.oldPointSize(r[n]) } } }, { key: "newPointSize", value: function (t, e) { var i = this.w, a = i.config.markers.hover.size, s = 0 === t ? e.parentNode.firstChild : e.parentNode.lastChild; if ("0" !== s.getAttribute("default-marker-size")) { var r = parseInt(s.getAttribute("index"), 10); void 0 === a && (a = i.globals.markers.size[r] + i.config.markers.hover.sizeOffset), a < 0 && (a = 0), s.setAttribute("r", a) } } }, { key: "oldPointSize", value: function (t) { var e = parseFloat(t.getAttribute("default-marker-size")); t.setAttribute("r", e) } }, { key: "resetPointsSize", value: function () { for (var t = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), e = 0; e < t.length; e++) { var i = parseFloat(t[e].getAttribute("default-marker-size")); x.isNumber(i) && i >= 0 ? t[e].setAttribute("r", i) : t[e].setAttribute("r", 0) } } }]), t }(), ft = function () { function t(e) { a(this, t), this.w = e.w; var i = this.w; this.ttCtx = e, this.isVerticalGroupedRangeBar = !i.globals.isBarHorizontal && "rangeBar" === i.config.chart.type && i.config.plotOptions.bar.rangeBarGroupRows } return r(t, [{ key: "getAttr", value: function (t, e) { return parseFloat(t.target.getAttribute(e)) } }, { key: "handleHeatTreeTooltip", value: function (t) { var e = t.e, i = t.opt, a = t.x, s = t.y, r = t.type, o = this.ttCtx, n = this.w; if (e.target.classList.contains("apexcharts-".concat(r, "-rect"))) { var l = this.getAttr(e, "i"), h = this.getAttr(e, "j"), c = this.getAttr(e, "cx"), d = this.getAttr(e, "cy"), g = this.getAttr(e, "width"), u = this.getAttr(e, "height"); if (o.tooltipLabels.drawSeriesTexts({ ttItems: i.ttItems, i: l, j: h, shared: !1, e: e }), n.globals.capturedSeriesIndex = l, n.globals.capturedDataPointIndex = h, a = c + o.tooltipRect.ttWidth / 2 + g, s = d + o.tooltipRect.ttHeight / 2 - u / 2, o.tooltipPosition.moveXCrosshairs(c + g / 2), a > n.globals.gridWidth / 2 && (a = c - o.tooltipRect.ttWidth / 2 + g), o.w.config.tooltip.followCursor) { var p = n.globals.dom.elWrap.getBoundingClientRect(); a = n.globals.clientX - p.left - (a > n.globals.gridWidth / 2 ? o.tooltipRect.ttWidth : 0), s = n.globals.clientY - p.top - (s > n.globals.gridHeight / 2 ? o.tooltipRect.ttHeight : 0) } } return { x: a, y: s } } }, { key: "handleMarkerTooltip", value: function (t) { var e, i, a = t.e, s = t.opt, r = t.x, o = t.y, n = this.w, l = this.ttCtx; if (a.target.classList.contains("apexcharts-marker")) { var h = parseInt(s.paths.getAttribute("cx"), 10), c = parseInt(s.paths.getAttribute("cy"), 10), d = parseFloat(s.paths.getAttribute("val")); if (i = parseInt(s.paths.getAttribute("rel"), 10), e = parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"), 10) - 1, l.intersect) { var g = x.findAncestor(s.paths, "apexcharts-series"); g && (e = parseInt(g.getAttribute("data:realIndex"), 10)) } if (l.tooltipLabels.drawSeriesTexts({ ttItems: s.ttItems, i: e, j: i, shared: !l.showOnIntersect && n.config.tooltip.shared, e: a }), "mouseup" === a.type && l.markerClick(a, e, i), n.globals.capturedSeriesIndex = e, n.globals.capturedDataPointIndex = i, r = h, o = c + n.globals.translateY - 1.4 * l.tooltipRect.ttHeight, l.w.config.tooltip.followCursor) { var u = l.getElGrid().getBoundingClientRect(); o = l.e.clientY + n.globals.translateY - u.top } d < 0 && (o = c), l.marker.enlargeCurrentPoint(i, s.paths, r, o) } return { x: r, y: o } } }, { key: "handleBarTooltip", value: function (t) { var e, i, a = t.e, s = t.opt, r = this.w, o = this.ttCtx, n = o.getElTooltip(), l = 0, h = 0, c = 0, d = this.getBarTooltipXY({ e: a, opt: s }); e = d.i; var g = d.barHeight, u = d.j; r.globals.capturedSeriesIndex = e, r.globals.capturedDataPointIndex = u, r.globals.isBarHorizontal && o.tooltipUtil.hasBars() || !r.config.tooltip.shared ? (h = d.x, c = d.y, i = Array.isArray(r.config.stroke.width) ? r.config.stroke.width[e] : r.config.stroke.width, l = h) : r.globals.comboCharts || r.config.tooltip.shared || (l /= 2), isNaN(c) && (c = r.globals.svgHeight - o.tooltipRect.ttHeight); var p = parseInt(s.paths.parentNode.getAttribute("data:realIndex"), 10), f = r.globals.isMultipleYAxis ? r.config.yaxis[p] && r.config.yaxis[p].reversed : r.config.yaxis[0].reversed; if (h + o.tooltipRect.ttWidth > r.globals.gridWidth && !f ? h -= o.tooltipRect.ttWidth : h < 0 && (h = 0), o.w.config.tooltip.followCursor) { var x = o.getElGrid().getBoundingClientRect(); c = o.e.clientY - x.top } null === o.tooltip && (o.tooltip = r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")), r.config.tooltip.shared || (r.globals.comboBarCount > 0 ? o.tooltipPosition.moveXCrosshairs(l + i / 2) : o.tooltipPosition.moveXCrosshairs(l)), !o.fixedTooltip && (!r.config.tooltip.shared || r.globals.isBarHorizontal && o.tooltipUtil.hasBars()) && (f && (h -= o.tooltipRect.ttWidth) < 0 && (h = 0), !f || r.globals.isBarHorizontal && o.tooltipUtil.hasBars() || (c = c + g - 2 * (r.globals.series[e][u] < 0 ? g : 0)), c = c + r.globals.translateY - o.tooltipRect.ttHeight / 2, n.style.left = h + r.globals.translateX + "px", n.style.top = c + "px") } }, { key: "getBarTooltipXY", value: function (t) { var e = this, i = t.e, a = t.opt, s = this.w, r = null, o = this.ttCtx, n = 0, l = 0, h = 0, c = 0, d = 0, g = i.target.classList; if (g.contains("apexcharts-bar-area") || g.contains("apexcharts-candlestick-area") || g.contains("apexcharts-boxPlot-area") || g.contains("apexcharts-rangebar-area")) { var u = i.target, p = u.getBoundingClientRect(), f = a.elGrid.getBoundingClientRect(), x = p.height; d = p.height; var b = p.width, v = parseInt(u.getAttribute("cx"), 10), m = parseInt(u.getAttribute("cy"), 10); c = parseFloat(u.getAttribute("barWidth")); var y = "touchmove" === i.type ? i.touches[0].clientX : i.clientX; r = parseInt(u.getAttribute("j"), 10), n = parseInt(u.parentNode.getAttribute("rel"), 10) - 1; var w = u.getAttribute("data-range-y1"), k = u.getAttribute("data-range-y2"); s.globals.comboCharts && (n = parseInt(u.parentNode.getAttribute("data:realIndex"), 10)); var A = function (t) { return s.globals.isXNumeric ? v - b / 2 : e.isVerticalGroupedRangeBar ? v + b / 2 : v - o.dataPointsDividedWidth + b / 2 }, S = function () { return m - o.dataPointsDividedHeight + x / 2 - o.tooltipRect.ttHeight / 2 }; o.tooltipLabels.drawSeriesTexts({ ttItems: a.ttItems, i: n, j: r, y1: w ? parseInt(w, 10) : null, y2: k ? parseInt(k, 10) : null, shared: !o.showOnIntersect && s.config.tooltip.shared, e: i }), s.config.tooltip.followCursor ? s.globals.isBarHorizontal ? (l = y - f.left + 15, h = S()) : (l = A(), h = i.clientY - f.top - o.tooltipRect.ttHeight / 2 - 15) : s.globals.isBarHorizontal ? ((l = v) < o.xyRatios.baseLineInvertedY && (l = v - o.tooltipRect.ttWidth), h = S()) : (l = A(), h = m) } return { x: l, y: h, barHeight: d, barWidth: c, i: n, j: r } } }]), t }(), xt = function () { function t(e) { a(this, t), this.w = e.w, this.ttCtx = e } return r(t, [{ key: "drawXaxisTooltip", value: function () { var t = this.w, e = this.ttCtx, i = "bottom" === t.config.xaxis.position; e.xaxisOffY = i ? t.globals.gridHeight + 1 : -t.globals.xAxisHeight - t.config.xaxis.axisTicks.height + 3; var a = i ? "apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom" : "apexcharts-xaxistooltip apexcharts-xaxistooltip-top", s = t.globals.dom.elWrap; e.isXAxisTooltipEnabled && (null === t.globals.dom.baseEl.querySelector(".apexcharts-xaxistooltip") && (e.xaxisTooltip = document.createElement("div"), e.xaxisTooltip.setAttribute("class", a + " apexcharts-theme-" + t.config.tooltip.theme), s.appendChild(e.xaxisTooltip), e.xaxisTooltipText = document.createElement("div"), e.xaxisTooltipText.classList.add("apexcharts-xaxistooltip-text"), e.xaxisTooltipText.style.fontFamily = t.config.xaxis.tooltip.style.fontFamily || t.config.chart.fontFamily, e.xaxisTooltipText.style.fontSize = t.config.xaxis.tooltip.style.fontSize, e.xaxisTooltip.appendChild(e.xaxisTooltipText))) } }, { key: "drawYaxisTooltip", value: function () { for (var t = this.w, e = this.ttCtx, i = 0; i < t.config.yaxis.length; i++) { var a = t.config.yaxis[i].opposite || t.config.yaxis[i].crosshairs.opposite; e.yaxisOffX = a ? t.globals.gridWidth + 1 : 1; var s = "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i, a ? " apexcharts-yaxistooltip-right" : " apexcharts-yaxistooltip-left"), r = t.globals.dom.elWrap; null === t.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i)) && (e.yaxisTooltip = document.createElement("div"), e.yaxisTooltip.setAttribute("class", s + " apexcharts-theme-" + t.config.tooltip.theme), r.appendChild(e.yaxisTooltip), 0 === i && (e.yaxisTooltipText = []), e.yaxisTooltipText[i] = document.createElement("div"), e.yaxisTooltipText[i].classList.add("apexcharts-yaxistooltip-text"), e.yaxisTooltip.appendChild(e.yaxisTooltipText[i])) } } }, { key: "setXCrosshairWidth", value: function () { var t = this.w, e = this.ttCtx, i = e.getElXCrosshairs(); if (e.xcrosshairsWidth = parseInt(t.config.xaxis.crosshairs.width, 10), t.globals.comboCharts) { var a = t.globals.dom.baseEl.querySelector(".apexcharts-bar-area"); if (null !== a && "barWidth" === t.config.xaxis.crosshairs.width) { var s = parseFloat(a.getAttribute("barWidth")); e.xcrosshairsWidth = s } else if ("tickWidth" === t.config.xaxis.crosshairs.width) { var r = t.globals.labels.length; e.xcrosshairsWidth = t.globals.gridWidth / r } } else if ("tickWidth" === t.config.xaxis.crosshairs.width) { var o = t.globals.labels.length; e.xcrosshairsWidth = t.globals.gridWidth / o } else if ("barWidth" === t.config.xaxis.crosshairs.width) { var n = t.globals.dom.baseEl.querySelector(".apexcharts-bar-area"); if (null !== n) { var l = parseFloat(n.getAttribute("barWidth")); e.xcrosshairsWidth = l } else e.xcrosshairsWidth = 1 } t.globals.isBarHorizontal && (e.xcrosshairsWidth = 0), null !== i && e.xcrosshairsWidth > 0 && i.setAttribute("width", e.xcrosshairsWidth) } }, { key: "handleYCrosshair", value: function () { var t = this.w, e = this.ttCtx; e.ycrosshairs = t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"), e.ycrosshairsHidden = t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden") } }, { key: "drawYaxisTooltipText", value: function (t, e, i) { var a = this.ttCtx, s = this.w, r = s.globals, o = r.seriesYAxisMap[t]; if (a.yaxisTooltips[t] && o.length > 0) { var n = r.yLabelFormatters[t], l = a.getElGrid().getBoundingClientRect(), h = o[0]; i.yRatio.length > 1 && function (t) { throw new TypeError('"' + t + '" is read-only') }("translationsIndex"); var c = (e - l.top) * i.yRatio[0], d = r.maxYArr[h] - r.minYArr[h], g = r.minYArr[h] + (d - c); s.config.yaxis[t].reversed && (g = r.maxYArr[h] - (d - c)), a.tooltipPosition.moveYCrosshairs(e - l.top), a.yaxisTooltipText[t].innerHTML = n(g), a.tooltipPosition.moveYAxisTooltip(t) } } }]), t }(), bt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w; var i = this.w; this.tConfig = i.config.tooltip, this.tooltipUtil = new dt(this), this.tooltipLabels = new gt(this), this.tooltipPosition = new ut(this), this.marker = new pt(this), this.intersect = new ft(this), this.axesTooltip = new xt(this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !i.globals.isBarHorizontal && this.tConfig.shared, this.lastHoverTime = Date.now() } return r(t, [{ key: "getElTooltip", value: function (t) { return t || (t = this), t.w.globals.dom.baseEl ? t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip") : null } }, { key: "getElXCrosshairs", value: function () { return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs") } }, { key: "getElGrid", value: function () { return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid") } }, { key: "drawTooltip", value: function (t) { var e = this.w; this.xyRatios = t, this.isXAxisTooltipEnabled = e.config.xaxis.tooltip.enabled && e.globals.axisCharts, this.yaxisTooltips = e.config.yaxis.map((function (t, i) { return !!(t.show && t.tooltip.enabled && e.globals.axisCharts) })), this.allTooltipSeriesGroups = [], e.globals.axisCharts || (this.showTooltipTitle = !1); var i = document.createElement("div"); if (i.classList.add("apexcharts-tooltip"), e.config.tooltip.cssClass && i.classList.add(e.config.tooltip.cssClass), i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)), e.globals.dom.elWrap.appendChild(i), e.globals.axisCharts) { this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair(); var a = new V(this.ctx); this.xAxisTicksPositions = a.getXAxisTicksPositions() } if (!e.globals.comboCharts && !this.tConfig.intersect && "rangeBar" !== e.config.chart.type || this.tConfig.shared || (this.showOnIntersect = !0), 0 !== e.config.markers.size && 0 !== e.globals.markers.largestSize || this.marker.drawDynamicPoints(this), e.globals.collapsedSeries.length !== e.globals.series.length) { this.dataPointsDividedHeight = e.globals.gridHeight / e.globals.dataPoints, this.dataPointsDividedWidth = e.globals.gridWidth / e.globals.dataPoints, this.showTooltipTitle && (this.tooltipTitle = document.createElement("div"), this.tooltipTitle.classList.add("apexcharts-tooltip-title"), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || e.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, i.appendChild(this.tooltipTitle)); var s = e.globals.series.length; (e.globals.xyCharts || e.globals.comboCharts) && this.tConfig.shared && (s = this.showOnIntersect ? 1 : e.globals.series.length), this.legendLabels = e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"), this.ttItems = this.createTTElements(s), this.addSVGEvents() } } }, { key: "createTTElements", value: function (t) { for (var e = this, i = this.w, a = [], s = this.getElTooltip(), r = function (r) { var o = document.createElement("div"); o.classList.add("apexcharts-tooltip-series-group"), o.style.order = i.config.tooltip.inverseOrder ? t - r : r + 1, e.tConfig.shared && e.tConfig.enabledOnSeries && Array.isArray(e.tConfig.enabledOnSeries) && e.tConfig.enabledOnSeries.indexOf(r) < 0 && o.classList.add("apexcharts-tooltip-series-group-hidden"); var n = document.createElement("span"); n.classList.add("apexcharts-tooltip-marker"), n.style.backgroundColor = i.globals.colors[r], o.appendChild(n); var l = document.createElement("div"); l.classList.add("apexcharts-tooltip-text"), l.style.fontFamily = e.tConfig.style.fontFamily || i.config.chart.fontFamily, l.style.fontSize = e.tConfig.style.fontSize, ["y", "goals", "z"].forEach((function (t) { var e = document.createElement("div"); e.classList.add("apexcharts-tooltip-".concat(t, "-group")); var i = document.createElement("span"); i.classList.add("apexcharts-tooltip-text-".concat(t, "-label")), e.appendChild(i); var a = document.createElement("span"); a.classList.add("apexcharts-tooltip-text-".concat(t, "-value")), e.appendChild(a), l.appendChild(e) })), o.appendChild(l), s.appendChild(o), a.push(o) }, o = 0; o < t; o++)r(o); return a } }, { key: "addSVGEvents", value: function () { var t = this.w, e = t.config.chart.type, i = this.getElTooltip(), a = !("bar" !== e && "candlestick" !== e && "boxPlot" !== e && "rangeBar" !== e), s = "area" === e || "line" === e || "scatter" === e || "bubble" === e || "radar" === e, r = t.globals.dom.Paper.node, o = this.getElGrid(); o && (this.seriesBound = o.getBoundingClientRect()); var n, l = [], h = [], c = { hoverArea: r, elGrid: o, tooltipEl: i, tooltipY: l, tooltipX: h, ttItems: this.ttItems }; if (t.globals.axisCharts && (s ? n = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker") : a ? n = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area") : "heatmap" !== e && "treemap" !== e || (n = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap")), n && n.length)) for (var d = 0; d < n.length; d++)l.push(n[d].getAttribute("cy")), h.push(n[d].getAttribute("cx")); if (t.globals.xyCharts && !this.showOnIntersect || t.globals.comboCharts && !this.showOnIntersect || a && this.tooltipUtil.hasBars() && this.tConfig.shared) this.addPathsEventListeners([r], c); else if (a && !t.globals.comboCharts || s && this.showOnIntersect) this.addDatapointEventsListeners(c); else if (!t.globals.axisCharts || "heatmap" === e || "treemap" === e) { var g = t.globals.dom.baseEl.querySelectorAll(".apexcharts-series"); this.addPathsEventListeners(g, c) } if (this.showOnIntersect) { var u = t.globals.dom.baseEl.querySelectorAll(".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker"); u.length > 0 && this.addPathsEventListeners(u, c), this.tooltipUtil.hasBars() && !this.tConfig.shared && this.addDatapointEventsListeners(c) } } }, { key: "drawFixedTooltipRect", value: function () { var t = this.w, e = this.getElTooltip(), i = e.getBoundingClientRect(), a = i.width + 10, s = i.height + 10, r = this.tConfig.fixed.offsetX, o = this.tConfig.fixed.offsetY, n = this.tConfig.fixed.position.toLowerCase(); return n.indexOf("right") > -1 && (r = r + t.globals.svgWidth - a + 10), n.indexOf("bottom") > -1 && (o = o + t.globals.svgHeight - s - 10), e.style.left = r + "px", e.style.top = o + "px", { x: r, y: o, ttWidth: a, ttHeight: s } } }, { key: "addDatapointEventsListeners", value: function (t) { var e = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area"); this.addPathsEventListeners(e, t) } }, { key: "addPathsEventListeners", value: function (t, e) { for (var i = this, a = function (a) { var s = { paths: t[a], tooltipEl: e.tooltipEl, tooltipY: e.tooltipY, tooltipX: e.tooltipX, elGrid: e.elGrid, hoverArea: e.hoverArea, ttItems: e.ttItems };["mousemove", "mouseup", "touchmove", "mouseout", "touchend"].map((function (e) { return t[a].addEventListener(e, i.onSeriesHover.bind(i, s), { capture: !1, passive: !0 }) })) }, s = 0; s < t.length; s++)a(s) } }, { key: "onSeriesHover", value: function (t, e) { var i = this, a = Date.now() - this.lastHoverTime; a >= 100 ? this.seriesHover(t, e) : (clearTimeout(this.seriesHoverTimeout), this.seriesHoverTimeout = setTimeout((function () { i.seriesHover(t, e) }), 100 - a)) } }, { key: "seriesHover", value: function (t, e) { var i = this; this.lastHoverTime = Date.now(); var a = [], s = this.w; s.config.chart.group && (a = this.ctx.getGroupedCharts()), s.globals.axisCharts && (s.globals.minX === -1 / 0 && s.globals.maxX === 1 / 0 || 0 === s.globals.dataPoints) || (a.length ? a.forEach((function (a) { var s = i.getElTooltip(a), r = { paths: t.paths, tooltipEl: s, tooltipY: t.tooltipY, tooltipX: t.tooltipX, elGrid: t.elGrid, hoverArea: t.hoverArea, ttItems: a.w.globals.tooltip.ttItems }; a.w.globals.minX === i.w.globals.minX && a.w.globals.maxX === i.w.globals.maxX && a.w.globals.tooltip.seriesHoverByContext({ chartCtx: a, ttCtx: a.w.globals.tooltip, opt: r, e: e }) })) : this.seriesHoverByContext({ chartCtx: this.ctx, ttCtx: this.w.globals.tooltip, opt: t, e: e })) } }, { key: "seriesHoverByContext", value: function (t) { var e = t.chartCtx, i = t.ttCtx, a = t.opt, s = t.e, r = e.w, o = this.getElTooltip(); if (o) { if (i.tooltipRect = { x: 0, y: 0, ttWidth: o.getBoundingClientRect().width, ttHeight: o.getBoundingClientRect().height }, i.e = s, i.tooltipUtil.hasBars() && !r.globals.comboCharts && !i.isBarShared) if (this.tConfig.onDatasetHover.highlightDataSeries) new W(e).toggleSeriesOnHover(s, s.target.parentNode); i.fixedTooltip && i.drawFixedTooltipRect(), r.globals.axisCharts ? i.axisChartsTooltips({ e: s, opt: a, tooltipRect: i.tooltipRect }) : i.nonAxisChartsTooltips({ e: s, opt: a, tooltipRect: i.tooltipRect }) } } }, { key: "axisChartsTooltips", value: function (t) { var e, i, a = t.e, s = t.opt, r = this.w, o = s.elGrid.getBoundingClientRect(), n = "touchmove" === a.type ? a.touches[0].clientX : a.clientX, l = "touchmove" === a.type ? a.touches[0].clientY : a.clientY; if (this.clientY = l, this.clientX = n, r.globals.capturedSeriesIndex = -1, r.globals.capturedDataPointIndex = -1, l < o.top || l > o.top + o.height) this.handleMouseOut(s); else { if (Array.isArray(this.tConfig.enabledOnSeries) && !r.config.tooltip.shared) { var h = parseInt(s.paths.getAttribute("index"), 10); if (this.tConfig.enabledOnSeries.indexOf(h) < 0) return void this.handleMouseOut(s) } var c = this.getElTooltip(), d = this.getElXCrosshairs(), g = r.globals.xyCharts || "bar" === r.config.chart.type && !r.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || r.globals.comboCharts && this.tooltipUtil.hasBars(); if ("mousemove" === a.type || "touchmove" === a.type || "mouseup" === a.type) { if (r.globals.collapsedSeries.length + r.globals.ancillaryCollapsedSeries.length === r.globals.series.length) return; null !== d && d.classList.add("apexcharts-active"); var u = this.yaxisTooltips.filter((function (t) { return !0 === t })); if (null !== this.ycrosshairs && u.length && this.ycrosshairs.classList.add("apexcharts-active"), g && !this.showOnIntersect) this.handleStickyTooltip(a, n, l, s); else if ("heatmap" === r.config.chart.type || "treemap" === r.config.chart.type) { var p = this.intersect.handleHeatTreeTooltip({ e: a, opt: s, x: e, y: i, type: r.config.chart.type }); e = p.x, i = p.y, c.style.left = e + "px", c.style.top = i + "px" } else this.tooltipUtil.hasBars() && this.intersect.handleBarTooltip({ e: a, opt: s }), this.tooltipUtil.hasMarkers() && this.intersect.handleMarkerTooltip({ e: a, opt: s, x: e, y: i }); if (this.yaxisTooltips.length) for (var f = 0; f < r.config.yaxis.length; f++)this.axesTooltip.drawYaxisTooltipText(f, l, this.xyRatios); s.tooltipEl.classList.add("apexcharts-active") } else "mouseout" !== a.type && "touchend" !== a.type || this.handleMouseOut(s) } } }, { key: "nonAxisChartsTooltips", value: function (t) { var e = t.e, i = t.opt, a = t.tooltipRect, s = this.w, r = i.paths.getAttribute("rel"), o = this.getElTooltip(), n = s.globals.dom.elWrap.getBoundingClientRect(); if ("mousemove" === e.type || "touchmove" === e.type) { o.classList.add("apexcharts-active"), this.tooltipLabels.drawSeriesTexts({ ttItems: i.ttItems, i: parseInt(r, 10) - 1, shared: !1 }); var l = s.globals.clientX - n.left - a.ttWidth / 2, h = s.globals.clientY - n.top - a.ttHeight - 10; if (o.style.left = l + "px", o.style.top = h + "px", s.config.legend.tooltipHoverFormatter) { var c = r - 1, d = (0, s.config.legend.tooltipHoverFormatter)(this.legendLabels[c].getAttribute("data:default-text"), { seriesIndex: c, dataPointIndex: c, w: s }); this.legendLabels[c].innerHTML = d } } else "mouseout" !== e.type && "touchend" !== e.type || (o.classList.remove("apexcharts-active"), s.config.legend.tooltipHoverFormatter && this.legendLabels.forEach((function (t) { var e = t.getAttribute("data:default-text"); t.innerHTML = decodeURIComponent(e) }))) } }, { key: "handleStickyTooltip", value: function (t, e, i, a) { var s = this.w, r = this.tooltipUtil.getNearestValues({ context: this, hoverArea: a.hoverArea, elGrid: a.elGrid, clientX: e, clientY: i }), o = r.j, n = r.capturedSeries; s.globals.collapsedSeriesIndices.includes(n) && (n = null); var l = a.elGrid.getBoundingClientRect(); if (r.hoverX < 0 || r.hoverX > l.width) this.handleMouseOut(a); else if (null !== n) this.handleStickyCapturedSeries(t, n, a, o); else if (this.tooltipUtil.isXoverlap(o) || s.globals.isBarHorizontal) { var h = s.globals.series.findIndex((function (t, e) { return !s.globals.collapsedSeriesIndices.includes(e) })); this.create(t, this, h, o, a.ttItems) } } }, { key: "handleStickyCapturedSeries", value: function (t, e, i, a) { var s = this.w; if (!this.tConfig.shared && null === s.globals.series[e][a]) return void this.handleMouseOut(i); if (void 0 !== s.globals.series[e][a]) this.tConfig.shared && this.tooltipUtil.isXoverlap(a) && this.tooltipUtil.isInitialSeriesSameLen() ? this.create(t, this, e, a, i.ttItems) : this.create(t, this, e, a, i.ttItems, !1); else if (this.tooltipUtil.isXoverlap(a)) { var r = s.globals.series.findIndex((function (t, e) { return !s.globals.collapsedSeriesIndices.includes(e) })); this.create(t, this, r, a, i.ttItems) } } }, { key: "deactivateHoverFilter", value: function () { for (var t = this.w, e = new m(this.ctx), i = t.globals.dom.Paper.select(".apexcharts-bar-area"), a = 0; a < i.length; a++)e.pathMouseLeave(i[a]) } }, { key: "handleMouseOut", value: function (t) { var e = this.w, i = this.getElXCrosshairs(); if (t.tooltipEl.classList.remove("apexcharts-active"), this.deactivateHoverFilter(), "bubble" !== e.config.chart.type && this.marker.resetPointsSize(), null !== i && i.classList.remove("apexcharts-active"), null !== this.ycrosshairs && this.ycrosshairs.classList.remove("apexcharts-active"), this.isXAxisTooltipEnabled && this.xaxisTooltip.classList.remove("apexcharts-active"), this.yaxisTooltips.length) { null === this.yaxisTTEls && (this.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip")); for (var a = 0; a < this.yaxisTTEls.length; a++)this.yaxisTTEls[a].classList.remove("apexcharts-active") } e.config.legend.tooltipHoverFormatter && this.legendLabels.forEach((function (t) { var e = t.getAttribute("data:default-text"); t.innerHTML = decodeURIComponent(e) })) } }, { key: "markerClick", value: function (t, e, i) { var a = this.w; "function" == typeof a.config.chart.events.markerClick && a.config.chart.events.markerClick(t, this.ctx, { seriesIndex: e, dataPointIndex: i, w: a }), this.ctx.events.fireEvent("markerClick", [t, this.ctx, { seriesIndex: e, dataPointIndex: i, w: a }]) } }, { key: "create", value: function (t, i, a, s, r) { var o, n, l, h, c, d, g, u, p, f, x, b, v, y, w, k, A = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, S = this.w, C = i; "mouseup" === t.type && this.markerClick(t, a, s), null === A && (A = this.tConfig.shared); var L = this.tooltipUtil.hasMarkers(a), P = this.tooltipUtil.getElBars(); if (S.config.legend.tooltipHoverFormatter) { var M = S.config.legend.tooltipHoverFormatter, I = Array.from(this.legendLabels); I.forEach((function (t) { var e = t.getAttribute("data:default-text"); t.innerHTML = decodeURIComponent(e) })); for (var T = 0; T < I.length; T++) { var z = I[T], X = parseInt(z.getAttribute("i"), 10), E = decodeURIComponent(z.getAttribute("data:default-text")), Y = M(E, { seriesIndex: A ? X : a, dataPointIndex: s, w: S }); if (A) z.innerHTML = S.globals.collapsedSeriesIndices.indexOf(X) < 0 ? Y : E; else if (z.innerHTML = X === a ? Y : E, a === X) break } } var F = e(e({ ttItems: r, i: a, j: s }, void 0 !== (null === (o = S.globals.seriesRange) || void 0 === o || null === (n = o[a]) || void 0 === n || null === (l = n[s]) || void 0 === l || null === (h = l.y[0]) || void 0 === h ? void 0 : h.y1) && { y1: null === (c = S.globals.seriesRange) || void 0 === c || null === (d = c[a]) || void 0 === d || null === (g = d[s]) || void 0 === g || null === (u = g.y[0]) || void 0 === u ? void 0 : u.y1 }), void 0 !== (null === (p = S.globals.seriesRange) || void 0 === p || null === (f = p[a]) || void 0 === f || null === (x = f[s]) || void 0 === x || null === (b = x.y[0]) || void 0 === b ? void 0 : b.y2) && { y2: null === (v = S.globals.seriesRange) || void 0 === v || null === (y = v[a]) || void 0 === y || null === (w = y[s]) || void 0 === w || null === (k = w.y[0]) || void 0 === k ? void 0 : k.y2 }); if (A) { if (C.tooltipLabels.drawSeriesTexts(e(e({}, F), {}, { shared: !this.showOnIntersect && this.tConfig.shared })), L) S.globals.markers.largestSize > 0 ? C.marker.enlargePoints(s) : C.tooltipPosition.moveDynamicPointsOnHover(s); else if (this.tooltipUtil.hasBars() && (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(P), this.barSeriesHeight > 0)) { var R = new m(this.ctx), H = S.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(s, "']")); this.deactivateHoverFilter(), this.tooltipPosition.moveStickyTooltipOverBars(s, a); for (var D = 0; D < H.length; D++)R.pathMouseEnter(H[D]) } } else C.tooltipLabels.drawSeriesTexts(e({ shared: !1 }, F)), this.tooltipUtil.hasBars() && C.tooltipPosition.moveStickyTooltipOverBars(s, a), L && C.tooltipPosition.moveMarkers(a, s) } }]), t }(), vt = function () { function t(e) { a(this, t), this.w = e.w, this.barCtx = e, this.totalFormatter = this.w.config.plotOptions.bar.dataLabels.total.formatter, this.totalFormatter || (this.totalFormatter = this.w.config.dataLabels.formatter) } return r(t, [{ key: "handleBarDataLabels", value: function (t) { var e, i, a = t.x, s = t.y, r = t.y1, o = t.y2, n = t.i, l = t.j, h = t.realIndex, c = t.columnGroupIndex, d = t.series, g = t.barHeight, u = t.barWidth, p = t.barXPosition, f = t.barYPosition, x = t.visibleSeries, b = t.renderedPath, v = this.w, y = new m(this.barCtx.ctx), w = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[h] : this.barCtx.strokeWidth; v.globals.isXNumeric && !v.globals.isBarHorizontal ? (e = a + parseFloat(u * (x + 1)), i = s + parseFloat(g * (x + 1)) - w) : (e = a + parseFloat(u * x), i = s + parseFloat(g * x)); var k, A = null, S = a, C = s, L = {}, P = v.config.dataLabels, M = this.barCtx.barOptions.dataLabels, I = this.barCtx.barOptions.dataLabels.total; void 0 !== f && this.barCtx.isRangeBar && (i = f, C = f), void 0 !== p && this.barCtx.isVerticalGroupedRangeBar && (e = p, S = p); var T = P.offsetX, z = P.offsetY, X = { width: 0, height: 0 }; if (v.config.dataLabels.enabled) { var E = this.barCtx.series[n][l]; X = y.getTextRects(v.globals.yLabelFormatters[0](E), parseFloat(P.style.fontSize)) } var Y = { x: a, y: s, i: n, j: l, realIndex: h, columnGroupIndex: c, renderedPath: b, bcx: e, bcy: i, barHeight: g, barWidth: u, textRects: X, strokeWidth: w, dataLabelsX: S, dataLabelsY: C, dataLabelsConfig: P, barDataLabelsConfig: M, barTotalDataLabelsConfig: I, offX: T, offY: z }; return L = this.barCtx.isHorizontal ? this.calculateBarsDataLabelsPosition(Y) : this.calculateColumnsDataLabelsPosition(Y), b.attr({ cy: L.bcy, cx: L.bcx, j: l, val: d[n][l], barHeight: g, barWidth: u }), k = this.drawCalculatedDataLabels({ x: L.dataLabelsX, y: L.dataLabelsY, val: this.barCtx.isRangeBar ? [r, o] : d[n][l], i: h, j: l, barWidth: u, barHeight: g, textRects: X, dataLabelsConfig: P }), v.config.chart.stacked && I.enabled && (A = this.drawTotalDataLabels({ x: L.totalDataLabelsX, y: L.totalDataLabelsY, barWidth: u, barHeight: g, realIndex: h, textAnchor: L.totalDataLabelsAnchor, val: this.getStackedTotalDataLabel({ realIndex: h, j: l }), dataLabelsConfig: P, barTotalDataLabelsConfig: I })), { dataLabels: k, totalDataLabels: A } } }, { key: "getStackedTotalDataLabel", value: function (t) { var i = t.realIndex, a = t.j, s = this.w, r = this.barCtx.stackedSeriesTotals[a]; return this.totalFormatter && (r = this.totalFormatter(r, e(e({}, s), {}, { seriesIndex: i, dataPointIndex: a, w: s }))), r } }, { key: "calculateColumnsDataLabelsPosition", value: function (t) { var e, i, a = this.w, s = t.i, r = t.j, o = t.realIndex, n = t.columnGroupIndex, l = t.y, h = t.bcx, c = t.barWidth, d = t.barHeight, g = t.textRects, u = t.dataLabelsX, p = t.dataLabelsY, f = t.dataLabelsConfig, x = t.barDataLabelsConfig, b = t.barTotalDataLabelsConfig, v = t.strokeWidth, y = t.offX, w = t.offY, k = h; d = Math.abs(d); var A = "vertical" === a.config.plotOptions.bar.dataLabels.orientation, S = this.barCtx.barHelpers.getZeroValueEncounters({ i: s, j: r }).zeroEncounters; h = h - v / 2 + n * c; var C = a.globals.gridWidth / a.globals.dataPoints; if (this.barCtx.isVerticalGroupedRangeBar ? u += c / 2 : (u = a.globals.isXNumeric ? h - c / 2 + y : h - C + c / 2 + y, S > 0 && a.config.plotOptions.bar.hideZeroBarsWhenGrouped && (u -= c * S)), A) { u = u + g.height / 2 - v / 2 - 2 } var L = this.barCtx.series[s][r] < 0, P = l; switch (this.barCtx.isReversed && (P = l + (L ? d : -d), l -= d), x.position) { case "center": p = A ? L ? P - d / 2 + w : P + d / 2 - w : L ? P - d / 2 + g.height / 2 + w : P + d / 2 + g.height / 2 - w; break; case "bottom": p = A ? L ? P - d + w : P + d - w : L ? P - d + g.height + v + w : P + d - g.height / 2 + v - w; break; case "top": p = A ? L ? P + w : P - w : L ? P - g.height / 2 - w : P + g.height + w }if (this.barCtx.lastActiveBarSerieIndex === o && b.enabled) { var M = new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ realIndex: o, j: r }), f.fontSize); e = L ? P - M.height / 2 - w - b.offsetY + 18 : P + M.height + w + b.offsetY - 18, i = k + (a.globals.isXNumeric ? c * (a.globals.barGroups.length - 1) - c / 2 : -(c * a.globals.barGroups.length - c / 2 - 2 * v)) + b.offsetX } return a.config.chart.stacked || (p < 0 ? p = 0 + v : p + g.height / 3 > a.globals.gridHeight && (p = a.globals.gridHeight - v)), { bcx: h, bcy: l, dataLabelsX: u, dataLabelsY: p, totalDataLabelsX: i, totalDataLabelsY: e, totalDataLabelsAnchor: "middle" } } }, { key: "calculateBarsDataLabelsPosition", value: function (t) { var e = this.w, i = t.x, a = t.i, s = t.j, r = t.realIndex, o = t.columnGroupIndex, n = t.bcy, l = t.barHeight, h = t.barWidth, c = t.textRects, d = t.dataLabelsX, g = t.strokeWidth, u = t.dataLabelsConfig, p = t.barDataLabelsConfig, f = t.barTotalDataLabelsConfig, x = t.offX, b = t.offY, v = e.globals.gridHeight / e.globals.dataPoints; h = Math.abs(h); var y, w, k = (n += o * l) - (this.barCtx.isRangeBar ? 0 : v) + l / 2 + c.height / 2 + b - 3, A = "start", S = this.barCtx.series[a][s] < 0, C = i; switch (this.barCtx.isReversed && (C = i + (S ? -h : h), i = e.globals.gridWidth - h, A = S ? "start" : "end"), p.position) { case "center": d = S ? C + h / 2 - x : Math.max(c.width / 2, C - h / 2) + x; break; case "bottom": d = S ? C + h - g - Math.round(c.width / 2) - x : C - h + g + Math.round(c.width / 2) + x; break; case "top": d = S ? C - g + Math.round(c.width / 2) - x : C - g - Math.round(c.width / 2) + x }if (this.barCtx.lastActiveBarSerieIndex === r && f.enabled) { var L = new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ realIndex: r, j: s }), u.fontSize); S ? (y = C - g - x - f.offsetX, A = "end") : y = C + x + f.offsetX + (this.barCtx.isReversed ? -(h + g) : g), w = k - c.height / 2 + L.height / 2 + f.offsetY + g } return e.config.chart.stacked || (d < 0 ? d = d + c.width + g : d + c.width / 2 > e.globals.gridWidth && (d = e.globals.gridWidth - c.width - g)), { bcx: i, bcy: n, dataLabelsX: d, dataLabelsY: k, totalDataLabelsX: y, totalDataLabelsY: w, totalDataLabelsAnchor: A } } }, { key: "drawCalculatedDataLabels", value: function (t) { var i = t.x, a = t.y, s = t.val, r = t.i, o = t.j, n = t.textRects, l = t.barHeight, h = t.barWidth, c = t.dataLabelsConfig, d = this.w, g = "rotate(0)"; "vertical" === d.config.plotOptions.bar.dataLabels.orientation && (g = "rotate(-90, ".concat(i, ", ").concat(a, ")")); var u = new N(this.barCtx.ctx), p = new m(this.barCtx.ctx), f = c.formatter, x = null, b = d.globals.collapsedSeriesIndices.indexOf(r) > -1; if (c.enabled && !b) { x = p.group({ class: "apexcharts-data-labels", transform: g }); var v = ""; void 0 !== s && (v = f(s, e(e({}, d), {}, { seriesIndex: r, dataPointIndex: o, w: d }))), !s && d.config.plotOptions.bar.hideZeroBarsWhenGrouped && (v = ""); var y = d.globals.series[r][o] < 0, w = d.config.plotOptions.bar.dataLabels.position; if ("vertical" === d.config.plotOptions.bar.dataLabels.orientation && ("top" === w && (c.textAnchor = y ? "end" : "start"), "center" === w && (c.textAnchor = "middle"), "bottom" === w && (c.textAnchor = y ? "end" : "start")), this.barCtx.isRangeBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels) h < p.getTextRects(v, parseFloat(c.style.fontSize)).width && (v = ""); d.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && (this.barCtx.isHorizontal ? n.width / 1.6 > Math.abs(h) && (v = "") : n.height / 1.6 > Math.abs(l) && (v = "")); var k = e({}, c); this.barCtx.isHorizontal && s < 0 && ("start" === c.textAnchor ? k.textAnchor = "end" : "end" === c.textAnchor && (k.textAnchor = "start")), u.plotDataLabelsText({ x: i, y: a, text: v, i: r, j: o, parent: x, dataLabelsConfig: k, alwaysDrawDataLabel: !0, offsetCorrection: !0 }) } return x } }, { key: "drawTotalDataLabels", value: function (t) { var e, i = t.x, a = t.y, s = t.val, r = t.barWidth, o = t.barHeight, n = t.realIndex, l = t.textAnchor, h = t.barTotalDataLabelsConfig, c = this.w, d = new m(this.barCtx.ctx); return h.enabled && void 0 !== i && void 0 !== a && this.barCtx.lastActiveBarSerieIndex === n && (e = d.drawText({ x: i - (!c.globals.isBarHorizontal && c.globals.barGroups.length ? r * (c.globals.barGroups.length - 1) / 2 : 0), y: a - (c.globals.isBarHorizontal && c.globals.barGroups.length ? o * (c.globals.barGroups.length - 1) / 2 : 0), foreColor: h.style.color, text: s, textAnchor: l, fontFamily: h.style.fontFamily, fontSize: h.style.fontSize, fontWeight: h.style.fontWeight })), e } }]), t }(), mt = function () { function t(e) { a(this, t), this.w = e.w, this.barCtx = e } return r(t, [{ key: "initVariables", value: function (t) { var e = this.w; this.barCtx.series = t, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1; for (var i = 0; i < t.length; i++)if (t[i].length > 0 && (this.barCtx.seriesLen = this.barCtx.seriesLen + 1, this.barCtx.totalItems += t[i].length), e.globals.isXNumeric) for (var a = 0; a < t[i].length; a++)e.globals.seriesX[i][a] > e.globals.minX && e.globals.seriesX[i][a] < e.globals.maxX && this.barCtx.visibleItems++; else this.barCtx.visibleItems = e.globals.dataPoints; 0 === this.barCtx.seriesLen && (this.barCtx.seriesLen = 1), this.barCtx.zeroSerieses = [], e.globals.comboCharts || this.checkZeroSeries({ series: t }) } }, { key: "initialPositions", value: function () { var t, e, i, a, s, r, o, n, l = this.w, h = l.globals.dataPoints; this.barCtx.isRangeBar && (h = l.globals.labels.length); var c = this.barCtx.seriesLen; if (l.config.plotOptions.bar.rangeBarGroupRows && (c = 1), this.barCtx.isHorizontal) s = (i = l.globals.gridHeight / h) / c, l.globals.isXNumeric && (s = (i = l.globals.gridHeight / this.barCtx.totalItems) / this.barCtx.seriesLen), s = s * parseInt(this.barCtx.barOptions.barHeight, 10) / 100, -1 === String(this.barCtx.barOptions.barHeight).indexOf("%") && (s = parseInt(this.barCtx.barOptions.barHeight, 10)), n = this.barCtx.baseLineInvertedY + l.globals.padHorizontal + (this.barCtx.isReversed ? l.globals.gridWidth : 0) - (this.barCtx.isReversed ? 2 * this.barCtx.baseLineInvertedY : 0), this.barCtx.isFunnel && (n = l.globals.gridWidth / 2), e = (i - s * this.barCtx.seriesLen) / 2; else { if (a = l.globals.gridWidth / this.barCtx.visibleItems, l.config.xaxis.convertedCatToNumeric && (a = l.globals.gridWidth / l.globals.dataPoints), r = a / c * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100, l.globals.isXNumeric) { var d = this.barCtx.xRatio; l.globals.minXDiff && .5 !== l.globals.minXDiff && l.globals.minXDiff / d > 0 && (a = l.globals.minXDiff / d), (r = a / c * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100) < 1 && (r = 1) } -1 === String(this.barCtx.barOptions.columnWidth).indexOf("%") && (r = parseInt(this.barCtx.barOptions.columnWidth, 10)), o = l.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.translationsIndex] - (this.barCtx.isReversed ? l.globals.gridHeight : 0) + (this.barCtx.isReversed ? 2 * this.barCtx.baseLineY[this.barCtx.translationsIndex] : 0), t = l.globals.padHorizontal + (a - r * this.barCtx.seriesLen) / 2 } return l.globals.barHeight = s, l.globals.barWidth = r, { x: t, y: e, yDivision: i, xDivision: a, barHeight: s, barWidth: r, zeroH: o, zeroW: n } } }, { key: "initializeStackedPrevVars", value: function (t) { t.w.globals.seriesGroups.forEach((function (e) { t[e] || (t[e] = {}), t[e].prevY = [], t[e].prevX = [], t[e].prevYF = [], t[e].prevXF = [], t[e].prevYVal = [], t[e].prevXVal = [] })) } }, { key: "initializeStackedXYVars", value: function (t) { t.w.globals.seriesGroups.forEach((function (e) { t[e] || (t[e] = {}), t[e].xArrj = [], t[e].xArrjF = [], t[e].xArrjVal = [], t[e].yArrj = [], t[e].yArrjF = [], t[e].yArrjVal = [] })) } }, { key: "getPathFillColor", value: function (t, e, i, a) { var s, r, o, n, l = this.w, h = new H(this.barCtx.ctx), c = null, d = this.barCtx.barOptions.distributed ? i : e; this.barCtx.barOptions.colors.ranges.length > 0 && this.barCtx.barOptions.colors.ranges.map((function (a) { t[e][i] >= a.from && t[e][i] <= a.to && (c = a.color) })); return l.config.series[e].data[i] && l.config.series[e].data[i].fillColor && (c = l.config.series[e].data[i].fillColor), h.fillPath({ seriesNumber: this.barCtx.barOptions.distributed ? d : a, dataPointIndex: i, color: c, value: t[e][i], fillConfig: null === (s = l.config.series[e].data[i]) || void 0 === s ? void 0 : s.fill, fillType: null !== (r = l.config.series[e].data[i]) && void 0 !== r && null !== (o = r.fill) && void 0 !== o && o.type ? null === (n = l.config.series[e].data[i]) || void 0 === n ? void 0 : n.fill.type : Array.isArray(l.config.fill.type) ? l.config.fill.type[e] : l.config.fill.type }) } }, { key: "getStrokeWidth", value: function (t, e, i) { var a = 0, s = this.w; return void 0 === this.barCtx.series[t][e] || null === this.barCtx.series[t][e] ? this.barCtx.isNullValue = !0 : this.barCtx.isNullValue = !1, s.config.stroke.show && (this.barCtx.isNullValue || (a = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[i] : this.barCtx.strokeWidth)), a } }, { key: "shouldApplyRadius", value: function (t) { var e = this.w, i = !1; return e.config.plotOptions.bar.borderRadius > 0 && (e.config.chart.stacked && "last" === e.config.plotOptions.bar.borderRadiusWhenStacked ? this.barCtx.lastActiveBarSerieIndex === t && (i = !0) : i = !0), i } }, { key: "barBackground", value: function (t) { var e = t.j, i = t.i, a = t.x1, s = t.x2, r = t.y1, o = t.y2, n = t.elSeries, l = this.w, h = new m(this.barCtx.ctx), c = new W(this.barCtx.ctx).getActiveConfigSeriesIndex(); if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && c === i) { e >= this.barCtx.barOptions.colors.backgroundBarColors.length && (e %= this.barCtx.barOptions.colors.backgroundBarColors.length); var d = this.barCtx.barOptions.colors.backgroundBarColors[e], g = h.drawRect(void 0 !== a ? a : 0, void 0 !== r ? r : 0, void 0 !== s ? s : l.globals.gridWidth, void 0 !== o ? o : l.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, d, this.barCtx.barOptions.colors.backgroundBarOpacity); n.add(g), g.node.classList.add("apexcharts-backgroundBar") } } }, { key: "getColumnPaths", value: function (t) { var e, i = t.barWidth, a = t.barXPosition, s = t.y1, r = t.y2, o = t.strokeWidth, n = t.seriesGroup, l = t.realIndex, h = t.i, c = t.j, d = t.w, g = new m(this.barCtx.ctx); (o = Array.isArray(o) ? o[l] : o) || (o = 0); var u = i, p = a; null !== (e = d.config.series[l].data[c]) && void 0 !== e && e.columnWidthOffset && (p = a - d.config.series[l].data[c].columnWidthOffset / 2, u = i + d.config.series[l].data[c].columnWidthOffset); var f = o / 2, x = p + f, b = p + u - f; s += .001 - f, r += .001 + f; var v = g.move(x, s), y = g.move(x, s), w = g.line(b, s); if (d.globals.previousPaths.length > 0 && (y = this.barCtx.getPreviousPath(l, c, !1)), v = v + g.line(x, r) + g.line(b, r) + g.line(b, s) + ("around" === d.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), y = y + g.line(x, s) + w + w + w + w + w + g.line(x, s) + ("around" === d.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), this.shouldApplyRadius(l) && (v = g.roundPathCorners(v, d.config.plotOptions.bar.borderRadius)), d.config.chart.stacked) { var k = this.barCtx; (k = this.barCtx[n]).yArrj.push(r - f), k.yArrjF.push(Math.abs(s - r + o)), k.yArrjVal.push(this.barCtx.series[h][c]) } return { pathTo: v, pathFrom: y } } }, { key: "getBarpaths", value: function (t) { var e, i = t.barYPosition, a = t.barHeight, s = t.x1, r = t.x2, o = t.strokeWidth, n = t.seriesGroup, l = t.realIndex, h = t.i, c = t.j, d = t.w, g = new m(this.barCtx.ctx); (o = Array.isArray(o) ? o[l] : o) || (o = 0); var u = i, p = a; null !== (e = d.config.series[l].data[c]) && void 0 !== e && e.barHeightOffset && (u = i - d.config.series[l].data[c].barHeightOffset / 2, p = a + d.config.series[l].data[c].barHeightOffset); var f = o / 2, x = u + f, b = u + p - f; s += .001 - f, r += .001 + f; var v = g.move(s, x), y = g.move(s, x); d.globals.previousPaths.length > 0 && (y = this.barCtx.getPreviousPath(l, c, !1)); var w = g.line(s, b); if (v = v + g.line(r, x) + g.line(r, b) + w + ("around" === d.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), y = y + g.line(s, x) + w + w + w + w + w + g.line(s, x) + ("around" === d.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), this.shouldApplyRadius(l) && (v = g.roundPathCorners(v, d.config.plotOptions.bar.borderRadius)), d.config.chart.stacked) { var k = this.barCtx; (k = this.barCtx[n]).xArrj.push(r + f), k.xArrjF.push(Math.abs(s - r)), k.xArrjVal.push(this.barCtx.series[h][c]) } return { pathTo: v, pathFrom: y } } }, { key: "checkZeroSeries", value: function (t) { for (var e = t.series, i = this.w, a = 0; a < e.length; a++) { for (var s = 0, r = 0; r < e[i.globals.maxValsInArrayIndex].length; r++)s += e[a][r]; 0 === s && this.barCtx.zeroSerieses.push(a) } } }, { key: "getXForValue", value: function (t, e) { var i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? e : null; return null != t && (i = e + t / this.barCtx.invertedYRatio - 2 * (this.barCtx.isReversed ? t / this.barCtx.invertedYRatio : 0)), i } }, { key: "getYForValue", value: function (t, e, i) { var a = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3] ? e : null; return null != t && (a = e - t / this.barCtx.yRatio[i] + 2 * (this.barCtx.isReversed ? t / this.barCtx.yRatio[i] : 0)), a } }, { key: "getGoalValues", value: function (t, i, a, s, r, n) { var l = this, h = this.w, c = [], d = function (e, s) { var r; c.push((o(r = {}, t, "x" === t ? l.getXForValue(e, i, !1) : l.getYForValue(e, a, n, !1)), o(r, "attrs", s), r)) }; if (h.globals.seriesGoals[s] && h.globals.seriesGoals[s][r] && Array.isArray(h.globals.seriesGoals[s][r]) && h.globals.seriesGoals[s][r].forEach((function (t) { d(t.value, t) })), this.barCtx.barOptions.isDumbbell && h.globals.seriesRange.length) { var g = this.barCtx.barOptions.dumbbellColors ? this.barCtx.barOptions.dumbbellColors : h.globals.colors, u = { strokeHeight: "x" === t ? 0 : h.globals.markers.size[s], strokeWidth: "x" === t ? h.globals.markers.size[s] : 0, strokeDashArray: 0, strokeLineCap: "round", strokeColor: Array.isArray(g[s]) ? g[s][0] : g[s] }; d(h.globals.seriesRangeStart[s][r], u), d(h.globals.seriesRangeEnd[s][r], e(e({}, u), {}, { strokeColor: Array.isArray(g[s]) ? g[s][1] : g[s] })) } return c } }, { key: "drawGoalLine", value: function (t) { var e = t.barXPosition, i = t.barYPosition, a = t.goalX, s = t.goalY, r = t.barWidth, o = t.barHeight, n = new m(this.barCtx.ctx), l = n.group({ className: "apexcharts-bar-goals-groups" }); l.node.classList.add("apexcharts-element-hidden"), this.barCtx.w.globals.delayedElements.push({ el: l.node }), l.attr("clip-path", "url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid, ")")); var h = null; return this.barCtx.isHorizontal ? Array.isArray(a) && a.forEach((function (t) { if (t.x >= -1 && t.x <= n.w.globals.gridWidth + 1) { var e = void 0 !== t.attrs.strokeHeight ? t.attrs.strokeHeight : o / 2, a = i + e + o / 2; h = n.drawLine(t.x, a - 2 * e, t.x, a, t.attrs.strokeColor ? t.attrs.strokeColor : void 0, t.attrs.strokeDashArray, t.attrs.strokeWidth ? t.attrs.strokeWidth : 2, t.attrs.strokeLineCap), l.add(h) } })) : Array.isArray(s) && s.forEach((function (t) { if (t.y >= -1 && t.y <= n.w.globals.gridHeight + 1) { var i = void 0 !== t.attrs.strokeWidth ? t.attrs.strokeWidth : r / 2, a = e + i + r / 2; h = n.drawLine(a - 2 * i, t.y, a, t.y, t.attrs.strokeColor ? t.attrs.strokeColor : void 0, t.attrs.strokeDashArray, t.attrs.strokeHeight ? t.attrs.strokeHeight : 2, t.attrs.strokeLineCap), l.add(h) } })), l } }, { key: "drawBarShadow", value: function (t) { var e = t.prevPaths, i = t.currPaths, a = t.color, s = this.w, r = e.x, o = e.x1, n = e.barYPosition, l = i.x, h = i.x1, c = i.barYPosition, d = n + i.barHeight, g = new m(this.barCtx.ctx), u = new x, p = g.move(o, d) + g.line(r, d) + g.line(l, c) + g.line(h, c) + g.line(o, d) + ("around" === s.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"); return g.drawPath({ d: p, fill: u.shadeColor(.5, x.rgb2hex(a)), stroke: "none", strokeWidth: 0, fillOpacity: 1, classes: "apexcharts-bar-shadows" }) } }, { key: "getZeroValueEncounters", value: function (t) { var e, i = t.i, a = t.j, s = this.w, r = 0, o = 0; return (s.config.plotOptions.bar.horizontal ? s.globals.series.map((function (t, e) { return e })) : (null === (e = s.globals.columnSeries) || void 0 === e ? void 0 : e.i.map((function (t) { return t }))) || []).forEach((function (t) { var e = s.globals.seriesPercent[t][a]; e && r++, t < i && 0 === e && o++ })), { nonZeroColumns: r, zeroEncounters: o } } }, { key: "getGroupIndex", value: function (t) { var e = this.w, i = e.globals.seriesGroups.findIndex((function (i) { return i.indexOf(e.globals.seriesNames[t]) > -1 })), a = this.barCtx.columnGroupIndices, s = a.indexOf(i); return s < 0 && (a.push(i), s = a.length - 1), { groupIndex: i, columnGroupIndex: s } } }]), t }(), yt = function () { function t(e, i) { a(this, t), this.ctx = e, this.w = e.w; var s = this.w; this.barOptions = s.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = s.config.stroke.width, this.isNullValue = !1, this.isRangeBar = s.globals.seriesRange.length && this.isHorizontal, this.isVerticalGroupedRangeBar = !s.globals.isBarHorizontal && s.globals.seriesRange.length && s.config.plotOptions.bar.rangeBarGroupRows, this.isFunnel = this.barOptions.isFunnel, this.xyRatios = i, null !== this.xyRatios && (this.xRatio = i.xRatio, this.yRatio = i.yRatio, this.invertedXRatio = i.invertedXRatio, this.invertedYRatio = i.invertedYRatio, this.baseLineY = i.baseLineY, this.baseLineInvertedY = i.baseLineInvertedY), this.yaxisIndex = 0, this.translationsIndex = 0, this.seriesLen = 0, this.pathArr = []; var r = new W(this.ctx); this.lastActiveBarSerieIndex = r.getActiveConfigSeriesIndex("desc", ["bar", "column"]), this.columnGroupIndices = []; var o = r.getBarSeriesIndices(), n = new y(this.ctx); this.stackedSeriesTotals = n.getStackedSeriesTotals(this.w.config.series.map((function (t, e) { return -1 === o.indexOf(e) ? e : -1 })).filter((function (t) { return -1 !== t }))), this.barHelpers = new mt(this) } return r(t, [{ key: "draw", value: function (t, i) { var a = this.w, s = new m(this.ctx), r = new y(this.ctx, a); t = r.getLogSeries(t), this.series = t, this.yRatio = r.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t); var o = s.group({ class: "apexcharts-bar-series apexcharts-plot-series" }); a.config.dataLabels.enabled && this.totalItems > this.barOptions.dataLabels.maxItems && console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts"); for (var n = 0, l = 0; n < t.length; n++, l++) { var h, c, d, g, u = void 0, p = void 0, f = [], b = [], v = a.globals.comboCharts ? i[n] : n, w = this.barHelpers.getGroupIndex(v).columnGroupIndex, k = s.group({ class: "apexcharts-series", rel: n + 1, seriesName: x.escapeString(a.globals.seriesNames[v]), "data:realIndex": v }); this.ctx.series.addCollapsedClassToSeries(k, v), t[n].length > 0 && (this.visibleI = this.visibleI + 1); var A = 0, S = 0; this.yRatio.length > 1 && (this.yaxisIndex = a.globals.seriesYAxisReverseMap[v], this.translationsIndex = v); var C = this.translationsIndex; this.isReversed = a.config.yaxis[this.yaxisIndex] && a.config.yaxis[this.yaxisIndex].reversed; var L = this.barHelpers.initialPositions(); p = L.y, A = L.barHeight, c = L.yDivision, g = L.zeroW, u = L.x, S = L.barWidth, h = L.xDivision, d = L.zeroH, this.horizontal || b.push(u + S / 2); var P = s.group({ class: "apexcharts-datalabels", "data:realIndex": v }); a.globals.delayedElements.push({ el: P.node }), P.node.classList.add("apexcharts-element-hidden"); var M = s.group({ class: "apexcharts-bar-goals-markers" }), I = s.group({ class: "apexcharts-bar-shadows" }); a.globals.delayedElements.push({ el: I.node }), I.node.classList.add("apexcharts-element-hidden"); for (var T = 0; T < t[n].length; T++) { var z = this.barHelpers.getStrokeWidth(n, T, v), X = null, E = { indexes: { i: n, j: T, realIndex: v, translationsIndex: C, bc: l }, x: u, y: p, strokeWidth: z, elSeries: k }; this.isHorizontal ? (X = this.drawBarPaths(e(e({}, E), {}, { barHeight: A, zeroW: g, yDivision: c })), S = this.series[n][T] / this.invertedYRatio) : (X = this.drawColumnPaths(e(e({}, E), {}, { xDivision: h, barWidth: S, zeroH: d })), A = this.series[n][T] / this.yRatio[C]); var Y = this.barHelpers.getPathFillColor(t, n, T, v); if (this.isFunnel && this.barOptions.isFunnel3d && this.pathArr.length && T > 0) { var F = this.barHelpers.drawBarShadow({ color: "string" == typeof Y && -1 === (null == Y ? void 0 : Y.indexOf("url")) ? Y : x.hexToRgba(a.globals.colors[n]), prevPaths: this.pathArr[this.pathArr.length - 1], currPaths: X }); F && I.add(F) } this.pathArr.push(X); var R = this.barHelpers.drawGoalLine({ barXPosition: X.barXPosition, barYPosition: X.barYPosition, goalX: X.goalX, goalY: X.goalY, barHeight: A, barWidth: S }); R && M.add(R), p = X.y, u = X.x, T > 0 && b.push(u + S / 2), f.push(p), this.renderSeries({ realIndex: v, pathFill: Y, j: T, i: n, columnGroupIndex: w, pathFrom: X.pathFrom, pathTo: X.pathTo, strokeWidth: z, elSeries: k, x: u, y: p, series: t, barHeight: X.barHeight ? X.barHeight : A, barWidth: X.barWidth ? X.barWidth : S, elDataLabelsWrap: P, elGoalsMarkers: M, elBarShadows: I, visibleSeries: this.visibleI, type: "bar" }) } a.globals.seriesXvalues[v] = b, a.globals.seriesYvalues[v] = f, o.add(k) } return o } }, { key: "renderSeries", value: function (t) { var e = t.realIndex, i = t.pathFill, a = t.lineFill, s = t.j, r = t.i, o = t.columnGroupIndex, n = t.pathFrom, l = t.pathTo, h = t.strokeWidth, c = t.elSeries, d = t.x, g = t.y, u = t.y1, p = t.y2, f = t.series, x = t.barHeight, b = t.barWidth, y = t.barXPosition, w = t.barYPosition, k = t.elDataLabelsWrap, A = t.elGoalsMarkers, S = t.elBarShadows, C = t.visibleSeries, L = t.type, P = this.w, M = new m(this.ctx); if (!a) { var I = "function" == typeof P.globals.stroke.colors[e] ? function (t) { var e, i = P.config.stroke.colors; return Array.isArray(i) && i.length > 0 && ((e = i[t]) || (e = ""), "function" == typeof e) ? e({ value: P.globals.series[t][s], dataPointIndex: s, w: P }) : e }(e) : P.globals.stroke.colors[e]; a = this.barOptions.distributed ? P.globals.stroke.colors[s] : I } P.config.series[r].data[s] && P.config.series[r].data[s].strokeColor && (a = P.config.series[r].data[s].strokeColor), this.isNullValue && (i = "none"); var T = s / P.config.chart.animations.animateGradually.delay * (P.config.chart.animations.speed / P.globals.dataPoints) / 2.4, z = M.renderPaths({ i: r, j: s, realIndex: e, pathFrom: n, pathTo: l, stroke: a, strokeWidth: h, strokeLineCap: P.config.stroke.lineCap, fill: i, animationDelay: T, initialSpeed: P.config.chart.animations.speed, dataChangeSpeed: P.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-".concat(L, "-area") }); z.attr("clip-path", "url(#gridRectMask".concat(P.globals.cuid, ")")); var X = P.config.forecastDataPoints; X.count > 0 && s >= P.globals.dataPoints - X.count && (z.node.setAttribute("stroke-dasharray", X.dashArray), z.node.setAttribute("stroke-width", X.strokeWidth), z.node.setAttribute("fill-opacity", X.fillOpacity)), void 0 !== u && void 0 !== p && (z.attr("data-range-y1", u), z.attr("data-range-y2", p)), new v(this.ctx).setSelectionFilter(z, e, s), c.add(z); var E = new vt(this).handleBarDataLabels({ x: d, y: g, y1: u, y2: p, i: r, j: s, series: f, realIndex: e, columnGroupIndex: o, barHeight: x, barWidth: b, barXPosition: y, barYPosition: w, renderedPath: z, visibleSeries: C }); return null !== E.dataLabels && k.add(E.dataLabels), E.totalDataLabels && k.add(E.totalDataLabels), c.add(k), A && c.add(A), S && c.add(S), c } }, { key: "drawBarPaths", value: function (t) { var e, i = t.indexes, a = t.barHeight, s = t.strokeWidth, r = t.zeroW, o = t.x, n = t.y, l = t.yDivision, h = t.elSeries, c = this.w, d = i.i, g = i.j; if (c.globals.isXNumeric) e = (n = (c.globals.seriesX[d][g] - c.globals.minX) / this.invertedXRatio - a) + a * this.visibleI; else if (c.config.plotOptions.bar.hideZeroBarsWhenGrouped) { var u = 0, p = 0; c.globals.seriesPercent.forEach((function (t, e) { t[g] && u++, e < d && 0 === t[g] && p++ })), u > 0 && (a = this.seriesLen * a / u), e = n + a * this.visibleI, e -= a * p } else e = n + a * this.visibleI; this.isFunnel && (r -= (this.barHelpers.getXForValue(this.series[d][g], r) - r) / 2), o = this.barHelpers.getXForValue(this.series[d][g], r); var f = this.barHelpers.getBarpaths({ barYPosition: e, barHeight: a, x1: r, x2: o, strokeWidth: s, series: this.series, realIndex: i.realIndex, i: d, j: g, w: c }); return c.globals.isXNumeric || (n += l), this.barHelpers.barBackground({ j: g, i: d, y1: e - a * this.visibleI, y2: a * this.seriesLen, elSeries: h }), { pathTo: f.pathTo, pathFrom: f.pathFrom, x1: r, x: o, y: n, goalX: this.barHelpers.getGoalValues("x", r, null, d, g), barYPosition: e, barHeight: a } } }, { key: "drawColumnPaths", value: function (t) { var e, i = t.indexes, a = t.x, s = t.y, r = t.xDivision, o = t.barWidth, n = t.zeroH, l = t.strokeWidth, h = t.elSeries, c = this.w, d = i.realIndex, g = i.translationsIndex, u = i.i, p = i.j, f = i.bc; if (c.globals.isXNumeric) { var x = this.getBarXForNumericXAxis({ x: a, j: p, realIndex: d, barWidth: o }); a = x.x, e = x.barXPosition } else if (c.config.plotOptions.bar.hideZeroBarsWhenGrouped) { var b = this.barHelpers.getZeroValueEncounters({ i: u, j: p }), v = b.nonZeroColumns, m = b.zeroEncounters; v > 0 && (o = this.seriesLen * o / v), e = a + o * this.visibleI, e -= o * m } else e = a + o * this.visibleI; s = this.barHelpers.getYForValue(this.series[u][p], n, g); var y = this.barHelpers.getColumnPaths({ barXPosition: e, barWidth: o, y1: n, y2: s, strokeWidth: l, series: this.series, realIndex: d, i: u, j: p, w: c }); return c.globals.isXNumeric || (a += r), this.barHelpers.barBackground({ bc: f, j: p, i: u, x1: e - l / 2 - o * this.visibleI, x2: o * this.seriesLen + l / 2, elSeries: h }), { pathTo: y.pathTo, pathFrom: y.pathFrom, x: a, y: s, goalY: this.barHelpers.getGoalValues("y", null, n, u, p, g), barXPosition: e, barWidth: o } } }, { key: "getBarXForNumericXAxis", value: function (t) { var e = t.x, i = t.barWidth, a = t.realIndex, s = t.j, r = this.w, o = a; return r.globals.seriesX[a].length || (o = r.globals.maxValsInArrayIndex), r.globals.seriesX[o][s] && (e = (r.globals.seriesX[o][s] - r.globals.minX) / this.xRatio - i * this.seriesLen / 2), { barXPosition: e + i * this.visibleI, x: e } } }, { key: "getPreviousPath", value: function (t, e) { for (var i, a = this.w, s = 0; s < a.globals.previousPaths.length; s++) { var r = a.globals.previousPaths[s]; r.paths && r.paths.length > 0 && parseInt(r.realIndex, 10) === parseInt(t, 10) && void 0 !== a.globals.previousPaths[s].paths[e] && (i = a.globals.previousPaths[s].paths[e].d) } return i } }]), t }(), wt = function (t) { n(s, t); var i = d(s); function s() { return a(this, s), i.apply(this, arguments) } return r(s, [{ key: "draw", value: function (t, i) { var a = this, s = this.w; this.graphics = new m(this.ctx), this.bar = new yt(this.ctx, this.xyRatios); var r = new y(this.ctx, s); t = r.getLogSeries(t), this.yRatio = r.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t), "100%" === s.config.chart.stackType && (t = s.globals.comboCharts ? i.map((function (t) { return s.globals.seriesPercent[t] })) : s.globals.seriesPercent.slice()), this.series = t, this.barHelpers.initializeStackedPrevVars(this); for (var o = this.graphics.group({ class: "apexcharts-bar-series apexcharts-plot-series" }), n = 0, l = 0, h = function (r, h) { var c = void 0, d = void 0, g = void 0, u = void 0, p = s.globals.comboCharts ? i[r] : r, f = a.barHelpers.getGroupIndex(p), b = f.groupIndex, v = f.columnGroupIndex; a.groupCtx = a[s.globals.seriesGroups[b]]; var m = [], y = [], w = 0; a.yRatio.length > 1 && (a.yaxisIndex = s.globals.seriesYAxisReverseMap[p][0], w = p), a.isReversed = s.config.yaxis[a.yaxisIndex] && s.config.yaxis[a.yaxisIndex].reversed; var k = a.graphics.group({ class: "apexcharts-series", seriesName: x.escapeString(s.globals.seriesNames[p]), rel: r + 1, "data:realIndex": p }); a.ctx.series.addCollapsedClassToSeries(k, p); var A = a.graphics.group({ class: "apexcharts-datalabels", "data:realIndex": p }), S = a.graphics.group({ class: "apexcharts-bar-goals-markers" }), C = 0, L = 0, P = a.initialPositions(n, l, c, d, g, u, w); l = P.y, C = P.barHeight, d = P.yDivision, u = P.zeroW, n = P.x, L = P.barWidth, c = P.xDivision, g = P.zeroH, s.globals.barHeight = C, s.globals.barWidth = L, a.barHelpers.initializeStackedXYVars(a), 1 === a.groupCtx.prevY.length && a.groupCtx.prevY[0].every((function (t) { return isNaN(t) })) && (a.groupCtx.prevY[0] = a.groupCtx.prevY[0].map((function () { return g })), a.groupCtx.prevYF[0] = a.groupCtx.prevYF[0].map((function () { return 0 }))); for (var M = 0; M < s.globals.dataPoints; M++) { var I = a.barHelpers.getStrokeWidth(r, M, p), T = { indexes: { i: r, j: M, realIndex: p, translationsIndex: w, bc: h }, strokeWidth: I, x: n, y: l, elSeries: k, columnGroupIndex: v, seriesGroup: s.globals.seriesGroups[b] }, z = null; a.isHorizontal ? (z = a.drawStackedBarPaths(e(e({}, T), {}, { zeroW: u, barHeight: C, yDivision: d })), L = a.series[r][M] / a.invertedYRatio) : (z = a.drawStackedColumnPaths(e(e({}, T), {}, { xDivision: c, barWidth: L, zeroH: g })), C = a.series[r][M] / a.yRatio[w]); var X = a.barHelpers.drawGoalLine({ barXPosition: z.barXPosition, barYPosition: z.barYPosition, goalX: z.goalX, goalY: z.goalY, barHeight: C, barWidth: L }); X && S.add(X), l = z.y, n = z.x, m.push(n), y.push(l); var E = a.barHelpers.getPathFillColor(t, r, M, p); k = a.renderSeries({ realIndex: p, pathFill: E, j: M, i: r, columnGroupIndex: v, pathFrom: z.pathFrom, pathTo: z.pathTo, strokeWidth: I, elSeries: k, x: n, y: l, series: t, barHeight: C, barWidth: L, elDataLabelsWrap: A, elGoalsMarkers: S, type: "bar", visibleSeries: 0 }) } s.globals.seriesXvalues[p] = m, s.globals.seriesYvalues[p] = y, a.groupCtx.prevY.push(a.groupCtx.yArrj), a.groupCtx.prevYF.push(a.groupCtx.yArrjF), a.groupCtx.prevYVal.push(a.groupCtx.yArrjVal), a.groupCtx.prevX.push(a.groupCtx.xArrj), a.groupCtx.prevXF.push(a.groupCtx.xArrjF), a.groupCtx.prevXVal.push(a.groupCtx.xArrjVal), o.add(k) }, c = 0, d = 0; c < t.length; c++, d++)h(c, d); return o } }, { key: "initialPositions", value: function (t, e, i, a, s, r, o) { var n, l, h = this.w; if (this.isHorizontal) { a = h.globals.gridHeight / h.globals.dataPoints; var c = h.config.plotOptions.bar.barHeight; n = -1 === String(c).indexOf("%") ? parseInt(c, 10) : a * parseInt(c, 10) / 100, r = h.globals.padHorizontal + (this.isReversed ? h.globals.gridWidth - this.baseLineInvertedY : this.baseLineInvertedY), e = (a - n) / 2 } else { l = i = h.globals.gridWidth / h.globals.dataPoints; var d = h.config.plotOptions.bar.columnWidth; h.globals.isXNumeric && h.globals.dataPoints > 1 ? l = (i = h.globals.minXDiff / this.xRatio) * parseInt(this.barOptions.columnWidth, 10) / 100 : -1 === String(d).indexOf("%") ? l = parseInt(d, 10) : l *= parseInt(d, 10) / 100, s = h.globals.gridHeight - this.baseLineY[o] - (this.isReversed ? h.globals.gridHeight : 0), t = h.globals.padHorizontal + (i - l) / 2 } var g = h.globals.barGroups.length || 1; return { x: t, y: e, yDivision: a, xDivision: i, barHeight: n / g, barWidth: l / g, zeroH: s, zeroW: r } } }, { key: "drawStackedBarPaths", value: function (t) { for (var e, i = t.indexes, a = t.barHeight, s = t.strokeWidth, r = t.zeroW, o = t.x, n = t.y, l = t.columnGroupIndex, h = t.seriesGroup, c = t.yDivision, d = t.elSeries, g = this.w, u = n + l * a, p = i.i, f = i.j, x = i.realIndex, b = i.translationsIndex, v = 0, m = 0; m < this.groupCtx.prevXF.length; m++)v += this.groupCtx.prevXF[m][f]; var y; if ((y = h.indexOf(g.config.series[x].name)) > 0) { var w = r; this.groupCtx.prevXVal[y - 1][f] < 0 ? w = this.series[p][f] >= 0 ? this.groupCtx.prevX[y - 1][f] + v - 2 * (this.isReversed ? v : 0) : this.groupCtx.prevX[y - 1][f] : this.groupCtx.prevXVal[y - 1][f] >= 0 && (w = this.series[p][f] >= 0 ? this.groupCtx.prevX[y - 1][f] : this.groupCtx.prevX[y - 1][f] - v + 2 * (this.isReversed ? v : 0)), e = w } else e = r; o = null === this.series[p][f] ? e : e + this.series[p][f] / this.invertedYRatio - 2 * (this.isReversed ? this.series[p][f] / this.invertedYRatio : 0); var k = this.barHelpers.getBarpaths({ barYPosition: u, barHeight: a, x1: e, x2: o, strokeWidth: s, series: this.series, realIndex: i.realIndex, seriesGroup: h, i: p, j: f, w: g }); return this.barHelpers.barBackground({ j: f, i: p, y1: u, y2: a, elSeries: d }), n += c, { pathTo: k.pathTo, pathFrom: k.pathFrom, goalX: this.barHelpers.getGoalValues("x", r, null, p, f, b), barXPosition: e, barYPosition: u, x: o, y: n } } }, { key: "drawStackedColumnPaths", value: function (t) { var e = t.indexes, i = t.x, a = t.y, s = t.xDivision, r = t.barWidth, o = t.zeroH, n = t.columnGroupIndex, l = t.seriesGroup, h = t.elSeries, c = this.w, d = e.i, g = e.j, u = e.bc, p = e.realIndex, f = e.translationsIndex; if (c.globals.isXNumeric) { var x = c.globals.seriesX[p][g]; x || (x = 0), i = (x - c.globals.minX) / this.xRatio - r / 2 * c.globals.barGroups.length } for (var b, v = i + n * r, m = 0, y = 0; y < this.groupCtx.prevYF.length; y++)m += isNaN(this.groupCtx.prevYF[y][g]) ? 0 : this.groupCtx.prevYF[y][g]; var w = d; if (l && (w = l.indexOf(c.globals.seriesNames[p])), w > 0 && !c.globals.isXNumeric || w > 0 && c.globals.isXNumeric && c.globals.seriesX[p - 1][g] === c.globals.seriesX[p][g]) { var k, A, S, C = Math.min(this.yRatio.length + 1, p + 1); if (void 0 !== this.groupCtx.prevY[w - 1] && this.groupCtx.prevY[w - 1].length) for (var L = 1; L < C; L++) { var P; if (!isNaN(null === (P = this.groupCtx.prevY[w - L]) || void 0 === P ? void 0 : P[g])) { S = this.groupCtx.prevY[w - L][g]; break } } for (var M = 1; M < C; M++) { var I, T; if ((null === (I = this.groupCtx.prevYVal[w - M]) || void 0 === I ? void 0 : I[g]) < 0) { A = this.series[d][g] >= 0 ? S - m + 2 * (this.isReversed ? m : 0) : S; break } if ((null === (T = this.groupCtx.prevYVal[w - M]) || void 0 === T ? void 0 : T[g]) >= 0) { A = this.series[d][g] >= 0 ? S : S + m - 2 * (this.isReversed ? m : 0); break } } void 0 === A && (A = c.globals.gridHeight), b = null !== (k = this.groupCtx.prevYF[0]) && void 0 !== k && k.every((function (t) { return 0 === t })) && this.groupCtx.prevYF.slice(1, w).every((function (t) { return t.every((function (t) { return isNaN(t) })) })) ? o : A } else b = o; a = this.series[d][g] ? b - this.series[d][g] / this.yRatio[f] + 2 * (this.isReversed ? this.series[d][g] / this.yRatio[f] : 0) : b; var z = this.barHelpers.getColumnPaths({ barXPosition: v, barWidth: r, y1: b, y2: a, yRatio: this.yRatio[f], strokeWidth: this.strokeWidth, series: this.series, seriesGroup: l, realIndex: e.realIndex, i: d, j: g, w: c }); return this.barHelpers.barBackground({ bc: u, j: g, i: d, x1: v, x2: r, elSeries: h }), i += s, { pathTo: z.pathTo, pathFrom: z.pathFrom, goalY: this.barHelpers.getGoalValues("y", null, o, d, g), barXPosition: v, x: c.globals.isXNumeric ? i - s : i, y: a } } }]), s }(yt), kt = function (t) { n(s, t); var i = d(s); function s() { return a(this, s), i.apply(this, arguments) } return r(s, [{ key: "draw", value: function (t, i, a) { var s = this, r = this.w, o = new m(this.ctx), n = r.globals.comboCharts ? i : r.config.chart.type, l = new H(this.ctx); this.candlestickOptions = this.w.config.plotOptions.candlestick, this.boxOptions = this.w.config.plotOptions.boxPlot, this.isHorizontal = r.config.plotOptions.bar.horizontal; var h = new y(this.ctx, r); t = h.getLogSeries(t), this.series = t, this.yRatio = h.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t); for (var c = o.group({ class: "apexcharts-".concat(n, "-series apexcharts-plot-series") }), d = function (i) { s.isBoxPlot = "boxPlot" === r.config.chart.type || "boxPlot" === r.config.series[i].type; var n, h, d, g, u = void 0, p = void 0, f = [], b = [], v = r.globals.comboCharts ? a[i] : i, m = s.barHelpers.getGroupIndex(v).columnGroupIndex, y = o.group({ class: "apexcharts-series", seriesName: x.escapeString(r.globals.seriesNames[v]), rel: i + 1, "data:realIndex": v }); s.ctx.series.addCollapsedClassToSeries(y, v), t[i].length > 0 && (s.visibleI = s.visibleI + 1); var w, k, A = 0; s.yRatio.length > 1 && (s.yaxisIndex = r.globals.seriesYAxisReverseMap[v][0], A = v); var S = s.barHelpers.initialPositions(); p = S.y, w = S.barHeight, h = S.yDivision, g = S.zeroW, u = S.x, k = S.barWidth, n = S.xDivision, d = S.zeroH, b.push(u + k / 2); for (var C = o.group({ class: "apexcharts-datalabels", "data:realIndex": v }), L = function (a) { var o = s.barHelpers.getStrokeWidth(i, a, v), c = null, x = { indexes: { i: i, j: a, realIndex: v, translationsIndex: A }, x: u, y: p, strokeWidth: o, elSeries: y }; c = s.isHorizontal ? s.drawHorizontalBoxPaths(e(e({}, x), {}, { yDivision: h, barHeight: w, zeroW: g })) : s.drawVerticalBoxPaths(e(e({}, x), {}, { xDivision: n, barWidth: k, zeroH: d })), p = c.y, u = c.x, a > 0 && b.push(u + k / 2), f.push(p), c.pathTo.forEach((function (e, n) { var h = !s.isBoxPlot && s.candlestickOptions.wick.useFillColor ? c.color[n] : r.globals.stroke.colors[i], d = l.fillPath({ seriesNumber: v, dataPointIndex: a, color: c.color[n], value: t[i][a] }); s.renderSeries({ realIndex: v, pathFill: d, lineFill: h, j: a, i: i, pathFrom: c.pathFrom, pathTo: e, strokeWidth: o, elSeries: y, x: u, y: p, series: t, columnGroupIndex: m, barHeight: w, barWidth: k, elDataLabelsWrap: C, visibleSeries: s.visibleI, type: r.config.chart.type }) })) }, P = 0; P < r.globals.dataPoints; P++)L(P); r.globals.seriesXvalues[v] = b, r.globals.seriesYvalues[v] = f, c.add(y) }, g = 0; g < t.length; g++)d(g); return c } }, { key: "drawVerticalBoxPaths", value: function (t) { var e = t.indexes, i = t.x; t.y; var a = t.xDivision, s = t.barWidth, r = t.zeroH, o = t.strokeWidth, n = this.w, l = new m(this.ctx), h = e.i, c = e.j, d = !0, g = n.config.plotOptions.candlestick.colors.upward, u = n.config.plotOptions.candlestick.colors.downward, p = ""; this.isBoxPlot && (p = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]); var f = this.yRatio[e.translationsIndex], x = e.realIndex, b = this.getOHLCValue(x, c), v = r, y = r; b.o > b.c && (d = !1); var w = Math.min(b.o, b.c), k = Math.max(b.o, b.c), A = b.m; n.globals.isXNumeric && (i = (n.globals.seriesX[x][c] - n.globals.minX) / this.xRatio - s / 2); var S = i + s * this.visibleI; void 0 === this.series[h][c] || null === this.series[h][c] ? (w = r, k = r) : (w = r - w / f, k = r - k / f, v = r - b.h / f, y = r - b.l / f, A = r - b.m / f); var C = l.move(S, r), L = l.move(S + s / 2, w); return n.globals.previousPaths.length > 0 && (L = this.getPreviousPath(x, c, !0)), C = this.isBoxPlot ? [l.move(S, w) + l.line(S + s / 2, w) + l.line(S + s / 2, v) + l.line(S + s / 4, v) + l.line(S + s - s / 4, v) + l.line(S + s / 2, v) + l.line(S + s / 2, w) + l.line(S + s, w) + l.line(S + s, A) + l.line(S, A) + l.line(S, w + o / 2), l.move(S, A) + l.line(S + s, A) + l.line(S + s, k) + l.line(S + s / 2, k) + l.line(S + s / 2, y) + l.line(S + s - s / 4, y) + l.line(S + s / 4, y) + l.line(S + s / 2, y) + l.line(S + s / 2, k) + l.line(S, k) + l.line(S, A) + "z"] : [l.move(S, k) + l.line(S + s / 2, k) + l.line(S + s / 2, v) + l.line(S + s / 2, k) + l.line(S + s, k) + l.line(S + s, w) + l.line(S + s / 2, w) + l.line(S + s / 2, y) + l.line(S + s / 2, w) + l.line(S, w) + l.line(S, k - o / 2)], L += l.move(S, w), n.globals.isXNumeric || (i += a), { pathTo: C, pathFrom: L, x: i, y: k, barXPosition: S, color: this.isBoxPlot ? p : d ? [g] : [u] } } }, { key: "drawHorizontalBoxPaths", value: function (t) { var e = t.indexes; t.x; var i = t.y, a = t.yDivision, s = t.barHeight, r = t.zeroW, o = t.strokeWidth, n = this.w, l = new m(this.ctx), h = e.i, c = e.j, d = this.boxOptions.colors.lower; this.isBoxPlot && (d = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]); var g = this.invertedYRatio, u = e.realIndex, p = this.getOHLCValue(u, c), f = r, x = r, b = Math.min(p.o, p.c), v = Math.max(p.o, p.c), y = p.m; n.globals.isXNumeric && (i = (n.globals.seriesX[u][c] - n.globals.minX) / this.invertedXRatio - s / 2); var w = i + s * this.visibleI; void 0 === this.series[h][c] || null === this.series[h][c] ? (b = r, v = r) : (b = r + b / g, v = r + v / g, f = r + p.h / g, x = r + p.l / g, y = r + p.m / g); var k = l.move(r, w), A = l.move(b, w + s / 2); return n.globals.previousPaths.length > 0 && (A = this.getPreviousPath(u, c, !0)), k = [l.move(b, w) + l.line(b, w + s / 2) + l.line(f, w + s / 2) + l.line(f, w + s / 2 - s / 4) + l.line(f, w + s / 2 + s / 4) + l.line(f, w + s / 2) + l.line(b, w + s / 2) + l.line(b, w + s) + l.line(y, w + s) + l.line(y, w) + l.line(b + o / 2, w), l.move(y, w) + l.line(y, w + s) + l.line(v, w + s) + l.line(v, w + s / 2) + l.line(x, w + s / 2) + l.line(x, w + s - s / 4) + l.line(x, w + s / 4) + l.line(x, w + s / 2) + l.line(v, w + s / 2) + l.line(v, w) + l.line(y, w) + "z"], A += l.move(b, w), n.globals.isXNumeric || (i += a), { pathTo: k, pathFrom: A, x: v, y: i, barYPosition: w, color: d } } }, { key: "getOHLCValue", value: function (t, e) { var i = this.w; return { o: this.isBoxPlot ? i.globals.seriesCandleH[t][e] : i.globals.seriesCandleO[t][e], h: this.isBoxPlot ? i.globals.seriesCandleO[t][e] : i.globals.seriesCandleH[t][e], m: i.globals.seriesCandleM[t][e], l: this.isBoxPlot ? i.globals.seriesCandleC[t][e] : i.globals.seriesCandleL[t][e], c: this.isBoxPlot ? i.globals.seriesCandleL[t][e] : i.globals.seriesCandleC[t][e] } } }]), s }(yt), At = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "checkColorRange", value: function () { var t = this.w, e = !1, i = t.config.plotOptions[t.config.chart.type]; return i.colorScale.ranges.length > 0 && i.colorScale.ranges.map((function (t, i) { t.from <= 0 && (e = !0) })), e } }, { key: "getShadeColor", value: function (t, e, i, a) { var s = this.w, r = 1, o = s.config.plotOptions[t].shadeIntensity, n = this.determineColor(t, e, i); s.globals.hasNegs || a ? r = s.config.plotOptions[t].reverseNegativeShade ? n.percent < 0 ? n.percent / 100 * (1.25 * o) : (1 - n.percent / 100) * (1.25 * o) : n.percent <= 0 ? 1 - (1 + n.percent / 100) * o : (1 - n.percent / 100) * o : (r = 1 - n.percent / 100, "treemap" === t && (r = (1 - n.percent / 100) * (1.25 * o))); var l = n.color, h = new x; return s.config.plotOptions[t].enableShades && (l = "dark" === this.w.config.theme.mode ? x.hexToRgba(h.shadeColor(-1 * r, n.color), s.config.fill.opacity) : x.hexToRgba(h.shadeColor(r, n.color), s.config.fill.opacity)), { color: l, colorProps: n } } }, { key: "determineColor", value: function (t, e, i) { var a = this.w, s = a.globals.series[e][i], r = a.config.plotOptions[t], o = r.colorScale.inverse ? i : e; r.distributed && "treemap" === a.config.chart.type && (o = i); var n = a.globals.colors[o], l = null, h = Math.min.apply(Math, u(a.globals.series[e])), c = Math.max.apply(Math, u(a.globals.series[e])); r.distributed || "heatmap" !== t || (h = a.globals.minY, c = a.globals.maxY), void 0 !== r.colorScale.min && (h = r.colorScale.min < a.globals.minY ? r.colorScale.min : a.globals.minY, c = r.colorScale.max > a.globals.maxY ? r.colorScale.max : a.globals.maxY); var d = Math.abs(c) + Math.abs(h), g = 100 * s / (0 === d ? d - 1e-6 : d); r.colorScale.ranges.length > 0 && r.colorScale.ranges.map((function (t, e) { if (s >= t.from && s <= t.to) { n = t.color, l = t.foreColor ? t.foreColor : null, h = t.from, c = t.to; var i = Math.abs(c) + Math.abs(h); g = 100 * s / (0 === i ? i - 1e-6 : i) } })); return { color: n, foreColor: l, percent: g } } }, { key: "calculateDataLabels", value: function (t) { var e = t.text, i = t.x, a = t.y, s = t.i, r = t.j, o = t.colorProps, n = t.fontSize, l = this.w.config.dataLabels, h = new m(this.ctx), c = new N(this.ctx), d = null; if (l.enabled) { d = h.group({ class: "apexcharts-data-labels" }); var g = l.offsetX, u = l.offsetY, p = i + g, f = a + parseFloat(l.style.fontSize) / 3 + u; c.plotDataLabelsText({ x: p, y: f, text: e, i: s, j: r, color: o.foreColor, parent: d, fontSize: n, dataLabelsConfig: l }) } return d } }, { key: "addListeners", value: function (t) { var e = new m(this.ctx); t.node.addEventListener("mouseenter", e.pathMouseEnter.bind(this, t)), t.node.addEventListener("mouseleave", e.pathMouseLeave.bind(this, t)), t.node.addEventListener("mousedown", e.pathMouseDown.bind(this, t)) } }]), t }(), St = function () { function t(e, i) { a(this, t), this.ctx = e, this.w = e.w, this.xRatio = i.xRatio, this.yRatio = i.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new At(e), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0 } return r(t, [{ key: "draw", value: function (t) { var e = this.w, i = new m(this.ctx), a = i.group({ class: "apexcharts-heatmap" }); a.attr("clip-path", "url(#gridRectMask".concat(e.globals.cuid, ")")); var s = e.globals.gridWidth / e.globals.dataPoints, r = e.globals.gridHeight / e.globals.series.length, o = 0, n = !1; this.negRange = this.helpers.checkColorRange(); var l = t.slice(); e.config.yaxis[0].reversed && (n = !0, l.reverse()); for (var h = n ? 0 : l.length - 1; n ? h < l.length : h >= 0; n ? h++ : h--) { var c = i.group({ class: "apexcharts-series apexcharts-heatmap-series", seriesName: x.escapeString(e.globals.seriesNames[h]), rel: h + 1, "data:realIndex": h }); if (this.ctx.series.addCollapsedClassToSeries(c, h), e.config.chart.dropShadow.enabled) { var d = e.config.chart.dropShadow; new v(this.ctx).dropShadow(c, d, h) } for (var g = 0, u = e.config.plotOptions.heatmap.shadeIntensity, p = 0; p < l[h].length; p++) { var f = this.helpers.getShadeColor(e.config.chart.type, h, p, this.negRange), b = f.color, y = f.colorProps; if ("image" === e.config.fill.type) b = new H(this.ctx).fillPath({ seriesNumber: h, dataPointIndex: p, opacity: e.globals.hasNegs ? y.percent < 0 ? 1 - (1 + y.percent / 100) : u + y.percent / 100 : y.percent / 100, patternID: x.randomId(), width: e.config.fill.image.width ? e.config.fill.image.width : s, height: e.config.fill.image.height ? e.config.fill.image.height : r }); var w = this.rectRadius, k = i.drawRect(g, o, s, r, w); if (k.attr({ cx: g, cy: o }), k.node.classList.add("apexcharts-heatmap-rect"), c.add(k), k.attr({ fill: b, i: h, index: h, j: p, val: t[h][p], "stroke-width": this.strokeWidth, stroke: e.config.plotOptions.heatmap.useFillColorAsStroke ? b : e.globals.stroke.colors[0], color: b }), this.helpers.addListeners(k), e.config.chart.animations.enabled && !e.globals.dataChanged) { var A = 1; e.globals.resized || (A = e.config.chart.animations.speed), this.animateHeatMap(k, g, o, s, r, A) } if (e.globals.dataChanged) { var S = 1; if (this.dynamicAnim.enabled && e.globals.shouldAnimate) { S = this.dynamicAnim.speed; var C = e.globals.previousPaths[h] && e.globals.previousPaths[h][p] && e.globals.previousPaths[h][p].color; C || (C = "rgba(255, 255, 255, 0)"), this.animateHeatColor(k, x.isColorHex(C) ? C : x.rgb2hex(C), x.isColorHex(b) ? b : x.rgb2hex(b), S) } } var L = (0, e.config.dataLabels.formatter)(e.globals.series[h][p], { value: e.globals.series[h][p], seriesIndex: h, dataPointIndex: p, w: e }), P = this.helpers.calculateDataLabels({ text: L, x: g + s / 2, y: o + r / 2, i: h, j: p, colorProps: y, series: l }); null !== P && c.add(P), g += s } o += r, a.add(c) } var M = e.globals.yAxisScale[0].result.slice(); return e.config.yaxis[0].reversed ? M.unshift("") : M.push(""), e.globals.yAxisScale[0].result = M, a } }, { key: "animateHeatMap", value: function (t, e, i, a, s, r) { var o = new b(this.ctx); o.animateRect(t, { x: e + a / 2, y: i + s / 2, width: 0, height: 0 }, { x: e, y: i, width: a, height: s }, r, (function () { o.animationCompleted(t) })) } }, { key: "animateHeatColor", value: function (t, e, i, a) { t.attr({ fill: e }).animate(a).attr({ fill: i }) } }]), t }(), Ct = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "drawYAxisTexts", value: function (t, e, i, a) { var s = this.w, r = s.config.yaxis[0], o = s.globals.yLabelFormatters[0]; return new m(this.ctx).drawText({ x: t + r.labels.offsetX, y: e + r.labels.offsetY, text: o(a, i), textAnchor: "middle", fontSize: r.labels.style.fontSize, fontFamily: r.labels.style.fontFamily, foreColor: Array.isArray(r.labels.style.colors) ? r.labels.style.colors[i] : r.labels.style.colors }) } }]), t }(), Lt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w; var i = this.w; this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [0], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = void 0 !== i.globals.stroke.colors ? i.globals.stroke.colors : i.globals.colors, this.defaultSize = Math.min(i.globals.gridWidth, i.globals.gridHeight), this.centerY = this.defaultSize / 2, this.centerX = i.globals.gridWidth / 2, "radialBar" === i.config.chart.type ? this.fullAngle = 360 : this.fullAngle = Math.abs(i.config.plotOptions.pie.endAngle - i.config.plotOptions.pie.startAngle), this.initialAngle = i.config.plotOptions.pie.startAngle % this.fullAngle, i.globals.radialSize = this.defaultSize / 2.05 - i.config.stroke.width - (i.config.chart.sparkline.enabled ? 0 : i.config.chart.dropShadow.blur), this.donutSize = i.globals.radialSize * parseInt(i.config.plotOptions.pie.donut.size, 10) / 100, this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [] } return r(t, [{ key: "draw", value: function (t) { var e = this, i = this.w, a = new m(this.ctx); if (this.ret = a.group({ class: "apexcharts-pie" }), i.globals.noData) return this.ret; for (var s = 0, r = 0; r < t.length; r++)s += x.negToZero(t[r]); var o = [], n = a.group(); 0 === s && (s = 1e-5), t.forEach((function (t) { e.maxY = Math.max(e.maxY, t) })), i.config.yaxis[0].max && (this.maxY = i.config.yaxis[0].max), "back" === i.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(this.ret); for (var l = 0; l < t.length; l++) { var h = this.fullAngle * x.negToZero(t[l]) / s; o.push(h), "polarArea" === this.chartType ? (o[l] = this.fullAngle / t.length, this.sliceSizes.push(i.globals.radialSize * t[l] / this.maxY)) : this.sliceSizes.push(i.globals.radialSize) } if (i.globals.dataChanged) { for (var c, d = 0, g = 0; g < i.globals.previousPaths.length; g++)d += x.negToZero(i.globals.previousPaths[g]); for (var u = 0; u < i.globals.previousPaths.length; u++)c = this.fullAngle * x.negToZero(i.globals.previousPaths[u]) / d, this.prevSectorAngleArr.push(c) } this.donutSize < 0 && (this.donutSize = 0); var p = i.config.plotOptions.pie.customScale, f = i.globals.gridWidth / 2, b = i.globals.gridHeight / 2, v = f - i.globals.gridWidth / 2 * p, y = b - i.globals.gridHeight / 2 * p; if ("donut" === this.chartType) { var w = a.drawCircle(this.donutSize); w.attr({ cx: this.centerX, cy: this.centerY, fill: i.config.plotOptions.pie.donut.background ? i.config.plotOptions.pie.donut.background : "transparent" }), n.add(w) } var k = this.drawArcs(o, t); if (this.sliceLabels.forEach((function (t) { k.add(t) })), n.attr({ transform: "translate(".concat(v, ", ").concat(y, ") scale(").concat(p, ")") }), n.add(k), this.ret.add(n), this.donutDataLabels.show) { var A = this.renderInnerDataLabels(this.donutDataLabels, { hollowSize: this.donutSize, centerX: this.centerX, centerY: this.centerY, opacity: this.donutDataLabels.show, translateX: v, translateY: y }); this.ret.add(A) } return "front" === i.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(this.ret), this.ret } }, { key: "drawArcs", value: function (t, e) { var i = this.w, a = new v(this.ctx), s = new m(this.ctx), r = new H(this.ctx), o = s.group({ class: "apexcharts-slices" }), n = this.initialAngle, l = this.initialAngle, h = this.initialAngle, c = this.initialAngle; this.strokeWidth = i.config.stroke.show ? i.config.stroke.width : 0; for (var d = 0; d < t.length; d++) { var g = s.group({ class: "apexcharts-series apexcharts-pie-series", seriesName: x.escapeString(i.globals.seriesNames[d]), rel: d + 1, "data:realIndex": d }); o.add(g), l = c, h = (n = h) + t[d], c = l + this.prevSectorAngleArr[d]; var u = h < n ? this.fullAngle + h - n : h - n, p = r.fillPath({ seriesNumber: d, size: this.sliceSizes[d], value: e[d] }), f = this.getChangedPath(l, c), b = s.drawPath({ d: f, stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[d] : this.lineColorArr, strokeWidth: 0, fill: p, fillOpacity: i.config.fill.opacity, classes: "apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(d) }); if (b.attr({ index: 0, j: d }), a.setSelectionFilter(b, 0, d), i.config.chart.dropShadow.enabled) { var y = i.config.chart.dropShadow; a.dropShadow(b, y, d) } this.addListeners(b, this.donutDataLabels), m.setAttrs(b.node, { "data:angle": u, "data:startAngle": n, "data:strokeWidth": this.strokeWidth, "data:value": e[d] }); var w = { x: 0, y: 0 }; "pie" === this.chartType || "polarArea" === this.chartType ? w = x.polarToCartesian(this.centerX, this.centerY, i.globals.radialSize / 1.25 + i.config.plotOptions.pie.dataLabels.offset, (n + u / 2) % this.fullAngle) : "donut" === this.chartType && (w = x.polarToCartesian(this.centerX, this.centerY, (i.globals.radialSize + this.donutSize) / 2 + i.config.plotOptions.pie.dataLabels.offset, (n + u / 2) % this.fullAngle)), g.add(b); var k = 0; if (!this.initialAnim || i.globals.resized || i.globals.dataChanged ? this.animBeginArr.push(0) : (0 === (k = u / this.fullAngle * i.config.chart.animations.speed) && (k = 1), this.animDur = k + this.animDur, this.animBeginArr.push(this.animDur)), this.dynamicAnim && i.globals.dataChanged ? this.animatePaths(b, { size: this.sliceSizes[d], endAngle: h, startAngle: n, prevStartAngle: l, prevEndAngle: c, animateStartingPos: !0, i: d, animBeginArr: this.animBeginArr, shouldSetPrevPaths: !0, dur: i.config.chart.animations.dynamicAnimation.speed }) : this.animatePaths(b, { size: this.sliceSizes[d], endAngle: h, startAngle: n, i: d, totalItems: t.length - 1, animBeginArr: this.animBeginArr, dur: k }), i.config.plotOptions.pie.expandOnClick && "polarArea" !== this.chartType && b.node.addEventListener("mouseup", this.pieClicked.bind(this, d)), void 0 !== i.globals.selectedDataPoints[0] && i.globals.selectedDataPoints[0].indexOf(d) > -1 && this.pieClicked(d), i.config.dataLabels.enabled) { var A = w.x, S = w.y, C = 100 * u / this.fullAngle + "%"; if (0 !== u && i.config.plotOptions.pie.dataLabels.minAngleToShowLabel < t[d]) { var L = i.config.dataLabels.formatter; void 0 !== L && (C = L(i.globals.seriesPercent[d][0], { seriesIndex: d, w: i })); var P = i.globals.dataLabels.style.colors[d], M = s.group({ class: "apexcharts-datalabels" }), I = s.drawText({ x: A, y: S, text: C, textAnchor: "middle", fontSize: i.config.dataLabels.style.fontSize, fontFamily: i.config.dataLabels.style.fontFamily, fontWeight: i.config.dataLabels.style.fontWeight, foreColor: P }); if (M.add(I), i.config.dataLabels.dropShadow.enabled) { var T = i.config.dataLabels.dropShadow; a.dropShadow(I, T) } I.node.classList.add("apexcharts-pie-label"), i.config.chart.animations.animate && !1 === i.globals.resized && (I.node.classList.add("apexcharts-pie-label-delay"), I.node.style.animationDelay = i.config.chart.animations.speed / 940 + "s"), this.sliceLabels.push(M) } } } return o } }, { key: "addListeners", value: function (t, e) { var i = new m(this.ctx); t.node.addEventListener("mouseenter", i.pathMouseEnter.bind(this, t)), t.node.addEventListener("mouseleave", i.pathMouseLeave.bind(this, t)), t.node.addEventListener("mouseleave", this.revertDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener("mousedown", i.pathMouseDown.bind(this, t)), this.donutDataLabels.total.showAlways || (t.node.addEventListener("mouseenter", this.printDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener("mousedown", this.printDataLabelsInner.bind(this, t.node, e))) } }, { key: "animatePaths", value: function (t, e) { var i = this.w, a = e.endAngle < e.startAngle ? this.fullAngle + e.endAngle - e.startAngle : e.endAngle - e.startAngle, s = a, r = e.startAngle, o = e.startAngle; void 0 !== e.prevStartAngle && void 0 !== e.prevEndAngle && (r = e.prevEndAngle, s = e.prevEndAngle < e.prevStartAngle ? this.fullAngle + e.prevEndAngle - e.prevStartAngle : e.prevEndAngle - e.prevStartAngle), e.i === i.config.series.length - 1 && (a + o > this.fullAngle ? e.endAngle = e.endAngle - (a + o) : a + o < this.fullAngle && (e.endAngle = e.endAngle + (this.fullAngle - (a + o)))), a === this.fullAngle && (a = this.fullAngle - .01), this.animateArc(t, r, o, a, s, e) } }, { key: "animateArc", value: function (t, e, i, a, s, r) { var o, n = this, l = this.w, h = new b(this.ctx), c = r.size; (isNaN(e) || isNaN(s)) && (e = i, s = a, r.dur = 0); var d = a, g = i, u = e < i ? this.fullAngle + e - i : e - i; l.globals.dataChanged && r.shouldSetPrevPaths && r.prevEndAngle && (o = n.getPiePath({ me: n, startAngle: r.prevStartAngle, angle: r.prevEndAngle < r.prevStartAngle ? this.fullAngle + r.prevEndAngle - r.prevStartAngle : r.prevEndAngle - r.prevStartAngle, size: c }), t.attr({ d: o })), 0 !== r.dur ? t.animate(r.dur, l.globals.easing, r.animBeginArr[r.i]).afterAll((function () { "pie" !== n.chartType && "donut" !== n.chartType && "polarArea" !== n.chartType || this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({ "stroke-width": n.strokeWidth }), r.i === l.config.series.length - 1 && h.animationCompleted(t) })).during((function (l) { d = u + (a - u) * l, r.animateStartingPos && (d = s + (a - s) * l, g = e - s + (i - (e - s)) * l), o = n.getPiePath({ me: n, startAngle: g, angle: d, size: c }), t.node.setAttribute("data:pathOrig", o), t.attr({ d: o }) })) : (o = n.getPiePath({ me: n, startAngle: g, angle: a, size: c }), r.isTrack || (l.globals.animationEnded = !0), t.node.setAttribute("data:pathOrig", o), t.attr({ d: o, "stroke-width": n.strokeWidth })) } }, { key: "pieClicked", value: function (t) { var e, i = this.w, a = this, s = a.sliceSizes[t] + (i.config.plotOptions.pie.expandOnClick ? 4 : 0), r = i.globals.dom.Paper.select(".apexcharts-".concat(a.chartType.toLowerCase(), "-slice-").concat(t)).members[0]; if ("true" !== r.attr("data:pieClicked")) { var o = i.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"); Array.prototype.forEach.call(o, (function (t) { t.setAttribute("data:pieClicked", "false"); var e = t.getAttribute("data:pathOrig"); e && t.setAttribute("d", e) })), i.globals.capturedDataPointIndex = t, r.attr("data:pieClicked", "true"); var n = parseInt(r.attr("data:startAngle"), 10), l = parseInt(r.attr("data:angle"), 10); e = a.getPiePath({ me: a, startAngle: n, angle: l, size: s }), 360 !== l && r.plot(e) } else { r.attr({ "data:pieClicked": "false" }), this.revertDataLabelsInner(r.node, this.donutDataLabels); var h = r.attr("data:pathOrig"); r.attr({ d: h }) } } }, { key: "getChangedPath", value: function (t, e) { var i = ""; return this.dynamicAnim && this.w.globals.dataChanged && (i = this.getPiePath({ me: this, startAngle: t, angle: e - t, size: this.size })), i } }, { key: "getPiePath", value: function (t) { var e, i = t.me, a = t.startAngle, s = t.angle, r = t.size, o = new m(this.ctx), n = a, l = Math.PI * (n - 90) / 180, h = s + a; Math.ceil(h) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle && (h = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - .01), Math.ceil(h) > this.fullAngle && (h -= this.fullAngle); var c = Math.PI * (h - 90) / 180, d = i.centerX + r * Math.cos(l), g = i.centerY + r * Math.sin(l), u = i.centerX + r * Math.cos(c), p = i.centerY + r * Math.sin(c), f = x.polarToCartesian(i.centerX, i.centerY, i.donutSize, h), b = x.polarToCartesian(i.centerX, i.centerY, i.donutSize, n), v = s > 180 ? 1 : 0, y = ["M", d, g, "A", r, r, 0, v, 1, u, p]; return e = "donut" === i.chartType ? [].concat(y, ["L", f.x, f.y, "A", i.donutSize, i.donutSize, 0, v, 0, b.x, b.y, "L", d, g, "z"]).join(" ") : "pie" === i.chartType || "polarArea" === i.chartType ? [].concat(y, ["L", i.centerX, i.centerY, "L", d, g]).join(" ") : [].concat(y).join(" "), o.roundPathCorners(e, 2 * this.strokeWidth) } }, { key: "drawPolarElements", value: function (t) { var e = this.w, i = new _(this.ctx), a = new m(this.ctx), s = new Ct(this.ctx), r = a.group(), o = a.group(), n = i.niceScale(0, Math.ceil(this.maxY), 0), l = n.result.reverse(), h = n.result.length; this.maxY = n.niceMax; for (var c = e.globals.radialSize, d = c / (h - 1), g = 0; g < h - 1; g++) { var u = a.drawCircle(c); if (u.attr({ cx: this.centerX, cy: this.centerY, fill: "none", "stroke-width": e.config.plotOptions.polarArea.rings.strokeWidth, stroke: e.config.plotOptions.polarArea.rings.strokeColor }), e.config.yaxis[0].show) { var p = s.drawYAxisTexts(this.centerX, this.centerY - c + parseInt(e.config.yaxis[0].labels.style.fontSize, 10) / 2, g, l[g]); o.add(p) } r.add(u), c -= d } this.drawSpokes(t), t.add(r), t.add(o) } }, { key: "renderInnerDataLabels", value: function (t, e) { var i = this.w, a = new m(this.ctx), s = a.group({ class: "apexcharts-datalabels-group", transform: "translate(".concat(e.translateX ? e.translateX : 0, ", ").concat(e.translateY ? e.translateY : 0, ") scale(").concat(i.config.plotOptions.pie.customScale, ")") }), r = t.total.show; s.node.style.opacity = e.opacity; var o, n, l = e.centerX, h = e.centerY; o = void 0 === t.name.color ? i.globals.colors[0] : t.name.color; var c = t.name.fontSize, d = t.name.fontFamily, g = t.name.fontWeight; n = void 0 === t.value.color ? i.config.chart.foreColor : t.value.color; var u = t.value.formatter, p = "", f = ""; if (r ? (o = t.total.color, c = t.total.fontSize, d = t.total.fontFamily, g = t.total.fontWeight, f = t.total.label, p = t.total.formatter(i)) : 1 === i.globals.series.length && (p = u(i.globals.series[0], i), f = i.globals.seriesNames[0]), f && (f = t.name.formatter(f, t.total.show, i)), t.name.show) { var x = a.drawText({ x: l, y: h + parseFloat(t.name.offsetY), text: f, textAnchor: "middle", foreColor: o, fontSize: c, fontWeight: g, fontFamily: d }); x.node.classList.add("apexcharts-datalabel-label"), s.add(x) } if (t.value.show) { var b = t.name.show ? parseFloat(t.value.offsetY) + 16 : t.value.offsetY, v = a.drawText({ x: l, y: h + b, text: p, textAnchor: "middle", foreColor: n, fontWeight: t.value.fontWeight, fontSize: t.value.fontSize, fontFamily: t.value.fontFamily }); v.node.classList.add("apexcharts-datalabel-value"), s.add(v) } return s } }, { key: "printInnerLabels", value: function (t, e, i, a) { var s, r = this.w; a ? s = void 0 === t.name.color ? r.globals.colors[parseInt(a.parentNode.getAttribute("rel"), 10) - 1] : t.name.color : r.globals.series.length > 1 && t.total.show && (s = t.total.color); var o = r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"), n = r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value"); i = (0, t.value.formatter)(i, r), a || "function" != typeof t.total.formatter || (i = t.total.formatter(r)); var l = e === t.total.label; e = t.name.formatter(e, l, r), null !== o && (o.textContent = e), null !== n && (n.textContent = i), null !== o && (o.style.fill = s) } }, { key: "printDataLabelsInner", value: function (t, e) { var i = this.w, a = t.getAttribute("data:value"), s = i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"), 10) - 1]; i.globals.series.length > 1 && this.printInnerLabels(e, s, a, t); var r = i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group"); null !== r && (r.style.opacity = 1) } }, { key: "drawSpokes", value: function (t) { var e = this, i = this.w, a = new m(this.ctx), s = i.config.plotOptions.polarArea.spokes; if (0 !== s.strokeWidth) { for (var r = [], o = 360 / i.globals.series.length, n = 0; n < i.globals.series.length; n++)r.push(x.polarToCartesian(this.centerX, this.centerY, i.globals.radialSize, i.config.plotOptions.pie.startAngle + o * n)); r.forEach((function (i, r) { var o = a.drawLine(i.x, i.y, e.centerX, e.centerY, Array.isArray(s.connectorColors) ? s.connectorColors[r] : s.connectorColors); t.add(o) })) } } }, { key: "revertDataLabelsInner", value: function (t, e, i) { var a = this, s = this.w, r = s.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group"), o = !1, n = s.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"), l = function (t) { var i = t.makeSliceOut, s = t.printLabel; Array.prototype.forEach.call(n, (function (t) { "true" === t.getAttribute("data:pieClicked") && (i && (o = !0), s && a.printDataLabelsInner(t, e)) })) }; if (l({ makeSliceOut: !0, printLabel: !1 }), e.total.show && s.globals.series.length > 1) o && !e.total.showAlways ? l({ makeSliceOut: !1, printLabel: !0 }) : this.printInnerLabels(e, e.total.label, e.total.formatter(s)); else if (l({ makeSliceOut: !1, printLabel: !0 }), !o) if (s.globals.selectedDataPoints.length && s.globals.series.length > 1) if (s.globals.selectedDataPoints[0].length > 0) { var h = s.globals.selectedDataPoints[0], c = s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(h)); this.printDataLabelsInner(c, e) } else r && s.globals.selectedDataPoints.length && 0 === s.globals.selectedDataPoints[0].length && (r.style.opacity = 0); else r && s.globals.series.length > 1 && (r.style.opacity = 0) } }]), t }(), Pt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0; var i = this.w; this.graphics = new m(this.ctx), this.lineColorArr = void 0 !== i.globals.stroke.colors ? i.globals.stroke.colors : i.globals.colors, this.defaultSize = i.globals.svgHeight < i.globals.svgWidth ? i.globals.gridHeight + 1.5 * i.globals.goldenPadding : i.globals.gridWidth, this.isLog = i.config.yaxis[0].logarithmic, this.logBase = i.config.yaxis[0].logBase, this.coreUtils = new y(this.ctx), this.maxValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, i.globals.maxY, 0) : i.globals.maxY, this.minValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, this.w.globals.minY, 0) : i.globals.minY, this.polygons = i.config.plotOptions.radar.polygons, this.strokeWidth = i.config.stroke.show ? i.config.stroke.width : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth - i.config.chart.dropShadow.blur, i.config.xaxis.labels.show && (this.size = this.size - i.globals.xAxisLabelsWidth / 1.75), void 0 !== i.config.plotOptions.radar.size && (this.size = i.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [] } return r(t, [{ key: "draw", value: function (t) { var i = this, a = this.w, s = new H(this.ctx), r = [], o = new N(this.ctx); t.length && (this.dataPointsLen = t[a.globals.maxValsInArrayIndex].length), this.disAngle = 2 * Math.PI / this.dataPointsLen; var n = a.globals.gridWidth / 2, l = a.globals.gridHeight / 2, h = n + a.config.plotOptions.radar.offsetX, c = l + a.config.plotOptions.radar.offsetY, d = this.graphics.group({ class: "apexcharts-radar-series apexcharts-plot-series", transform: "translate(".concat(h || 0, ", ").concat(c || 0, ")") }), g = [], u = null, p = null; if (this.yaxisLabels = this.graphics.group({ class: "apexcharts-yaxis" }), t.forEach((function (t, n) { var l = t.length === a.globals.dataPoints, h = i.graphics.group().attr({ class: "apexcharts-series", "data:longestSeries": l, seriesName: x.escapeString(a.globals.seriesNames[n]), rel: n + 1, "data:realIndex": n }); i.dataRadiusOfPercent[n] = [], i.dataRadius[n] = [], i.angleArr[n] = [], t.forEach((function (t, e) { var a = Math.abs(i.maxValue - i.minValue); t -= i.minValue, i.isLog && (t = i.coreUtils.getLogVal(i.logBase, t, 0)), i.dataRadiusOfPercent[n][e] = t / a, i.dataRadius[n][e] = i.dataRadiusOfPercent[n][e] * i.size, i.angleArr[n][e] = e * i.disAngle })), g = i.getDataPointsPos(i.dataRadius[n], i.angleArr[n]); var c = i.createPaths(g, { x: 0, y: 0 }); u = i.graphics.group({ class: "apexcharts-series-markers-wrap apexcharts-element-hidden" }), p = i.graphics.group({ class: "apexcharts-datalabels", "data:realIndex": n }), a.globals.delayedElements.push({ el: u.node, index: n }); var d = { i: n, realIndex: n, animationDelay: n, initialSpeed: a.config.chart.animations.speed, dataChangeSpeed: a.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-radar", shouldClipToGrid: !1, bindEventsOnPaths: !1, stroke: a.globals.stroke.colors[n], strokeLineCap: a.config.stroke.lineCap }, f = null; a.globals.previousPaths.length > 0 && (f = i.getPreviousPath(n)); for (var b = 0; b < c.linePathsTo.length; b++) { var m = i.graphics.renderPaths(e(e({}, d), {}, { pathFrom: null === f ? c.linePathsFrom[b] : f, pathTo: c.linePathsTo[b], strokeWidth: Array.isArray(i.strokeWidth) ? i.strokeWidth[n] : i.strokeWidth, fill: "none", drawShadow: !1 })); h.add(m); var y = s.fillPath({ seriesNumber: n }), w = i.graphics.renderPaths(e(e({}, d), {}, { pathFrom: null === f ? c.areaPathsFrom[b] : f, pathTo: c.areaPathsTo[b], strokeWidth: 0, fill: y, drawShadow: !1 })); if (a.config.chart.dropShadow.enabled) { var k = new v(i.ctx), A = a.config.chart.dropShadow; k.dropShadow(w, Object.assign({}, A, { noUserSpaceOnUse: !0 }), n) } h.add(w) } t.forEach((function (t, s) { var r = new D(i.ctx).getMarkerConfig({ cssClass: "apexcharts-marker", seriesIndex: n, dataPointIndex: s }), l = i.graphics.drawMarker(g[s].x, g[s].y, r); l.attr("rel", s), l.attr("j", s), l.attr("index", n), l.node.setAttribute("default-marker-size", r.pSize); var c = i.graphics.group({ class: "apexcharts-series-markers" }); c && c.add(l), u.add(c), h.add(u); var d = a.config.dataLabels; if (d.enabled) { var f = d.formatter(a.globals.series[n][s], { seriesIndex: n, dataPointIndex: s, w: a }); o.plotDataLabelsText({ x: g[s].x, y: g[s].y, text: f, textAnchor: "middle", i: n, j: n, parent: p, offsetCorrection: !1, dataLabelsConfig: e({}, d) }) } h.add(p) })), r.push(h) })), this.drawPolygons({ parent: d }), a.config.xaxis.labels.show) { var f = this.drawXAxisTexts(); d.add(f) } return r.forEach((function (t) { d.add(t) })), d.add(this.yaxisLabels), d } }, { key: "drawPolygons", value: function (t) { for (var e = this, i = this.w, a = t.parent, s = new Ct(this.ctx), r = i.globals.yAxisScale[0].result.reverse(), o = r.length, n = [], l = this.size / (o - 1), h = 0; h < o; h++)n[h] = l * h; n.reverse(); var c = [], d = []; n.forEach((function (t, i) { var a = x.getPolygonPos(t, e.dataPointsLen), s = ""; a.forEach((function (t, a) { if (0 === i) { var r = e.graphics.drawLine(t.x, t.y, 0, 0, Array.isArray(e.polygons.connectorColors) ? e.polygons.connectorColors[a] : e.polygons.connectorColors); d.push(r) } 0 === a && e.yaxisLabelsTextsPos.push({ x: t.x, y: t.y }), s += t.x + "," + t.y + " " })), c.push(s) })), c.forEach((function (t, s) { var r = e.polygons.strokeColors, o = e.polygons.strokeWidth, n = e.graphics.drawPolygon(t, Array.isArray(r) ? r[s] : r, Array.isArray(o) ? o[s] : o, i.globals.radarPolygons.fill.colors[s]); a.add(n) })), d.forEach((function (t) { a.add(t) })), i.config.yaxis[0].show && this.yaxisLabelsTextsPos.forEach((function (t, i) { var a = s.drawYAxisTexts(t.x, t.y, i, r[i]); e.yaxisLabels.add(a) })) } }, { key: "drawXAxisTexts", value: function () { var t = this, i = this.w, a = i.config.xaxis.labels, s = this.graphics.group({ class: "apexcharts-xaxis" }), r = x.getPolygonPos(this.size, this.dataPointsLen); return i.globals.labels.forEach((function (o, n) { var l = i.config.xaxis.labels.formatter, h = new N(t.ctx); if (r[n]) { var c = t.getTextPos(r[n], t.size), d = l(o, { seriesIndex: -1, dataPointIndex: n, w: i }); h.plotDataLabelsText({ x: c.newX, y: c.newY, text: d, textAnchor: c.textAnchor, i: n, j: n, parent: s, color: Array.isArray(a.style.colors) && a.style.colors[n] ? a.style.colors[n] : "#a8a8a8", dataLabelsConfig: e({ textAnchor: c.textAnchor, dropShadow: { enabled: !1 } }, a), offsetCorrection: !1 }) } })), s } }, { key: "createPaths", value: function (t, e) { var i = this, a = [], s = [], r = [], o = []; if (t.length) { s = [this.graphics.move(e.x, e.y)], o = [this.graphics.move(e.x, e.y)]; var n = this.graphics.move(t[0].x, t[0].y), l = this.graphics.move(t[0].x, t[0].y); t.forEach((function (e, a) { n += i.graphics.line(e.x, e.y), l += i.graphics.line(e.x, e.y), a === t.length - 1 && (n += "Z", l += "Z") })), a.push(n), r.push(l) } return { linePathsFrom: s, linePathsTo: a, areaPathsFrom: o, areaPathsTo: r } } }, { key: "getTextPos", value: function (t, e) { var i = "middle", a = t.x, s = t.y; return Math.abs(t.x) >= 10 ? t.x > 0 ? (i = "start", a += 10) : t.x < 0 && (i = "end", a -= 10) : i = "middle", Math.abs(t.y) >= e - 10 && (t.y < 0 ? s -= 10 : t.y > 0 && (s += 10)), { textAnchor: i, newX: a, newY: s } } }, { key: "getPreviousPath", value: function (t) { for (var e = this.w, i = null, a = 0; a < e.globals.previousPaths.length; a++) { var s = e.globals.previousPaths[a]; s.paths.length > 0 && parseInt(s.realIndex, 10) === parseInt(t, 10) && void 0 !== e.globals.previousPaths[a].paths[0] && (i = e.globals.previousPaths[a].paths[0].d) } return i } }, { key: "getDataPointsPos", value: function (t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.dataPointsLen; t = t || [], e = e || []; for (var a = [], s = 0; s < i; s++) { var r = {}; r.x = t[s] * Math.sin(e[s]), r.y = -t[s] * Math.cos(e[s]), a.push(r) } return a } }]), t }(), Mt = function (t) { n(i, t); var e = d(i); function i(t) { var s; a(this, i), (s = e.call(this, t)).ctx = t, s.w = t.w, s.animBeginArr = [0], s.animDur = 0; var r = s.w; return s.startAngle = r.config.plotOptions.radialBar.startAngle, s.endAngle = r.config.plotOptions.radialBar.endAngle, s.totalAngle = Math.abs(r.config.plotOptions.radialBar.endAngle - r.config.plotOptions.radialBar.startAngle), s.trackStartAngle = r.config.plotOptions.radialBar.track.startAngle, s.trackEndAngle = r.config.plotOptions.radialBar.track.endAngle, s.barLabels = s.w.config.plotOptions.radialBar.barLabels, s.donutDataLabels = s.w.config.plotOptions.radialBar.dataLabels, s.radialDataLabels = s.donutDataLabels, s.trackStartAngle || (s.trackStartAngle = s.startAngle), s.trackEndAngle || (s.trackEndAngle = s.endAngle), 360 === s.endAngle && (s.endAngle = 359.99), s.margin = parseInt(r.config.plotOptions.radialBar.track.margin, 10), s.onBarLabelClick = s.onBarLabelClick.bind(c(s)), s } return r(i, [{ key: "draw", value: function (t) { var e = this.w, i = new m(this.ctx), a = i.group({ class: "apexcharts-radialbar" }); if (e.globals.noData) return a; var s = i.group(), r = this.defaultSize / 2, o = e.globals.gridWidth / 2, n = this.defaultSize / 2.05; e.config.chart.sparkline.enabled || (n = n - e.config.stroke.width - e.config.chart.dropShadow.blur); var l = e.globals.fill.colors; if (e.config.plotOptions.radialBar.track.show) { var h = this.drawTracks({ size: n, centerX: o, centerY: r, colorArr: l, series: t }); s.add(h) } var c = this.drawArcs({ size: n, centerX: o, centerY: r, colorArr: l, series: t }), d = 360; e.config.plotOptions.radialBar.startAngle < 0 && (d = this.totalAngle); var g = (360 - d) / 360; if (e.globals.radialSize = n - n * g, this.radialDataLabels.value.show) { var u = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY); e.globals.radialSize += u * g } return s.add(c.g), "front" === e.config.plotOptions.radialBar.hollow.position && (c.g.add(c.elHollow), c.dataLabels && c.g.add(c.dataLabels)), a.add(s), a } }, { key: "drawTracks", value: function (t) { var e = this.w, i = new m(this.ctx), a = i.group({ class: "apexcharts-tracks" }), s = new v(this.ctx), r = new H(this.ctx), o = this.getStrokeWidth(t); t.size = t.size - o / 2; for (var n = 0; n < t.series.length; n++) { var l = i.group({ class: "apexcharts-radialbar-track apexcharts-track" }); a.add(l), l.attr({ rel: n + 1 }), t.size = t.size - o - this.margin; var h = e.config.plotOptions.radialBar.track, c = r.fillPath({ seriesNumber: 0, size: t.size, fillColors: Array.isArray(h.background) ? h.background[n] : h.background, solid: !0 }), d = this.trackStartAngle, g = this.trackEndAngle; Math.abs(g) + Math.abs(d) >= 360 && (g = 360 - Math.abs(this.startAngle) - .1); var u = i.drawPath({ d: "", stroke: c, strokeWidth: o * parseInt(h.strokeWidth, 10) / 100, fill: "none", strokeOpacity: h.opacity, classes: "apexcharts-radialbar-area" }); if (h.dropShadow.enabled) { var p = h.dropShadow; s.dropShadow(u, p) } l.add(u), u.attr("id", "apexcharts-radialbarTrack-" + n), this.animatePaths(u, { centerX: t.centerX, centerY: t.centerY, endAngle: g, startAngle: d, size: t.size, i: n, totalItems: 2, animBeginArr: 0, dur: 0, isTrack: !0, easing: e.globals.easing }) } return a } }, { key: "drawArcs", value: function (t) { var e = this.w, i = new m(this.ctx), a = new H(this.ctx), s = new v(this.ctx), r = i.group(), o = this.getStrokeWidth(t); t.size = t.size - o / 2; var n = e.config.plotOptions.radialBar.hollow.background, l = t.size - o * t.series.length - this.margin * t.series.length - o * parseInt(e.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2, h = l - e.config.plotOptions.radialBar.hollow.margin; void 0 !== e.config.plotOptions.radialBar.hollow.image && (n = this.drawHollowImage(t, r, l, n)); var c = this.drawHollow({ size: h, centerX: t.centerX, centerY: t.centerY, fill: n || "transparent" }); if (e.config.plotOptions.radialBar.hollow.dropShadow.enabled) { var d = e.config.plotOptions.radialBar.hollow.dropShadow; s.dropShadow(c, d) } var g = 1; !this.radialDataLabels.total.show && e.globals.series.length > 1 && (g = 0); var u = null; this.radialDataLabels.show && (u = this.renderInnerDataLabels(this.radialDataLabels, { hollowSize: l, centerX: t.centerX, centerY: t.centerY, opacity: g })), "back" === e.config.plotOptions.radialBar.hollow.position && (r.add(c), u && r.add(u)); var p = !1; e.config.plotOptions.radialBar.inverseOrder && (p = !0); for (var f = p ? t.series.length - 1 : 0; p ? f >= 0 : f < t.series.length; p ? f-- : f++) { var b = i.group({ class: "apexcharts-series apexcharts-radial-series", seriesName: x.escapeString(e.globals.seriesNames[f]) }); r.add(b), b.attr({ rel: f + 1, "data:realIndex": f }), this.ctx.series.addCollapsedClassToSeries(b, f), t.size = t.size - o - this.margin; var y = a.fillPath({ seriesNumber: f, size: t.size, value: t.series[f] }), w = this.startAngle, k = void 0, A = x.negToZero(t.series[f] > 100 ? 100 : t.series[f]) / 100, S = Math.round(this.totalAngle * A) + this.startAngle, C = void 0; e.globals.dataChanged && (k = this.startAngle, C = Math.round(this.totalAngle * x.negToZero(e.globals.previousPaths[f]) / 100) + k), Math.abs(S) + Math.abs(w) >= 360 && (S -= .01), Math.abs(C) + Math.abs(k) >= 360 && (C -= .01); var L = S - w, P = Array.isArray(e.config.stroke.dashArray) ? e.config.stroke.dashArray[f] : e.config.stroke.dashArray, M = i.drawPath({ d: "", stroke: y, strokeWidth: o, fill: "none", fillOpacity: e.config.fill.opacity, classes: "apexcharts-radialbar-area apexcharts-radialbar-slice-" + f, strokeDashArray: P }); if (m.setAttrs(M.node, { "data:angle": L, "data:value": t.series[f] }), e.config.chart.dropShadow.enabled) { var I = e.config.chart.dropShadow; s.dropShadow(M, I, f) } if (s.setSelectionFilter(M, 0, f), this.addListeners(M, this.radialDataLabels), b.add(M), M.attr({ index: 0, j: f }), this.barLabels.enabled) { var T = x.polarToCartesian(t.centerX, t.centerY, t.size, w), z = this.barLabels.formatter(e.globals.seriesNames[f], { seriesIndex: f, w: e }), X = ["apexcharts-radialbar-label"]; this.barLabels.onClick || X.push("apexcharts-no-click"); var E = this.barLabels.useSeriesColors ? e.globals.colors[f] : e.config.chart.foreColor; E || (E = e.config.chart.foreColor); var Y = T.x - this.barLabels.margin, F = T.y, R = i.drawText({ x: Y, y: F, text: z, textAnchor: "end", dominantBaseline: "middle", fontFamily: this.barLabels.fontFamily, fontWeight: this.barLabels.fontWeight, fontSize: this.barLabels.fontSize, foreColor: E, cssClass: X.join(" ") }); R.on("click", this.onBarLabelClick), R.attr({ rel: f + 1 }), 0 !== w && R.attr({ "transform-origin": "".concat(Y, " ").concat(F), transform: "rotate(".concat(w, " 0 0)") }), b.add(R) } var D = 0; !this.initialAnim || e.globals.resized || e.globals.dataChanged || (D = e.config.chart.animations.speed), e.globals.dataChanged && (D = e.config.chart.animations.dynamicAnimation.speed), this.animDur = D / (1.2 * t.series.length) + this.animDur, this.animBeginArr.push(this.animDur), this.animatePaths(M, { centerX: t.centerX, centerY: t.centerY, endAngle: S, startAngle: w, prevEndAngle: C, prevStartAngle: k, size: t.size, i: f, totalItems: 2, animBeginArr: this.animBeginArr, dur: D, shouldSetPrevPaths: !0, easing: e.globals.easing }) } return { g: r, elHollow: c, dataLabels: u } } }, { key: "drawHollow", value: function (t) { var e = new m(this.ctx).drawCircle(2 * t.size); return e.attr({ class: "apexcharts-radialbar-hollow", cx: t.centerX, cy: t.centerY, r: t.size, fill: t.fill }), e } }, { key: "drawHollowImage", value: function (t, e, i, a) { var s = this.w, r = new H(this.ctx), o = x.randomId(), n = s.config.plotOptions.radialBar.hollow.image; if (s.config.plotOptions.radialBar.hollow.imageClipped) r.clippedImgArea({ width: i, height: i, image: n, patternID: "pattern".concat(s.globals.cuid).concat(o) }), a = "url(#pattern".concat(s.globals.cuid).concat(o, ")"); else { var l = s.config.plotOptions.radialBar.hollow.imageWidth, h = s.config.plotOptions.radialBar.hollow.imageHeight; if (void 0 === l && void 0 === h) { var c = s.globals.dom.Paper.image(n).loaded((function (e) { this.move(t.centerX - e.width / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - e.height / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY) })); e.add(c) } else { var d = s.globals.dom.Paper.image(n).loaded((function (e) { this.move(t.centerX - l / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - h / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(l, h) })); e.add(d) } } return a } }, { key: "getStrokeWidth", value: function (t) { var e = this.w; return t.size * (100 - parseInt(e.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (t.series.length + 1) - this.margin } }, { key: "onBarLabelClick", value: function (t) { var e = parseInt(t.target.getAttribute("rel"), 10) - 1, i = this.barLabels.onClick, a = this.w; i && i(a.globals.seriesNames[e], { w: a, seriesIndex: e }) } }]), i }(Lt), It = function (t) { n(s, t); var i = d(s); function s() { return a(this, s), i.apply(this, arguments) } return r(s, [{ key: "draw", value: function (t, i) { var a = this.w, s = new m(this.ctx); this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = t, this.seriesRangeStart = a.globals.seriesRangeStart, this.seriesRangeEnd = a.globals.seriesRangeEnd, this.barHelpers.initVariables(t); for (var r = s.group({ class: "apexcharts-rangebar-series apexcharts-plot-series" }), n = 0; n < t.length; n++) { var l, h, c, d, g = void 0, u = void 0, p = a.globals.comboCharts ? i[n] : n, f = this.barHelpers.getGroupIndex(p).columnGroupIndex, b = s.group({ class: "apexcharts-series", seriesName: x.escapeString(a.globals.seriesNames[p]), rel: n + 1, "data:realIndex": p }); this.ctx.series.addCollapsedClassToSeries(b, p), t[n].length > 0 && (this.visibleI = this.visibleI + 1); var v = 0, y = 0, w = 0; this.yRatio.length > 1 && (this.yaxisIndex = a.globals.seriesYAxisReverseMap[p][0], w = p); var k = this.barHelpers.initialPositions(); u = k.y, d = k.zeroW, g = k.x, y = k.barWidth, v = k.barHeight, l = k.xDivision, h = k.yDivision, c = k.zeroH; for (var A = s.group({ class: "apexcharts-datalabels", "data:realIndex": p }), S = s.group({ class: "apexcharts-rangebar-goals-markers" }), C = 0; C < a.globals.dataPoints; C++) { var L, P = this.barHelpers.getStrokeWidth(n, C, p), M = this.seriesRangeStart[n][C], I = this.seriesRangeEnd[n][C], T = null, z = null, X = null, E = { x: g, y: u, strokeWidth: P, elSeries: b }, Y = this.seriesLen; if (a.config.plotOptions.bar.rangeBarGroupRows && (Y = 1), void 0 === a.config.series[n].data[C]) break; if (this.isHorizontal) { X = u + v * this.visibleI; var F = (h - v * Y) / 2; if (a.config.series[n].data[C].x) { var R = this.detectOverlappingBars({ i: n, j: C, barYPosition: X, srty: F, barHeight: v, yDivision: h, initPositions: k }); v = R.barHeight, X = R.barYPosition } y = (T = this.drawRangeBarPaths(e({ indexes: { i: n, j: C, realIndex: p }, barHeight: v, barYPosition: X, zeroW: d, yDivision: h, y1: M, y2: I }, E))).barWidth } else { a.globals.isXNumeric && (g = (a.globals.seriesX[n][C] - a.globals.minX) / this.xRatio - y / 2), z = g + y * this.visibleI; var H = (l - y * Y) / 2; if (a.config.series[n].data[C].x) { var D = this.detectOverlappingBars({ i: n, j: C, barXPosition: z, srtx: H, barWidth: y, xDivision: l, initPositions: k }); y = D.barWidth, z = D.barXPosition } v = (T = this.drawRangeColumnPaths(e({ indexes: { i: n, j: C, realIndex: p, translationsIndex: w }, barWidth: y, barXPosition: z, zeroH: c, xDivision: l }, E))).barHeight } var O = this.barHelpers.drawGoalLine({ barXPosition: T.barXPosition, barYPosition: X, goalX: T.goalX, goalY: T.goalY, barHeight: v, barWidth: y }); O && S.add(O), u = T.y, g = T.x; var N = this.barHelpers.getPathFillColor(t, n, C, p), W = a.globals.stroke.colors[p]; this.renderSeries((o(L = { realIndex: p, pathFill: N, lineFill: W, j: C, i: n, x: g, y: u, y1: M, y2: I, pathFrom: T.pathFrom, pathTo: T.pathTo, strokeWidth: P, elSeries: b, series: t, barHeight: v, barWidth: y, barXPosition: z, barYPosition: X }, "barWidth", y), o(L, "columnGroupIndex", f), o(L, "elDataLabelsWrap", A), o(L, "elGoalsMarkers", S), o(L, "visibleSeries", this.visibleI), o(L, "type", "rangebar"), L)) } r.add(b) } return r } }, { key: "detectOverlappingBars", value: function (t) { var e = t.i, i = t.j, a = t.barYPosition, s = t.barXPosition, r = t.srty, o = t.srtx, n = t.barHeight, l = t.barWidth, h = t.yDivision, c = t.xDivision, d = t.initPositions, g = this.w, u = [], p = g.config.series[e].data[i].rangeName, f = g.config.series[e].data[i].x, x = Array.isArray(f) ? f.join(" ") : f, b = g.globals.labels.map((function (t) { return Array.isArray(t) ? t.join(" ") : t })).indexOf(x), v = g.globals.seriesRange[e].findIndex((function (t) { return t.x === x && t.overlaps.length > 0 })); return this.isHorizontal ? (a = g.config.plotOptions.bar.rangeBarGroupRows ? r + h * b : r + n * this.visibleI + h * b, v > -1 && !g.config.plotOptions.bar.rangeBarOverlap && (u = g.globals.seriesRange[e][v].overlaps).indexOf(p) > -1 && (a = (n = d.barHeight / u.length) * this.visibleI + h * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + n * (this.visibleI + u.indexOf(p)) + h * b)) : (b > -1 && !g.globals.timescaleLabels.length && (s = g.config.plotOptions.bar.rangeBarGroupRows ? o + c * b : o + l * this.visibleI + c * b), v > -1 && !g.config.plotOptions.bar.rangeBarOverlap && (u = g.globals.seriesRange[e][v].overlaps).indexOf(p) > -1 && (s = (l = d.barWidth / u.length) * this.visibleI + c * (100 - parseInt(this.barOptions.barWidth, 10)) / 100 / 2 + l * (this.visibleI + u.indexOf(p)) + c * b)), { barYPosition: a, barXPosition: s, barHeight: n, barWidth: l } } }, { key: "drawRangeColumnPaths", value: function (t) { var e = t.indexes, i = t.x, a = t.xDivision, s = t.barWidth, r = t.barXPosition, o = t.zeroH, n = this.w, l = e.i, h = e.j, c = e.realIndex, d = e.translationsIndex, g = this.yRatio[d], u = this.getRangeValue(c, h), p = Math.min(u.start, u.end), f = Math.max(u.start, u.end); void 0 === this.series[l][h] || null === this.series[l][h] ? p = o : (p = o - p / g, f = o - f / g); var x = Math.abs(f - p), b = this.barHelpers.getColumnPaths({ barXPosition: r, barWidth: s, y1: p, y2: f, strokeWidth: this.strokeWidth, series: this.seriesRangeEnd, realIndex: c, i: c, j: h, w: n }); if (n.globals.isXNumeric) { var v = this.getBarXForNumericXAxis({ x: i, j: h, realIndex: c, barWidth: s }); i = v.x, r = v.barXPosition } else i += a; return { pathTo: b.pathTo, pathFrom: b.pathFrom, barHeight: x, x: i, y: u.start < 0 && u.end < 0 ? p : f, goalY: this.barHelpers.getGoalValues("y", null, o, l, h, d), barXPosition: r } } }, { key: "drawRangeBarPaths", value: function (t) { var e = t.indexes, i = t.y, a = t.y1, s = t.y2, r = t.yDivision, o = t.barHeight, n = t.barYPosition, l = t.zeroW, h = this.w, c = e.realIndex, d = e.j, g = l + a / this.invertedYRatio, u = l + s / this.invertedYRatio, p = this.getRangeValue(c, d), f = Math.abs(u - g), x = this.barHelpers.getBarpaths({ barYPosition: n, barHeight: o, x1: g, x2: u, strokeWidth: this.strokeWidth, series: this.seriesRangeEnd, i: c, realIndex: c, j: d, w: h }); return h.globals.isXNumeric || (i += r), { pathTo: x.pathTo, pathFrom: x.pathFrom, barWidth: f, x: p.start < 0 && p.end < 0 ? g : u, goalX: this.barHelpers.getGoalValues("x", l, null, c, d), y: i } } }, { key: "getRangeValue", value: function (t, e) { var i = this.w; return { start: i.globals.seriesRangeStart[t][e], end: i.globals.seriesRangeEnd[t][e] } } }]), s }(yt), Tt = function () { function t(e) { a(this, t), this.w = e.w, this.lineCtx = e } return r(t, [{ key: "sameValueSeriesFix", value: function (t, e) { var i = this.w; if (("gradient" === i.config.fill.type || "gradient" === i.config.fill.type[t]) && new y(this.lineCtx.ctx, i).seriesHaveSameValues(t)) { var a = e[t].slice(); a[a.length - 1] = a[a.length - 1] + 1e-6, e[t] = a } return e } }, { key: "calculatePoints", value: function (t) { var e = t.series, i = t.realIndex, a = t.x, s = t.y, r = t.i, o = t.j, n = t.prevY, l = this.w, h = [], c = []; if (0 === o) { var d = this.lineCtx.categoryAxisCorrection + l.config.markers.offsetX; l.globals.isXNumeric && (d = (l.globals.seriesX[i][0] - l.globals.minX) / this.lineCtx.xRatio + l.config.markers.offsetX), h.push(d), c.push(x.isNumber(e[r][0]) ? n + l.config.markers.offsetY : null), h.push(a + l.config.markers.offsetX), c.push(x.isNumber(e[r][o + 1]) ? s + l.config.markers.offsetY : null) } else h.push(a + l.config.markers.offsetX), c.push(x.isNumber(e[r][o + 1]) ? s + l.config.markers.offsetY : null); return { x: h, y: c } } }, { key: "checkPreviousPaths", value: function (t) { for (var e = t.pathFromLine, i = t.pathFromArea, a = t.realIndex, s = this.w, r = 0; r < s.globals.previousPaths.length; r++) { var o = s.globals.previousPaths[r]; ("line" === o.type || "area" === o.type) && o.paths.length > 0 && parseInt(o.realIndex, 10) === parseInt(a, 10) && ("line" === o.type ? (this.lineCtx.appendPathFrom = !1, e = s.globals.previousPaths[r].paths[0].d) : "area" === o.type && (this.lineCtx.appendPathFrom = !1, i = s.globals.previousPaths[r].paths[0].d, s.config.stroke.show && s.globals.previousPaths[r].paths[1] && (e = s.globals.previousPaths[r].paths[1].d))) } return { pathFromLine: e, pathFromArea: i } } }, { key: "determineFirstPrevY", value: function (t) { var e, i, a, s = t.i, r = t.realIndex, o = t.series, n = t.prevY, l = t.lineYPosition, h = t.translationsIndex, c = this.w, d = c.config.chart.stacked && !c.globals.comboCharts || c.config.chart.stacked && c.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e = this.w.config.series[r]) || void 0 === e ? void 0 : e.type) || "column" === (null === (i = this.w.config.series[r]) || void 0 === i ? void 0 : i.type)); if (void 0 !== (null === (a = o[s]) || void 0 === a ? void 0 : a[0])) n = (l = d && s > 0 ? this.lineCtx.prevSeriesY[s - 1][0] : this.lineCtx.zeroY) - o[s][0] / this.lineCtx.yRatio[h] + 2 * (this.lineCtx.isReversed ? o[s][0] / this.lineCtx.yRatio[h] : 0); else if (d && s > 0 && void 0 === o[s][0]) for (var g = s - 1; g >= 0; g--)if (null !== o[g][0] && void 0 !== o[g][0]) { n = l = this.lineCtx.prevSeriesY[g][0]; break } return { prevY: n, lineYPosition: l } } }]), t }(), zt = function (t) { for (var e, i, a, s, r = function (t) { for (var e = [], i = t[0], a = t[1], s = e[0] = Yt(i, a), r = 1, o = t.length - 1; r < o; r++)i = a, a = t[r + 1], e[r] = .5 * (s + (s = Yt(i, a))); return e[r] = s, e }(t), o = t.length - 1, n = [], l = 0; l < o; l++)a = Yt(t[l], t[l + 1]), Math.abs(a) < 1e-6 ? r[l] = r[l + 1] = 0 : (s = (e = r[l] / a) * e + (i = r[l + 1] / a) * i) > 9 && (s = 3 * a / Math.sqrt(s), r[l] = s * e, r[l + 1] = s * i); for (var h = 0; h <= o; h++)s = (t[Math.min(o, h + 1)][0] - t[Math.max(0, h - 1)][0]) / (6 * (1 + r[h] * r[h])), n.push([s || 0, r[h] * s || 0]); return n }, Xt = function (t) { var e = zt(t), i = t[1], a = t[0], s = [], r = e[1], o = e[0]; s.push(a, [a[0] + o[0], a[1] + o[1], i[0] - r[0], i[1] - r[1], i[0], i[1]]); for (var n = 2, l = e.length; n < l; n++) { var h = t[n], c = e[n]; s.push([h[0] - c[0], h[1] - c[1], h[0], h[1]]) } return s }, Et = function (t, e, i) { var a = t.slice(e, i); if (e) { if (i - e > 1 && a[1].length < 6) { var s = a[0].length; a[1] = [2 * a[0][s - 2] - a[0][s - 4], 2 * a[0][s - 1] - a[0][s - 3]].concat(a[1]) } a[0] = a[0].slice(-2) } return a }; function Yt(t, e) { return (e[1] - t[1]) / (e[0] - t[0]) } var Ft = function () { function t(e, i, s) { a(this, t), this.ctx = e, this.w = e.w, this.xyRatios = i, this.pointsChart = !("bubble" !== this.w.config.chart.type && "scatter" !== this.w.config.chart.type) || s, this.scatter = new O(this.ctx), this.noNegatives = this.w.globals.minX === Number.MAX_VALUE, this.lineHelpers = new Tt(this), this.markers = new D(this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0 } return r(t, [{ key: "draw", value: function (t, i, a, s) { var r, o = this.w, n = new m(this.ctx), l = o.globals.comboCharts ? i : o.config.chart.type, h = n.group({ class: "apexcharts-".concat(l, "-series apexcharts-plot-series") }), c = new y(this.ctx, o); this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, t = c.getLogSeries(t), this.yRatio = c.getLogYRatios(this.yRatio), this.prevSeriesY = []; for (var d = [], g = 0; g < t.length; g++) { t = this.lineHelpers.sameValueSeriesFix(g, t); var u = o.globals.comboCharts ? a[g] : g, p = this.yRatio.length > 1 ? u : 0; this._initSerieVariables(t, g, u); var f = [], x = [], b = [], v = o.globals.padHorizontal + this.categoryAxisCorrection; this.ctx.series.addCollapsedClassToSeries(this.elSeries, u), o.globals.isXNumeric && o.globals.seriesX.length > 0 && (v = (o.globals.seriesX[u][0] - o.globals.minX) / this.xRatio), b.push(v); var w, k = v, A = void 0, S = k, C = this.zeroY, L = this.zeroY; C = this.lineHelpers.determineFirstPrevY({ i: g, realIndex: u, series: t, prevY: C, lineYPosition: 0, translationsIndex: p }).prevY, "monotoneCubic" === o.config.stroke.curve && null === t[g][0] ? f.push(null) : f.push(C), w = C; "rangeArea" === l && (A = L = this.lineHelpers.determineFirstPrevY({ i: g, realIndex: u, series: s, prevY: L, lineYPosition: 0, translationsIndex: p }).prevY, x.push(null !== f[0] ? L : null)); var P = this._calculatePathsFrom({ type: l, series: t, i: g, realIndex: u, translationsIndex: p, prevX: S, prevY: C, prevY2: L }), M = [f[0]], I = [x[0]], T = { type: l, series: t, realIndex: u, translationsIndex: p, i: g, x: v, y: 1, pX: k, pY: w, pathsFrom: P, linePaths: [], areaPaths: [], seriesIndex: a, lineYPosition: 0, xArrj: b, yArrj: f, y2Arrj: x, seriesRangeEnd: s }, z = this._iterateOverDataPoints(e(e({}, T), {}, { iterations: "rangeArea" === l ? t[g].length - 1 : void 0, isRangeStart: !0 })); if ("rangeArea" === l) { for (var X = this._calculatePathsFrom({ series: s, i: g, realIndex: u, prevX: S, prevY: L }), E = this._iterateOverDataPoints(e(e({}, T), {}, { series: s, xArrj: [v], yArrj: M, y2Arrj: I, pY: A, areaPaths: z.areaPaths, pathsFrom: X, iterations: s[g].length - 1, isRangeStart: !1 })), Y = z.linePaths.length / 2, F = 0; F < Y; F++)z.linePaths[F] = E.linePaths[F + Y] + z.linePaths[F]; z.linePaths.splice(Y), z.pathFromLine = E.pathFromLine + z.pathFromLine } else z.pathFromArea += n.line(0, this.zeroY); this._handlePaths({ type: l, realIndex: u, i: g, paths: z }), this.elSeries.add(this.elPointsMain), this.elSeries.add(this.elDataLabelsWrap), d.push(this.elSeries) } if (void 0 !== (null === (r = o.config.series[0]) || void 0 === r ? void 0 : r.zIndex) && d.sort((function (t, e) { return Number(t.node.getAttribute("zIndex")) - Number(e.node.getAttribute("zIndex")) })), o.config.chart.stacked) for (var R = d.length - 1; R >= 0; R--)h.add(d[R]); else for (var H = 0; H < d.length; H++)h.add(d[H]); return h } }, { key: "_initSerieVariables", value: function (t, e, i) { var a = this.w, s = new m(this.ctx); this.xDivision = a.globals.gridWidth / (a.globals.dataPoints - ("on" === a.config.xaxis.tickPlacement ? 1 : 0)), this.strokeWidth = Array.isArray(a.config.stroke.width) ? a.config.stroke.width[i] : a.config.stroke.width; var r = 0; this.yRatio.length > 1 && (this.yaxisIndex = a.globals.seriesYAxisReverseMap[i], r = i), this.isReversed = a.config.yaxis[this.yaxisIndex] && a.config.yaxis[this.yaxisIndex].reversed, this.zeroY = a.globals.gridHeight - this.baseLineY[r] - (this.isReversed ? a.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[r] : 0), this.areaBottomY = this.zeroY, (this.zeroY > a.globals.gridHeight || "end" === a.config.plotOptions.area.fillTo) && (this.areaBottomY = a.globals.gridHeight), this.categoryAxisCorrection = this.xDivision / 2, this.elSeries = s.group({ class: "apexcharts-series", zIndex: void 0 !== a.config.series[i].zIndex ? a.config.series[i].zIndex : i, seriesName: x.escapeString(a.globals.seriesNames[i]) }), this.elPointsMain = s.group({ class: "apexcharts-series-markers-wrap", "data:realIndex": i }), this.elDataLabelsWrap = s.group({ class: "apexcharts-datalabels", "data:realIndex": i }); var o = t[e].length === a.globals.dataPoints; this.elSeries.attr({ "data:longestSeries": o, rel: e + 1, "data:realIndex": i }), this.appendPathFrom = !0 } }, { key: "_calculatePathsFrom", value: function (t) { var e, i, a, s, r = t.type, o = t.series, n = t.i, l = t.realIndex, h = t.translationsIndex, c = t.prevX, d = t.prevY, g = t.prevY2, u = this.w, p = new m(this.ctx); if (null === o[n][0]) { for (var f = 0; f < o[n].length; f++)if (null !== o[n][f]) { c = this.xDivision * f, d = this.zeroY - o[n][f] / this.yRatio[h], e = p.move(c, d), i = p.move(c, this.areaBottomY); break } } else e = p.move(c, d), "rangeArea" === r && (e = p.move(c, g) + p.line(c, d)), i = p.move(c, this.areaBottomY) + p.line(c, d); if (a = p.move(0, this.zeroY) + p.line(0, this.zeroY), s = p.move(0, this.zeroY) + p.line(0, this.zeroY), u.globals.previousPaths.length > 0) { var x = this.lineHelpers.checkPreviousPaths({ pathFromLine: a, pathFromArea: s, realIndex: l }); a = x.pathFromLine, s = x.pathFromArea } return { prevX: c, prevY: d, linePath: e, areaPath: i, pathFromLine: a, pathFromArea: s } } }, { key: "_handlePaths", value: function (t) { var i = t.type, a = t.realIndex, s = t.i, r = t.paths, o = this.w, n = new m(this.ctx), l = new H(this.ctx); this.prevSeriesY.push(r.yArrj), o.globals.seriesXvalues[a] = r.xArrj, o.globals.seriesYvalues[a] = r.yArrj; var h = o.config.forecastDataPoints; if (h.count > 0 && "rangeArea" !== i) { var c = o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length - h.count - 1], d = n.drawRect(c, 0, o.globals.gridWidth, o.globals.gridHeight, 0); o.globals.dom.elForecastMask.appendChild(d.node); var g = n.drawRect(0, 0, c, o.globals.gridHeight, 0); o.globals.dom.elNonForecastMask.appendChild(g.node) } this.pointsChart || o.globals.delayedElements.push({ el: this.elPointsMain.node, index: a }); var u = { i: s, realIndex: a, animationDelay: s, initialSpeed: o.config.chart.animations.speed, dataChangeSpeed: o.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-".concat(i) }; if ("area" === i) for (var p = l.fillPath({ seriesNumber: a }), f = 0; f < r.areaPaths.length; f++) { var x = n.renderPaths(e(e({}, u), {}, { pathFrom: r.pathFromArea, pathTo: r.areaPaths[f], stroke: "none", strokeWidth: 0, strokeLineCap: null, fill: p })); this.elSeries.add(x) } if (o.config.stroke.show && !this.pointsChart) { var b = null; if ("line" === i) b = l.fillPath({ seriesNumber: a, i: s }); else if ("solid" === o.config.stroke.fill.type) b = o.globals.stroke.colors[a]; else { var v = o.config.fill; o.config.fill = o.config.stroke.fill, b = l.fillPath({ seriesNumber: a, i: s }), o.config.fill = v } for (var y = 0; y < r.linePaths.length; y++) { var w = b; "rangeArea" === i && (w = l.fillPath({ seriesNumber: a })); var k = e(e({}, u), {}, { pathFrom: r.pathFromLine, pathTo: r.linePaths[y], stroke: b, strokeWidth: this.strokeWidth, strokeLineCap: o.config.stroke.lineCap, fill: "rangeArea" === i ? w : "none" }), A = n.renderPaths(k); if (this.elSeries.add(A), A.attr("fill-rule", "evenodd"), h.count > 0 && "rangeArea" !== i) { var S = n.renderPaths(k); S.node.setAttribute("stroke-dasharray", h.dashArray), h.strokeWidth && S.node.setAttribute("stroke-width", h.strokeWidth), this.elSeries.add(S), S.attr("clip-path", "url(#forecastMask".concat(o.globals.cuid, ")")), A.attr("clip-path", "url(#nonForecastMask".concat(o.globals.cuid, ")")) } } } } }, { key: "_iterateOverDataPoints", value: function (t) { var e, i, a = this, s = t.type, r = t.series, o = t.iterations, n = t.realIndex, l = t.translationsIndex, h = t.i, c = t.x, d = t.y, g = t.pX, u = t.pY, p = t.pathsFrom, f = t.linePaths, b = t.areaPaths, v = t.seriesIndex, y = t.lineYPosition, w = t.xArrj, k = t.yArrj, A = t.y2Arrj, S = t.isRangeStart, C = t.seriesRangeEnd, L = this.w, P = new m(this.ctx), M = this.yRatio, I = p.prevY, T = p.linePath, z = p.areaPath, X = p.pathFromLine, E = p.pathFromArea, Y = x.isNumber(L.globals.minYArr[n]) ? L.globals.minYArr[n] : L.globals.minY; o || (o = L.globals.dataPoints > 1 ? L.globals.dataPoints - 1 : L.globals.dataPoints); var F = function (t, e) { return e - t / M[l] + 2 * (a.isReversed ? t / M[l] : 0) }, R = d, H = L.config.chart.stacked && !L.globals.comboCharts || L.config.chart.stacked && L.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e = this.w.config.series[n]) || void 0 === e ? void 0 : e.type) || "column" === (null === (i = this.w.config.series[n]) || void 0 === i ? void 0 : i.type)), D = L.config.stroke.curve; Array.isArray(D) && (D = Array.isArray(v) ? D[v[h]] : D[h]); for (var O, N = 0, W = 0; W < o; W++) { var B = void 0 === r[h][W + 1] || null === r[h][W + 1]; if (L.globals.isXNumeric) { var G = L.globals.seriesX[n][W + 1]; void 0 === L.globals.seriesX[n][W + 1] && (G = L.globals.seriesX[n][o - 1]), c = (G - L.globals.minX) / this.xRatio } else c += this.xDivision; if (H) if (h > 0 && L.globals.collapsedSeries.length < L.config.series.length - 1) { y = this.prevSeriesY[function (t) { for (var e = t; e > 0; e--) { if (!(L.globals.collapsedSeriesIndices.indexOf((null == v ? void 0 : v[e]) || e) > -1)) return e; e-- } return 0 }(h - 1)][W + 1] } else y = this.zeroY; else y = this.zeroY; B ? d = F(Y, y) : (d = F(r[h][W + 1], y), "rangeArea" === s && (R = F(C[h][W + 1], y))), w.push(c), !B || "smooth" !== L.config.stroke.curve && "monotoneCubic" !== L.config.stroke.curve ? (k.push(d), A.push(R)) : (k.push(null), A.push(null)); var V = this.lineHelpers.calculatePoints({ series: r, x: c, y: d, realIndex: n, i: h, j: W, prevY: I }), j = this._createPaths({ type: s, series: r, i: h, realIndex: n, j: W, x: c, y: d, y2: R, xArrj: w, yArrj: k, y2Arrj: A, pX: g, pY: u, pathState: N, segmentStartX: O, linePath: T, areaPath: z, linePaths: f, areaPaths: b, curve: D, isRangeStart: S }); b = j.areaPaths, f = j.linePaths, g = j.pX, u = j.pY, N = j.pathState, O = j.segmentStartX, z = j.areaPath, T = j.linePath, !this.appendPathFrom || "monotoneCubic" === D && "rangeArea" === s || (X += P.line(c, this.zeroY), E += P.line(c, this.zeroY)), this.handleNullDataPoints(r, V, h, W, n), this._handleMarkersAndLabels({ type: s, pointsPos: V, i: h, j: W, realIndex: n, isRangeStart: S }) } return { yArrj: k, xArrj: w, pathFromArea: E, areaPaths: b, pathFromLine: X, linePaths: f, linePath: T, areaPath: z } } }, { key: "_handleMarkersAndLabels", value: function (t) { var e = t.type, i = t.pointsPos, a = t.isRangeStart, s = t.i, r = t.j, o = t.realIndex, n = this.w, l = new N(this.ctx); if (this.pointsChart) this.scatter.draw(this.elSeries, r, { realIndex: o, pointsPos: i, zRatio: this.zRatio, elParent: this.elPointsMain }); else { n.globals.series[s].length > 1 && this.elPointsMain.node.classList.add("apexcharts-element-hidden"); var h = this.markers.plotChartMarkers(i, o, r + 1); null !== h && this.elPointsMain.add(h) } var c = l.drawDataLabel({ type: e, isRangeStart: a, pos: i, i: o, j: r + 1 }); null !== c && this.elDataLabelsWrap.add(c) } }, { key: "_createPaths", value: function (t) { var e = t.type, i = t.series, a = t.i; t.realIndex; var s = t.j, r = t.x, o = t.y, n = t.xArrj, l = t.yArrj, h = t.y2, c = t.y2Arrj, d = t.pX, g = t.pY, u = t.pathState, p = t.segmentStartX, f = t.linePath, x = t.areaPath, b = t.linePaths, v = t.areaPaths, y = t.curve, w = t.isRangeStart; this.w; var k, A = new m(this.ctx), S = this.areaBottomY, C = "rangeArea" === e, L = "rangeArea" === e && w; switch (y) { case "monotoneCubic": var P = w ? l : c; switch (u) { case 0: if (null === P[s + 1]) break; u = 1; case 1: if (!(C ? n.length === i[a].length : s === i[a].length - 2)) break; case 2: var M = w ? n : n.slice().reverse(), I = w ? P : P.slice().reverse(), T = (k = I, M.map((function (t, e) { return [t, k[e]] })).filter((function (t) { return null !== t[1] }))), z = T.length > 1 ? Xt(T) : T, X = []; C && (L ? v = T : X = v.reverse()); var E = 0, Y = 0; if (function (t, e) { for (var i = function (t) { var e = [], i = 0; return t.forEach((function (t) { null !== t ? i++ : i > 0 && (e.push(i), i = 0) })), i > 0 && e.push(i), e }(t), a = [], s = 0, r = 0; s < i.length; r += i[s++])a[s] = Et(e, r, r + i[s]); return a }(I, z).forEach((function (t) { E++; var e = function (t) { for (var e = "", i = 0; i < t.length; i++) { var a = t[i], s = a.length; s > 4 ? (e += "C".concat(a[0], ", ").concat(a[1]), e += ", ".concat(a[2], ", ").concat(a[3]), e += ", ".concat(a[4], ", ").concat(a[5])) : s > 2 && (e += "S".concat(a[0], ", ").concat(a[1]), e += ", ".concat(a[2], ", ").concat(a[3])) } return e }(t), i = Y, a = (Y += t.length) - 1; L ? f = A.move(T[i][0], T[i][1]) + e : C ? f = A.move(X[i][0], X[i][1]) + A.line(T[i][0], T[i][1]) + e + A.line(X[a][0], X[a][1]) : (f = A.move(T[i][0], T[i][1]) + e, x = f + A.line(T[a][0], S) + A.line(T[i][0], S) + "z", v.push(x)), b.push(f) })), C && E > 1 && !L) { var F = b.slice(E).reverse(); b.splice(E), F.forEach((function (t) { return b.push(t) })) } u = 0 }break; case "smooth": var R = .35 * (r - d); if (null === i[a][s]) u = 0; else switch (u) { case 0: if (p = d, f = L ? A.move(d, c[s]) + A.line(d, g) : A.move(d, g), x = A.move(d, g), u = 1, s < i[a].length - 2) { var H = A.curve(d + R, g, r - R, o, r, o); f += H, x += H; break } case 1: if (null === i[a][s + 1]) f += L ? A.line(d, h) : A.move(d, g), x += A.line(d, S) + A.line(p, S) + "z", b.push(f), v.push(x); else { var D = A.curve(d + R, g, r - R, o, r, o); f += D, x += D, s >= i[a].length - 2 && (L && (f += A.curve(r, o, r, o, r, h) + A.move(r, h)), x += A.curve(r, o, r, o, r, S) + A.line(p, S) + "z", b.push(f), v.push(x)) } }d = r, g = o; break; default: var O = function (t, e, i) { var a = []; switch (t) { case "stepline": a = A.line(e, null, "H") + A.line(null, i, "V"); break; case "linestep": a = A.line(null, i, "V") + A.line(e, null, "H"); break; case "straight": a = A.line(e, i) }return a }; if (null === i[a][s]) u = 0; else switch (u) { case 0: if (p = d, f = L ? A.move(d, c[s]) + A.line(d, g) : A.move(d, g), x = A.move(d, g), u = 1, s < i[a].length - 2) { var N = O(y, r, o); f += N, x += N; break } case 1: if (null === i[a][s + 1]) f += L ? A.line(d, h) : A.move(d, g), x += A.line(d, S) + A.line(p, S) + "z", b.push(f), v.push(x); else { var W = O(y, r, o); f += W, x += W, s >= i[a].length - 2 && (L && (f += A.line(r, h)), x += A.line(r, S) + A.line(p, S) + "z", b.push(f), v.push(x)) } }d = r, g = o }return { linePaths: b, areaPaths: v, pX: d, pY: g, pathState: u, segmentStartX: p, linePath: f, areaPath: x } } }, { key: "handleNullDataPoints", value: function (t, e, i, a, s) { var r = this.w; if (null === t[i][a] && r.config.markers.showNullDataPoints || 1 === t[i].length) { var o = this.strokeWidth - r.config.markers.strokeWidth / 2; o > 0 || (o = 0); var n = this.markers.plotChartMarkers(e, s, a + 1, o, !0); null !== n && this.elPointsMain.add(n) } } }]), t }(); window.TreemapSquared = {}, window.TreemapSquared.generate = function () { function t(e, i, a, s) { this.xoffset = e, this.yoffset = i, this.height = s, this.width = a, this.shortestEdge = function () { return Math.min(this.height, this.width) }, this.getCoordinates = function (t) { var e, i = [], a = this.xoffset, s = this.yoffset, o = r(t) / this.height, n = r(t) / this.width; if (this.width >= this.height) for (e = 0; e < t.length; e++)i.push([a, s, a + o, s + t[e] / o]), s += t[e] / o; else for (e = 0; e < t.length; e++)i.push([a, s, a + t[e] / n, s + n]), a += t[e] / n; return i }, this.cutArea = function (e) { var i; if (this.width >= this.height) { var a = e / this.height, s = this.width - a; i = new t(this.xoffset + a, this.yoffset, s, this.height) } else { var r = e / this.width, o = this.height - r; i = new t(this.xoffset, this.yoffset + r, this.width, o) } return i } } function e(e, a, s, o, n) { o = void 0 === o ? 0 : o, n = void 0 === n ? 0 : n; var l = i(function (t, e) { var i, a = [], s = e / r(t); for (i = 0; i < t.length; i++)a[i] = t[i] * s; return a }(e, a * s), [], new t(o, n, a, s), []); return function (t) { var e, i, a = []; for (e = 0; e < t.length; e++)for (i = 0; i < t[e].length; i++)a.push(t[e][i]); return a }(l) } function i(t, e, s, o) { var n, l, h; if (0 !== t.length) return n = s.shortestEdge(), function (t, e, i) { var s; if (0 === t.length) return !0; (s = t.slice()).push(e); var r = a(t, i), o = a(s, i); return r >= o }(e, l = t[0], n) ? (e.push(l), i(t.slice(1), e, s, o)) : (h = s.cutArea(r(e), o), o.push(s.getCoordinates(e)), i(t, [], h, o)), o; o.push(s.getCoordinates(e)) } function a(t, e) { var i = Math.min.apply(Math, t), a = Math.max.apply(Math, t), s = r(t); return Math.max(Math.pow(e, 2) * a / Math.pow(s, 2), Math.pow(s, 2) / (Math.pow(e, 2) * i)) } function s(t) { return t && t.constructor === Array } function r(t) { var e, i = 0; for (e = 0; e < t.length; e++)i += t[e]; return i } function o(t) { var e, i = 0; if (s(t[0])) for (e = 0; e < t.length; e++)i += o(t[e]); else i = r(t); return i } return function t(i, a, r, n, l) { n = void 0 === n ? 0 : n, l = void 0 === l ? 0 : l; var h, c, d = [], g = []; if (s(i[0])) { for (c = 0; c < i.length; c++)d[c] = o(i[c]); for (h = e(d, a, r, n, l), c = 0; c < i.length; c++)g.push(t(i[c], h[c][2] - h[c][0], h[c][3] - h[c][1], h[c][0], h[c][1])) } else g = e(i, a, r, n, l); return g } }(); var Rt, Ht, Dt = function () { function t(e, i) { a(this, t), this.ctx = e, this.w = e.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new At(e), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [] } return r(t, [{ key: "draw", value: function (t) { var e = this, i = this.w, a = new m(this.ctx), s = new H(this.ctx), r = a.group({ class: "apexcharts-treemap" }); if (i.globals.noData) return r; var o = []; return t.forEach((function (t) { var e = t.map((function (t) { return Math.abs(t) })); o.push(e) })), this.negRange = this.helpers.checkColorRange(), i.config.series.forEach((function (t, i) { t.data.forEach((function (t) { Array.isArray(e.labels[i]) || (e.labels[i] = []), e.labels[i].push(t.x) })) })), window.TreemapSquared.generate(o, i.globals.gridWidth, i.globals.gridHeight).forEach((function (o, n) { var l = a.group({ class: "apexcharts-series apexcharts-treemap-series", seriesName: x.escapeString(i.globals.seriesNames[n]), rel: n + 1, "data:realIndex": n }); if (i.config.chart.dropShadow.enabled) { var h = i.config.chart.dropShadow; new v(e.ctx).dropShadow(r, h, n) } var c = a.group({ class: "apexcharts-data-labels" }); o.forEach((function (r, o) { var h = r[0], c = r[1], d = r[2], g = r[3], u = a.drawRect(h, c, d - h, g - c, i.config.plotOptions.treemap.borderRadius, "#fff", 1, e.strokeWidth, i.config.plotOptions.treemap.useFillColorAsStroke ? f : i.globals.stroke.colors[n]); u.attr({ cx: h, cy: c, index: n, i: n, j: o, width: d - h, height: g - c }); var p = e.helpers.getShadeColor(i.config.chart.type, n, o, e.negRange), f = p.color; void 0 !== i.config.series[n].data[o] && i.config.series[n].data[o].fillColor && (f = i.config.series[n].data[o].fillColor); var x = s.fillPath({ color: f, seriesNumber: n, dataPointIndex: o }); u.node.classList.add("apexcharts-treemap-rect"), u.attr({ fill: x }), e.helpers.addListeners(u); var b = { x: h + (d - h) / 2, y: c + (g - c) / 2, width: 0, height: 0 }, v = { x: h, y: c, width: d - h, height: g - c }; if (i.config.chart.animations.enabled && !i.globals.dataChanged) { var m = 1; i.globals.resized || (m = i.config.chart.animations.speed), e.animateTreemap(u, b, v, m) } if (i.globals.dataChanged) { var y = 1; e.dynamicAnim.enabled && i.globals.shouldAnimate && (y = e.dynamicAnim.speed, i.globals.previousPaths[n] && i.globals.previousPaths[n][o] && i.globals.previousPaths[n][o].rect && (b = i.globals.previousPaths[n][o].rect), e.animateTreemap(u, b, v, y)) } var w = e.getFontSize(r), k = i.config.dataLabels.formatter(e.labels[n][o], { value: i.globals.series[n][o], seriesIndex: n, dataPointIndex: o, w: i }); "truncate" === i.config.plotOptions.treemap.dataLabels.format && (w = parseInt(i.config.dataLabels.style.fontSize, 10), k = e.truncateLabels(k, w, h, c, d, g)); var A = e.helpers.calculateDataLabels({ text: k, x: (h + d) / 2, y: (c + g) / 2 + e.strokeWidth / 2 + w / 3, i: n, j: o, colorProps: p, fontSize: w, series: t }); i.config.dataLabels.enabled && A && e.rotateToFitLabel(A, w, k, h, c, d, g), l.add(u), null !== A && l.add(A) })), l.add(c), r.add(l) })), r } }, { key: "getFontSize", value: function (t) { var e = this.w; var i, a, s, r, o = function t(e) { var i, a = 0; if (Array.isArray(e[0])) for (i = 0; i < e.length; i++)a += t(e[i]); else for (i = 0; i < e.length; i++)a += e[i].length; return a }(this.labels) / function t(e) { var i, a = 0; if (Array.isArray(e[0])) for (i = 0; i < e.length; i++)a += t(e[i]); else for (i = 0; i < e.length; i++)a += 1; return a }(this.labels); return i = t[2] - t[0], a = t[3] - t[1], s = i * a, r = Math.pow(s, .5), Math.min(r / o, parseInt(e.config.dataLabels.style.fontSize, 10)) } }, { key: "rotateToFitLabel", value: function (t, e, i, a, s, r, o) { var n = new m(this.ctx), l = n.getTextRects(i, e); if (l.width + this.w.config.stroke.width + 5 > r - a && l.width <= o - s) { var h = n.rotateAroundCenter(t.node); t.node.setAttribute("transform", "rotate(-90 ".concat(h.x, " ").concat(h.y, ") translate(").concat(l.height / 3, ")")) } } }, { key: "truncateLabels", value: function (t, e, i, a, s, r) { var o = new m(this.ctx), n = o.getTextRects(t, e).width + this.w.config.stroke.width + 5 > s - i && r - a > s - i ? r - a : s - i, l = o.getTextBasedOnMaxWidth({ text: t, maxWidth: n, fontSize: e }); return t.length !== l.length && n / e < 5 ? "" : l } }, { key: "animateTreemap", value: function (t, e, i, a) { var s = new b(this.ctx); s.animateRect(t, { x: e.x, y: e.y, width: e.width, height: e.height }, { x: i.x, y: i.y, width: i.width, height: i.height }, a, (function () { s.animationCompleted(t) })) } }]), t }(), Ot = 86400, Nt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC } return r(t, [{ key: "calculateTimeScaleTicks", value: function (t, i) { var a = this, s = this.w; if (s.globals.allSeriesCollapsed) return s.globals.labels = [], s.globals.timescaleLabels = [], []; var r = new A(this.ctx), o = (i - t) / 864e5; this.determineInterval(o), s.globals.disableZoomIn = !1, s.globals.disableZoomOut = !1, o < .00011574074074074075 ? s.globals.disableZoomIn = !0 : o > 5e4 && (s.globals.disableZoomOut = !0); var n = r.getTimeUnitsfromTimestamp(t, i, this.utc), l = s.globals.gridWidth / o, h = l / 24, c = h / 60, d = c / 60, g = Math.floor(24 * o), u = Math.floor(1440 * o), p = Math.floor(o * Ot), f = Math.floor(o), x = Math.floor(o / 30), b = Math.floor(o / 365), v = { minMillisecond: n.minMillisecond, minSecond: n.minSecond, minMinute: n.minMinute, minHour: n.minHour, minDate: n.minDate, minMonth: n.minMonth, minYear: n.minYear }, m = { firstVal: v, currentMillisecond: v.minMillisecond, currentSecond: v.minSecond, currentMinute: v.minMinute, currentHour: v.minHour, currentMonthDate: v.minDate, currentDate: v.minDate, currentMonth: v.minMonth, currentYear: v.minYear, daysWidthOnXAxis: l, hoursWidthOnXAxis: h, minutesWidthOnXAxis: c, secondsWidthOnXAxis: d, numberOfSeconds: p, numberOfMinutes: u, numberOfHours: g, numberOfDays: f, numberOfMonths: x, numberOfYears: b }; switch (this.tickInterval) { case "years": this.generateYearScale(m); break; case "months": case "half_year": this.generateMonthScale(m); break; case "months_days": case "months_fortnight": case "days": case "week_days": this.generateDayScale(m); break; case "hours": this.generateHourScale(m); break; case "minutes_fives": case "minutes": this.generateMinuteScale(m); break; case "seconds_tens": case "seconds_fives": case "seconds": this.generateSecondScale(m) }var y = this.timeScaleArray.map((function (t) { var i = { position: t.position, unit: t.unit, year: t.year, day: t.day ? t.day : 1, hour: t.hour ? t.hour : 0, month: t.month + 1 }; return "month" === t.unit ? e(e({}, i), {}, { day: 1, value: t.value + 1 }) : "day" === t.unit || "hour" === t.unit ? e(e({}, i), {}, { value: t.value }) : "minute" === t.unit ? e(e({}, i), {}, { value: t.value, minute: t.value }) : "second" === t.unit ? e(e({}, i), {}, { value: t.value, minute: t.minute, second: t.second }) : t })); return y.filter((function (t) { var e = 1, i = Math.ceil(s.globals.gridWidth / 120), r = t.value; void 0 !== s.config.xaxis.tickAmount && (i = s.config.xaxis.tickAmount), y.length > i && (e = Math.floor(y.length / i)); var o = !1, n = !1; switch (a.tickInterval) { case "years": "year" === t.unit && (o = !0); break; case "half_year": e = 7, "year" === t.unit && (o = !0); break; case "months": e = 1, "year" === t.unit && (o = !0); break; case "months_fortnight": e = 15, "year" !== t.unit && "month" !== t.unit || (o = !0), 30 === r && (n = !0); break; case "months_days": e = 10, "month" === t.unit && (o = !0), 30 === r && (n = !0); break; case "week_days": e = 8, "month" === t.unit && (o = !0); break; case "days": e = 1, "month" === t.unit && (o = !0); break; case "hours": "day" === t.unit && (o = !0); break; case "minutes_fives": case "seconds_fives": r % 5 != 0 && (n = !0); break; case "seconds_tens": r % 10 != 0 && (n = !0) }if ("hours" === a.tickInterval || "minutes_fives" === a.tickInterval || "seconds_tens" === a.tickInterval || "seconds_fives" === a.tickInterval) { if (!n) return !0 } else if ((r % e == 0 || o) && !n) return !0 })) } }, { key: "recalcDimensionsBasedOnFormat", value: function (t, e) { var i = this.w, a = this.formatDates(t), s = this.removeOverlappingTS(a); i.globals.timescaleLabels = s.slice(), new ot(this.ctx).plotCoords() } }, { key: "determineInterval", value: function (t) { var e = 24 * t, i = 60 * e; switch (!0) { case t / 365 > 5: this.tickInterval = "years"; break; case t > 800: this.tickInterval = "half_year"; break; case t > 180: this.tickInterval = "months"; break; case t > 90: this.tickInterval = "months_fortnight"; break; case t > 60: this.tickInterval = "months_days"; break; case t > 30: this.tickInterval = "week_days"; break; case t > 2: this.tickInterval = "days"; break; case e > 2.4: this.tickInterval = "hours"; break; case i > 15: this.tickInterval = "minutes_fives"; break; case i > 5: this.tickInterval = "minutes"; break; case i > 1: this.tickInterval = "seconds_tens"; break; case 60 * i > 20: this.tickInterval = "seconds_fives"; break; default: this.tickInterval = "seconds" } } }, { key: "generateYearScale", value: function (t) { var e = t.firstVal, i = t.currentMonth, a = t.currentYear, s = t.daysWidthOnXAxis, r = t.numberOfYears, o = e.minYear, n = 0, l = new A(this.ctx), h = "year"; if (e.minDate > 1 || e.minMonth > 0) { var c = l.determineRemainingDaysOfYear(e.minYear, e.minMonth, e.minDate); n = (l.determineDaysOfYear(e.minYear) - c + 1) * s, o = e.minYear + 1, this.timeScaleArray.push({ position: n, value: o, unit: h, year: o, month: x.monthMod(i + 1) }) } else 1 === e.minDate && 0 === e.minMonth && this.timeScaleArray.push({ position: n, value: o, unit: h, year: a, month: x.monthMod(i + 1) }); for (var d = o, g = n, u = 0; u < r; u++)d++, g = l.determineDaysOfYear(d - 1) * s + g, this.timeScaleArray.push({ position: g, value: d, unit: h, year: d, month: 1 }) } }, { key: "generateMonthScale", value: function (t) { var e = t.firstVal, i = t.currentMonthDate, a = t.currentMonth, s = t.currentYear, r = t.daysWidthOnXAxis, o = t.numberOfMonths, n = a, l = 0, h = new A(this.ctx), c = "month", d = 0; if (e.minDate > 1) { l = (h.determineDaysOfMonths(a + 1, e.minYear) - i + 1) * r, n = x.monthMod(a + 1); var g = s + d, u = x.monthMod(n), p = n; 0 === n && (c = "year", p = g, u = 1, g += d += 1), this.timeScaleArray.push({ position: l, value: p, unit: c, year: g, month: u }) } else this.timeScaleArray.push({ position: l, value: n, unit: c, year: s, month: x.monthMod(a) }); for (var f = n + 1, b = l, v = 0, m = 1; v < o; v++, m++) { 0 === (f = x.monthMod(f)) ? (c = "year", d += 1) : c = "month"; var y = this._getYear(s, f, d); b = h.determineDaysOfMonths(f, y) * r + b; var w = 0 === f ? y : f; this.timeScaleArray.push({ position: b, value: w, unit: c, year: y, month: 0 === f ? 1 : f }), f++ } } }, { key: "generateDayScale", value: function (t) { var e = t.firstVal, i = t.currentMonth, a = t.currentYear, s = t.hoursWidthOnXAxis, r = t.numberOfDays, o = new A(this.ctx), n = "day", l = e.minDate + 1, h = l, c = function (t, e, i) { return t > o.determineDaysOfMonths(e + 1, i) ? (h = 1, n = "month", g = e += 1, e) : e }, d = (24 - e.minHour) * s, g = l, u = c(h, i, a); 0 === e.minHour && 1 === e.minDate ? (d = 0, g = x.monthMod(e.minMonth), n = "month", h = e.minDate) : 1 !== e.minDate && 0 === e.minHour && 0 === e.minMinute && (d = 0, l = e.minDate, g = l, u = c(h = l, i, a)), this.timeScaleArray.push({ position: d, value: g, unit: n, year: this._getYear(a, u, 0), month: x.monthMod(u), day: h }); for (var p = d, f = 0; f < r; f++) { n = "day", u = c(h += 1, u, this._getYear(a, u, 0)); var b = this._getYear(a, u, 0); p = 24 * s + p; var v = 1 === h ? x.monthMod(u) : h; this.timeScaleArray.push({ position: p, value: v, unit: n, year: b, month: x.monthMod(u), day: v }) } } }, { key: "generateHourScale", value: function (t) { var e = t.firstVal, i = t.currentDate, a = t.currentMonth, s = t.currentYear, r = t.minutesWidthOnXAxis, o = t.numberOfHours, n = new A(this.ctx), l = "hour", h = function (t, e) { return t > n.determineDaysOfMonths(e + 1, s) && (f = 1, e += 1), { month: e, date: f } }, c = function (t, e) { return t > n.determineDaysOfMonths(e + 1, s) ? e += 1 : e }, d = 60 - (e.minMinute + e.minSecond / 60), g = d * r, u = e.minHour + 1, p = u; 60 === d && (g = 0, p = u = e.minHour); var f = i; p >= 24 && (p = 0, f += 1, l = "day"); var b = h(f, a).month; b = c(f, b), this.timeScaleArray.push({ position: g, value: u, unit: l, day: f, hour: p, year: s, month: x.monthMod(b) }), p++; for (var v = g, m = 0; m < o; m++) { if (l = "hour", p >= 24) p = 0, l = "day", b = h(f += 1, b).month, b = c(f, b); var y = this._getYear(s, b, 0); v = 60 * r + v; var w = 0 === p ? f : p; this.timeScaleArray.push({ position: v, value: w, unit: l, hour: p, day: f, year: y, month: x.monthMod(b) }), p++ } } }, { key: "generateMinuteScale", value: function (t) { for (var e = t.currentMillisecond, i = t.currentSecond, a = t.currentMinute, s = t.currentHour, r = t.currentDate, o = t.currentMonth, n = t.currentYear, l = t.minutesWidthOnXAxis, h = t.secondsWidthOnXAxis, c = t.numberOfMinutes, d = a + 1, g = r, u = o, p = n, f = s, b = (60 - i - e / 1e3) * h, v = 0; v < c; v++)d >= 60 && (d = 0, 24 === (f += 1) && (f = 0)), this.timeScaleArray.push({ position: b, value: d, unit: "minute", hour: f, minute: d, day: g, year: this._getYear(p, u, 0), month: x.monthMod(u) }), b += l, d++ } }, { key: "generateSecondScale", value: function (t) { for (var e = t.currentMillisecond, i = t.currentSecond, a = t.currentMinute, s = t.currentHour, r = t.currentDate, o = t.currentMonth, n = t.currentYear, l = t.secondsWidthOnXAxis, h = t.numberOfSeconds, c = i + 1, d = a, g = r, u = o, p = n, f = s, b = (1e3 - e) / 1e3 * l, v = 0; v < h; v++)c >= 60 && (c = 0, ++d >= 60 && (d = 0, 24 === ++f && (f = 0))), this.timeScaleArray.push({ position: b, value: c, unit: "second", hour: f, minute: d, second: c, day: g, year: this._getYear(p, u, 0), month: x.monthMod(u) }), b += l, c++ } }, { key: "createRawDateString", value: function (t, e) { var i = t.year; return 0 === t.month && (t.month = 1), i += "-" + ("0" + t.month.toString()).slice(-2), "day" === t.unit ? i += "day" === t.unit ? "-" + ("0" + e).slice(-2) : "-01" : i += "-" + ("0" + (t.day ? t.day : "1")).slice(-2), "hour" === t.unit ? i += "hour" === t.unit ? "T" + ("0" + e).slice(-2) : "T00" : i += "T" + ("0" + (t.hour ? t.hour : "0")).slice(-2), "minute" === t.unit ? i += ":" + ("0" + e).slice(-2) : i += ":" + (t.minute ? ("0" + t.minute).slice(-2) : "00"), "second" === t.unit ? i += ":" + ("0" + e).slice(-2) : i += ":00", this.utc && (i += ".000Z"), i } }, { key: "formatDates", value: function (t) { var e = this, i = this.w; return t.map((function (t) { var a = t.value.toString(), s = new A(e.ctx), r = e.createRawDateString(t, a), o = s.getDate(s.parseDate(r)); if (e.utc || (o = s.getDate(s.parseDateWithTimezone(r))), void 0 === i.config.xaxis.labels.format) { var n = "dd MMM", l = i.config.xaxis.labels.datetimeFormatter; "year" === t.unit && (n = l.year), "month" === t.unit && (n = l.month), "day" === t.unit && (n = l.day), "hour" === t.unit && (n = l.hour), "minute" === t.unit && (n = l.minute), "second" === t.unit && (n = l.second), a = s.formatDate(o, n) } else a = s.formatDate(o, i.config.xaxis.labels.format); return { dateString: r, position: t.position, value: a, unit: t.unit, year: t.year, month: t.month } })) } }, { key: "removeOverlappingTS", value: function (t) { var e, i = this, a = new m(this.ctx), s = !1; t.length > 0 && t[0].value && t.every((function (e) { return e.value.length === t[0].value.length })) && (s = !0, e = a.getTextRects(t[0].value).width); var r = 0, o = t.map((function (o, n) { if (n > 0 && i.w.config.xaxis.labels.hideOverlappingLabels) { var l = s ? e : a.getTextRects(t[r].value).width, h = t[r].position; return o.position > h + l + 10 ? (r = n, o) : null } return o })); return o = o.filter((function (t) { return null !== t })) } }, { key: "_getYear", value: function (t, e, i) { return t + Math.floor(e / 12) + i } }]), t }(), Wt = function () { function t(e, i) { a(this, t), this.ctx = i, this.w = i.w, this.el = e } return r(t, [{ key: "setupElements", value: function () { var t = this.w.globals, e = this.w.config, i = e.chart.type; t.axisCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble", "radar", "heatmap", "treemap"].indexOf(i) > -1, t.xyCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble"].indexOf(i) > -1, t.isBarHorizontal = ("bar" === e.chart.type || "rangeBar" === e.chart.type || "boxPlot" === e.chart.type) && e.plotOptions.bar.horizontal, t.chartClass = ".apexcharts" + t.chartID, t.dom.baseEl = this.el, t.dom.elWrap = document.createElement("div"), m.setAttrs(t.dom.elWrap, { id: t.chartClass.substring(1), class: "apexcharts-canvas " + t.chartClass.substring(1) }), this.el.appendChild(t.dom.elWrap), t.dom.Paper = new window.SVG.Doc(t.dom.elWrap), t.dom.Paper.attr({ class: "apexcharts-svg", "xmlns:data": "ApexChartsNS", transform: "translate(".concat(e.chart.offsetX, ", ").concat(e.chart.offsetY, ")") }), t.dom.Paper.node.style.background = "dark" !== e.theme.mode || e.chart.background ? e.chart.background : "rgba(0, 0, 0, 0.8)", this.setSVGDimensions(), t.dom.elLegendForeign = document.createElementNS(t.SVGNS, "foreignObject"), m.setAttrs(t.dom.elLegendForeign, { x: 0, y: 0, width: t.svgWidth, height: t.svgHeight }), t.dom.elLegendWrap = document.createElement("div"), t.dom.elLegendWrap.classList.add("apexcharts-legend"), t.dom.elLegendWrap.setAttribute("xmlns", "http://www.w3.org/1999/xhtml"), t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap), t.dom.Paper.node.appendChild(t.dom.elLegendForeign), t.dom.elGraphical = t.dom.Paper.group().attr({ class: "apexcharts-inner apexcharts-graphical" }), t.dom.elDefs = t.dom.Paper.defs(), t.dom.Paper.add(t.dom.elGraphical), t.dom.elGraphical.add(t.dom.elDefs) } }, { key: "plotChartType", value: function (t, e) { var i = this.w, a = i.config, s = i.globals, r = { series: [], i: [] }, o = { series: [], i: [] }, n = { series: [], i: [] }, l = { series: [], i: [] }, h = { series: [], i: [] }, c = { series: [], i: [] }, d = { series: [], i: [] }, g = { series: [], i: [] }, p = { series: [], seriesRangeEnd: [], i: [] }, f = void 0 !== a.chart.type ? a.chart.type : "line", x = null, b = 0; s.series.forEach((function (e, a) { var u = t[a].type || f; switch (u) { case "column": case "bar": h.series.push(e), h.i.push(a), i.globals.columnSeries = h; break; case "area": o.series.push(e), o.i.push(a); break; case "line": r.series.push(e), r.i.push(a); break; case "scatter": n.series.push(e), n.i.push(a); break; case "bubble": l.series.push(e), l.i.push(a); break; case "candlestick": c.series.push(e), c.i.push(a); break; case "boxPlot": d.series.push(e), d.i.push(a); break; case "rangeBar": g.series.push(e), g.i.push(a); break; case "rangeArea": p.series.push(s.seriesRangeStart[a]), p.seriesRangeEnd.push(s.seriesRangeEnd[a]), p.i.push(a); break; case "heatmap": case "treemap": case "pie": case "donut": case "polarArea": case "radialBar": case "radar": x = u; break; default: console.warn("You have specified an unrecognized series type (", u, ").") }f !== u && "scatter" !== u && b++ })), b > 0 && (null !== x && console.warn("Chart or series type ", x, " can not appear with other chart or series types."), h.series.length > 0 && a.plotOptions.bar.horizontal && (b -= h.length, h = { series: [], i: [] }, i.globals.columnSeries = { series: [], i: [] }, console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"))), s.comboCharts || (s.comboCharts = b > 0); var v = new Ft(this.ctx, e), m = new kt(this.ctx, e); this.ctx.pie = new Lt(this.ctx); var w = new Mt(this.ctx); this.ctx.rangeBar = new It(this.ctx, e); var k = new Pt(this.ctx), A = []; if (s.comboCharts) { var S, C, L = new y(this.ctx); if (o.series.length > 0) (S = A).push.apply(S, u(L.drawSeriesByGroup(o, s.areaGroups, "area", v))); if (h.series.length > 0) if (i.config.chart.stacked) { var P = new wt(this.ctx, e); A.push(P.draw(h.series, h.i)) } else this.ctx.bar = new yt(this.ctx, e), A.push(this.ctx.bar.draw(h.series, h.i)); if (p.series.length > 0 && A.push(v.draw(p.series, "rangeArea", p.i, p.seriesRangeEnd)), r.series.length > 0) (C = A).push.apply(C, u(L.drawSeriesByGroup(r, s.lineGroups, "line", v))); if (c.series.length > 0 && A.push(m.draw(c.series, "candlestick", c.i)), d.series.length > 0 && A.push(m.draw(d.series, "boxPlot", d.i)), g.series.length > 0 && A.push(this.ctx.rangeBar.draw(g.series, g.i)), n.series.length > 0) { var M = new Ft(this.ctx, e, !0); A.push(M.draw(n.series, "scatter", n.i)) } if (l.series.length > 0) { var I = new Ft(this.ctx, e, !0); A.push(I.draw(l.series, "bubble", l.i)) } } else switch (a.chart.type) { case "line": A = v.draw(s.series, "line"); break; case "area": A = v.draw(s.series, "area"); break; case "bar": if (a.chart.stacked) A = new wt(this.ctx, e).draw(s.series); else this.ctx.bar = new yt(this.ctx, e), A = this.ctx.bar.draw(s.series); break; case "candlestick": A = new kt(this.ctx, e).draw(s.series, "candlestick"); break; case "boxPlot": A = new kt(this.ctx, e).draw(s.series, a.chart.type); break; case "rangeBar": A = this.ctx.rangeBar.draw(s.series); break; case "rangeArea": A = v.draw(s.seriesRangeStart, "rangeArea", void 0, s.seriesRangeEnd); break; case "heatmap": A = new St(this.ctx, e).draw(s.series); break; case "treemap": A = new Dt(this.ctx, e).draw(s.series); break; case "pie": case "donut": case "polarArea": A = this.ctx.pie.draw(s.series); break; case "radialBar": A = w.draw(s.series); break; case "radar": A = k.draw(s.series); break; default: A = v.draw(s.series) }return A } }, { key: "setSVGDimensions", value: function () { var t = this.w.globals, e = this.w.config; t.svgWidth = e.chart.width, t.svgHeight = e.chart.height; var i = x.getDimensions(this.el), a = e.chart.width.toString().split(/[0-9]+/g).pop(); "%" === a ? x.isNumber(i[0]) && (0 === i[0].width && (i = x.getDimensions(this.el.parentNode)), t.svgWidth = i[0] * parseInt(e.chart.width, 10) / 100) : "px" !== a && "" !== a || (t.svgWidth = parseInt(e.chart.width, 10)); var s = e.chart.height.toString().split(/[0-9]+/g).pop(); if ("auto" !== t.svgHeight && "" !== t.svgHeight) if ("%" === s) { var r = x.getDimensions(this.el.parentNode); t.svgHeight = r[1] * parseInt(e.chart.height, 10) / 100 } else t.svgHeight = parseInt(e.chart.height, 10); else t.axisCharts ? t.svgHeight = t.svgWidth / 1.61 : t.svgHeight = t.svgWidth / 1.2; if (t.svgWidth < 0 && (t.svgWidth = 0), t.svgHeight < 0 && (t.svgHeight = 0), m.setAttrs(t.dom.Paper.node, { width: t.svgWidth, height: t.svgHeight }), "%" !== s) { var o = e.chart.sparkline.enabled ? 0 : t.axisCharts ? e.chart.parentHeightOffset : 0; t.dom.Paper.node.parentNode.parentNode.style.minHeight = t.svgHeight + o + "px" } t.dom.elWrap.style.width = t.svgWidth + "px", t.dom.elWrap.style.height = t.svgHeight + "px" } }, { key: "shiftGraphPosition", value: function () { var t = this.w.globals, e = t.translateY, i = { transform: "translate(" + t.translateX + ", " + e + ")" }; m.setAttrs(t.dom.elGraphical.node, i) } }, { key: "resizeNonAxisCharts", value: function () { var t = this.w, e = t.globals, i = 0, a = t.config.chart.sparkline.enabled ? 1 : 15; a += t.config.grid.padding.bottom, "top" !== t.config.legend.position && "bottom" !== t.config.legend.position || !t.config.legend.show || t.config.legend.floating || (i = new lt(this.ctx).legendHelpers.getLegendBBox().clwh + 10); var s = t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"), r = 2.05 * t.globals.radialSize; if (s && !t.config.chart.sparkline.enabled && 0 !== t.config.plotOptions.radialBar.startAngle) { var o = x.getBoundingClientRect(s); r = o.bottom; var n = o.bottom - o.top; r = Math.max(2.05 * t.globals.radialSize, n) } var l = r + e.translateY + i + a; e.dom.elLegendForeign && e.dom.elLegendForeign.setAttribute("height", l), t.config.chart.height && String(t.config.chart.height).indexOf("%") > 0 || (e.dom.elWrap.style.height = l + "px", m.setAttrs(e.dom.Paper.node, { height: l }), e.dom.Paper.node.parentNode.parentNode.style.minHeight = l + "px") } }, { key: "coreCalculations", value: function () { new U(this.ctx).init() } }, { key: "resetGlobals", value: function () { var t = this, e = function () { return t.w.config.series.map((function (t) { return [] })) }, i = new F, a = this.w.globals; i.initGlobalVars(a), a.seriesXvalues = e(), a.seriesYvalues = e() } }, { key: "isMultipleY", value: function () { if (this.w.config.yaxis.constructor === Array && this.w.config.yaxis.length > 1) return this.w.globals.isMultipleYAxis = !0, !0 } }, { key: "xySettings", value: function () { var t = null, e = this.w; if (e.globals.axisCharts) { if ("back" === e.config.xaxis.crosshairs.position) new Q(this.ctx).drawXCrosshairs(); if ("back" === e.config.yaxis[0].crosshairs.position) new Q(this.ctx).drawYCrosshairs(); if ("datetime" === e.config.xaxis.type && void 0 === e.config.xaxis.labels.formatter) { this.ctx.timeScale = new Nt(this.ctx); var i = []; isFinite(e.globals.minX) && isFinite(e.globals.maxX) && !e.globals.isBarHorizontal ? i = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX, e.globals.maxX) : e.globals.isBarHorizontal && (i = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY, e.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(i) } t = new y(this.ctx).getCalculatedRatios() } return t } }, { key: "updateSourceChart", value: function (t) { this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions({ chart: { selection: { xaxis: { min: t.w.globals.minX, max: t.w.globals.maxX } } } }, !1, !1) } }, { key: "setupBrushHandler", value: function () { var t = this, e = this.w; if (e.config.chart.brush.enabled && "function" != typeof e.config.chart.events.selection) { var i = Array.isArray(e.config.chart.brush.targets) ? e.config.chart.brush.targets : [e.config.chart.brush.target]; i.forEach((function (e) { var i = ApexCharts.getChartByID(e); i.w.globals.brushSource = t.ctx, "function" != typeof i.w.config.chart.events.zoomed && (i.w.config.chart.events.zoomed = function () { t.updateSourceChart(i) }), "function" != typeof i.w.config.chart.events.scrolled && (i.w.config.chart.events.scrolled = function () { t.updateSourceChart(i) }) })), e.config.chart.events.selection = function (t, e) { i.forEach((function (t) { ApexCharts.getChartByID(t).ctx.updateHelpers._updateOptions({ xaxis: { min: e.xaxis.min, max: e.xaxis.max } }, !1, !1, !1, !1) })) } } } }]), t }(), Bt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "_updateOptions", value: function (t) { var e = this, a = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], s = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], r = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], o = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; return new Promise((function (n) { var l = [e.ctx]; r && (l = e.ctx.getSyncedCharts()), e.ctx.w.globals.isExecCalled && (l = [e.ctx], e.ctx.w.globals.isExecCalled = !1), l.forEach((function (r, h) { var c = r.w; if (c.globals.shouldAnimate = s, a || (c.globals.resized = !0, c.globals.dataChanged = !0, s && r.series.getPreviousPaths()), t && "object" === i(t) && (r.config = new Y(t), t = y.extendArrayProps(r.config, t, c), r.w.globals.chartID !== e.ctx.w.globals.chartID && delete t.series, c.config = x.extend(c.config, t), o && (c.globals.lastXAxis = t.xaxis ? x.clone(t.xaxis) : [], c.globals.lastYAxis = t.yaxis ? x.clone(t.yaxis) : [], c.globals.initialConfig = x.extend({}, c.config), c.globals.initialSeries = x.clone(c.config.series), t.series))) { for (var d = 0; d < c.globals.collapsedSeriesIndices.length; d++) { var g = c.config.series[c.globals.collapsedSeriesIndices[d]]; c.globals.collapsedSeries[d].data = c.globals.axisCharts ? g.data.slice() : g } for (var u = 0; u < c.globals.ancillaryCollapsedSeriesIndices.length; u++) { var p = c.config.series[c.globals.ancillaryCollapsedSeriesIndices[u]]; c.globals.ancillaryCollapsedSeries[u].data = c.globals.axisCharts ? p.data.slice() : p } r.series.emptyCollapsedSeries(c.config.series) } return r.update(t).then((function () { h === l.length - 1 && n(r) })) })) })) } }, { key: "_updateSeries", value: function (t, e) { var i = this, a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; return new Promise((function (s) { var r, o = i.w; return o.globals.shouldAnimate = e, o.globals.dataChanged = !0, e && i.ctx.series.getPreviousPaths(), o.globals.axisCharts ? (0 === (r = t.map((function (t, e) { return i._extendSeries(t, e) }))).length && (r = [{ data: [] }]), o.config.series = r) : o.config.series = t.slice(), a && (o.globals.initialConfig.series = x.clone(o.config.series), o.globals.initialSeries = x.clone(o.config.series)), i.ctx.update().then((function () { s(i.ctx) })) })) } }, { key: "_extendSeries", value: function (t, i) { var a = this.w, s = a.config.series[i]; return e(e({}, a.config.series[i]), {}, { name: t.name ? t.name : null == s ? void 0 : s.name, color: t.color ? t.color : null == s ? void 0 : s.color, type: t.type ? t.type : null == s ? void 0 : s.type, group: t.group ? t.group : null == s ? void 0 : s.group, data: t.data ? t.data : null == s ? void 0 : s.data, zIndex: void 0 !== t.zIndex ? t.zIndex : i }) } }, { key: "toggleDataPointSelection", value: function (t, e) { var i = this.w, a = null, s = ".apexcharts-series[data\\:realIndex='".concat(t, "']"); return i.globals.axisCharts ? a = i.globals.dom.Paper.select("".concat(s, " path[j='").concat(e, "'], ").concat(s, " circle[j='").concat(e, "'], ").concat(s, " rect[j='").concat(e, "']")).members[0] : void 0 === e && (a = i.globals.dom.Paper.select("".concat(s, " path[j='").concat(t, "']")).members[0], "pie" !== i.config.chart.type && "polarArea" !== i.config.chart.type && "donut" !== i.config.chart.type || this.ctx.pie.pieClicked(t)), a ? (new m(this.ctx).pathMouseDown(a, null), a.node ? a.node : null) : (console.warn("toggleDataPointSelection: Element not found"), null) } }, { key: "forceXAxisUpdate", value: function (t) { var e = this.w; if (["min", "max"].forEach((function (i) { void 0 !== t.xaxis[i] && (e.config.xaxis[i] = t.xaxis[i], e.globals.lastXAxis[i] = t.xaxis[i]) })), t.xaxis.categories && t.xaxis.categories.length && (e.config.xaxis.categories = t.xaxis.categories), e.config.xaxis.convertedCatToNumeric) { var i = new E(t); t = i.convertCatToNumericXaxis(t, this.ctx) } return t } }, { key: "forceYAxisUpdate", value: function (t) { return t.chart && t.chart.stacked && "100%" === t.chart.stackType && (Array.isArray(t.yaxis) ? t.yaxis.forEach((function (e, i) { t.yaxis[i].min = 0, t.yaxis[i].max = 100 })) : (t.yaxis.min = 0, t.yaxis.max = 100)), t } }, { key: "revertDefaultAxisMinMax", value: function (t) { var e = this, i = this.w, a = i.globals.lastXAxis, s = i.globals.lastYAxis; t && t.xaxis && (a = t.xaxis), t && t.yaxis && (s = t.yaxis), i.config.xaxis.min = a.min, i.config.xaxis.max = a.max; var r = function (t) { void 0 !== s[t] && (i.config.yaxis[t].min = s[t].min, i.config.yaxis[t].max = s[t].max) }; i.config.yaxis.map((function (t, a) { i.globals.zoomed || void 0 !== s[a] ? r(a) : void 0 !== e.ctx.opts.yaxis[a] && (t.min = e.ctx.opts.yaxis[a].min, t.max = e.ctx.opts.yaxis[a].max) })) } }]), t }(); Rt = "undefined" != typeof window ? window : void 0, Ht = function (t, e) { var a = (void 0 !== this ? this : t).SVG = function (t) { if (a.supported) return t = new a.Doc(t), a.parser.draw || a.prepare(), t }; if (a.ns = "http://www.w3.org/2000/svg", a.xmlns = "http://www.w3.org/2000/xmlns/", a.xlink = "http://www.w3.org/1999/xlink", a.svgjs = "http://svgjs.dev", a.supported = !0, !a.supported) return !1; a.did = 1e3, a.eid = function (t) { return "Svgjs" + d(t) + a.did++ }, a.create = function (t) { var i = e.createElementNS(this.ns, t); return i.setAttribute("id", this.eid(t)), i }, a.extend = function () { var t, e; e = (t = [].slice.call(arguments)).pop(); for (var i = t.length - 1; i >= 0; i--)if (t[i]) for (var s in e) t[i].prototype[s] = e[s]; a.Set && a.Set.inherit && a.Set.inherit() }, a.invent = function (t) { var e = "function" == typeof t.create ? t.create : function () { this.constructor.call(this, a.create(t.create)) }; return t.inherit && (e.prototype = new t.inherit), t.extend && a.extend(e, t.extend), t.construct && a.extend(t.parent || a.Container, t.construct), e }, a.adopt = function (e) { return e ? e.instance ? e.instance : ((i = "svg" == e.nodeName ? e.parentNode instanceof t.SVGElement ? new a.Nested : new a.Doc : "linearGradient" == e.nodeName ? new a.Gradient("linear") : "radialGradient" == e.nodeName ? new a.Gradient("radial") : a[d(e.nodeName)] ? new (a[d(e.nodeName)]) : new a.Element(e)).type = e.nodeName, i.node = e, e.instance = i, i instanceof a.Doc && i.namespace().defs(), i.setData(JSON.parse(e.getAttribute("svgjs:data")) || {}), i) : null; var i }, a.prepare = function () { var t = e.getElementsByTagName("body")[0], i = (t ? new a.Doc(t) : a.adopt(e.documentElement).nested()).size(2, 0); a.parser = { body: t || e.documentElement, draw: i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node, poly: i.polyline().node, path: i.path().node, native: a.create("svg") } }, a.parser = { native: a.create("svg") }, e.addEventListener("DOMContentLoaded", (function () { a.parser.draw || a.prepare() }), !1), a.regex = { numberAndUnit: /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i, hex: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, rgb: /rgb\((\d+),(\d+),(\d+)\)/, reference: /#([a-z0-9\-_]+)/i, transforms: /\)\s*,?\s*/, whitespace: /\s/g, isHex: /^#[a-f0-9]{3,6}$/i, isRgb: /^rgb\(/, isCss: /[^:]+:[^;]+;?/, isBlank: /^(\s+)?$/, isNumber: /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, isPercent: /^-?[\d\.]+%$/, isImage: /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i, delimiter: /[\s,]+/, hyphen: /([^e])\-/gi, pathLetters: /[MLHVCSQTAZ]/gi, isPathLetter: /[MLHVCSQTAZ]/i, numbersWithDots: /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi, dots: /\./g }, a.utils = { map: function (t, e) { for (var i = t.length, a = [], s = 0; s < i; s++)a.push(e(t[s])); return a }, filter: function (t, e) { for (var i = t.length, a = [], s = 0; s < i; s++)e(t[s]) && a.push(t[s]); return a }, filterSVGElements: function (e) { return this.filter(e, (function (e) { return e instanceof t.SVGElement })) } }, a.defaults = { attrs: { "fill-opacity": 1, "stroke-opacity": 1, "stroke-width": 0, "stroke-linejoin": "miter", "stroke-linecap": "butt", fill: "#000000", stroke: "#000000", opacity: 1, x: 0, y: 0, cx: 0, cy: 0, width: 0, height: 0, r: 0, rx: 0, ry: 0, offset: 0, "stop-opacity": 1, "stop-color": "#000000", "font-size": 16, "font-family": "Helvetica, Arial, sans-serif", "text-anchor": "start" } }, a.Color = function (t) { var e, s; this.r = 0, this.g = 0, this.b = 0, t && ("string" == typeof t ? a.regex.isRgb.test(t) ? (e = a.regex.rgb.exec(t.replace(a.regex.whitespace, "")), this.r = parseInt(e[1]), this.g = parseInt(e[2]), this.b = parseInt(e[3])) : a.regex.isHex.test(t) && (e = a.regex.hex.exec(4 == (s = t).length ? ["#", s.substring(1, 2), s.substring(1, 2), s.substring(2, 3), s.substring(2, 3), s.substring(3, 4), s.substring(3, 4)].join("") : s), this.r = parseInt(e[1], 16), this.g = parseInt(e[2], 16), this.b = parseInt(e[3], 16)) : "object" === i(t) && (this.r = t.r, this.g = t.g, this.b = t.b)) }, a.extend(a.Color, { toString: function () { return this.toHex() }, toHex: function () { return "#" + g(this.r) + g(this.g) + g(this.b) }, toRgb: function () { return "rgb(" + [this.r, this.g, this.b].join() + ")" }, brightness: function () { return this.r / 255 * .3 + this.g / 255 * .59 + this.b / 255 * .11 }, morph: function (t) { return this.destination = new a.Color(t), this }, at: function (t) { return this.destination ? (t = t < 0 ? 0 : t > 1 ? 1 : t, new a.Color({ r: ~~(this.r + (this.destination.r - this.r) * t), g: ~~(this.g + (this.destination.g - this.g) * t), b: ~~(this.b + (this.destination.b - this.b) * t) })) : this } }), a.Color.test = function (t) { return t += "", a.regex.isHex.test(t) || a.regex.isRgb.test(t) }, a.Color.isRgb = function (t) { return t && "number" == typeof t.r && "number" == typeof t.g && "number" == typeof t.b }, a.Color.isColor = function (t) { return a.Color.isRgb(t) || a.Color.test(t) }, a.Array = function (t, e) { 0 == (t = (t || []).valueOf()).length && e && (t = e.valueOf()), this.value = this.parse(t) }, a.extend(a.Array, { toString: function () { return this.value.join(" ") }, valueOf: function () { return this.value }, parse: function (t) { return t = t.valueOf(), Array.isArray(t) ? t : this.split(t) } }), a.PointArray = function (t, e) { a.Array.call(this, t, e || [[0, 0]]) }, a.PointArray.prototype = new a.Array, a.PointArray.prototype.constructor = a.PointArray; for (var s = { M: function (t, e, i) { return e.x = i.x = t[0], e.y = i.y = t[1], ["M", e.x, e.y] }, L: function (t, e) { return e.x = t[0], e.y = t[1], ["L", t[0], t[1]] }, H: function (t, e) { return e.x = t[0], ["H", t[0]] }, V: function (t, e) { return e.y = t[0], ["V", t[0]] }, C: function (t, e) { return e.x = t[4], e.y = t[5], ["C", t[0], t[1], t[2], t[3], t[4], t[5]] }, Q: function (t, e) { return e.x = t[2], e.y = t[3], ["Q", t[0], t[1], t[2], t[3]] }, S: function (t, e) { return e.x = t[2], e.y = t[3], ["S", t[0], t[1], t[2], t[3]] }, Z: function (t, e, i) { return e.x = i.x, e.y = i.y, ["Z"] } }, r = "mlhvqtcsaz".split(""), o = 0, n = r.length; o < n; ++o)s[r[o]] = function (t) { return function (e, i, a) { if ("H" == t) e[0] = e[0] + i.x; else if ("V" == t) e[0] = e[0] + i.y; else if ("A" == t) e[5] = e[5] + i.x, e[6] = e[6] + i.y; else for (var r = 0, o = e.length; r < o; ++r)e[r] = e[r] + (r % 2 ? i.y : i.x); if (s && "function" == typeof s[t]) return s[t](e, i, a) } }(r[o].toUpperCase()); a.PathArray = function (t, e) { a.Array.call(this, t, e || [["M", 0, 0]]) }, a.PathArray.prototype = new a.Array, a.PathArray.prototype.constructor = a.PathArray, a.extend(a.PathArray, { toString: function () { return function (t) { for (var e = 0, i = t.length, a = ""; e < i; e++)a += t[e][0], null != t[e][1] && (a += t[e][1], null != t[e][2] && (a += " ", a += t[e][2], null != t[e][3] && (a += " ", a += t[e][3], a += " ", a += t[e][4], null != t[e][5] && (a += " ", a += t[e][5], a += " ", a += t[e][6], null != t[e][7] && (a += " ", a += t[e][7]))))); return a + " " }(this.value) }, move: function (t, e) { var i = this.bbox(); return i.x, i.y, this }, at: function (t) { if (!this.destination) return this; for (var e = this.value, i = this.destination.value, s = [], r = new a.PathArray, o = 0, n = e.length; o < n; o++) { s[o] = [e[o][0]]; for (var l = 1, h = e[o].length; l < h; l++)s[o][l] = e[o][l] + (i[o][l] - e[o][l]) * t; "A" === s[o][0] && (s[o][4] = +(0 != s[o][4]), s[o][5] = +(0 != s[o][5])) } return r.value = s, r }, parse: function (t) { if (t instanceof a.PathArray) return t.valueOf(); var e, i = { M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0 }; t = "string" == typeof t ? t.replace(a.regex.numbersWithDots, h).replace(a.regex.pathLetters, " $& ").replace(a.regex.hyphen, "$1 -").trim().split(a.regex.delimiter) : t.reduce((function (t, e) { return [].concat.call(t, e) }), []); var r = [], o = new a.Point, n = new a.Point, l = 0, c = t.length; do { a.regex.isPathLetter.test(t[l]) ? (e = t[l], ++l) : "M" == e ? e = "L" : "m" == e && (e = "l"), r.push(s[e].call(null, t.slice(l, l += i[e.toUpperCase()]).map(parseFloat), o, n)) } while (c > l); return r }, bbox: function () { return a.parser.draw || a.prepare(), a.parser.path.setAttribute("d", this.toString()), a.parser.path.getBBox() } }), a.Number = a.invent({ create: function (t, e) { this.value = 0, this.unit = e || "", "number" == typeof t ? this.value = isNaN(t) ? 0 : isFinite(t) ? t : t < 0 ? -34e37 : 34e37 : "string" == typeof t ? (e = t.match(a.regex.numberAndUnit)) && (this.value = parseFloat(e[1]), "%" == e[5] ? this.value /= 100 : "s" == e[5] && (this.value *= 1e3), this.unit = e[5]) : t instanceof a.Number && (this.value = t.valueOf(), this.unit = t.unit) }, extend: { toString: function () { return ("%" == this.unit ? ~~(1e8 * this.value) / 1e6 : "s" == this.unit ? this.value / 1e3 : this.value) + this.unit }, toJSON: function () { return this.toString() }, valueOf: function () { return this.value }, plus: function (t) { return t = new a.Number(t), new a.Number(this + t, this.unit || t.unit) }, minus: function (t) { return t = new a.Number(t), new a.Number(this - t, this.unit || t.unit) }, times: function (t) { return t = new a.Number(t), new a.Number(this * t, this.unit || t.unit) }, divide: function (t) { return t = new a.Number(t), new a.Number(this / t, this.unit || t.unit) }, to: function (t) { var e = new a.Number(this); return "string" == typeof t && (e.unit = t), e }, morph: function (t) { return this.destination = new a.Number(t), t.relative && (this.destination.value += this.value), this }, at: function (t) { return this.destination ? new a.Number(this.destination).minus(this).times(t).plus(this) : this } } }), a.Element = a.invent({ create: function (t) { this._stroke = a.defaults.attrs.stroke, this._event = null, this.dom = {}, (this.node = t) && (this.type = t.nodeName, this.node.instance = this, this._stroke = t.getAttribute("stroke") || this._stroke) }, extend: { x: function (t) { return this.attr("x", t) }, y: function (t) { return this.attr("y", t) }, cx: function (t) { return null == t ? this.x() + this.width() / 2 : this.x(t - this.width() / 2) }, cy: function (t) { return null == t ? this.y() + this.height() / 2 : this.y(t - this.height() / 2) }, move: function (t, e) { return this.x(t).y(e) }, center: function (t, e) { return this.cx(t).cy(e) }, width: function (t) { return this.attr("width", t) }, height: function (t) { return this.attr("height", t) }, size: function (t, e) { var i = u(this, t, e); return this.width(new a.Number(i.width)).height(new a.Number(i.height)) }, clone: function (t) { this.writeDataToDom(); var e = x(this.node.cloneNode(!0)); return t ? t.add(e) : this.after(e), e }, remove: function () { return this.parent() && this.parent().removeElement(this), this }, replace: function (t) { return this.after(t).remove(), t }, addTo: function (t) { return t.put(this) }, putIn: function (t) { return t.add(this) }, id: function (t) { return this.attr("id", t) }, show: function () { return this.style("display", "") }, hide: function () { return this.style("display", "none") }, visible: function () { return "none" != this.style("display") }, toString: function () { return this.attr("id") }, classes: function () { var t = this.attr("class"); return null == t ? [] : t.trim().split(a.regex.delimiter) }, hasClass: function (t) { return -1 != this.classes().indexOf(t) }, addClass: function (t) { if (!this.hasClass(t)) { var e = this.classes(); e.push(t), this.attr("class", e.join(" ")) } return this }, removeClass: function (t) { return this.hasClass(t) && this.attr("class", this.classes().filter((function (e) { return e != t })).join(" ")), this }, toggleClass: function (t) { return this.hasClass(t) ? this.removeClass(t) : this.addClass(t) }, reference: function (t) { return a.get(this.attr(t)) }, parent: function (e) { var i = this; if (!i.node.parentNode) return null; if (i = a.adopt(i.node.parentNode), !e) return i; for (; i && i.node instanceof t.SVGElement;) { if ("string" == typeof e ? i.matches(e) : i instanceof e) return i; if (!i.node.parentNode || "#document" == i.node.parentNode.nodeName) return null; i = a.adopt(i.node.parentNode) } }, doc: function () { return this instanceof a.Doc ? this : this.parent(a.Doc) }, parents: function (t) { var e = [], i = this; do { if (!(i = i.parent(t)) || !i.node) break; e.push(i) } while (i.parent); return e }, matches: function (t) { return function (t, e) { return (t.matches || t.matchesSelector || t.msMatchesSelector || t.mozMatchesSelector || t.webkitMatchesSelector || t.oMatchesSelector).call(t, e) }(this.node, t) }, native: function () { return this.node }, svg: function (t) { var i = e.createElementNS("http://www.w3.org/2000/svg", "svg"); if (!(t && this instanceof a.Parent)) return i.appendChild(t = e.createElementNS("http://www.w3.org/2000/svg", "svg")), this.writeDataToDom(), t.appendChild(this.node.cloneNode(!0)), i.innerHTML.replace(/^/, "").replace(/<\/svg>$/, ""); i.innerHTML = "" + t.replace(/\n/, "").replace(/<([\w:-]+)([^<]+?)\/>/g, "<$1$2>") + ""; for (var s = 0, r = i.firstChild.childNodes.length; s < r; s++)this.node.appendChild(i.firstChild.firstChild); return this }, writeDataToDom: function () { return (this.each || this.lines) && (this.each ? this : this.lines()).each((function () { this.writeDataToDom() })), this.node.removeAttribute("svgjs:data"), Object.keys(this.dom).length && this.node.setAttribute("svgjs:data", JSON.stringify(this.dom)), this }, setData: function (t) { return this.dom = t, this }, is: function (t) { return function (t, e) { return t instanceof e }(this, t) } } }), a.easing = { "-": function (t) { return t }, "<>": function (t) { return -Math.cos(t * Math.PI) / 2 + .5 }, ">": function (t) { return Math.sin(t * Math.PI / 2) }, "<": function (t) { return 1 - Math.cos(t * Math.PI / 2) } }, a.morph = function (t) { return function (e, i) { return new a.MorphObj(e, i).at(t) } }, a.Situation = a.invent({ create: function (t) { this.init = !1, this.reversed = !1, this.reversing = !1, this.duration = new a.Number(t.duration).valueOf(), this.delay = new a.Number(t.delay).valueOf(), this.start = +new Date + this.delay, this.finish = this.start + this.duration, this.ease = t.ease, this.loop = 0, this.loops = !1, this.animations = {}, this.attrs = {}, this.styles = {}, this.transforms = [], this.once = {} } }), a.FX = a.invent({ create: function (t) { this._target = t, this.situations = [], this.active = !1, this.situation = null, this.paused = !1, this.lastPos = 0, this.pos = 0, this.absPos = 0, this._speed = 1 }, extend: { animate: function (t, e, s) { "object" === i(t) && (e = t.ease, s = t.delay, t = t.duration); var r = new a.Situation({ duration: t || 1e3, delay: s || 0, ease: a.easing[e || "-"] || e }); return this.queue(r), this }, target: function (t) { return t && t instanceof a.Element ? (this._target = t, this) : this._target }, timeToAbsPos: function (t) { return (t - this.situation.start) / (this.situation.duration / this._speed) }, absPosToTime: function (t) { return this.situation.duration / this._speed * t + this.situation.start }, startAnimFrame: function () { this.stopAnimFrame(), this.animationFrame = t.requestAnimationFrame(function () { this.step() }.bind(this)) }, stopAnimFrame: function () { t.cancelAnimationFrame(this.animationFrame) }, start: function () { return !this.active && this.situation && (this.active = !0, this.startCurrent()), this }, startCurrent: function () { return this.situation.start = +new Date + this.situation.delay / this._speed, this.situation.finish = this.situation.start + this.situation.duration / this._speed, this.initAnimations().step() }, queue: function (t) { return ("function" == typeof t || t instanceof a.Situation) && this.situations.push(t), this.situation || (this.situation = this.situations.shift()), this }, dequeue: function () { return this.stop(), this.situation = this.situations.shift(), this.situation && (this.situation instanceof a.Situation ? this.start() : this.situation.call(this)), this }, initAnimations: function () { var t, e = this.situation; if (e.init) return this; for (var i in e.animations) { t = this.target()[i](), Array.isArray(t) || (t = [t]), Array.isArray(e.animations[i]) || (e.animations[i] = [e.animations[i]]); for (var s = t.length; s--;)e.animations[i][s] instanceof a.Number && (t[s] = new a.Number(t[s])), e.animations[i][s] = t[s].morph(e.animations[i][s]) } for (var i in e.attrs) e.attrs[i] = new a.MorphObj(this.target().attr(i), e.attrs[i]); for (var i in e.styles) e.styles[i] = new a.MorphObj(this.target().style(i), e.styles[i]); return e.initialTransformation = this.target().matrixify(), e.init = !0, this }, clearQueue: function () { return this.situations = [], this }, clearCurrent: function () { return this.situation = null, this }, stop: function (t, e) { var i = this.active; return this.active = !1, e && this.clearQueue(), t && this.situation && (!i && this.startCurrent(), this.atEnd()), this.stopAnimFrame(), this.clearCurrent() }, after: function (t) { var e = this.last(); return this.target().on("finished.fx", (function i(a) { a.detail.situation == e && (t.call(this, e), this.off("finished.fx", i)) })), this._callStart() }, during: function (t) { var e = this.last(), i = function (i) { i.detail.situation == e && t.call(this, i.detail.pos, a.morph(i.detail.pos), i.detail.eased, e) }; return this.target().off("during.fx", i).on("during.fx", i), this.after((function () { this.off("during.fx", i) })), this._callStart() }, afterAll: function (t) { var e = function e(i) { t.call(this), this.off("allfinished.fx", e) }; return this.target().off("allfinished.fx", e).on("allfinished.fx", e), this._callStart() }, last: function () { return this.situations.length ? this.situations[this.situations.length - 1] : this.situation }, add: function (t, e, i) { return this.last()[i || "animations"][t] = e, this._callStart() }, step: function (t) { var e, i, a; t || (this.absPos = this.timeToAbsPos(+new Date)), !1 !== this.situation.loops ? (e = Math.max(this.absPos, 0), i = Math.floor(e), !0 === this.situation.loops || i < this.situation.loops ? (this.pos = e - i, a = this.situation.loop, this.situation.loop = i) : (this.absPos = this.situation.loops, this.pos = 1, a = this.situation.loop - 1, this.situation.loop = this.situation.loops), this.situation.reversing && (this.situation.reversed = this.situation.reversed != Boolean((this.situation.loop - a) % 2))) : (this.absPos = Math.min(this.absPos, 1), this.pos = this.absPos), this.pos < 0 && (this.pos = 0), this.situation.reversed && (this.pos = 1 - this.pos); var s = this.situation.ease(this.pos); for (var r in this.situation.once) r > this.lastPos && r <= s && (this.situation.once[r].call(this.target(), this.pos, s), delete this.situation.once[r]); return this.active && this.target().fire("during", { pos: this.pos, eased: s, fx: this, situation: this.situation }), this.situation ? (this.eachAt(), 1 == this.pos && !this.situation.reversed || this.situation.reversed && 0 == this.pos ? (this.stopAnimFrame(), this.target().fire("finished", { fx: this, situation: this.situation }), this.situations.length || (this.target().fire("allfinished"), this.situations.length || (this.target().off(".fx"), this.active = !1)), this.active ? this.dequeue() : this.clearCurrent()) : !this.paused && this.active && this.startAnimFrame(), this.lastPos = s, this) : this }, eachAt: function () { var t, e = this, i = this.target(), s = this.situation; for (var r in s.animations) t = [].concat(s.animations[r]).map((function (t) { return "string" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t })), i[r].apply(i, t); for (var r in s.attrs) t = [r].concat(s.attrs[r]).map((function (t) { return "string" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t })), i.attr.apply(i, t); for (var r in s.styles) t = [r].concat(s.styles[r]).map((function (t) { return "string" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t })), i.style.apply(i, t); if (s.transforms.length) { t = s.initialTransformation, r = 0; for (var o = s.transforms.length; r < o; r++) { var n = s.transforms[r]; n instanceof a.Matrix ? t = n.relative ? t.multiply((new a.Matrix).morph(n).at(s.ease(this.pos))) : t.morph(n).at(s.ease(this.pos)) : (n.relative || n.undo(t.extract()), t = t.multiply(n.at(s.ease(this.pos)))) } i.matrix(t) } return this }, once: function (t, e, i) { var a = this.last(); return i || (t = a.ease(t)), a.once[t] = e, this }, _callStart: function () { return setTimeout(function () { this.start() }.bind(this), 0), this } }, parent: a.Element, construct: { animate: function (t, e, i) { return (this.fx || (this.fx = new a.FX(this))).animate(t, e, i) }, delay: function (t) { return (this.fx || (this.fx = new a.FX(this))).delay(t) }, stop: function (t, e) { return this.fx && this.fx.stop(t, e), this }, finish: function () { return this.fx && this.fx.finish(), this } } }), a.MorphObj = a.invent({ create: function (t, e) { return a.Color.isColor(e) ? new a.Color(t).morph(e) : a.regex.delimiter.test(t) ? a.regex.pathLetters.test(t) ? new a.PathArray(t).morph(e) : new a.Array(t).morph(e) : a.regex.numberAndUnit.test(e) ? new a.Number(t).morph(e) : (this.value = t, void (this.destination = e)) }, extend: { at: function (t, e) { return e < 1 ? this.value : this.destination }, valueOf: function () { return this.value } } }), a.extend(a.FX, { attr: function (t, e, a) { if ("object" === i(t)) for (var s in t) this.attr(s, t[s]); else this.add(t, e, "attrs"); return this }, plot: function (t, e, i, a) { return 4 == arguments.length ? this.plot([t, e, i, a]) : this.add("plot", new (this.target().morphArray)(t)) } }), a.Box = a.invent({ create: function (t, e, s, r) { if (!("object" !== i(t) || t instanceof a.Element)) return a.Box.call(this, null != t.left ? t.left : t.x, null != t.top ? t.top : t.y, t.width, t.height); var o; 4 == arguments.length && (this.x = t, this.y = e, this.width = s, this.height = r), null == (o = this).x && (o.x = 0, o.y = 0, o.width = 0, o.height = 0), o.w = o.width, o.h = o.height, o.x2 = o.x + o.width, o.y2 = o.y + o.height, o.cx = o.x + o.width / 2, o.cy = o.y + o.height / 2 } }), a.BBox = a.invent({ create: function (t) { if (a.Box.apply(this, [].slice.call(arguments)), t instanceof a.Element) { var i; try { if (!e.documentElement.contains) { for (var s = t.node; s.parentNode;)s = s.parentNode; if (s != e) throw new Error("Element not in the dom") } i = t.node.getBBox() } catch (e) { if (t instanceof a.Shape) { a.parser.draw || a.prepare(); var r = t.clone(a.parser.draw.instance).show(); r && r.node && "function" == typeof r.node.getBBox && (i = r.node.getBBox()), r && "function" == typeof r.remove && r.remove() } else i = { x: t.node.clientLeft, y: t.node.clientTop, width: t.node.clientWidth, height: t.node.clientHeight } } a.Box.call(this, i) } }, inherit: a.Box, parent: a.Element, construct: { bbox: function () { return new a.BBox(this) } } }), a.BBox.prototype.constructor = a.BBox, a.Matrix = a.invent({ create: function (t) { var e = f([1, 0, 0, 1, 0, 0]); t = null === t ? e : t instanceof a.Element ? t.matrixify() : "string" == typeof t ? f(t.split(a.regex.delimiter).map(parseFloat)) : 6 == arguments.length ? f([].slice.call(arguments)) : Array.isArray(t) ? f(t) : t && "object" === i(t) ? t : e; for (var s = v.length - 1; s >= 0; --s)this[v[s]] = null != t[v[s]] ? t[v[s]] : e[v[s]] }, extend: { extract: function () { var t = p(this, 0, 1); p(this, 1, 0); var e = 180 / Math.PI * Math.atan2(t.y, t.x) - 90; return { x: this.e, y: this.f, transformedX: (this.e * Math.cos(e * Math.PI / 180) + this.f * Math.sin(e * Math.PI / 180)) / Math.sqrt(this.a * this.a + this.b * this.b), transformedY: (this.f * Math.cos(e * Math.PI / 180) + this.e * Math.sin(-e * Math.PI / 180)) / Math.sqrt(this.c * this.c + this.d * this.d), rotation: e, a: this.a, b: this.b, c: this.c, d: this.d, e: this.e, f: this.f, matrix: new a.Matrix(this) } }, clone: function () { return new a.Matrix(this) }, morph: function (t) { return this.destination = new a.Matrix(t), this }, multiply: function (t) { return new a.Matrix(this.native().multiply(function (t) { return t instanceof a.Matrix || (t = new a.Matrix(t)), t }(t).native())) }, inverse: function () { return new a.Matrix(this.native().inverse()) }, translate: function (t, e) { return new a.Matrix(this.native().translate(t || 0, e || 0)) }, native: function () { for (var t = a.parser.native.createSVGMatrix(), e = v.length - 1; e >= 0; e--)t[v[e]] = this[v[e]]; return t }, toString: function () { return "matrix(" + b(this.a) + "," + b(this.b) + "," + b(this.c) + "," + b(this.d) + "," + b(this.e) + "," + b(this.f) + ")" } }, parent: a.Element, construct: { ctm: function () { return new a.Matrix(this.node.getCTM()) }, screenCTM: function () { if (this instanceof a.Nested) { var t = this.rect(1, 1), e = t.node.getScreenCTM(); return t.remove(), new a.Matrix(e) } return new a.Matrix(this.node.getScreenCTM()) } } }), a.Point = a.invent({ create: function (t, e) { var a; a = Array.isArray(t) ? { x: t[0], y: t[1] } : "object" === i(t) ? { x: t.x, y: t.y } : null != t ? { x: t, y: null != e ? e : t } : { x: 0, y: 0 }, this.x = a.x, this.y = a.y }, extend: { clone: function () { return new a.Point(this) }, morph: function (t, e) { return this.destination = new a.Point(t, e), this } } }), a.extend(a.Element, { point: function (t, e) { return new a.Point(t, e).transform(this.screenCTM().inverse()) } }), a.extend(a.Element, { attr: function (t, e, s) { if (null == t) { for (t = {}, s = (e = this.node.attributes).length - 1; s >= 0; s--)t[e[s].nodeName] = a.regex.isNumber.test(e[s].nodeValue) ? parseFloat(e[s].nodeValue) : e[s].nodeValue; return t } if ("object" === i(t)) for (var r in t) this.attr(r, t[r]); else if (null === e) this.node.removeAttribute(t); else { if (null == e) return null == (e = this.node.getAttribute(t)) ? a.defaults.attrs[t] : a.regex.isNumber.test(e) ? parseFloat(e) : e; "stroke-width" == t ? this.attr("stroke", parseFloat(e) > 0 ? this._stroke : null) : "stroke" == t && (this._stroke = e), "fill" != t && "stroke" != t || (a.regex.isImage.test(e) && (e = this.doc().defs().image(e, 0, 0)), e instanceof a.Image && (e = this.doc().defs().pattern(0, 0, (function () { this.add(e) })))), "number" == typeof e ? e = new a.Number(e) : a.Color.isColor(e) ? e = new a.Color(e) : Array.isArray(e) && (e = new a.Array(e)), "leading" == t ? this.leading && this.leading(e) : "string" == typeof s ? this.node.setAttributeNS(s, t, e.toString()) : this.node.setAttribute(t, e.toString()), !this.rebuild || "font-size" != t && "x" != t || this.rebuild(t, e) } return this } }), a.extend(a.Element, { transform: function (t, e) { var s; return "object" !== i(t) ? (s = new a.Matrix(this).extract(), "string" == typeof t ? s[t] : s) : (s = new a.Matrix(this), e = !!e || !!t.relative, null != t.a && (s = e ? s.multiply(new a.Matrix(t)) : new a.Matrix(t)), this.attr("transform", s)) } }), a.extend(a.Element, { untransform: function () { return this.attr("transform", null) }, matrixify: function () { return (this.attr("transform") || "").split(a.regex.transforms).slice(0, -1).map((function (t) { var e = t.trim().split("("); return [e[0], e[1].split(a.regex.delimiter).map((function (t) { return parseFloat(t) }))] })).reduce((function (t, e) { return "matrix" == e[0] ? t.multiply(f(e[1])) : t[e[0]].apply(t, e[1]) }), new a.Matrix) }, toParent: function (t) { if (this == t) return this; var e = this.screenCTM(), i = t.screenCTM().inverse(); return this.addTo(t).untransform().transform(i.multiply(e)), this }, toDoc: function () { return this.toParent(this.doc()) } }), a.Transformation = a.invent({ create: function (t, e) { if (arguments.length > 1 && "boolean" != typeof e) return this.constructor.call(this, [].slice.call(arguments)); if (Array.isArray(t)) for (var a = 0, s = this.arguments.length; a < s; ++a)this[this.arguments[a]] = t[a]; else if (t && "object" === i(t)) for (a = 0, s = this.arguments.length; a < s; ++a)this[this.arguments[a]] = t[this.arguments[a]]; this.inversed = !1, !0 === e && (this.inversed = !0) } }), a.Translate = a.invent({ parent: a.Matrix, inherit: a.Transformation, create: function (t, e) { this.constructor.apply(this, [].slice.call(arguments)) }, extend: { arguments: ["transformedX", "transformedY"], method: "translate" } }), a.extend(a.Element, { style: function (t, e) { if (0 == arguments.length) return this.node.style.cssText || ""; if (arguments.length < 2) if ("object" === i(t)) for (var s in t) this.style(s, t[s]); else { if (!a.regex.isCss.test(t)) return this.node.style[c(t)]; for (t = t.split(/\s*;\s*/).filter((function (t) { return !!t })).map((function (t) { return t.split(/\s*:\s*/) })); e = t.pop();)this.style(e[0], e[1]) } else this.node.style[c(t)] = null === e || a.regex.isBlank.test(e) ? "" : e; return this } }), a.Parent = a.invent({ create: function (t) { this.constructor.call(this, t) }, inherit: a.Element, extend: { children: function () { return a.utils.map(a.utils.filterSVGElements(this.node.childNodes), (function (t) { return a.adopt(t) })) }, add: function (t, e) { return null == e ? this.node.appendChild(t.node) : t.node != this.node.childNodes[e] && this.node.insertBefore(t.node, this.node.childNodes[e]), this }, put: function (t, e) { return this.add(t, e), t }, has: function (t) { return this.index(t) >= 0 }, index: function (t) { return [].slice.call(this.node.childNodes).indexOf(t.node) }, get: function (t) { return a.adopt(this.node.childNodes[t]) }, first: function () { return this.get(0) }, last: function () { return this.get(this.node.childNodes.length - 1) }, each: function (t, e) { for (var i = this.children(), s = 0, r = i.length; s < r; s++)i[s] instanceof a.Element && t.apply(i[s], [s, i]), e && i[s] instanceof a.Container && i[s].each(t, e); return this }, removeElement: function (t) { return this.node.removeChild(t.node), this }, clear: function () { for (; this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild); return delete this._defs, this }, defs: function () { return this.doc().defs() } } }), a.extend(a.Parent, { ungroup: function (t, e) { return 0 === e || this instanceof a.Defs || this.node == a.parser.draw || (t = t || (this instanceof a.Doc ? this : this.parent(a.Parent)), e = e || 1 / 0, this.each((function () { return this instanceof a.Defs ? this : this instanceof a.Parent ? this.ungroup(t, e - 1) : this.toParent(t) })), this.node.firstChild || this.remove()), this }, flatten: function (t, e) { return this.ungroup(t, e) } }), a.Container = a.invent({ create: function (t) { this.constructor.call(this, t) }, inherit: a.Parent }), a.ViewBox = a.invent({ parent: a.Container, construct: {} }), ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mouseout", "mousemove", "touchstart", "touchmove", "touchleave", "touchend", "touchcancel"].forEach((function (t) { a.Element.prototype[t] = function (e) { return a.on(this.node, t, e), this } })), a.listeners = [], a.handlerMap = [], a.listenerId = 0, a.on = function (t, e, i, s, r) { var o = i.bind(s || t.instance || t), n = (a.handlerMap.indexOf(t) + 1 || a.handlerMap.push(t)) - 1, l = e.split(".")[0], h = e.split(".")[1] || "*"; a.listeners[n] = a.listeners[n] || {}, a.listeners[n][l] = a.listeners[n][l] || {}, a.listeners[n][l][h] = a.listeners[n][l][h] || {}, i._svgjsListenerId || (i._svgjsListenerId = ++a.listenerId), a.listeners[n][l][h][i._svgjsListenerId] = o, t.addEventListener(l, o, r || { passive: !1 }) }, a.off = function (t, e, i) { var s = a.handlerMap.indexOf(t), r = e && e.split(".")[0], o = e && e.split(".")[1], n = ""; if (-1 != s) if (i) { if ("function" == typeof i && (i = i._svgjsListenerId), !i) return; a.listeners[s][r] && a.listeners[s][r][o || "*"] && (t.removeEventListener(r, a.listeners[s][r][o || "*"][i], !1), delete a.listeners[s][r][o || "*"][i]) } else if (o && r) { if (a.listeners[s][r] && a.listeners[s][r][o]) { for (var l in a.listeners[s][r][o]) a.off(t, [r, o].join("."), l); delete a.listeners[s][r][o] } } else if (o) for (var h in a.listeners[s]) for (var n in a.listeners[s][h]) o === n && a.off(t, [h, o].join(".")); else if (r) { if (a.listeners[s][r]) { for (var n in a.listeners[s][r]) a.off(t, [r, n].join(".")); delete a.listeners[s][r] } } else { for (var h in a.listeners[s]) a.off(t, h); delete a.listeners[s], delete a.handlerMap[s] } }, a.extend(a.Element, { on: function (t, e, i, s) { return a.on(this.node, t, e, i, s), this }, off: function (t, e) { return a.off(this.node, t, e), this }, fire: function (e, i) { return e instanceof t.Event ? this.node.dispatchEvent(e) : this.node.dispatchEvent(e = new a.CustomEvent(e, { detail: i, cancelable: !0 })), this._event = e, this }, event: function () { return this._event } }), a.Defs = a.invent({ create: "defs", inherit: a.Container }), a.G = a.invent({ create: "g", inherit: a.Container, extend: { x: function (t) { return null == t ? this.transform("x") : this.transform({ x: t - this.x() }, !0) } }, construct: { group: function () { return this.put(new a.G) } } }), a.Doc = a.invent({ create: function (t) { t && ("svg" == (t = "string" == typeof t ? e.getElementById(t) : t).nodeName ? this.constructor.call(this, t) : (this.constructor.call(this, a.create("svg")), t.appendChild(this.node), this.size("100%", "100%")), this.namespace().defs()) }, inherit: a.Container, extend: { namespace: function () { return this.attr({ xmlns: a.ns, version: "1.1" }).attr("xmlns:xlink", a.xlink, a.xmlns).attr("xmlns:svgjs", a.svgjs, a.xmlns) }, defs: function () { var t; return this._defs || ((t = this.node.getElementsByTagName("defs")[0]) ? this._defs = a.adopt(t) : this._defs = new a.Defs, this.node.appendChild(this._defs.node)), this._defs }, parent: function () { return this.node.parentNode && "#document" != this.node.parentNode.nodeName ? this.node.parentNode : null }, remove: function () { return this.parent() && this.parent().removeChild(this.node), this }, clear: function () { for (; this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild); return delete this._defs, a.parser.draw && !a.parser.draw.parentNode && this.node.appendChild(a.parser.draw), this }, clone: function (t) { this.writeDataToDom(); var e = this.node, i = x(e.cloneNode(!0)); return t ? (t.node || t).appendChild(i.node) : e.parentNode.insertBefore(i.node, e.nextSibling), i } } }), a.extend(a.Element, {}), a.Gradient = a.invent({ create: function (t) { this.constructor.call(this, a.create(t + "Gradient")), this.type = t }, inherit: a.Container, extend: { at: function (t, e, i) { return this.put(new a.Stop).update(t, e, i) }, update: function (t) { return this.clear(), "function" == typeof t && t.call(this, this), this }, fill: function () { return "url(#" + this.id() + ")" }, toString: function () { return this.fill() }, attr: function (t, e, i) { return "transform" == t && (t = "gradientTransform"), a.Container.prototype.attr.call(this, t, e, i) } }, construct: { gradient: function (t, e) { return this.defs().gradient(t, e) } } }), a.extend(a.Gradient, a.FX, { from: function (t, e) { return "radial" == (this._target || this).type ? this.attr({ fx: new a.Number(t), fy: new a.Number(e) }) : this.attr({ x1: new a.Number(t), y1: new a.Number(e) }) }, to: function (t, e) { return "radial" == (this._target || this).type ? this.attr({ cx: new a.Number(t), cy: new a.Number(e) }) : this.attr({ x2: new a.Number(t), y2: new a.Number(e) }) } }), a.extend(a.Defs, { gradient: function (t, e) { return this.put(new a.Gradient(t)).update(e) } }), a.Stop = a.invent({ create: "stop", inherit: a.Element, extend: { update: function (t) { return ("number" == typeof t || t instanceof a.Number) && (t = { offset: arguments[0], color: arguments[1], opacity: arguments[2] }), null != t.opacity && this.attr("stop-opacity", t.opacity), null != t.color && this.attr("stop-color", t.color), null != t.offset && this.attr("offset", new a.Number(t.offset)), this } } }), a.Pattern = a.invent({ create: "pattern", inherit: a.Container, extend: { fill: function () { return "url(#" + this.id() + ")" }, update: function (t) { return this.clear(), "function" == typeof t && t.call(this, this), this }, toString: function () { return this.fill() }, attr: function (t, e, i) { return "transform" == t && (t = "patternTransform"), a.Container.prototype.attr.call(this, t, e, i) } }, construct: { pattern: function (t, e, i) { return this.defs().pattern(t, e, i) } } }), a.extend(a.Defs, { pattern: function (t, e, i) { return this.put(new a.Pattern).update(i).attr({ x: 0, y: 0, width: t, height: e, patternUnits: "userSpaceOnUse" }) } }), a.Shape = a.invent({ create: function (t) { this.constructor.call(this, t) }, inherit: a.Element }), a.Symbol = a.invent({ create: "symbol", inherit: a.Container, construct: { symbol: function () { return this.put(new a.Symbol) } } }), a.Use = a.invent({ create: "use", inherit: a.Shape, extend: { element: function (t, e) { return this.attr("href", (e || "") + "#" + t, a.xlink) } }, construct: { use: function (t, e) { return this.put(new a.Use).element(t, e) } } }), a.Rect = a.invent({ create: "rect", inherit: a.Shape, construct: { rect: function (t, e) { return this.put(new a.Rect).size(t, e) } } }), a.Circle = a.invent({ create: "circle", inherit: a.Shape, construct: { circle: function (t) { return this.put(new a.Circle).rx(new a.Number(t).divide(2)).move(0, 0) } } }), a.extend(a.Circle, a.FX, { rx: function (t) { return this.attr("r", t) }, ry: function (t) { return this.rx(t) } }), a.Ellipse = a.invent({ create: "ellipse", inherit: a.Shape, construct: { ellipse: function (t, e) { return this.put(new a.Ellipse).size(t, e).move(0, 0) } } }), a.extend(a.Ellipse, a.Rect, a.FX, { rx: function (t) { return this.attr("rx", t) }, ry: function (t) { return this.attr("ry", t) } }), a.extend(a.Circle, a.Ellipse, { x: function (t) { return null == t ? this.cx() - this.rx() : this.cx(t + this.rx()) }, y: function (t) { return null == t ? this.cy() - this.ry() : this.cy(t + this.ry()) }, cx: function (t) { return null == t ? this.attr("cx") : this.attr("cx", t) }, cy: function (t) { return null == t ? this.attr("cy") : this.attr("cy", t) }, width: function (t) { return null == t ? 2 * this.rx() : this.rx(new a.Number(t).divide(2)) }, height: function (t) { return null == t ? 2 * this.ry() : this.ry(new a.Number(t).divide(2)) }, size: function (t, e) { var i = u(this, t, e); return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2)) } }), a.Line = a.invent({ create: "line", inherit: a.Shape, extend: { array: function () { return new a.PointArray([[this.attr("x1"), this.attr("y1")], [this.attr("x2"), this.attr("y2")]]) }, plot: function (t, e, i, s) { return null == t ? this.array() : (t = void 0 !== e ? { x1: t, y1: e, x2: i, y2: s } : new a.PointArray(t).toLine(), this.attr(t)) }, move: function (t, e) { return this.attr(this.array().move(t, e).toLine()) }, size: function (t, e) { var i = u(this, t, e); return this.attr(this.array().size(i.width, i.height).toLine()) } }, construct: { line: function (t, e, i, s) { return a.Line.prototype.plot.apply(this.put(new a.Line), null != t ? [t, e, i, s] : [0, 0, 0, 0]) } } }), a.Polyline = a.invent({ create: "polyline", inherit: a.Shape, construct: { polyline: function (t) { return this.put(new a.Polyline).plot(t || new a.PointArray) } } }), a.Polygon = a.invent({ create: "polygon", inherit: a.Shape, construct: { polygon: function (t) { return this.put(new a.Polygon).plot(t || new a.PointArray) } } }), a.extend(a.Polyline, a.Polygon, { array: function () { return this._array || (this._array = new a.PointArray(this.attr("points"))) }, plot: function (t) { return null == t ? this.array() : this.clear().attr("points", "string" == typeof t ? t : this._array = new a.PointArray(t)) }, clear: function () { return delete this._array, this }, move: function (t, e) { return this.attr("points", this.array().move(t, e)) }, size: function (t, e) { var i = u(this, t, e); return this.attr("points", this.array().size(i.width, i.height)) } }), a.extend(a.Line, a.Polyline, a.Polygon, { morphArray: a.PointArray, x: function (t) { return null == t ? this.bbox().x : this.move(t, this.bbox().y) }, y: function (t) { return null == t ? this.bbox().y : this.move(this.bbox().x, t) }, width: function (t) { var e = this.bbox(); return null == t ? e.width : this.size(t, e.height) }, height: function (t) { var e = this.bbox(); return null == t ? e.height : this.size(e.width, t) } }), a.Path = a.invent({ create: "path", inherit: a.Shape, extend: { morphArray: a.PathArray, array: function () { return this._array || (this._array = new a.PathArray(this.attr("d"))) }, plot: function (t) { return null == t ? this.array() : this.clear().attr("d", "string" == typeof t ? t : this._array = new a.PathArray(t)) }, clear: function () { return delete this._array, this } }, construct: { path: function (t) { return this.put(new a.Path).plot(t || new a.PathArray) } } }), a.Image = a.invent({ create: "image", inherit: a.Shape, extend: { load: function (e) { if (!e) return this; var i = this, s = new t.Image; return a.on(s, "load", (function () { a.off(s); var t = i.parent(a.Pattern); null !== t && (0 == i.width() && 0 == i.height() && i.size(s.width, s.height), t && 0 == t.width() && 0 == t.height() && t.size(i.width(), i.height()), "function" == typeof i._loaded && i._loaded.call(i, { width: s.width, height: s.height, ratio: s.width / s.height, url: e })) })), a.on(s, "error", (function (t) { a.off(s), "function" == typeof i._error && i._error.call(i, t) })), this.attr("href", s.src = this.src = e, a.xlink) }, loaded: function (t) { return this._loaded = t, this }, error: function (t) { return this._error = t, this } }, construct: { image: function (t, e, i) { return this.put(new a.Image).load(t).size(e || 0, i || e || 0) } } }), a.Text = a.invent({ create: function () { this.constructor.call(this, a.create("text")), this.dom.leading = new a.Number(1.3), this._rebuild = !0, this._build = !1, this.attr("font-family", a.defaults.attrs["font-family"]) }, inherit: a.Shape, extend: { x: function (t) { return null == t ? this.attr("x") : this.attr("x", t) }, text: function (t) { if (void 0 === t) { t = ""; for (var e = this.node.childNodes, i = 0, s = e.length; i < s; ++i)0 != i && 3 != e[i].nodeType && 1 == a.adopt(e[i]).dom.newLined && (t += "\n"), t += e[i].textContent; return t } if (this.clear().build(!0), "function" == typeof t) t.call(this, this); else { i = 0; for (var r = (t = t.split("\n")).length; i < r; i++)this.tspan(t[i]).newLine() } return this.build(!1).rebuild() }, size: function (t) { return this.attr("font-size", t).rebuild() }, leading: function (t) { return null == t ? this.dom.leading : (this.dom.leading = new a.Number(t), this.rebuild()) }, lines: function () { var t = (this.textPath && this.textPath() || this).node, e = a.utils.map(a.utils.filterSVGElements(t.childNodes), (function (t) { return a.adopt(t) })); return new a.Set(e) }, rebuild: function (t) { if ("boolean" == typeof t && (this._rebuild = t), this._rebuild) { var e = this, i = 0, s = this.dom.leading * new a.Number(this.attr("font-size")); this.lines().each((function () { this.dom.newLined && (e.textPath() || this.attr("x", e.attr("x")), "\n" == this.text() ? i += s : (this.attr("dy", s + i), i = 0)) })), this.fire("rebuild") } return this }, build: function (t) { return this._build = !!t, this }, setData: function (t) { return this.dom = t, this.dom.leading = new a.Number(t.leading || 1.3), this } }, construct: { text: function (t) { return this.put(new a.Text).text(t) }, plain: function (t) { return this.put(new a.Text).plain(t) } } }), a.Tspan = a.invent({ create: "tspan", inherit: a.Shape, extend: { text: function (t) { return null == t ? this.node.textContent + (this.dom.newLined ? "\n" : "") : ("function" == typeof t ? t.call(this, this) : this.plain(t), this) }, dx: function (t) { return this.attr("dx", t) }, dy: function (t) { return this.attr("dy", t) }, newLine: function () { var t = this.parent(a.Text); return this.dom.newLined = !0, this.dy(t.dom.leading * t.attr("font-size")).attr("x", t.x()) } } }), a.extend(a.Text, a.Tspan, { plain: function (t) { return !1 === this._build && this.clear(), this.node.appendChild(e.createTextNode(t)), this }, tspan: function (t) { var e = (this.textPath && this.textPath() || this).node, i = new a.Tspan; return !1 === this._build && this.clear(), e.appendChild(i.node), i.text(t) }, clear: function () { for (var t = (this.textPath && this.textPath() || this).node; t.hasChildNodes();)t.removeChild(t.lastChild); return this }, length: function () { return this.node.getComputedTextLength() } }), a.TextPath = a.invent({ create: "textPath", inherit: a.Parent, parent: a.Text, construct: { morphArray: a.PathArray, array: function () { var t = this.track(); return t ? t.array() : null }, plot: function (t) { var e = this.track(), i = null; return e && (i = e.plot(t)), null == t ? i : this }, track: function () { var t = this.textPath(); if (t) return t.reference("href") }, textPath: function () { if (this.node.firstChild && "textPath" == this.node.firstChild.nodeName) return a.adopt(this.node.firstChild) } } }), a.Nested = a.invent({ create: function () { this.constructor.call(this, a.create("svg")), this.style("overflow", "visible") }, inherit: a.Container, construct: { nested: function () { return this.put(new a.Nested) } } }); var l = { stroke: ["color", "width", "opacity", "linecap", "linejoin", "miterlimit", "dasharray", "dashoffset"], fill: ["color", "opacity", "rule"], prefix: function (t, e) { return "color" == e ? t : t + "-" + e } }; function h(t, e, i, s) { return i + s.replace(a.regex.dots, " .") } function c(t) { return t.toLowerCase().replace(/-(.)/g, (function (t, e) { return e.toUpperCase() })) } function d(t) { return t.charAt(0).toUpperCase() + t.slice(1) } function g(t) { var e = t.toString(16); return 1 == e.length ? "0" + e : e } function u(t, e, i) { if (null == e || null == i) { var a = t.bbox(); null == e ? e = a.width / a.height * i : null == i && (i = a.height / a.width * e) } return { width: e, height: i } } function p(t, e, i) { return { x: e * t.a + i * t.c + 0, y: e * t.b + i * t.d + 0 } } function f(t) { return { a: t[0], b: t[1], c: t[2], d: t[3], e: t[4], f: t[5] } } function x(e) { for (var i = e.childNodes.length - 1; i >= 0; i--)e.childNodes[i] instanceof t.SVGElement && x(e.childNodes[i]); return a.adopt(e).id(a.eid(e.nodeName)) } function b(t) { return Math.abs(t) > 1e-37 ? t : 0 } ["fill", "stroke"].forEach((function (t) { var e = {}; e[t] = function (e) { if (void 0 === e) return this; if ("string" == typeof e || a.Color.isRgb(e) || e && "function" == typeof e.fill) this.attr(t, e); else for (var i = l[t].length - 1; i >= 0; i--)null != e[l[t][i]] && this.attr(l.prefix(t, l[t][i]), e[l[t][i]]); return this }, a.extend(a.Element, a.FX, e) })), a.extend(a.Element, a.FX, { translate: function (t, e) { return this.transform({ x: t, y: e }) }, matrix: function (t) { return this.attr("transform", new a.Matrix(6 == arguments.length ? [].slice.call(arguments) : t)) }, opacity: function (t) { return this.attr("opacity", t) }, dx: function (t) { return this.x(new a.Number(t).plus(this instanceof a.FX ? 0 : this.x()), !0) }, dy: function (t) { return this.y(new a.Number(t).plus(this instanceof a.FX ? 0 : this.y()), !0) } }), a.extend(a.Path, { length: function () { return this.node.getTotalLength() }, pointAt: function (t) { return this.node.getPointAtLength(t) } }), a.Set = a.invent({ create: function (t) { Array.isArray(t) ? this.members = t : this.clear() }, extend: { add: function () { for (var t = [].slice.call(arguments), e = 0, i = t.length; e < i; e++)this.members.push(t[e]); return this }, remove: function (t) { var e = this.index(t); return e > -1 && this.members.splice(e, 1), this }, each: function (t) { for (var e = 0, i = this.members.length; e < i; e++)t.apply(this.members[e], [e, this.members]); return this }, clear: function () { return this.members = [], this }, length: function () { return this.members.length }, has: function (t) { return this.index(t) >= 0 }, index: function (t) { return this.members.indexOf(t) }, get: function (t) { return this.members[t] }, first: function () { return this.get(0) }, last: function () { return this.get(this.members.length - 1) }, valueOf: function () { return this.members } }, construct: { set: function (t) { return new a.Set(t) } } }), a.FX.Set = a.invent({ create: function (t) { this.set = t } }), a.Set.inherit = function () { var t = []; for (var e in a.Shape.prototype) "function" == typeof a.Shape.prototype[e] && "function" != typeof a.Set.prototype[e] && t.push(e); for (var e in t.forEach((function (t) { a.Set.prototype[t] = function () { for (var e = 0, i = this.members.length; e < i; e++)this.members[e] && "function" == typeof this.members[e][t] && this.members[e][t].apply(this.members[e], arguments); return "animate" == t ? this.fx || (this.fx = new a.FX.Set(this)) : this } })), t = [], a.FX.prototype) "function" == typeof a.FX.prototype[e] && "function" != typeof a.FX.Set.prototype[e] && t.push(e); t.forEach((function (t) { a.FX.Set.prototype[t] = function () { for (var e = 0, i = this.set.members.length; e < i; e++)this.set.members[e].fx[t].apply(this.set.members[e].fx, arguments); return this } })) }, a.extend(a.Element, {}), a.extend(a.Element, { remember: function (t, e) { if ("object" === i(arguments[0])) for (var a in t) this.remember(a, t[a]); else { if (1 == arguments.length) return this.memory()[t]; this.memory()[t] = e } return this }, forget: function () { if (0 == arguments.length) this._memory = {}; else for (var t = arguments.length - 1; t >= 0; t--)delete this.memory()[arguments[t]]; return this }, memory: function () { return this._memory || (this._memory = {}) } }), a.get = function (t) { var i = e.getElementById(function (t) { var e = (t || "").toString().match(a.regex.reference); if (e) return e[1] }(t) || t); return a.adopt(i) }, a.select = function (t, i) { return new a.Set(a.utils.map((i || e).querySelectorAll(t), (function (t) { return a.adopt(t) }))) }, a.extend(a.Parent, { select: function (t) { return a.select(t, this.node) } }); var v = "abcdef".split(""); if ("function" != typeof t.CustomEvent) { var m = function (t, i) { i = i || { bubbles: !1, cancelable: !1, detail: void 0 }; var a = e.createEvent("CustomEvent"); return a.initCustomEvent(t, i.bubbles, i.cancelable, i.detail), a }; m.prototype = t.Event.prototype, a.CustomEvent = m } else a.CustomEvent = t.CustomEvent; return a }, "function" == typeof define && define.amd ? define((function () { return Ht(Rt, Rt.document) })) : "object" === ("undefined" == typeof exports ? "undefined" : i(exports)) && "undefined" != typeof module ? module.exports = Rt.document ? Ht(Rt, Rt.document) : function (t) { return Ht(t, t.document) } : Rt.SVG = Ht(Rt, Rt.document), - /*! svg.filter.js - v2.0.2 - 2016-02-24 - * https://github.com/wout/svg.filter.js - * Copyright (c) 2016 Wout Fierens; Licensed MIT */ - function () { SVG.Filter = SVG.invent({ create: "filter", inherit: SVG.Parent, extend: { source: "SourceGraphic", sourceAlpha: "SourceAlpha", background: "BackgroundImage", backgroundAlpha: "BackgroundAlpha", fill: "FillPaint", stroke: "StrokePaint", autoSetIn: !0, put: function (t, e) { return this.add(t, e), !t.attr("in") && this.autoSetIn && t.attr("in", this.source), t.attr("result") || t.attr("result", t), t }, blend: function (t, e, i) { return this.put(new SVG.BlendEffect(t, e, i)) }, colorMatrix: function (t, e) { return this.put(new SVG.ColorMatrixEffect(t, e)) }, convolveMatrix: function (t) { return this.put(new SVG.ConvolveMatrixEffect(t)) }, componentTransfer: function (t) { return this.put(new SVG.ComponentTransferEffect(t)) }, composite: function (t, e, i) { return this.put(new SVG.CompositeEffect(t, e, i)) }, flood: function (t, e) { return this.put(new SVG.FloodEffect(t, e)) }, offset: function (t, e) { return this.put(new SVG.OffsetEffect(t, e)) }, image: function (t) { return this.put(new SVG.ImageEffect(t)) }, merge: function () { var t = [void 0]; for (var e in arguments) t.push(arguments[e]); return this.put(new (SVG.MergeEffect.bind.apply(SVG.MergeEffect, t))) }, gaussianBlur: function (t, e) { return this.put(new SVG.GaussianBlurEffect(t, e)) }, morphology: function (t, e) { return this.put(new SVG.MorphologyEffect(t, e)) }, diffuseLighting: function (t, e, i) { return this.put(new SVG.DiffuseLightingEffect(t, e, i)) }, displacementMap: function (t, e, i, a, s) { return this.put(new SVG.DisplacementMapEffect(t, e, i, a, s)) }, specularLighting: function (t, e, i, a) { return this.put(new SVG.SpecularLightingEffect(t, e, i, a)) }, tile: function () { return this.put(new SVG.TileEffect) }, turbulence: function (t, e, i, a, s) { return this.put(new SVG.TurbulenceEffect(t, e, i, a, s)) }, toString: function () { return "url(#" + this.attr("id") + ")" } } }), SVG.extend(SVG.Defs, { filter: function (t) { var e = this.put(new SVG.Filter); return "function" == typeof t && t.call(e, e), e } }), SVG.extend(SVG.Container, { filter: function (t) { return this.defs().filter(t) } }), SVG.extend(SVG.Element, SVG.G, SVG.Nested, { filter: function (t) { return this.filterer = t instanceof SVG.Element ? t : this.doc().filter(t), this.doc() && this.filterer.doc() !== this.doc() && this.doc().defs().add(this.filterer), this.attr("filter", this.filterer), this.filterer }, unfilter: function (t) { return this.filterer && !0 === t && this.filterer.remove(), delete this.filterer, this.attr("filter", null) } }), SVG.Effect = SVG.invent({ create: function () { this.constructor.call(this) }, inherit: SVG.Element, extend: { in: function (t) { return null == t ? this.parent() && this.parent().select('[result="' + this.attr("in") + '"]').get(0) || this.attr("in") : this.attr("in", t) }, result: function (t) { return null == t ? this.attr("result") : this.attr("result", t) }, toString: function () { return this.result() } } }), SVG.ParentEffect = SVG.invent({ create: function () { this.constructor.call(this) }, inherit: SVG.Parent, extend: { in: function (t) { return null == t ? this.parent() && this.parent().select('[result="' + this.attr("in") + '"]').get(0) || this.attr("in") : this.attr("in", t) }, result: function (t) { return null == t ? this.attr("result") : this.attr("result", t) }, toString: function () { return this.result() } } }); var t = { blend: function (t, e) { return this.parent() && this.parent().blend(this, t, e) }, colorMatrix: function (t, e) { return this.parent() && this.parent().colorMatrix(t, e).in(this) }, convolveMatrix: function (t) { return this.parent() && this.parent().convolveMatrix(t).in(this) }, componentTransfer: function (t) { return this.parent() && this.parent().componentTransfer(t).in(this) }, composite: function (t, e) { return this.parent() && this.parent().composite(this, t, e) }, flood: function (t, e) { return this.parent() && this.parent().flood(t, e) }, offset: function (t, e) { return this.parent() && this.parent().offset(t, e).in(this) }, image: function (t) { return this.parent() && this.parent().image(t) }, merge: function () { return this.parent() && this.parent().merge.apply(this.parent(), [this].concat(arguments)) }, gaussianBlur: function (t, e) { return this.parent() && this.parent().gaussianBlur(t, e).in(this) }, morphology: function (t, e) { return this.parent() && this.parent().morphology(t, e).in(this) }, diffuseLighting: function (t, e, i) { return this.parent() && this.parent().diffuseLighting(t, e, i).in(this) }, displacementMap: function (t, e, i, a) { return this.parent() && this.parent().displacementMap(this, t, e, i, a) }, specularLighting: function (t, e, i, a) { return this.parent() && this.parent().specularLighting(t, e, i, a).in(this) }, tile: function () { return this.parent() && this.parent().tile().in(this) }, turbulence: function (t, e, i, a, s) { return this.parent() && this.parent().turbulence(t, e, i, a, s).in(this) } }; SVG.extend(SVG.Effect, t), SVG.extend(SVG.ParentEffect, t), SVG.ChildEffect = SVG.invent({ create: function () { this.constructor.call(this) }, inherit: SVG.Element, extend: { in: function (t) { this.attr("in", t) } } }); var e = { blend: function (t, e, i) { this.attr({ in: t, in2: e, mode: i || "normal" }) }, colorMatrix: function (t, e) { "matrix" == t && (e = s(e)), this.attr({ type: t, values: void 0 === e ? null : e }) }, convolveMatrix: function (t) { t = s(t), this.attr({ order: Math.sqrt(t.split(" ").length), kernelMatrix: t }) }, composite: function (t, e, i) { this.attr({ in: t, in2: e, operator: i }) }, flood: function (t, e) { this.attr("flood-color", t), null != e && this.attr("flood-opacity", e) }, offset: function (t, e) { this.attr({ dx: t, dy: e }) }, image: function (t) { this.attr("href", t, SVG.xlink) }, displacementMap: function (t, e, i, a, s) { this.attr({ in: t, in2: e, scale: i, xChannelSelector: a, yChannelSelector: s }) }, gaussianBlur: function (t, e) { null != t || null != e ? this.attr("stdDeviation", function (t) { if (!Array.isArray(t)) return t; for (var e = 0, i = t.length, a = []; e < i; e++)a.push(t[e]); return a.join(" ") }(Array.prototype.slice.call(arguments))) : this.attr("stdDeviation", "0 0") }, morphology: function (t, e) { this.attr({ operator: t, radius: e }) }, tile: function () { }, turbulence: function (t, e, i, a, s) { this.attr({ numOctaves: e, seed: i, stitchTiles: a, baseFrequency: t, type: s }) } }, i = { merge: function () { var t; if (arguments[0] instanceof SVG.Set) { var e = this; arguments[0].each((function (t) { this instanceof SVG.MergeNode ? e.put(this) : (this instanceof SVG.Effect || this instanceof SVG.ParentEffect) && e.put(new SVG.MergeNode(this)) })) } else { t = Array.isArray(arguments[0]) ? arguments[0] : arguments; for (var i = 0; i < t.length; i++)t[i] instanceof SVG.MergeNode ? this.put(t[i]) : this.put(new SVG.MergeNode(t[i])) } }, componentTransfer: function (t) { if (this.rgb = new SVG.Set, ["r", "g", "b", "a"].forEach(function (t) { this[t] = new (SVG["Func" + t.toUpperCase()])("identity"), this.rgb.add(this[t]), this.node.appendChild(this[t].node) }.bind(this)), t) for (var e in t.rgb && (["r", "g", "b"].forEach(function (e) { this[e].attr(t.rgb) }.bind(this)), delete t.rgb), t) this[e].attr(t[e]) }, diffuseLighting: function (t, e, i) { this.attr({ surfaceScale: t, diffuseConstant: e, kernelUnitLength: i }) }, specularLighting: function (t, e, i, a) { this.attr({ surfaceScale: t, diffuseConstant: e, specularExponent: i, kernelUnitLength: a }) } }, a = { distantLight: function (t, e) { this.attr({ azimuth: t, elevation: e }) }, pointLight: function (t, e, i) { this.attr({ x: t, y: e, z: i }) }, spotLight: function (t, e, i, a, s, r) { this.attr({ x: t, y: e, z: i, pointsAtX: a, pointsAtY: s, pointsAtZ: r }) }, mergeNode: function (t) { this.attr("in", t) } }; function s(t) { return Array.isArray(t) && (t = new SVG.Array(t)), t.toString().replace(/^\s+/, "").replace(/\s+$/, "").replace(/\s+/g, " ") } function r() { var t = function () { }; for (var e in "function" == typeof arguments[arguments.length - 1] && (t = arguments[arguments.length - 1], Array.prototype.splice.call(arguments, arguments.length - 1, 1)), arguments) for (var i in arguments[e]) t(arguments[e][i], i, arguments[e]) } ["r", "g", "b", "a"].forEach((function (t) { a["Func" + t.toUpperCase()] = function (t) { switch (this.attr("type", t), t) { case "table": this.attr("tableValues", arguments[1]); break; case "linear": this.attr("slope", arguments[1]), this.attr("intercept", arguments[2]); break; case "gamma": this.attr("amplitude", arguments[1]), this.attr("exponent", arguments[2]), this.attr("offset", arguments[2]) } } })), r(e, (function (t, e) { var i = e.charAt(0).toUpperCase() + e.slice(1); SVG[i + "Effect"] = SVG.invent({ create: function () { this.constructor.call(this, SVG.create("fe" + i)), t.apply(this, arguments), this.result(this.attr("id") + "Out") }, inherit: SVG.Effect, extend: {} }) })), r(i, (function (t, e) { var i = e.charAt(0).toUpperCase() + e.slice(1); SVG[i + "Effect"] = SVG.invent({ create: function () { this.constructor.call(this, SVG.create("fe" + i)), t.apply(this, arguments), this.result(this.attr("id") + "Out") }, inherit: SVG.ParentEffect, extend: {} }) })), r(a, (function (t, e) { var i = e.charAt(0).toUpperCase() + e.slice(1); SVG[i] = SVG.invent({ create: function () { this.constructor.call(this, SVG.create("fe" + i)), t.apply(this, arguments) }, inherit: SVG.ChildEffect, extend: {} }) })), SVG.extend(SVG.MergeEffect, { in: function (t) { return t instanceof SVG.MergeNode ? this.add(t, 0) : this.add(new SVG.MergeNode(t), 0), this } }), SVG.extend(SVG.CompositeEffect, SVG.BlendEffect, SVG.DisplacementMapEffect, { in2: function (t) { return null == t ? this.parent() && this.parent().select('[result="' + this.attr("in2") + '"]').get(0) || this.attr("in2") : this.attr("in2", t) } }), SVG.filter = { sepiatone: [.343, .669, .119, 0, 0, .249, .626, .13, 0, 0, .172, .334, .111, 0, 0, 0, 0, 0, 1, 0] } }.call(void 0), function () { function t(t, s, r, o, n, l, h) { for (var c = t.slice(s, r || h), d = o.slice(n, l || h), g = 0, u = { pos: [0, 0], start: [0, 0] }, p = { pos: [0, 0], start: [0, 0] }; ;) { if (c[g] = e.call(u, c[g]), d[g] = e.call(p, d[g]), c[g][0] != d[g][0] || "M" == c[g][0] || "A" == c[g][0] && (c[g][4] != d[g][4] || c[g][5] != d[g][5]) ? (Array.prototype.splice.apply(c, [g, 1].concat(a.call(u, c[g]))), Array.prototype.splice.apply(d, [g, 1].concat(a.call(p, d[g])))) : (c[g] = i.call(u, c[g]), d[g] = i.call(p, d[g])), ++g == c.length && g == d.length) break; g == c.length && c.push(["C", u.pos[0], u.pos[1], u.pos[0], u.pos[1], u.pos[0], u.pos[1]]), g == d.length && d.push(["C", p.pos[0], p.pos[1], p.pos[0], p.pos[1], p.pos[0], p.pos[1]]) } return { start: c, dest: d } } function e(t) { switch (t[0]) { case "z": case "Z": t[0] = "L", t[1] = this.start[0], t[2] = this.start[1]; break; case "H": t[0] = "L", t[2] = this.pos[1]; break; case "V": t[0] = "L", t[2] = t[1], t[1] = this.pos[0]; break; case "T": t[0] = "Q", t[3] = t[1], t[4] = t[2], t[1] = this.reflection[1], t[2] = this.reflection[0]; break; case "S": t[0] = "C", t[6] = t[4], t[5] = t[3], t[4] = t[2], t[3] = t[1], t[2] = this.reflection[1], t[1] = this.reflection[0] }return t } function i(t) { var e = t.length; return this.pos = [t[e - 2], t[e - 1]], -1 != "SCQT".indexOf(t[0]) && (this.reflection = [2 * this.pos[0] - t[e - 4], 2 * this.pos[1] - t[e - 3]]), t } function a(t) { var e = [t]; switch (t[0]) { case "M": return this.pos = this.start = [t[1], t[2]], e; case "L": t[5] = t[3] = t[1], t[6] = t[4] = t[2], t[1] = this.pos[0], t[2] = this.pos[1]; break; case "Q": t[6] = t[4], t[5] = t[3], t[4] = 1 * t[4] / 3 + 2 * t[2] / 3, t[3] = 1 * t[3] / 3 + 2 * t[1] / 3, t[2] = 1 * this.pos[1] / 3 + 2 * t[2] / 3, t[1] = 1 * this.pos[0] / 3 + 2 * t[1] / 3; break; case "A": e = function (t, e) { var i, a, s, r, o, n, l, h, c, d, g, u, p, f, x, b, v, m, y, w, k, A, S, C, L, P, M = Math.abs(e[1]), I = Math.abs(e[2]), T = e[3] % 360, z = e[4], X = e[5], E = e[6], Y = e[7], F = new SVG.Point(t), R = new SVG.Point(E, Y), H = []; if (0 === M || 0 === I || F.x === R.x && F.y === R.y) return [["C", F.x, F.y, R.x, R.y, R.x, R.y]]; i = new SVG.Point((F.x - R.x) / 2, (F.y - R.y) / 2).transform((new SVG.Matrix).rotate(T)), (a = i.x * i.x / (M * M) + i.y * i.y / (I * I)) > 1 && (M *= a = Math.sqrt(a), I *= a); s = (new SVG.Matrix).rotate(T).scale(1 / M, 1 / I).rotate(-T), F = F.transform(s), R = R.transform(s), r = [R.x - F.x, R.y - F.y], n = r[0] * r[0] + r[1] * r[1], o = Math.sqrt(n), r[0] /= o, r[1] /= o, l = n < 4 ? Math.sqrt(1 - n / 4) : 0, z === X && (l *= -1); h = new SVG.Point((R.x + F.x) / 2 + l * -r[1], (R.y + F.y) / 2 + l * r[0]), c = new SVG.Point(F.x - h.x, F.y - h.y), d = new SVG.Point(R.x - h.x, R.y - h.y), g = Math.acos(c.x / Math.sqrt(c.x * c.x + c.y * c.y)), c.y < 0 && (g *= -1); u = Math.acos(d.x / Math.sqrt(d.x * d.x + d.y * d.y)), d.y < 0 && (u *= -1); X && g > u && (u += 2 * Math.PI); !X && g < u && (u -= 2 * Math.PI); for (f = Math.ceil(2 * Math.abs(g - u) / Math.PI), b = [], v = g, p = (u - g) / f, x = 4 * Math.tan(p / 4) / 3, k = 0; k <= f; k++)y = Math.cos(v), m = Math.sin(v), w = new SVG.Point(h.x + y, h.y + m), b[k] = [new SVG.Point(w.x + x * m, w.y - x * y), w, new SVG.Point(w.x - x * m, w.y + x * y)], v += p; for (b[0][0] = b[0][1].clone(), b[b.length - 1][2] = b[b.length - 1][1].clone(), s = (new SVG.Matrix).rotate(T).scale(M, I).rotate(-T), k = 0, A = b.length; k < A; k++)b[k][0] = b[k][0].transform(s), b[k][1] = b[k][1].transform(s), b[k][2] = b[k][2].transform(s); for (k = 1, A = b.length; k < A; k++)S = (w = b[k - 1][2]).x, C = w.y, L = (w = b[k][0]).x, P = w.y, E = (w = b[k][1]).x, Y = w.y, H.push(["C", S, C, L, P, E, Y]); return H }(this.pos, t), t = e[0] }return t[0] = "C", this.pos = [t[5], t[6]], this.reflection = [2 * t[5] - t[3], 2 * t[6] - t[4]], e } function s(t, e) { if (!1 === e) return !1; for (var i = e, a = t.length; i < a; ++i)if ("M" == t[i][0]) return i; return !1 } SVG.extend(SVG.PathArray, { morph: function (e) { for (var i = this.value, a = this.parse(e), r = 0, o = 0, n = !1, l = !1; !1 !== r || !1 !== o;) { var h; n = s(i, !1 !== r && r + 1), l = s(a, !1 !== o && o + 1), !1 === r && (r = 0 == (h = new SVG.PathArray(c.start).bbox()).height || 0 == h.width ? i.push(i[0]) - 1 : i.push(["M", h.x + h.width / 2, h.y + h.height / 2]) - 1), !1 === o && (o = 0 == (h = new SVG.PathArray(c.dest).bbox()).height || 0 == h.width ? a.push(a[0]) - 1 : a.push(["M", h.x + h.width / 2, h.y + h.height / 2]) - 1); var c = t(i, r, n, a, o, l); i = i.slice(0, r).concat(c.start, !1 === n ? [] : i.slice(n)), a = a.slice(0, o).concat(c.dest, !1 === l ? [] : a.slice(l)), r = !1 !== n && r + c.start.length, o = !1 !== l && o + c.dest.length } return this.value = i, this.destination = new SVG.PathArray, this.destination.value = a, this } }) }(), - /*! svg.draggable.js - v2.2.2 - 2019-01-08 - * https://github.com/svgdotjs/svg.draggable.js - * Copyright (c) 2019 Wout Fierens; Licensed MIT */ - function () { function t(t) { t.remember("_draggable", this), this.el = t } t.prototype.init = function (t, e) { var i = this; this.constraint = t, this.value = e, this.el.on("mousedown.drag", (function (t) { i.start(t) })), this.el.on("touchstart.drag", (function (t) { i.start(t) })) }, t.prototype.transformPoint = function (t, e) { var i = (t = t || window.event).changedTouches && t.changedTouches[0] || t; return this.p.x = i.clientX - (e || 0), this.p.y = i.clientY, this.p.matrixTransform(this.m) }, t.prototype.getBBox = function () { var t = this.el.bbox(); return this.el instanceof SVG.Nested && (t = this.el.rbox()), (this.el instanceof SVG.G || this.el instanceof SVG.Use || this.el instanceof SVG.Nested) && (t.x = this.el.x(), t.y = this.el.y()), t }, t.prototype.start = function (t) { if ("click" != t.type && "mousedown" != t.type && "mousemove" != t.type || 1 == (t.which || t.buttons)) { var e = this; if (this.el.fire("beforedrag", { event: t, handler: this }), !this.el.event().defaultPrevented) { t.preventDefault(), t.stopPropagation(), this.parent = this.parent || this.el.parent(SVG.Nested) || this.el.parent(SVG.Doc), this.p = this.parent.node.createSVGPoint(), this.m = this.el.node.getScreenCTM().inverse(); var i, a = this.getBBox(); if (this.el instanceof SVG.Text) switch (i = this.el.node.getComputedTextLength(), this.el.attr("text-anchor")) { case "middle": i /= 2; break; case "start": i = 0 }this.startPoints = { point: this.transformPoint(t, i), box: a, transform: this.el.transform() }, SVG.on(window, "mousemove.drag", (function (t) { e.drag(t) })), SVG.on(window, "touchmove.drag", (function (t) { e.drag(t) })), SVG.on(window, "mouseup.drag", (function (t) { e.end(t) })), SVG.on(window, "touchend.drag", (function (t) { e.end(t) })), this.el.fire("dragstart", { event: t, p: this.startPoints.point, m: this.m, handler: this }) } } }, t.prototype.drag = function (t) { var e = this.getBBox(), i = this.transformPoint(t), a = this.startPoints.box.x + i.x - this.startPoints.point.x, s = this.startPoints.box.y + i.y - this.startPoints.point.y, r = this.constraint, o = i.x - this.startPoints.point.x, n = i.y - this.startPoints.point.y; if (this.el.fire("dragmove", { event: t, p: i, m: this.m, handler: this }), this.el.event().defaultPrevented) return i; if ("function" == typeof r) { var l = r.call(this.el, a, s, this.m); "boolean" == typeof l && (l = { x: l, y: l }), !0 === l.x ? this.el.x(a) : !1 !== l.x && this.el.x(l.x), !0 === l.y ? this.el.y(s) : !1 !== l.y && this.el.y(l.y) } else "object" == typeof r && (null != r.minX && a < r.minX ? o = (a = r.minX) - this.startPoints.box.x : null != r.maxX && a > r.maxX - e.width && (o = (a = r.maxX - e.width) - this.startPoints.box.x), null != r.minY && s < r.minY ? n = (s = r.minY) - this.startPoints.box.y : null != r.maxY && s > r.maxY - e.height && (n = (s = r.maxY - e.height) - this.startPoints.box.y), null != r.snapToGrid && (a -= a % r.snapToGrid, s -= s % r.snapToGrid, o -= o % r.snapToGrid, n -= n % r.snapToGrid), this.el instanceof SVG.G ? this.el.matrix(this.startPoints.transform).transform({ x: o, y: n }, !0) : this.el.move(a, s)); return i }, t.prototype.end = function (t) { var e = this.drag(t); this.el.fire("dragend", { event: t, p: e, m: this.m, handler: this }), SVG.off(window, "mousemove.drag"), SVG.off(window, "touchmove.drag"), SVG.off(window, "mouseup.drag"), SVG.off(window, "touchend.drag") }, SVG.extend(SVG.Element, { draggable: function (e, i) { "function" != typeof e && "object" != typeof e || (i = e, e = !0); var a = this.remember("_draggable") || new t(this); return (e = void 0 === e || e) ? a.init(i || {}, e) : (this.off("mousedown.drag"), this.off("touchstart.drag")), this } }) }.call(void 0), function () { function t(t) { this.el = t, t.remember("_selectHandler", this), this.pointSelection = { isSelected: !1 }, this.rectSelection = { isSelected: !1 }, this.pointsList = { lt: [0, 0], rt: ["width", 0], rb: ["width", "height"], lb: [0, "height"], t: ["width", 0], r: ["width", "height"], b: ["width", "height"], l: [0, "height"] }, this.pointCoord = function (t, e, i) { var a = "string" != typeof t ? t : e[t]; return i ? a / 2 : a }, this.pointCoords = function (t, e) { var i = this.pointsList[t]; return { x: this.pointCoord(i[0], e, "t" === t || "b" === t), y: this.pointCoord(i[1], e, "r" === t || "l" === t) } } } t.prototype.init = function (t, e) { var i = this.el.bbox(); this.options = {}; var a = this.el.selectize.defaults.points; for (var s in this.el.selectize.defaults) this.options[s] = this.el.selectize.defaults[s], void 0 !== e[s] && (this.options[s] = e[s]); var r = ["points", "pointsExclude"]; for (var s in r) { var o = this.options[r[s]]; "string" == typeof o ? o = o.length > 0 ? o.split(/\s*,\s*/i) : [] : "boolean" == typeof o && "points" === r[s] && (o = o ? a : []), this.options[r[s]] = o } this.options.points = [a, this.options.points].reduce((function (t, e) { return t.filter((function (t) { return e.indexOf(t) > -1 })) })), this.options.points = [this.options.points, this.options.pointsExclude].reduce((function (t, e) { return t.filter((function (t) { return e.indexOf(t) < 0 })) })), this.parent = this.el.parent(), this.nested = this.nested || this.parent.group(), this.nested.matrix(new SVG.Matrix(this.el).translate(i.x, i.y)), this.options.deepSelect && -1 !== ["line", "polyline", "polygon"].indexOf(this.el.type) ? this.selectPoints(t) : this.selectRect(t), this.observe(), this.cleanup() }, t.prototype.selectPoints = function (t) { return this.pointSelection.isSelected = t, this.pointSelection.set || (this.pointSelection.set = this.parent.set(), this.drawPoints()), this }, t.prototype.getPointArray = function () { var t = this.el.bbox(); return this.el.array().valueOf().map((function (e) { return [e[0] - t.x, e[1] - t.y] })) }, t.prototype.drawPoints = function () { for (var t = this, e = this.getPointArray(), i = 0, a = e.length; i < a; ++i) { var s = function (e) { return function (i) { (i = i || window.event).preventDefault ? i.preventDefault() : i.returnValue = !1, i.stopPropagation(); var a = i.pageX || i.touches[0].pageX, s = i.pageY || i.touches[0].pageY; t.el.fire("point", { x: a, y: s, i: e, event: i }) } }(i), r = this.drawPoint(e[i][0], e[i][1]).addClass(this.options.classPoints).addClass(this.options.classPoints + "_point").on("touchstart", s).on("mousedown", s); this.pointSelection.set.add(r) } }, t.prototype.drawPoint = function (t, e) { var i = this.options.pointType; switch (i) { case "circle": return this.drawCircle(t, e); case "rect": return this.drawRect(t, e); default: if ("function" == typeof i) return i.call(this, t, e); throw new Error("Unknown " + i + " point type!") } }, t.prototype.drawCircle = function (t, e) { return this.nested.circle(this.options.pointSize).center(t, e) }, t.prototype.drawRect = function (t, e) { return this.nested.rect(this.options.pointSize, this.options.pointSize).center(t, e) }, t.prototype.updatePointSelection = function () { var t = this.getPointArray(); this.pointSelection.set.each((function (e) { this.cx() === t[e][0] && this.cy() === t[e][1] || this.center(t[e][0], t[e][1]) })) }, t.prototype.updateRectSelection = function () { var t = this, e = this.el.bbox(); if (this.rectSelection.set.get(0).attr({ width: e.width, height: e.height }), this.options.points.length && this.options.points.map((function (i, a) { var s = t.pointCoords(i, e); t.rectSelection.set.get(a + 1).center(s.x, s.y) })), this.options.rotationPoint) { var i = this.rectSelection.set.length(); this.rectSelection.set.get(i - 1).center(e.width / 2, 20) } }, t.prototype.selectRect = function (t) { var e = this, i = this.el.bbox(); function a(t) { return function (i) { (i = i || window.event).preventDefault ? i.preventDefault() : i.returnValue = !1, i.stopPropagation(); var a = i.pageX || i.touches[0].pageX, s = i.pageY || i.touches[0].pageY; e.el.fire(t, { x: a, y: s, event: i }) } } if (this.rectSelection.isSelected = t, this.rectSelection.set = this.rectSelection.set || this.parent.set(), this.rectSelection.set.get(0) || this.rectSelection.set.add(this.nested.rect(i.width, i.height).addClass(this.options.classRect)), this.options.points.length && this.rectSelection.set.length() < 2) { this.options.points.map((function (t, s) { var r = e.pointCoords(t, i), o = e.drawPoint(r.x, r.y).attr("class", e.options.classPoints + "_" + t).on("mousedown", a(t)).on("touchstart", a(t)); e.rectSelection.set.add(o) })), this.rectSelection.set.each((function () { this.addClass(e.options.classPoints) })) } if (this.options.rotationPoint && (this.options.points && !this.rectSelection.set.get(9) || !this.options.points && !this.rectSelection.set.get(1))) { var s = function (t) { (t = t || window.event).preventDefault ? t.preventDefault() : t.returnValue = !1, t.stopPropagation(); var i = t.pageX || t.touches[0].pageX, a = t.pageY || t.touches[0].pageY; e.el.fire("rot", { x: i, y: a, event: t }) }, r = this.drawPoint(i.width / 2, 20).attr("class", this.options.classPoints + "_rot").on("touchstart", s).on("mousedown", s); this.rectSelection.set.add(r) } }, t.prototype.handler = function () { var t = this.el.bbox(); this.nested.matrix(new SVG.Matrix(this.el).translate(t.x, t.y)), this.rectSelection.isSelected && this.updateRectSelection(), this.pointSelection.isSelected && this.updatePointSelection() }, t.prototype.observe = function () { var t = this; if (MutationObserver) if (this.rectSelection.isSelected || this.pointSelection.isSelected) this.observerInst = this.observerInst || new MutationObserver((function () { t.handler() })), this.observerInst.observe(this.el.node, { attributes: !0 }); else try { this.observerInst.disconnect(), delete this.observerInst } catch (t) { } else this.el.off("DOMAttrModified.select"), (this.rectSelection.isSelected || this.pointSelection.isSelected) && this.el.on("DOMAttrModified.select", (function () { t.handler() })) }, t.prototype.cleanup = function () { !this.rectSelection.isSelected && this.rectSelection.set && (this.rectSelection.set.each((function () { this.remove() })), this.rectSelection.set.clear(), delete this.rectSelection.set), !this.pointSelection.isSelected && this.pointSelection.set && (this.pointSelection.set.each((function () { this.remove() })), this.pointSelection.set.clear(), delete this.pointSelection.set), this.pointSelection.isSelected || this.rectSelection.isSelected || (this.nested.remove(), delete this.nested) }, SVG.extend(SVG.Element, { selectize: function (e, i) { return "object" == typeof e && (i = e, e = !0), (this.remember("_selectHandler") || new t(this)).init(void 0 === e || e, i || {}), this } }), SVG.Element.prototype.selectize.defaults = { points: ["lt", "rt", "rb", "lb", "t", "r", "b", "l"], pointsExclude: [], classRect: "svg_select_boundingRect", classPoints: "svg_select_points", pointSize: 7, rotationPoint: !0, deepSelect: !1, pointType: "circle" } }(), function () { (function () { function t(t) { t.remember("_resizeHandler", this), this.el = t, this.parameters = {}, this.lastUpdateCall = null, this.p = t.doc().node.createSVGPoint() } t.prototype.transformPoint = function (t, e, i) { return this.p.x = t - (this.offset.x - window.pageXOffset), this.p.y = e - (this.offset.y - window.pageYOffset), this.p.matrixTransform(i || this.m) }, t.prototype._extractPosition = function (t) { return { x: null != t.clientX ? t.clientX : t.touches[0].clientX, y: null != t.clientY ? t.clientY : t.touches[0].clientY } }, t.prototype.init = function (t) { var e = this; if (this.stop(), "stop" !== t) { for (var i in this.options = {}, this.el.resize.defaults) this.options[i] = this.el.resize.defaults[i], void 0 !== t[i] && (this.options[i] = t[i]); this.el.on("lt.resize", (function (t) { e.resize(t || window.event) })), this.el.on("rt.resize", (function (t) { e.resize(t || window.event) })), this.el.on("rb.resize", (function (t) { e.resize(t || window.event) })), this.el.on("lb.resize", (function (t) { e.resize(t || window.event) })), this.el.on("t.resize", (function (t) { e.resize(t || window.event) })), this.el.on("r.resize", (function (t) { e.resize(t || window.event) })), this.el.on("b.resize", (function (t) { e.resize(t || window.event) })), this.el.on("l.resize", (function (t) { e.resize(t || window.event) })), this.el.on("rot.resize", (function (t) { e.resize(t || window.event) })), this.el.on("point.resize", (function (t) { e.resize(t || window.event) })), this.update() } }, t.prototype.stop = function () { return this.el.off("lt.resize"), this.el.off("rt.resize"), this.el.off("rb.resize"), this.el.off("lb.resize"), this.el.off("t.resize"), this.el.off("r.resize"), this.el.off("b.resize"), this.el.off("l.resize"), this.el.off("rot.resize"), this.el.off("point.resize"), this }, t.prototype.resize = function (t) { var e = this; this.m = this.el.node.getScreenCTM().inverse(), this.offset = { x: window.pageXOffset, y: window.pageYOffset }; var i = this._extractPosition(t.detail.event); if (this.parameters = { type: this.el.type, p: this.transformPoint(i.x, i.y), x: t.detail.x, y: t.detail.y, box: this.el.bbox(), rotation: this.el.transform().rotation }, "text" === this.el.type && (this.parameters.fontSize = this.el.attr()["font-size"]), void 0 !== t.detail.i) { var a = this.el.array().valueOf(); this.parameters.i = t.detail.i, this.parameters.pointCoords = [a[t.detail.i][0], a[t.detail.i][1]] } switch (t.type) { case "lt": this.calc = function (t, e) { var i = this.snapToGrid(t, e); if (this.parameters.box.width - i[0] > 0 && this.parameters.box.height - i[1] > 0) { if ("text" === this.parameters.type) return this.el.move(this.parameters.box.x + i[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize - i[0]); i = this.checkAspectRatio(i), this.el.move(this.parameters.box.x + i[0], this.parameters.box.y + i[1]).size(this.parameters.box.width - i[0], this.parameters.box.height - i[1]) } }; break; case "rt": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 2); if (this.parameters.box.width + i[0] > 0 && this.parameters.box.height - i[1] > 0) { if ("text" === this.parameters.type) return this.el.move(this.parameters.box.x - i[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize + i[0]); i = this.checkAspectRatio(i, !0), this.el.move(this.parameters.box.x, this.parameters.box.y + i[1]).size(this.parameters.box.width + i[0], this.parameters.box.height - i[1]) } }; break; case "rb": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 0); if (this.parameters.box.width + i[0] > 0 && this.parameters.box.height + i[1] > 0) { if ("text" === this.parameters.type) return this.el.move(this.parameters.box.x - i[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize + i[0]); i = this.checkAspectRatio(i), this.el.move(this.parameters.box.x, this.parameters.box.y).size(this.parameters.box.width + i[0], this.parameters.box.height + i[1]) } }; break; case "lb": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 1); if (this.parameters.box.width - i[0] > 0 && this.parameters.box.height + i[1] > 0) { if ("text" === this.parameters.type) return this.el.move(this.parameters.box.x + i[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize - i[0]); i = this.checkAspectRatio(i, !0), this.el.move(this.parameters.box.x + i[0], this.parameters.box.y).size(this.parameters.box.width - i[0], this.parameters.box.height + i[1]) } }; break; case "t": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 2); if (this.parameters.box.height - i[1] > 0) { if ("text" === this.parameters.type) return; this.el.move(this.parameters.box.x, this.parameters.box.y + i[1]).height(this.parameters.box.height - i[1]) } }; break; case "r": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 0); if (this.parameters.box.width + i[0] > 0) { if ("text" === this.parameters.type) return; this.el.move(this.parameters.box.x, this.parameters.box.y).width(this.parameters.box.width + i[0]) } }; break; case "b": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 0); if (this.parameters.box.height + i[1] > 0) { if ("text" === this.parameters.type) return; this.el.move(this.parameters.box.x, this.parameters.box.y).height(this.parameters.box.height + i[1]) } }; break; case "l": this.calc = function (t, e) { var i = this.snapToGrid(t, e, 1); if (this.parameters.box.width - i[0] > 0) { if ("text" === this.parameters.type) return; this.el.move(this.parameters.box.x + i[0], this.parameters.box.y).width(this.parameters.box.width - i[0]) } }; break; case "rot": this.calc = function (t, e) { var i = t + this.parameters.p.x, a = e + this.parameters.p.y, s = Math.atan2(this.parameters.p.y - this.parameters.box.y - this.parameters.box.height / 2, this.parameters.p.x - this.parameters.box.x - this.parameters.box.width / 2), r = Math.atan2(a - this.parameters.box.y - this.parameters.box.height / 2, i - this.parameters.box.x - this.parameters.box.width / 2), o = this.parameters.rotation + 180 * (r - s) / Math.PI + this.options.snapToAngle / 2; this.el.center(this.parameters.box.cx, this.parameters.box.cy).rotate(o - o % this.options.snapToAngle, this.parameters.box.cx, this.parameters.box.cy) }; break; case "point": this.calc = function (t, e) { var i = this.snapToGrid(t, e, this.parameters.pointCoords[0], this.parameters.pointCoords[1]), a = this.el.array().valueOf(); a[this.parameters.i][0] = this.parameters.pointCoords[0] + i[0], a[this.parameters.i][1] = this.parameters.pointCoords[1] + i[1], this.el.plot(a) } }this.el.fire("resizestart", { dx: this.parameters.x, dy: this.parameters.y, event: t }), SVG.on(window, "touchmove.resize", (function (t) { e.update(t || window.event) })), SVG.on(window, "touchend.resize", (function () { e.done() })), SVG.on(window, "mousemove.resize", (function (t) { e.update(t || window.event) })), SVG.on(window, "mouseup.resize", (function () { e.done() })) }, t.prototype.update = function (t) { if (t) { var e = this._extractPosition(t), i = this.transformPoint(e.x, e.y), a = i.x - this.parameters.p.x, s = i.y - this.parameters.p.y; this.lastUpdateCall = [a, s], this.calc(a, s), this.el.fire("resizing", { dx: a, dy: s, event: t }) } else this.lastUpdateCall && this.calc(this.lastUpdateCall[0], this.lastUpdateCall[1]) }, t.prototype.done = function () { this.lastUpdateCall = null, SVG.off(window, "mousemove.resize"), SVG.off(window, "mouseup.resize"), SVG.off(window, "touchmove.resize"), SVG.off(window, "touchend.resize"), this.el.fire("resizedone") }, t.prototype.snapToGrid = function (t, e, i, a) { var s; return void 0 !== a ? s = [(i + t) % this.options.snapToGrid, (a + e) % this.options.snapToGrid] : (i = null == i ? 3 : i, s = [(this.parameters.box.x + t + (1 & i ? 0 : this.parameters.box.width)) % this.options.snapToGrid, (this.parameters.box.y + e + (2 & i ? 0 : this.parameters.box.height)) % this.options.snapToGrid]), t < 0 && (s[0] -= this.options.snapToGrid), e < 0 && (s[1] -= this.options.snapToGrid), t -= Math.abs(s[0]) < this.options.snapToGrid / 2 ? s[0] : s[0] - (t < 0 ? -this.options.snapToGrid : this.options.snapToGrid), e -= Math.abs(s[1]) < this.options.snapToGrid / 2 ? s[1] : s[1] - (e < 0 ? -this.options.snapToGrid : this.options.snapToGrid), this.constraintToBox(t, e, i, a) }, t.prototype.constraintToBox = function (t, e, i, a) { var s, r, o = this.options.constraint || {}; return void 0 !== a ? (s = i, r = a) : (s = this.parameters.box.x + (1 & i ? 0 : this.parameters.box.width), r = this.parameters.box.y + (2 & i ? 0 : this.parameters.box.height)), void 0 !== o.minX && s + t < o.minX && (t = o.minX - s), void 0 !== o.maxX && s + t > o.maxX && (t = o.maxX - s), void 0 !== o.minY && r + e < o.minY && (e = o.minY - r), void 0 !== o.maxY && r + e > o.maxY && (e = o.maxY - r), [t, e] }, t.prototype.checkAspectRatio = function (t, e) { if (!this.options.saveAspectRatio) return t; var i = t.slice(), a = this.parameters.box.width / this.parameters.box.height, s = this.parameters.box.width + t[0], r = this.parameters.box.height - t[1], o = s / r; return o < a ? (i[1] = s / a - this.parameters.box.height, e && (i[1] = -i[1])) : o > a && (i[0] = this.parameters.box.width - r * a, e && (i[0] = -i[0])), i }, SVG.extend(SVG.Element, { resize: function (e) { return (this.remember("_resizeHandler") || new t(this)).init(e || {}), this } }), SVG.Element.prototype.resize.defaults = { snapToAngle: .1, snapToGrid: 1, constraint: {}, saveAspectRatio: !1 } }).call(this) }(), void 0 === window.Apex && (window.Apex = {}); var Gt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "initModules", value: function () { this.ctx.publicMethods = ["updateOptions", "updateSeries", "appendData", "appendSeries", "isSeriesHidden", "toggleSeries", "showSeries", "hideSeries", "setLocale", "resetSeries", "zoomX", "toggleDataPointSelection", "dataURI", "exportToCSV", "addXaxisAnnotation", "addYaxisAnnotation", "addPointAnnotation", "clearAnnotations", "removeAnnotation", "paper", "destroy"], this.ctx.eventList = ["click", "mousedown", "mousemove", "mouseleave", "touchstart", "touchmove", "touchleave", "mouseup", "touchend"], this.ctx.animations = new b(this.ctx), this.ctx.axes = new J(this.ctx), this.ctx.core = new Wt(this.ctx.el, this.ctx), this.ctx.config = new Y({}), this.ctx.data = new B(this.ctx), this.ctx.grid = new j(this.ctx), this.ctx.graphics = new m(this.ctx), this.ctx.coreUtils = new y(this.ctx), this.ctx.crosshairs = new Q(this.ctx), this.ctx.events = new Z(this.ctx), this.ctx.exports = new G(this.ctx), this.ctx.localization = new $(this.ctx), this.ctx.options = new I, this.ctx.responsive = new K(this.ctx), this.ctx.series = new W(this.ctx), this.ctx.theme = new tt(this.ctx), this.ctx.formatters = new S(this.ctx), this.ctx.titleSubtitle = new et(this.ctx), this.ctx.legend = new lt(this.ctx), this.ctx.toolbar = new ht(this.ctx), this.ctx.tooltip = new bt(this.ctx), this.ctx.dimensions = new ot(this.ctx), this.ctx.updateHelpers = new Bt(this.ctx), this.ctx.zoomPanSelection = new ct(this.ctx), this.ctx.w.globals.tooltip = new bt(this.ctx) } }]), t }(), Vt = function () { function t(e) { a(this, t), this.ctx = e, this.w = e.w } return r(t, [{ key: "clear", value: function (t) { var e = t.isUpdating; this.ctx.zoomPanSelection && this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar && this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements({ isUpdating: e }) } }, { key: "killSVG", value: function (t) { t.each((function (t, e) { this.removeClass("*"), this.off(), this.stop() }), !0), t.ungroup(), t.clear() } }, { key: "clearDomElements", value: function (t) { var e = this, i = t.isUpdating, a = this.w.globals.dom.Paper.node; a.parentNode && a.parentNode.parentNode && !i && (a.parentNode.parentNode.style.minHeight = "unset"); var s = this.w.globals.dom.baseEl; s && this.ctx.eventList.forEach((function (t) { s.removeEventListener(t, e.ctx.events.documentEvent) })); var r = this.w.globals.dom; if (null !== this.ctx.el) for (; this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild); this.killSVG(r.Paper), r.Paper.remove(), r.elWrap = null, r.elGraphical = null, r.elLegendWrap = null, r.elLegendForeign = null, r.baseEl = null, r.elGridRect = null, r.elGridRectMask = null, r.elGridRectMarkerMask = null, r.elForecastMask = null, r.elNonForecastMask = null, r.elDefs = null } }]), t }(), jt = new WeakMap; var _t = function () { function t(e, i) { a(this, t), this.opts = i, this.ctx = this, this.w = new R(i).init(), this.el = e, this.w.globals.cuid = x.randomId(), this.w.globals.chartID = this.w.config.chart.id ? x.escapeString(this.w.config.chart.id) : this.w.globals.cuid, new Gt(this).initModules(), this.create = x.bind(this.create, this), this.windowResizeHandler = this._windowResizeHandler.bind(this), this.parentResizeHandler = this._parentResizeCallback.bind(this) } return r(t, [{ key: "render", value: function () { var t = this; return new Promise((function (e, i) { if (null !== t.el) { void 0 === Apex._chartInstances && (Apex._chartInstances = []), t.w.config.chart.id && Apex._chartInstances.push({ id: t.w.globals.chartID, group: t.w.config.chart.group, chart: t }), t.setLocale(t.w.config.chart.defaultLocale); var a = t.w.config.chart.events.beforeMount; "function" == typeof a && a(t, t.w), t.events.fireEvent("beforeMount", [t, t.w]), window.addEventListener("resize", t.windowResizeHandler), function (t, e) { var i = !1; if (t.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) { var a = t.getBoundingClientRect(); "none" !== t.style.display && 0 !== a.width || (i = !0) } var s = new ResizeObserver((function (a) { i && e.call(t, a), i = !0 })); t.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? Array.from(t.children).forEach((function (t) { return s.observe(t) })) : s.observe(t), jt.set(e, s) }(t.el.parentNode, t.parentResizeHandler); var s = t.el.getRootNode && t.el.getRootNode(), r = x.is("ShadowRoot", s), o = t.el.ownerDocument, n = r ? s.getElementById("apexcharts-css") : o.getElementById("apexcharts-css"); if (!n) { var l; (n = document.createElement("style")).id = "apexcharts-css", n.textContent = '@keyframes opaque {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 1\n }\n}\n\n@keyframes resizeanim {\n 0%,to {\n opacity: 0\n }\n}\n\n.apexcharts-canvas {\n position: relative;\n user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0,0,0,.5);\n box-shadow: 0 0 1px rgba(255,255,255,.5);\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\n}\n\n.apexcharts-inner {\n position: relative\n}\n\n.apexcharts-text tspan {\n font-family: inherit\n}\n\n.legend-mouseover-inactive {\n transition: .15s ease all;\n opacity: .2\n}\n\n.apexcharts-legend-text {\n padding-left: 15px;\n margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255,255,255,.96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30,30,30,.8)\n}\n\n.apexcharts-tooltip * {\n font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #eceff1;\n border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0,0,0,.7);\n border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\n display: none\n}\n\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0;\n margin-right: 10px;\n border-radius: 50%\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0!important\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\n padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: 700;\n display: block;\n margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\n opacity: 0;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #eceff1;\n border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n padding: 9px 10px;\n transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\n top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\n left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\n right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none\n}\n\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0\n}\n\n.apexcharts-selection-rect {\n cursor: move\n}\n\n.svg_select_boundingRect,.svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6e8192;\n text-align: center\n}\n\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\n fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n fill: #333\n}\n\n.apexcharts-menu-icon,.apexcharts-selection-icon {\n position: relative\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px\n}\n\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\n transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n transform: scale(.62);\n position: relative;\n left: 1px;\n top: 0\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6e8192;\n stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0 6px 2px;\n display: flex;\n justify-content: space-between;\n align-items: center\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: .15s ease all;\n pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0,0,0,.7);\n color: #fff\n}\n\n@media screen and (min-width:768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1\n }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\n display: none;\n}\n\n.apexcharts-hidden-element-shown {\n opacity: 1;\n transition: 0.25s ease all;\n}\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\n cursor: default;\n pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: .3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease\n}\n\n.apexcharts-radialbar-label {\n cursor: pointer;\n}\n\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\n pointer-events: none\n}\n\n.apexcharts-marker {\n transition: .15s ease all\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n height: 100%;\n width: 100%;\n overflow: hidden\n}\n\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0\n}\n\n.resize-triggers>div {\n height: 100%;\n width: 100%;\n background: #eee;\n overflow: auto\n}\n\n.contract-trigger:before {\n overflow: hidden;\n width: 200%;\n height: 200%\n}\n\n.apexcharts-bar-goals-markers{\n pointer-events: none\n}\n\n.apexcharts-bar-shadows{\n pointer-events: none\n}\n\n.apexcharts-rangebar-goals-markers{\n pointer-events: none\n}'; var h = (null === (l = t.opts.chart) || void 0 === l ? void 0 : l.nonce) || t.w.config.chart.nonce; h && n.setAttribute("nonce", h), r ? s.prepend(n) : o.head.appendChild(n) } var c = t.create(t.w.config.series, {}); if (!c) return e(t); t.mount(c).then((function () { "function" == typeof t.w.config.chart.events.mounted && t.w.config.chart.events.mounted(t, t.w), t.events.fireEvent("mounted", [t, t.w]), e(c) })).catch((function (t) { i(t) })) } else i(new Error("Element not found")) })) } }, { key: "create", value: function (t, e) { var i = this.w; new Gt(this).initModules(); var a = this.w.globals; (a.noData = !1, a.animationEnded = !1, this.responsive.checkResponsiveConfig(e), i.config.xaxis.convertedCatToNumeric) && new E(i.config).convertCatToNumericXaxis(i.config, this.ctx); if (null === this.el) return a.animationEnded = !0, null; if (this.core.setupElements(), "treemap" === i.config.chart.type && (i.config.grid.show = !1, i.config.yaxis[0].show = !1), 0 === a.svgWidth) return a.animationEnded = !0, null; var s = y.checkComboSeries(t, i.config.chart.type); a.comboCharts = s.comboCharts, a.comboBarCount = s.comboBarCount; var r = t.every((function (t) { return t.data && 0 === t.data.length })); (0 === t.length || r && a.collapsedSeries.length < 1) && this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(t), this.theme.init(), new D(this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), a.noData && a.collapsedSeries.length !== a.series.length && !i.config.legend.showForSingleSeries || this.legend.init(), this.series.hasAllSeriesEqualX(), a.axisCharts && (this.core.coreCalculations(), "category" !== i.config.xaxis.type && this.formatters.setLabelFormatters(), this.ctx.toolbar.minX = i.globals.minX, this.ctx.toolbar.maxX = i.globals.maxX), this.formatters.heatmapLabelFormatters(), new y(this).getLargestMarkerSize(), this.dimensions.plotCoords(); var o = this.core.xySettings(); this.grid.createGridMask(); var n = this.core.plotChartType(t, o), l = new N(this); return l.bringForward(), i.config.dataLabels.background.enabled && l.dataLabelsBackground(), this.core.shiftGraphPosition(), { elGraph: n, xyRatios: o, dimensions: { plot: { left: i.globals.translateX, top: i.globals.translateY, width: i.globals.gridWidth, height: i.globals.gridHeight } } } } }, { key: "mount", value: function () { var t = this, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, i = this, a = i.w; return new Promise((function (s, r) { if (null === i.el) return r(new Error("Not enough data to display or target element not found")); (null === e || a.globals.allSeriesCollapsed) && i.series.handleNoData(), i.grid = new j(i); var o, n, l = i.grid.drawGrid(); (i.annotations = new T(i), i.annotations.drawImageAnnos(), i.annotations.drawTextAnnos(), "back" === a.config.grid.position) && (l && a.globals.dom.elGraphical.add(l.el), null != l && null !== (o = l.elGridBorders) && void 0 !== o && o.node && a.globals.dom.elGraphical.add(l.elGridBorders)); if (Array.isArray(e.elGraph)) for (var h = 0; h < e.elGraph.length; h++)a.globals.dom.elGraphical.add(e.elGraph[h]); else a.globals.dom.elGraphical.add(e.elGraph); "front" === a.config.grid.position && (l && a.globals.dom.elGraphical.add(l.el), null != l && null !== (n = l.elGridBorders) && void 0 !== n && n.node && a.globals.dom.elGraphical.add(l.elGridBorders)); "front" === a.config.xaxis.crosshairs.position && i.crosshairs.drawXCrosshairs(), "front" === a.config.yaxis[0].crosshairs.position && i.crosshairs.drawYCrosshairs(), "treemap" !== a.config.chart.type && i.axes.drawAxis(a.config.chart.type, l); var c = new V(t.ctx, l), d = new q(t.ctx, l); if (null !== l && (c.xAxisLabelCorrections(l.xAxisTickWidth), d.setYAxisTextAlignments(), a.config.yaxis.map((function (t, e) { -1 === a.globals.ignoreYAxisIndexes.indexOf(e) && d.yAxisTitleRotate(e, t.opposite) }))), i.annotations.drawAxesAnnotations(), !a.globals.noData) { if (a.config.tooltip.enabled && !a.globals.noData && i.w.globals.tooltip.drawTooltip(e.xyRatios), a.globals.axisCharts && (a.globals.isXNumeric || a.config.xaxis.convertedCatToNumeric || a.globals.isRangeBar)) (a.config.chart.zoom.enabled || a.config.chart.selection && a.config.chart.selection.enabled || a.config.chart.pan && a.config.chart.pan.enabled) && i.zoomPanSelection.init({ xyRatios: e.xyRatios }); else { var g = a.config.chart.toolbar.tools;["zoom", "zoomin", "zoomout", "selection", "pan", "reset"].forEach((function (t) { g[t] = !1 })) } a.config.chart.toolbar.show && !a.globals.allSeriesCollapsed && i.toolbar.createToolbar() } a.globals.memory.methodsToExec.length > 0 && a.globals.memory.methodsToExec.forEach((function (t) { t.method(t.params, !1, t.context) })), a.globals.axisCharts || a.globals.noData || i.core.resizeNonAxisCharts(), s(i) })) } }, { key: "destroy", value: function () { var t, e; window.removeEventListener("resize", this.windowResizeHandler), this.el.parentNode, t = this.parentResizeHandler, (e = jt.get(t)) && (e.disconnect(), jt.delete(t)); var i = this.w.config.chart.id; i && Apex._chartInstances.forEach((function (t, e) { t.id === x.escapeString(i) && Apex._chartInstances.splice(e, 1) })), new Vt(this.ctx).clear({ isUpdating: !1 }) } }, { key: "updateOptions", value: function (t) { var e = this, i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], s = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], r = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], o = this.w; return o.globals.selection = void 0, t.series && (this.series.resetSeries(!1, !0, !1), t.series.length && t.series[0].data && (t.series = t.series.map((function (t, i) { return e.updateHelpers._extendSeries(t, i) }))), this.updateHelpers.revertDefaultAxisMinMax()), t.xaxis && (t = this.updateHelpers.forceXAxisUpdate(t)), t.yaxis && (t = this.updateHelpers.forceYAxisUpdate(t)), o.globals.collapsedSeriesIndices.length > 0 && this.series.clearPreviousPaths(), t.theme && (t = this.theme.updateThemeOptions(t)), this.updateHelpers._updateOptions(t, i, a, s, r) } }, { key: "updateSeries", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; return this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(t, e, i) } }, { key: "appendSeries", value: function (t) { var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], a = this.w.config.series.slice(); return a.push(t), this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(a, e, i) } }, { key: "appendData", value: function (t) { var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = this; i.w.globals.dataChanged = !0, i.series.getPreviousPaths(); for (var a = i.w.config.series.slice(), s = 0; s < a.length; s++)if (null !== t[s] && void 0 !== t[s]) for (var r = 0; r < t[s].data.length; r++)a[s].data.push(t[s].data[r]); return i.w.config.series = a, e && (i.w.globals.initialSeries = x.clone(i.w.config.series)), this.update() } }, { key: "update", value: function (t) { var e = this; return new Promise((function (i, a) { new Vt(e.ctx).clear({ isUpdating: !0 }); var s = e.create(e.w.config.series, t); if (!s) return i(e); e.mount(s).then((function () { "function" == typeof e.w.config.chart.events.updated && e.w.config.chart.events.updated(e, e.w), e.events.fireEvent("updated", [e, e.w]), e.w.globals.isDirty = !0, i(e) })).catch((function (t) { a(t) })) })) } }, { key: "getSyncedCharts", value: function () { var t = this.getGroupedCharts(), e = [this]; return t.length && (e = [], t.forEach((function (t) { e.push(t) }))), e } }, { key: "getGroupedCharts", value: function () { var t = this; return Apex._chartInstances.filter((function (t) { if (t.group) return !0 })).map((function (e) { return t.w.config.chart.group === e.group ? e.chart : t })) } }, { key: "toggleSeries", value: function (t) { return this.series.toggleSeries(t) } }, { key: "highlightSeriesOnLegendHover", value: function (t, e) { return this.series.toggleSeriesOnHover(t, e) } }, { key: "showSeries", value: function (t) { this.series.showSeries(t) } }, { key: "hideSeries", value: function (t) { this.series.hideSeries(t) } }, { key: "isSeriesHidden", value: function (t) { this.series.isSeriesHidden(t) } }, { key: "resetSeries", value: function () { var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; this.series.resetSeries(t, e) } }, { key: "addEventListener", value: function (t, e) { this.events.addEventListener(t, e) } }, { key: "removeEventListener", value: function (t, e) { this.events.removeEventListener(t, e) } }, { key: "addXaxisAnnotation", value: function (t) { var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; i && (a = i), a.annotations.addXaxisAnnotationExternal(t, e, a) } }, { key: "addYaxisAnnotation", value: function (t) { var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; i && (a = i), a.annotations.addYaxisAnnotationExternal(t, e, a) } }, { key: "addPointAnnotation", value: function (t) { var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a = this; i && (a = i), a.annotations.addPointAnnotationExternal(t, e, a) } }, { key: "clearAnnotations", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0, e = this; t && (e = t), e.annotations.clearAnnotations(e) } }, { key: "removeAnnotation", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0, i = this; e && (i = e), i.annotations.removeAnnotation(i, t) } }, { key: "getChartArea", value: function () { return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner") } }, { key: "getSeriesTotalXRange", value: function (t, e) { return this.coreUtils.getSeriesTotalsXRange(t, e) } }, { key: "getHighestValueInSeries", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; return new U(this.ctx).getMinYMaxY(t).highestY } }, { key: "getLowestValueInSeries", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; return new U(this.ctx).getMinYMaxY(t).lowestY } }, { key: "getSeriesTotal", value: function () { return this.w.globals.seriesTotals } }, { key: "toggleDataPointSelection", value: function (t, e) { return this.updateHelpers.toggleDataPointSelection(t, e) } }, { key: "zoomX", value: function (t, e) { this.ctx.toolbar.zoomUpdateOptions(t, e) } }, { key: "setLocale", value: function (t) { this.localization.setCurrentLocaleValues(t) } }, { key: "dataURI", value: function (t) { return new G(this.ctx).dataURI(t) } }, { key: "exportToCSV", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return new G(this.ctx).exportToCSV(t) } }, { key: "paper", value: function () { return this.w.globals.dom.Paper } }, { key: "_parentResizeCallback", value: function () { this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize && this._windowResize() } }, { key: "_windowResize", value: function () { var t = this; clearTimeout(this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout((function () { t.w.globals.resized = !0, t.w.globals.dataChanged = !1, t.ctx.update() }), 150) } }, { key: "_windowResizeHandler", value: function () { var t = this.w.config.chart.redrawOnWindowResize; "function" == typeof t && (t = t()), t && this._windowResize() } }], [{ key: "getChartByID", value: function (t) { var e = x.escapeString(t); if (Apex._chartInstances) { var i = Apex._chartInstances.filter((function (t) { return t.id === e }))[0]; return i && i.chart } } }, { key: "initOnLoad", value: function () { for (var e = document.querySelectorAll("[data-apexcharts]"), i = 0; i < e.length; i++) { new t(e[i], JSON.parse(e[i].getAttribute("data-options"))).render() } } }, { key: "exec", value: function (t, e) { var i = this.getChartByID(t); if (i) { i.w.globals.isExecCalled = !0; var a = null; if (-1 !== i.publicMethods.indexOf(e)) { for (var s = arguments.length, r = new Array(s > 2 ? s - 2 : 0), o = 2; o < s; o++)r[o - 2] = arguments[o]; a = i[e].apply(i, r) } return a } } }, { key: "merge", value: function (t, e) { return x.extend(t, e) } }]), t }(); return _t -})); diff --git a/public/js/dropzone.js b/public/js/dropzone.js deleted file mode 100644 index 58ec1972f..000000000 --- a/public/js/dropzone.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(function(){return function(){var e={3099:function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},6077:function(e,t,n){var r=n(111);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},1223:function(e,t,n){var r=n(5112),i=n(30),o=n(3070),a=r("unscopables"),u=Array.prototype;null==u[a]&&o.f(u,a,{configurable:!0,value:i(null)}),e.exports=function(e){u[a][e]=!0}},1530:function(e,t,n){"use strict";var r=n(8710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5787:function(e){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},9670:function(e,t,n){var r=n(111);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},4019:function(e){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},260:function(e,t,n){"use strict";var r,i=n(4019),o=n(9781),a=n(7854),u=n(111),s=n(6656),l=n(648),c=n(8880),f=n(1320),p=n(3070).f,h=n(9518),d=n(7674),v=n(5112),y=n(9711),g=a.Int8Array,m=g&&g.prototype,b=a.Uint8ClampedArray,x=b&&b.prototype,w=g&&h(g),E=m&&h(m),k=Object.prototype,A=k.isPrototypeOf,S=v("toStringTag"),F=y("TYPED_ARRAY_TAG"),T=i&&!!d&&"Opera"!==l(a.opera),C=!1,L={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},R={BigInt64Array:8,BigUint64Array:8},I=function(e){if(!u(e))return!1;var t=l(e);return s(L,t)||s(R,t)};for(r in L)a[r]||(T=!1);if((!T||"function"!=typeof w||w===Function.prototype)&&(w=function(){throw TypeError("Incorrect invocation")},T))for(r in L)a[r]&&d(a[r],w);if((!T||!E||E===k)&&(E=w.prototype,T))for(r in L)a[r]&&d(a[r].prototype,E);if(T&&h(x)!==E&&d(x,E),o&&!s(E,S))for(r in C=!0,p(E,S,{get:function(){return u(this)?this[F]:void 0}}),L)a[r]&&c(a[r],F,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:T,TYPED_ARRAY_TAG:C&&F,aTypedArray:function(e){if(I(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(d){if(A.call(w,e))return e}else for(var t in L)if(s(L,r)){var n=a[t];if(n&&(e===n||A.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(o){if(n)for(var r in L){var i=a[r];i&&s(i.prototype,e)&&delete i.prototype[e]}E[e]&&!n||f(E,e,n?t:T&&m[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(o){if(d){if(n)for(r in L)(i=a[r])&&s(i,e)&&delete i[e];if(w[e]&&!n)return;try{return f(w,e,n?t:T&&g[e]||t)}catch(e){}}for(r in L)!(i=a[r])||i[e]&&!n||f(i,e,t)}},isView:function(e){if(!u(e))return!1;var t=l(e);return"DataView"===t||s(L,t)||s(R,t)},isTypedArray:I,TypedArray:w,TypedArrayPrototype:E}},3331:function(e,t,n){"use strict";var r=n(7854),i=n(9781),o=n(4019),a=n(8880),u=n(2248),s=n(7293),l=n(5787),c=n(9958),f=n(7466),p=n(7067),h=n(1179),d=n(9518),v=n(7674),y=n(8006).f,g=n(3070).f,m=n(1285),b=n(8003),x=n(9909),w=x.get,E=x.set,k="ArrayBuffer",A="DataView",S="Wrong index",F=r.ArrayBuffer,T=F,C=r.DataView,L=C&&C.prototype,R=Object.prototype,I=r.RangeError,U=h.pack,O=h.unpack,_=function(e){return[255&e]},M=function(e){return[255&e,e>>8&255]},z=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},P=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},j=function(e){return U(e,23,4)},D=function(e){return U(e,52,8)},N=function(e,t){g(e.prototype,t,{get:function(){return w(this)[t]}})},B=function(e,t,n,r){var i=p(n),o=w(e);if(i+t>o.byteLength)throw I(S);var a=w(o.buffer).bytes,u=i+o.byteOffset,s=a.slice(u,u+t);return r?s:s.reverse()},q=function(e,t,n,r,i,o){var a=p(n),u=w(e);if(a+t>u.byteLength)throw I(S);for(var s=w(u.buffer).bytes,l=a+u.byteOffset,c=r(+i),f=0;fG;)(W=Y[G++])in T||a(T,W,F[W]);H.constructor=T}v&&d(L)!==R&&v(L,R);var Q=new C(new T(2)),$=L.setInt8;Q.setInt8(0,2147483648),Q.setInt8(1,2147483649),!Q.getInt8(0)&&Q.getInt8(1)||u(L,{setInt8:function(e,t){$.call(this,e,t<<24>>24)},setUint8:function(e,t){$.call(this,e,t<<24>>24)}},{unsafe:!0})}else T=function(e){l(this,T,k);var t=p(e);E(this,{bytes:m.call(new Array(t),0),byteLength:t}),i||(this.byteLength=t)},C=function(e,t,n){l(this,C,A),l(e,T,A);var r=w(e).byteLength,o=c(t);if(o<0||o>r)throw I("Wrong offset");if(o+(n=void 0===n?r-o:f(n))>r)throw I("Wrong length");E(this,{buffer:e,byteLength:n,byteOffset:o}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=o)},i&&(N(T,"byteLength"),N(C,"buffer"),N(C,"byteLength"),N(C,"byteOffset")),u(C.prototype,{getInt8:function(e){return B(this,1,e)[0]<<24>>24},getUint8:function(e){return B(this,1,e)[0]},getInt16:function(e){var t=B(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=B(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return P(B(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return P(B(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return O(B(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return O(B(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){q(this,1,e,_,t)},setUint8:function(e,t){q(this,1,e,_,t)},setInt16:function(e,t){q(this,2,e,M,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){q(this,2,e,M,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){q(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){q(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){q(this,4,e,j,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){q(this,8,e,D,t,arguments.length>2?arguments[2]:void 0)}});b(T,k),b(C,A),e.exports={ArrayBuffer:T,DataView:C}},1048:function(e,t,n){"use strict";var r=n(7908),i=n(1400),o=n(7466),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),u=o(n.length),s=i(e,u),l=i(t,u),c=arguments.length>2?arguments[2]:void 0,f=a((void 0===c?u:i(c,u))-l,u-s),p=1;for(l0;)l in n?n[s]=n[l]:delete n[s],s+=p,l+=p;return n}},1285:function(e,t,n){"use strict";var r=n(7908),i=n(1400),o=n(7466);e.exports=function(e){for(var t=r(this),n=o(t.length),a=arguments.length,u=i(a>1?arguments[1]:void 0,n),s=a>2?arguments[2]:void 0,l=void 0===s?n:i(s,n);l>u;)t[u++]=e;return t}},8533:function(e,t,n){"use strict";var r=n(2092).forEach,i=n(9341)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},8457:function(e,t,n){"use strict";var r=n(9974),i=n(7908),o=n(3411),a=n(7659),u=n(7466),s=n(6135),l=n(1246);e.exports=function(e){var t,n,c,f,p,h,d=i(e),v="function"==typeof this?this:Array,y=arguments.length,g=y>1?arguments[1]:void 0,m=void 0!==g,b=l(d),x=0;if(m&&(g=r(g,y>2?arguments[2]:void 0,2)),null==b||v==Array&&a(b))for(n=new v(t=u(d.length));t>x;x++)h=m?g(d[x],x):d[x],s(n,x,h);else for(p=(f=b.call(d)).next,n=new v;!(c=p.call(f)).done;x++)h=m?o(f,g,[c.value,x],!0):c.value,s(n,x,h);return n.length=x,n}},1318:function(e,t,n){var r=n(5656),i=n(7466),o=n(1400),a=function(e){return function(t,n,a){var u,s=r(t),l=i(s.length),c=o(a,l);if(e&&n!=n){for(;l>c;)if((u=s[c++])!=u)return!0}else for(;l>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),i=n(8361),o=n(7908),a=n(7466),u=n(5417),s=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,c=4==e,f=6==e,p=7==e,h=5==e||f;return function(d,v,y,g){for(var m,b,x=o(d),w=i(x),E=r(v,y,3),k=a(w.length),A=0,S=g||u,F=t?S(d,k):n||p?S(d,0):void 0;k>A;A++)if((h||A in w)&&(b=E(m=w[A],A,x),e))if(t)F[A]=b;else if(b)switch(e){case 3:return!0;case 5:return m;case 6:return A;case 2:s.call(F,m)}else switch(e){case 4:return!1;case 7:s.call(F,m)}return f?-1:l||c?c:F}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterOut:l(7)}},6583:function(e,t,n){"use strict";var r=n(5656),i=n(9958),o=n(7466),a=n(9341),u=Math.min,s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0,c=a("lastIndexOf"),f=l||!c;e.exports=f?function(e){if(l)return s.apply(this,arguments)||0;var t=r(this),n=o(t.length),a=n-1;for(arguments.length>1&&(a=u(a,i(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:s},1194:function(e,t,n){var r=n(7293),i=n(5112),o=n(7392),a=i("species");e.exports=function(e){return o>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},9341:function(e,t,n){"use strict";var r=n(7293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},3671:function(e,t,n){var r=n(3099),i=n(7908),o=n(8361),a=n(7466),u=function(e){return function(t,n,u,s){r(n);var l=i(t),c=o(l),f=a(l.length),p=e?f-1:0,h=e?-1:1;if(u<2)for(;;){if(p in c){s=c[p],p+=h;break}if(p+=h,e?p<0:f<=p)throw TypeError("Reduce of empty array with no initial value")}for(;e?p>=0:f>p;p+=h)p in c&&(s=n(s,c[p],p,l));return s}};e.exports={left:u(!1),right:u(!0)}},5417:function(e,t,n){var r=n(111),i=n(3157),o=n(5112)("species");e.exports=function(e,t){var n;return i(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!i(n.prototype)?r(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},3411:function(e,t,n){var r=n(9670),i=n(9212);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){throw i(e),t}}},7072:function(e,t,n){var r=n(5112)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},4326:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},648:function(e,t,n){var r=n(1694),i=n(4326),o=n(5112)("toStringTag"),a="Arguments"==i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?i(t):"Object"==(r=i(t))&&"function"==typeof t.callee?"Arguments":r}},9920:function(e,t,n){var r=n(6656),i=n(3887),o=n(1236),a=n(3070);e.exports=function(e,t){for(var n=i(t),u=a.f,s=o.f,l=0;l=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=r[1]),e.exports=i&&+i},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(e,t,n){var r=n(7854),i=n(1236).f,o=n(8880),a=n(1320),u=n(3505),s=n(9920),l=n(4705);e.exports=function(e,t){var n,c,f,p,h,d=e.target,v=e.global,y=e.stat;if(n=v?r:y?r[d]||u(d,{}):(r[d]||{}).prototype)for(c in t){if(p=t[c],f=e.noTargetGet?(h=i(n,c))&&h.value:n[c],!l(v?c:d+(y?".":"#")+c,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;s(p,f)}(e.sham||f&&f.sham)&&o(p,"sham",!0),a(n,c,p,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:function(e,t,n){"use strict";n(4916);var r=n(1320),i=n(7293),o=n(5112),a=n(2261),u=n(8880),s=o("species"),l=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),c="$0"==="a".replace(/./,"$0"),f=o("replace"),p=!!/./[f]&&""===/./[f]("a","$0"),h=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,f){var d=o(e),v=!i((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),y=v&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!v||!y||"replace"===e&&(!l||!c||p)||"split"===e&&!h){var g=/./[d],m=n(d,""[e],(function(e,t,n,r,i){return t.exec===a?v&&!i?{done:!0,value:g.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:c,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),b=m[0],x=m[1];r(String.prototype,e,b),r(RegExp.prototype,d,2==t?function(e,t){return x.call(e,this,t)}:function(e){return x.call(e,this)})}f&&u(RegExp.prototype[d],"sham",!0)}},9974:function(e,t,n){var r=n(3099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},5005:function(e,t,n){var r=n(857),i=n(7854),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(r[e])||o(i[e]):r[e]&&r[e][t]||i[e]&&i[e][t]}},1246:function(e,t,n){var r=n(648),i=n(7497),o=n(5112)("iterator");e.exports=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},8554:function(e,t,n){var r=n(9670),i=n(1246);e.exports=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(String(e)+" is not iterable");return r(t.call(e))}},647:function(e,t,n){var r=n(7908),i=Math.floor,o="".replace,a=/\$([$&'`]|\d\d?|<[^>]*>)/g,u=/\$([$&'`]|\d\d?)/g;e.exports=function(e,t,n,s,l,c){var f=n+e.length,p=s.length,h=u;return void 0!==l&&(l=r(l),h=a),o.call(c,h,(function(r,o){var a;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":a=l[o.slice(1,-1)];break;default:var u=+o;if(0===u)return r;if(u>p){var c=i(u/10);return 0===c?r:c<=p?void 0===s[c-1]?o.charAt(1):s[c-1]+o.charAt(1):r}a=s[u-1]}return void 0===a?"":a}))}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},6656:function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},3501:function(e){e.exports={}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),i=n(7293),o=n(317);e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},1179:function(e){var t=Math.abs,n=Math.pow,r=Math.floor,i=Math.log,o=Math.LN2;e.exports={pack:function(e,a,u){var s,l,c,f=new Array(u),p=8*u-a-1,h=(1<>1,v=23===a?n(2,-24)-n(2,-77):0,y=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===1/0?(l=e!=e?1:0,s=h):(s=r(i(e)/o),e*(c=n(2,-s))<1&&(s--,c*=2),(e+=s+d>=1?v/c:v*n(2,1-d))*c>=2&&(s++,c/=2),s+d>=h?(l=0,s=h):s+d>=1?(l=(e*c-1)*n(2,a),s+=d):(l=e*n(2,d-1)*n(2,a),s=0));a>=8;f[g++]=255&l,l/=256,a-=8);for(s=s<0;f[g++]=255&s,s/=256,p-=8);return f[--g]|=128*y,f},unpack:function(e,t){var r,i=e.length,o=8*i-t-1,a=(1<>1,s=o-7,l=i-1,c=e[l--],f=127&c;for(c>>=7;s>0;f=256*f+e[l],l--,s-=8);for(r=f&(1<<-s)-1,f>>=-s,s+=t;s>0;r=256*r+e[l],l--,s-=8);if(0===f)f=1-u;else{if(f===a)return r?NaN:c?-1/0:1/0;r+=n(2,t),f-=u}return(c?-1:1)*r*n(2,f-t)}}},8361:function(e,t,n){var r=n(7293),i=n(4326),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},9587:function(e,t,n){var r=n(111),i=n(7674);e.exports=function(e,t,n){var o,a;return i&&"function"==typeof(o=t.constructor)&&o!==n&&r(a=o.prototype)&&a!==n.prototype&&i(e,a),e}},2788:function(e,t,n){var r=n(5465),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},9909:function(e,t,n){var r,i,o,a=n(8536),u=n(7854),s=n(111),l=n(8880),c=n(6656),f=n(5465),p=n(6200),h=n(3501),d=u.WeakMap;if(a){var v=f.state||(f.state=new d),y=v.get,g=v.has,m=v.set;r=function(e,t){return t.facade=e,m.call(v,e,t),t},i=function(e){return y.call(v,e)||{}},o=function(e){return g.call(v,e)}}else{var b=p("state");h[b]=!0,r=function(e,t){return t.facade=e,l(e,b,t),t},i=function(e){return c(e,b)?e[b]:{}},o=function(e){return c(e,b)}}e.exports={set:r,get:i,has:o,enforce:function(e){return o(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},7659:function(e,t,n){var r=n(5112),i=n(7497),o=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[o]===e)}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4705:function(e,t,n){var r=n(7293),i=/#|\.prototype\./,o=function(e,t){var n=u[a(e)];return n==l||n!=s&&("function"==typeof t?r(t):!!t)},a=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=o.data={},s=o.NATIVE="N",l=o.POLYFILL="P";e.exports=o},111:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1913:function(e){e.exports=!1},7850:function(e,t,n){var r=n(111),i=n(4326),o=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},9212:function(e,t,n){var r=n(9670);e.exports=function(e){var t=e.return;if(void 0!==t)return r(t.call(e)).value}},3383:function(e,t,n){"use strict";var r,i,o,a=n(7293),u=n(9518),s=n(8880),l=n(6656),c=n(5112),f=n(1913),p=c("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(i=u(u(o)))!==Object.prototype&&(r=i):h=!0);var d=null==r||a((function(){var e={};return r[p].call(e)!==e}));d&&(r={}),f&&!d||l(r,p)||s(r,p,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},7497:function(e){e.exports={}},133:function(e,t,n){var r=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},590:function(e,t,n){var r=n(7293),i=n(5112),o=n(1913),a=i("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),o&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},8536:function(e,t,n){var r=n(7854),i=n(2788),o=r.WeakMap;e.exports="function"==typeof o&&/native code/.test(i(o))},1574:function(e,t,n){"use strict";var r=n(9781),i=n(7293),o=n(1956),a=n(5181),u=n(5296),s=n(7908),l=n(8361),c=Object.assign,f=Object.defineProperty;e.exports=!c||i((function(){if(r&&1!==c({b:1},c(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach((function(e){t[e]=e})),7!=c({},e)[n]||o(c({},t)).join("")!=i}))?function(e,t){for(var n=s(e),i=arguments.length,c=1,f=a.f,p=u.f;i>c;)for(var h,d=l(arguments[c++]),v=f?o(d).concat(f(d)):o(d),y=v.length,g=0;y>g;)h=v[g++],r&&!p.call(d,h)||(n[h]=d[h]);return n}:c},30:function(e,t,n){var r,i=n(9670),o=n(6048),a=n(748),u=n(3501),s=n(490),l=n(317),c=n(6200)("IE_PROTO"),f=function(){},p=function(e){return"
  • '),this.element.appendChild(e));var i=e.getElementsByTagName("span")[0];return i&&(null!=i.textContent?i.textContent=this.options.dictFallbackMessage:null!=i.innerText&&(i.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e,t,n,r){var i={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},o=e.width/e.height;null==t&&null==n?(t=i.srcWidth,n=i.srcHeight):null==t?t=n*o:null==n&&(n=t/o);var a=(t=Math.min(t,i.srcWidth))/(n=Math.min(n,i.srcHeight));if(i.srcWidth>t||i.srcHeight>n)if("crop"===r)o>a?(i.srcHeight=e.height,i.srcWidth=i.srcHeight*a):(i.srcWidth=e.width,i.srcHeight=i.srcWidth/a);else{if("contain"!==r)throw new Error("Unknown resizeMethod '".concat(r,"'"));o>a?n=t/o:t=n*o}return i.srcX=(e.width-i.srcWidth)/2,i.srcY=(e.height-i.srcHeight)/2,i.trgWidth=t,i.trgHeight=n,i},transformFile:function(e,t){return(this.options.resizeWidth||this.options.resizeHeight)&&e.type.match(/image.*/)?this.resizeImage(e,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,t):t(e)},previewTemplate:'
    Check
    Error
    ',drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:function(e){},dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:function(e){},reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(e){var t=this;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer&&!this.options.disablePreviews){e.previewElement=b.createElement(this.options.previewTemplate.trim()),e.previewTemplate=e.previewElement,this.previewsContainer.appendChild(e.previewElement);var n,r=a(e.previewElement.querySelectorAll("[data-dz-name]"),!0);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.textContent=e.name}}catch(e){r.e(e)}finally{r.f()}var o,u=a(e.previewElement.querySelectorAll("[data-dz-size]"),!0);try{for(u.s();!(o=u.n()).done;)(i=o.value).innerHTML=this.filesize(e.size)}catch(e){u.e(e)}finally{u.f()}this.options.addRemoveLinks&&(e._removeLink=b.createElement('
    '.concat(this.options.dictRemoveFile,"")),e.previewElement.appendChild(e._removeLink));var s,l=function(n){return n.preventDefault(),n.stopPropagation(),e.status===b.UPLOADING?b.confirm(t.options.dictCancelUploadConfirmation,(function(){return t.removeFile(e)})):t.options.dictRemoveFileConfirmation?b.confirm(t.options.dictRemoveFileConfirmation,(function(){return t.removeFile(e)})):t.removeFile(e)},c=a(e.previewElement.querySelectorAll("[data-dz-remove]"),!0);try{for(c.s();!(s=c.n()).done;)s.value.addEventListener("click",l)}catch(e){c.e(e)}finally{c.f()}}},removedfile:function(e){return null!=e.previewElement&&null!=e.previewElement.parentNode&&e.previewElement.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){if(e.previewElement){e.previewElement.classList.remove("dz-file-preview");var n,r=a(e.previewElement.querySelectorAll("[data-dz-thumbnail]"),!0);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.alt=e.name,i.src=t}}catch(e){r.e(e)}finally{r.f()}return setTimeout((function(){return e.previewElement.classList.add("dz-image-preview")}),1)}},error:function(e,t){if(e.previewElement){e.previewElement.classList.add("dz-error"),"string"!=typeof t&&t.error&&(t=t.error);var n,r=a(e.previewElement.querySelectorAll("[data-dz-errormessage]"),!0);try{for(r.s();!(n=r.n()).done;)n.value.textContent=t}catch(e){r.e(e)}finally{r.f()}}},errormultiple:function(){},processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.innerHTML=this.options.dictCancelUpload},processingmultiple:function(){},uploadprogress:function(e,t,n){if(e.previewElement){var r,i=a(e.previewElement.querySelectorAll("[data-dz-uploadprogress]"),!0);try{for(i.s();!(r=i.n()).done;){var o=r.value;"PROGRESS"===o.nodeName?o.value=t:o.style.width="".concat(t,"%")}}catch(e){i.e(e)}finally{i.f()}}},totaluploadprogress:function(){},sending:function(){},sendingmultiple:function(){},success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:function(){},canceled:function(e){return this.emit("error",e,this.options.dictUploadCanceled)},canceledmultiple:function(){},complete:function(e){if(e._removeLink&&(e._removeLink.innerHTML=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:function(){},maxfilesexceeded:function(){},maxfilesreached:function(){},queuecomplete:function(){},addedfiles:function(){}};function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n
    "))),this.clickableElements.length&&function t(){e.hiddenFileInput&&e.hiddenFileInput.parentNode.removeChild(e.hiddenFileInput),e.hiddenFileInput=document.createElement("input"),e.hiddenFileInput.setAttribute("type","file"),(null===e.options.maxFiles||e.options.maxFiles>1)&&e.hiddenFileInput.setAttribute("multiple","multiple"),e.hiddenFileInput.className="dz-hidden-input",null!==e.options.acceptedFiles&&e.hiddenFileInput.setAttribute("accept",e.options.acceptedFiles),null!==e.options.capture&&e.hiddenFileInput.setAttribute("capture",e.options.capture),e.hiddenFileInput.setAttribute("tabindex","-1"),e.hiddenFileInput.style.visibility="hidden",e.hiddenFileInput.style.position="absolute",e.hiddenFileInput.style.top="0",e.hiddenFileInput.style.left="0",e.hiddenFileInput.style.height="0",e.hiddenFileInput.style.width="0",i.getElement(e.options.hiddenInputContainer,"hiddenInputContainer").appendChild(e.hiddenFileInput),e.hiddenFileInput.addEventListener("change",(function(){var n=e.hiddenFileInput.files;if(n.length){var r,i=c(n,!0);try{for(i.s();!(r=i.n()).done;){var o=r.value;e.addFile(o)}}catch(e){i.e(e)}finally{i.f()}}e.emit("addedfiles",n),t()}))}(),this.URL=null!==window.URL?window.URL:window.webkitURL;var t,n=c(this.events,!0);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.on(r,this.options[r])}}catch(e){n.e(e)}finally{n.f()}this.on("uploadprogress",(function(){return e.updateTotalUploadProgress()})),this.on("removedfile",(function(){return e.updateTotalUploadProgress()})),this.on("canceled",(function(t){return e.emit("complete",t)})),this.on("complete",(function(t){if(0===e.getAddedFiles().length&&0===e.getUploadingFiles().length&&0===e.getQueuedFiles().length)return setTimeout((function(){return e.emit("queuecomplete")}),0)}));var o=function(e){if(function(e){if(e.dataTransfer.types)for(var t=0;t")),n+='');var r=i.createElement(n);return"FORM"!==this.element.tagName?(t=i.createElement('
    '))).appendChild(r):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=t?t:r}},{key:"getExistingFallback",value:function(){for(var e=function(e){var t,n=c(e,!0);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(/(^| )fallback($| )/.test(r.className))return r}}catch(e){n.e(e)}finally{n.f()}},t=0,n=["div","form"];t0){for(var r=["tb","gb","mb","kb","b"],i=0;i=Math.pow(this.options.filesizeBase,4-i)/10){t=e/Math.pow(this.options.filesizeBase,4-i),n=o;break}}t=Math.round(10*t)/10}return"".concat(t," ").concat(this.options.dictFileSizeUnits[n])}},{key:"_updateMaxFilesReachedClass",value:function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")}},{key:"drop",value:function(e){if(e.dataTransfer){this.emit("drop",e);for(var t=[],n=0;n0){var i,o=c(r,!0);try{for(o.s();!(i=o.n()).done;){var a=i.value;a.isFile?a.file((function(e){if(!n.options.ignoreHiddenFiles||"."!==e.name.substring(0,1))return e.fullPath="".concat(t,"/").concat(e.name),n.addFile(e)})):a.isDirectory&&n._addFilesFromDirectory(a,"".concat(t,"/").concat(a.name))}}catch(e){o.e(e)}finally{o.f()}e()}return null}),i)}()}},{key:"accept",value:function(e,t){this.options.maxFilesize&&e.size>1024*this.options.maxFilesize*1024?t(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(e.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):i.isValidFile(e,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e)):this.options.accept.call(this,e,t):t(this.options.dictInvalidFileType)}},{key:"addFile",value:function(e){var t=this;e.upload={uuid:i.uuidv4(),progress:0,total:e.size,bytesSent:0,filename:this._renameFile(e)},this.files.push(e),e.status=i.ADDED,this.emit("addedfile",e),this._enqueueThumbnail(e),this.accept(e,(function(n){n?(e.accepted=!1,t._errorProcessing([e],n)):(e.accepted=!0,t.options.autoQueue&&t.enqueueFile(e)),t._updateMaxFilesReachedClass()}))}},{key:"enqueueFiles",value:function(e){var t,n=c(e,!0);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.enqueueFile(r)}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"enqueueFile",value:function(e){var t=this;if(e.status!==i.ADDED||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");if(e.status=i.QUEUED,this.options.autoProcessQueue)return setTimeout((function(){return t.processQueue()}),0)}},{key:"_enqueueThumbnail",value:function(e){var t=this;if(this.options.createImageThumbnails&&e.type.match(/image.*/)&&e.size<=1024*this.options.maxThumbnailFilesize*1024)return this._thumbnailQueue.push(e),setTimeout((function(){return t._processThumbnailQueue()}),0)}},{key:"_processThumbnailQueue",value:function(){var e=this;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length){this._processingThumbnail=!0;var t=this._thumbnailQueue.shift();return this.createThumbnail(t,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,!0,(function(n){return e.emit("thumbnail",t,n),e._processingThumbnail=!1,e._processThumbnailQueue()}))}}},{key:"removeFile",value:function(e){if(e.status===i.UPLOADING&&this.cancelUpload(e),this.files=x(this.files,e),this.emit("removedfile",e),0===this.files.length)return this.emit("reset")}},{key:"removeAllFiles",value:function(e){null==e&&(e=!1);var t,n=c(this.files.slice(),!0);try{for(n.s();!(t=n.n()).done;){var r=t.value;(r.status!==i.UPLOADING||e)&&this.removeFile(r)}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"resizeImage",value:function(e,t,n,r,o){var a=this;return this.createThumbnail(e,t,n,r,!0,(function(t,n){if(null==n)return o(e);var r=a.options.resizeMimeType;null==r&&(r=e.type);var u=n.toDataURL(r,a.options.resizeQuality);return"image/jpeg"!==r&&"image/jpg"!==r||(u=k.restore(e.dataURL,u)),o(i.dataURItoBlob(u))}))}},{key:"createThumbnail",value:function(e,t,n,r,i,o){var a=this,u=new FileReader;u.onload=function(){e.dataURL=u.result,"image/svg+xml"!==e.type?a.createThumbnailFromUrl(e,t,n,r,i,o):null!=o&&o(u.result)},u.readAsDataURL(e)}},{key:"displayExistingFile",value:function(e,t,n,r){var i=this,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];if(this.emit("addedfile",e),this.emit("complete",e),o){var a=function(t){i.emit("thumbnail",e,t),n&&n()};e.dataURL=t,this.createThumbnailFromUrl(e,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,this.options.fixOrientation,a,r)}else this.emit("thumbnail",e,t),n&&n()}},{key:"createThumbnailFromUrl",value:function(e,t,n,r,i,o,a){var u=this,s=document.createElement("img");return a&&(s.crossOrigin=a),i="from-image"!=getComputedStyle(document.body).imageOrientation&&i,s.onload=function(){var a=function(e){return e(1)};return"undefined"!=typeof EXIF&&null!==EXIF&&i&&(a=function(e){return EXIF.getData(s,(function(){return e(EXIF.getTag(this,"Orientation"))}))}),a((function(i){e.width=s.width,e.height=s.height;var a=u.options.resize.call(u,e,t,n,r),l=document.createElement("canvas"),c=l.getContext("2d");switch(l.width=a.trgWidth,l.height=a.trgHeight,i>4&&(l.width=a.trgHeight,l.height=a.trgWidth),i){case 2:c.translate(l.width,0),c.scale(-1,1);break;case 3:c.translate(l.width,l.height),c.rotate(Math.PI);break;case 4:c.translate(0,l.height),c.scale(1,-1);break;case 5:c.rotate(.5*Math.PI),c.scale(1,-1);break;case 6:c.rotate(.5*Math.PI),c.translate(0,-l.width);break;case 7:c.rotate(.5*Math.PI),c.translate(l.height,-l.width),c.scale(-1,1);break;case 8:c.rotate(-.5*Math.PI),c.translate(-l.height,0)}E(c,s,null!=a.srcX?a.srcX:0,null!=a.srcY?a.srcY:0,a.srcWidth,a.srcHeight,null!=a.trgX?a.trgX:0,null!=a.trgY?a.trgY:0,a.trgWidth,a.trgHeight);var f=l.toDataURL("image/png");if(null!=o)return o(f,l)}))},null!=o&&(s.onerror=o),s.src=e.dataURL}},{key:"processQueue",value:function(){var e=this.options.parallelUploads,t=this.getUploadingFiles().length,n=t;if(!(t>=e)){var r=this.getQueuedFiles();if(r.length>0){if(this.options.uploadMultiple)return this.processFiles(r.slice(0,e-t));for(;n1?t-1:0),r=1;rt.options.chunkSize),e[0].upload.totalChunkCount=Math.ceil(r.size/t.options.chunkSize)}if(e[0].upload.chunked){var o=e[0],a=n[0];o.upload.chunks=[];var u=function(){for(var n=0;void 0!==o.upload.chunks[n];)n++;if(!(n>=o.upload.totalChunkCount)){var r=n*t.options.chunkSize,u=Math.min(r+t.options.chunkSize,a.size),s={name:t._getParamName(0),data:a.webkitSlice?a.webkitSlice(r,u):a.slice(r,u),filename:o.upload.filename,chunkIndex:n};o.upload.chunks[n]={file:o,index:n,dataBlock:s,status:i.UPLOADING,progress:0,retries:0},t._uploadData(e,[s])}};if(o.upload.finishedChunkUpload=function(n,r){var a=!0;n.status=i.SUCCESS,n.dataBlock=null,n.xhr=null;for(var s=0;s1?t-1:0),r=1;r=a;u?o++:o--)i[o]=t.charCodeAt(o);return new Blob([r],{type:n})};var x=function(e,t){return e.filter((function(e){return e!==t})).map((function(e){return e}))},w=function(e){return e.replace(/[\-_](\w)/g,(function(e){return e.charAt(1).toUpperCase()}))};b.createElement=function(e){var t=document.createElement("div");return t.innerHTML=e,t.childNodes[0]},b.elementInside=function(e,t){if(e===t)return!0;for(;e=e.parentNode;)if(e===t)return!0;return!1},b.getElement=function(e,t){var n;if("string"==typeof e?n=document.querySelector(e):null!=e.nodeType&&(n=e),null==n)throw new Error("Invalid `".concat(t,"` option provided. Please provide a CSS selector or a plain HTML element."));return n},b.getElements=function(e,t){var n,r;if(e instanceof Array){r=[];try{var i,o=c(e,!0);try{for(o.s();!(i=o.n()).done;)n=i.value,r.push(this.getElement(n,t))}catch(e){o.e(e)}finally{o.f()}}catch(e){r=null}}else if("string"==typeof e){r=[];var a,u=c(document.querySelectorAll(e),!0);try{for(u.s();!(a=u.n()).done;)n=a.value,r.push(n)}catch(e){u.e(e)}finally{u.f()}}else null!=e.nodeType&&(r=[e]);if(null==r||!r.length)throw new Error("Invalid `".concat(t,"` option provided. Please provide a CSS selector, a plain HTML element or a list of those."));return r},b.confirm=function(e,t,n){return window.confirm(e)?t():null!=n?n():void 0},b.isValidFile=function(e,t){if(!t)return!0;t=t.split(",");var n,r=e.type,i=r.replace(/\/.*$/,""),o=c(t,!0);try{for(o.s();!(n=o.n()).done;){var a=n.value;if("."===(a=a.trim()).charAt(0)){if(-1!==e.name.toLowerCase().indexOf(a.toLowerCase(),e.name.length-a.length))return!0}else if(/\/\*$/.test(a)){if(i===a.replace(/\/.*$/,""))return!0}else if(r===a)return!0}}catch(e){o.e(e)}finally{o.f()}return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(e){return this.each((function(){return new b(this,e)}))}),b.ADDED="added",b.QUEUED="queued",b.ACCEPTED=b.QUEUED,b.UPLOADING="uploading",b.PROCESSING=b.UPLOADING,b.CANCELED="canceled",b.ERROR="error",b.SUCCESS="success";var E=function(e,t,n,r,i,o,a,u,s,l){var c=function(e){e.naturalWidth;var t=e.naturalHeight,n=document.createElement("canvas");n.width=1,n.height=t;var r=n.getContext("2d");r.drawImage(e,0,0);for(var i=r.getImageData(1,0,1,t).data,o=0,a=t,u=t;u>o;)0===i[4*(u-1)+3]?a=u:o=u,u=a+o>>1;var s=u/t;return 0===s?1:s}(t);return e.drawImage(t,n,r,i,o,a,u,s,l/c)},k=function(){function e(){p(this,e)}return d(e,null,[{key:"initClass",value:function(){this.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}},{key:"encode64",value:function(e){for(var t="",n=void 0,r=void 0,i="",o=void 0,a=void 0,u=void 0,s="",l=0;o=(n=e[l++])>>2,a=(3&n)<<4|(r=e[l++])>>4,u=(15&r)<<2|(i=e[l++])>>6,s=63&i,isNaN(r)?u=s=64:isNaN(i)&&(s=64),t=t+this.KEY_STR.charAt(o)+this.KEY_STR.charAt(a)+this.KEY_STR.charAt(u)+this.KEY_STR.charAt(s),n=r=i="",o=a=u=s="",le.length)break}return n}},{key:"decode64",value:function(e){var t=void 0,n=void 0,r="",i=void 0,o=void 0,a="",u=0,s=[];for(/[^A-Za-z0-9\+\/\=]/g.exec(e)&&console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");t=this.KEY_STR.indexOf(e.charAt(u++))<<2|(i=this.KEY_STR.indexOf(e.charAt(u++)))>>4,n=(15&i)<<4|(o=this.KEY_STR.indexOf(e.charAt(u++)))>>2,r=(3&o)<<6|(a=this.KEY_STR.indexOf(e.charAt(u++))),s.push(t),64!==o&&s.push(n),64!==a&&s.push(r),t=n=r="",i=o=a="",u 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%0DOF`LEiy*`&i@0 z0`U8>#=i={1IQZB3cwf08b1+$SCBP+Dggf=Yy3=r(eqCTkb>R#HvxDLS>xvd@FTLu zF9aCT=9dESEwaY11Q?Bl=L9HAqVa11cph2fHv$yTZ&3RIcq3WkcLEgsZ#*vm4<$W1 z0DP6~I2VA|k{y=>;J;+YLjv$*vg5J<`wGgi0H+eqBf!tej^lX*cs$v0JdXh1Cp%8h z1KDL8Hlz%$B@M+Dd>P+9`;ma^lv0Na8xD!})kbOhi_WyfOz?CU690Z#Yx z1o-<1y6kvCfMM($Zx`T12aH_;yuR#srvUuF?08Xt-Hx(LfZvR=BmnO) zJ5Kcg;3sCsD+2Hsv*X`|0G0{n9*R|xRWqU;r5RL?#EegVpU0eG9)@c{w&o!Rk0 z0rmvSl>(f`1(VB* z59(R{8^)c+G2`c^W^Ob0n%A4JGw(OQXFeB+L{gEl$ll0(krUPmYr?wHy4U)RJz(Ev zKWcwHT8`cx{i-85W#SoH}^|ltz1{J6ycWMV{#g8riLu08i4)1~ z$w!mNeaG+iYyKJjc7MNrqyIoEl^RNINj;D@(qri}(s!hvO8+L4%uHl1%FJXQ%6u{N z!?tYONZTjdzMnO+JF_=t-<6%uelM5FjpcUc?#w-&`$1mIugqVPKb)U0#0ztUuNIzZ z&$Qp%{&+{e<6y@lopR@a&QEqeS6p3uPx14`XS<}XeAh!=pY8fi*Dp(_l@6C4EB&Cn zv;1UbvT|?bvF=*;bocjrZtgj;;+`QIaTV8wG+MCyYXYF(Awye8(-NWmSPq-696PqV4pSW*ge&U(+ z?)sOnzi0h3r=(7~{FHl7d2)laVRFNb8@{~Zmy_km-IK4H{QPA7)R|L1xUp;FwVTe} zbl0Z&(>hN(?X)~5a@NpU_n-CEvwpnww5@x$&YZpC?EB9CtrtFb(M1=1{bKFn$&250iF3)0OFqAA^RzQPFumo{)t4T)^o~o9 zT>8`9wcR^+-?jVLp6NZe?|FRBb9?i9H}5^L_o2&bmmRq5{>#35`P}87z2cNBZoA?K zSK3#eaph;Od~V;wzT5ZB@0a#(-T(0ZC$EZM_2H}K1M)SGU-N@&jcaeb_TAS$dF?aT zIoIvI?!N1unYn%D@tG%QzCBZ)d2aTi*#~C7{qnAtU;XlLze0Y+xv%)v_19nj{_B5! zL-!4r-|+Yizq#>@8~5M%?VIv9?Y`;po4$Q>>gJ6%zx(F-TW-JQ*@JJs)wp%*t&l6^ z!=~std;u}|cSlG+FO3ZFPMas<$pTLftw-ol?W|NM|Mb3L6r zWY|u^h~^SXNb1}vYnGdg*_vkSUR<;PK#oOpGc2oNgL5;U$z?oK(KI=1=#g01jThIR zv9{>V^=#_y-qh2vHeqBkMq=&WlxoCmBWxyYO;6pe$6ZU;Y&Q|JWn61t%(&?t~N9k>5 zhWfKvPYW@FB*|x9R1^L%{;H$+Q*l{B1uDhFFn3Pqx}hI4bUpjG3s29NXJ&X>uNe>O z`h!Mouv|VmH#ZBG-g>?ZzaFG?)mJN{cpI)%{e)Vn*1D})&FY>P#UT{dxZT}tkK+S~ z1-XG6sPK#Fs1c+^)yMO3eX&v%V@=Skf)Uj@z{OCxqT4ImHLLcq!tlg!K99G8m+l+t zO9yXn?LKgI*{W8fh2cW;ghIOcTN<+N1<&*;LQ$;@j~1&HkfMr#7`GvVCb*wi-eE7g zDaYNH?)t(S;Wt!?yGwO?!84of1dUa{I$BW`dR*{eUJ=7XJo)~mhUCR9U+~PYG^y~> z)^DK2@<+b-nd^CCc+{^}imKmiB%Z1+C-Y0SV;O0GPmLDGf*kZG`f?al9W5p*Yo@Jf zYpb{Q(5_wf)-Qf>YirEH_X_Q>N|X=!p!NGtalU<)w{+f5=)CnD)bfdLN2jOltzY=U z*6v;QE^DjXJP(n@1#v%&o?sk(ZO|ID3SQx^!9gp(e}6$d7uM3#!Fgh&CW`(+{9d@~ zs={UB{QODh1tS@gqwY+OKH%J@IlgwCq=lvHta6)mn_Vtv4a43a(!zM=5-(JV8vNQ@J+D>nd|y=iZEaro_YA%UwU3O_=Ew{q4FNkNIx&Y$LVR>`1wuW{m6l z8C%Z|$r7LP+^KuRx-P%oiX_^iemSPM_pP|l;pSG`O`Udj)b%@P7ziF~fUZ%&^-D`N zByx^bf{GW_>M#b=8Sad?SvHM%!@N@}cU@b_-H{u3L+~sk7Q0X0diLp4kzffg%?VGPodVge|nld=+FITcIic5ZZ?&bX7aNupqkWgz<;29j&seTp2A_M@Pg5y!Ubt8T#-l@P#totE(n(vJWoVxp>Yx zK8C9*s|KWAXer>C!7cq_lJw?06eKXrSxGTeS%SJB4hln&B;B#Vqlt^lp>SA17Nwy| z5)OnymZM8=l_Vt$RetGEa7J(w9`$2cOG$MWyp9vHW+-VTVnWH+%m_Xjn(Qi;rXeR& zbLbur03kPwXDg0IFAMV=hd4bJN4QFdyrug{F|W{>QmkwYY`7&i1pQt`e!KtoC7^0Dvn}!Cjwgs3OA+}6uRJ0Wz;8i4ew+ERTJEq)Ti}HT|c28nVOoLGHUwNq4KUN z*gaDVP;;{SoMFsmJoK8PeO!6(^mD^sXMYLlKRet4>+{fzY5F#_a~fa#=G? ztt?9yM=i)aJ)KSKwqaztik5`i7jXBqgHv$dMc$EtSK1`4&>IH*i$wcj^u}m03rq8a z?k(U2uCt))3zKtm9=SG~*QP+vRmjUallV2M3^`t;aZF`m4Trd*a1PTTm~GQl!vXi1046WQThy+yGe$ z*ZA#zPPdY6xok3`ealR?wM>1O;ZW&A3TzZJVrdc04(lN!mddtwb~r}NQfw_0Qe`G6g&T(VgzDbr%#hI08X^>Q0m{y0fDLvyQq`Gc6fC z1$z!-06h^gE9e#UO*niJ4pFyaFvwa!Qgp1oNj4)oD2%ho_@i!>O-r>4`K*j}9$=32jhEhRueL|-zVBRXn``u#QTq0ykDOA{xUNu$q7`MUm$QOQ{6i6nEm$2czqwwYUFxo?mF5{RqVoo3fRjX$L;U9O!^p z66k;n3LK-3^w_{hgR(;YA9C5yuP{i0Z>L$FWo7KPxy9FJtJBU{R=fCNP<;DV+_Kv2 zFnCbeEqnVrtc+!Ep<~uX^cge=>I@Ik=cvwL{M6#Pb0Ryv{gW$X>01aI zS4dM$BVyU-om|5%QFAWAK+&RUD_5|yNh3j-RO zM5;aEj28ZO6#^m<;ECapas_5GdLf8@Ahc3kyT!5|Oi!-qdd3zdPX{rV;O$Vn6>yz=O=ZtK^ zv4>^D)FfHA&4`+GOi!0%$;3TjS<)cQH+qaCh8M}V4$lV?Uh{vZlOZ5Rw`*G z$}*6I<`P~Rju}U1jhJc1j2iUqm|@%k%LE14@6hz>;(}zfw$LZL5THp1C?pZqG0I1q zSJ3&bzs0s;9+S52A>R$z4aC5~8v}M;=@{)u06x^y;RN31E$A)n?a_SR%729`zk7~A z?EMt{(E9C=H|0(0?l?F_OMWH6E0eI4`p834B{IPv0Ba-_pXf&993^unFkby2l%Rsb z6>#6c&t5rHoAZpUi}4e0GmH%|Tnq#QO)dPoxEHreR@ZG-$;L;ke55p}2fj5=pV$96 z41LNlj4<2`a^0hCj%*9`H5Dt-~%v*OXg6GC))@!E!SOTwK6R*e81xXb?1#v`Azr;m zY1NBtvLb;{v4VJ9I{ndfpMicN{*{a5qdWC5vV2bZ$i5Zd^2Qt zf+vmn6F8y<0TL3L-{bH~`q2b*0ZH-;ZHnTA!*R<{%#^L`c1Dk=W?Rg*^>T0F(v+97 zx)IOg?Sma&GN0s5G#Pem8`_y|WHXLunpUyX4~67-QYqY+y7CI&>h5mwO4N0T*4l`= z27aLz)|NQqvf5VRMW)KOx*MbywJnuiy1s*hsBcs@RX-clH&jTw|89l3)vU48>mptp z)Hr!Y`pPR(h)^!_chosSYmQoVhGDXtj7>-3N%S5T)x770)O+Mqk3lywNBbknAfZ!EEmzWK(FshZEt5zYz`zCv6 z$gVvWn~r^9)ld-R4T{~`6Qnwm)`YtEq3#LjiyM&ZxQlXUJ!BI2!;qFR#B(Ps)LQ3FT|qzG?toOnD?K^tlOR8)8)YKAcY<}At@6*b)}A9aciYUOFTE!;?_)d?E`8ftUSxbVnh zt{?`E@e8G!YDZf5a6v*0097Gr6UZQZs7!fD2US}zyklAY#v*;5)Agyz!#O><(`!qp zgYD;IWB9Q{f@o__eSkh=+&RUqeRf&zXHkxaNC z5hbTk04U>EaR7Y}_`~aPdKDGL{3iE}JA$er(Z!&Q;@fUD-cpbaaPwV+`~;dT^Qld+AvwjmK8r3AI!e z%^npQCxgz|t9ADvS~jqNdmhyX)iM3(gVYMLJ>cKPu37!yBYiFkR|h%bdxKJekNHE3K5?Pdd`MB;wt=kVx>Byct@)9| zgV5AyyKGCgs^u+hisg2>r$?K|^`C3cAmn++VEccn5$8j1 zz*RJs1Rrb3rXsDyt@?wU{)XW!da3RqXVYTm94&7tZwFa#k%(+3cf)jxgvGT-x0JVR z2LYE(Sx)bROV$Tu4()panL~Suq_7fyA0k(`qF#Y#9ST4B*?r+n4norv7&>Dx+%PVn zWCoE)Xd_5IfK3N86hep`VI+!RHx5_fi8#O5SuG>s3w?o; zl)yKQ#@>MJw1}qdptp!NB=JzJTy!i1m+WXrQdLt?BUaD3Jyt|jOjVUa@GOVImQyUB z$+;2fI;|^$Ot(n9!&PKiaXaFxwUyDx3Qr1E)R5$@h(uS;>Pi+*!J8hXxJ2;f5iW(i zue9V)>cSzf~5{^a@Q`;sf9^KO0 ztA)L8J04GJS~4EDyS*UXB6uwMJyhX|qCA*@^Anq=v??(CDesDna6TWcP0!7{?k(Pe zck0~`TD2#B=FWRiG#1AY`41HM#k&KW04glBVd#J~kKs@&7lUXD;GUsKk$Trv%?Ed@d=@UV5pQy6XPoR+ZQNi zvY?vgDdqAp*DX!Ync5*bhPN57X#+eh{3@i+P0!5C!B`Tyla5@T2rRK~%&pb5hTMZ< zEK#l+#w_{IK_Pt2!*i!112ITpQ%U`SH=?QrV|oG+Xjq;YmcEK8l7D8~hBaMsZfwKq zlAJAP+Ovb%WNGC;zQnj*x7IxvKWsrsYO$Zy@f6LEfmH8t;v? zaK939_PjG?qc0aMj}Z|dRUG5eoTEhAC_&yf{$3X3|kI=F%*u_ zmq<8tPn^?!7R~r#H)MMWTzVAIn$u8M6*5K%EW`u}_ay1Y6pbQ7ZVcMRC<2hx3It9O z90yef7r~Su?c7%rB>WMx@)NI*$?5jA9J7)k&*L&O4Af*QsV1zH%pu2{e-q- zU_R#}7?)Cmt?f8&3>zv__U%GLT zZ}jlKW}lq$U+s~qs6CXR>VMn-De;27cHNW9>L)18!$uz!z1F`NdUvfLTyOJR{7s;lh zl4ZI*DQz?5f_x()#X4IjOlwla&!#m~E3Q}r8&BxOO<$Np+E{hDbwFA%DV)nZVJ-~D zg(WZ8v@4uAflh~&PYak86)c&>7_T1kZpAad<=pKPe{Q5gFSleH_XO{w`5>e^@tO zS465yw%-`JAZ8_q6}*^%SOJ4cC^1K`Ne1?H11rG}W4Oh~r6{r{KYX!t3Ex*F_xgY_ zyvDIGl3i{rv6QriB*kDPgXJJtrr3I9yAjQ1iMt3IVs|UDWp#{WWEUYmO;*(?44Wy> zn}|jaC9i@k{2O&%-Q{Ro?r&ZbU3Lu!v3Sj3HhW1jdAMU2uK7E29sw(J@^JGS;#WHS zGO(!7<4wK;<_ghkBZmlKeh6QR^-st{d6_c2T5f^SX~A$32sk3%=KvD4EyNlPtQ9ge zMOL#(37fD<&$qbD?y#i>=LHw2mg&GdW+F<6i%e579EA6gV${-uW6*_Su#&437eG&9 zG-CRy6d)v(kv<^j4f2b^94daLGb#{f@NhIm$9fWMRDBxG%JZRc+RUhWJZ@^ab8@<@ z`60z!?IPkyOEdpIn=pq@kwB>_JK(|I#1{Mua z&w+8ko*gZTOu- z{-L6p8C(_h^uCl)EcxB`(F;$#*PDtLG}l%Av|1YK^Q^c(WO!H@l7BC{eND2TgiFw9 z%;poYaP%PN*&no4L82wnEqr)d6D9b*njP3WxTP zTl_0-Mu~N_>+zE2SSuuVM&W zNSe;?6c4;bgX>8k`OD{dU75BMNOFiOi7jAy!!lrM6?nhK-r5E0WJIgPB_~h$o zKSlH$1Z%(<;DM@cOU}(Dv)7(5FZVBxeB>=~8npZ$5gtK(+k;+3zfrChk}^lJQc3it zFCs&6r6cRCY|D+bOFSo~Dg!;{=vMazhvHVr&rS_`Nm!(CA$P`;Ue>*jj4uayEVPaX`29 zUv!T)aSxtu-DIJ8lat!p0h*#7WK)reOHr1gB>7CL$jyf8jkJ(qZoXuTsbLA{rJ9`J z$##U+gs+Eun&dBJ9!3uN+vx5mFtAW4+MdIDE_-kmYqD^@fjW zOrjBtk$i~why*U0V5^9a2JEsEB9wS%xk8}?O6$TkC?PNr-~f%tx`#hlMb3R*!n%Rc zk=~2TR(HiJ2k+NAT~=p=_YL5Vy;cvmyUJZQ?}@D7(J&wAGmCK5IJwST>}3~bN|}T2 zD2yVmk1=}s8d2gggin^{Nb>lYaylb~-IqnmQ<&f(g zi$uIkW{C4lHr?M5i*@v;b4_}Yzc4N`lF4U4o;Pw)LJJ^Q>EgKYr(%d7oG)^?UZxLp z)B2XYJ?MFe0EdzMYkb6e6TD_Pe9J8b3ppxHd6|J;MIL+%%92Qa#7!}X;D5uk#KX9` zPKRIdsJ_nLH8+PG|GzGF>-u3`FBkQfT{E+*V058KmBvZ83=@HPZVXo!hi z`4h$w1Ak5^^r^X!N<5yeKfQ}U*c3H#9^4>S;3oVhBPSBu^CtJ6eZ7wMg z;a+`V;b@B>LUz%8h=*n{wo15H0S@qBY$4C25(F+q!!S!o=+e)F{Lz|1B6@cAXl)iQ zW8|TDrRnLrd&4fT@p#Qf4&Z|Ovm@hE!7qorW4+cB-Z7|ROTM5G+759=8Uez!!81ud z&reUbD2NBlG>O+5qfMH@9kkeH(RXB2wpzSUs!dN5;e+`0!r|J~6rSADy{Hdc?freN z{aP*TQY~hVj?Yjt>2KGrmuev0zp48`7ZBr1WN$*oh~`yMQyL+y*+8wO?`32ZNKhieHKBtV1z$dF2M+b;KJ({*p~%)FkYb11a=^?JbVa(x}%f&^+GFj7ec#d7=fJOk@H*DA>gi%Jve()Z>+9=4Mu3H=$1?hoW)8F8D@G-My)>$l zkD}`TvhAIrzRX$S2af03oQ}B;o_-*FR;DlX&bB|VwHY|@f_o4jf!2pLXd-M9tRN-5 z2l;PcD#PfTH&Ckw5o-V0)ZEdme)th%yRN@o1LN8^JG*O2gX+>8E7-$M!~L)tbukTN zQLZh1n1aS_IOeoSRBje?(7lmhjAXxMMN9tBxHp5$1q^EpLh6fQic2-S1xycvaw?d_ zUd>yWot-@hp0p55>)-C%bqJYf#xV+B3cm6T_@{|hgAzhv7t)FJFOeuiB1cTkp|KAq zld;xc*OKMziK%&A>nEI(TuL~Ji<#V{OA_m667cqops&bGfK!^BT}X+A<~afTuR2yi zpdbGzW=^S?=*FhBtW@8d>~YHZXgRsE63;s!HClFiJId*_6pQA{UOC$CcXT>sx!>w< z{n3hKr>ELmaeY}&nw={K5(DW-1f&3lg+QDMkjPdJQ>UPOxxfZj8w~#6L!ij zcKBf{+u5E}BHA=h2X_)T)y$J_)BFm1utHB=X`3O10>rk-H9hRNxqJjxRkqlX3`g2J zJMzeA5xiE!aaHu2@ZgZ>hW!2yqPb;E{}-i-9CFLk)8I=l4C%J?1b8VlvaV^`Lir)~ znkfETpLOb~R^O))@jKdYZ9LWL_iBgGH-cx;8h+wgt$cIxNCYgI^vH0aXEeW~wvcvf zq|xG059tB)_q%`brd^~C9P?)3E5S!lPy7PIZU$-K^y5tMLu)L=d7QOl^^?ehRIs3n zhHjqIz^(eE0#p$(K{hd8RVjBOA_q;l+Nt`K`h-IK?K zNGZmJ*Z1jO`kb&68Ys%Lq{?l*slGuE4t&9nV#vWEeuM-NM2duh9Vjv+cq^FXSY}FT z?Bwx!mfav~UUw|4=_< z(2LYEFka(mN2<&*!8<#3{eIhV^Tk5Uv8*JB#yzA?Tii;y2HfIdB{}4^wN={Mz{GR7 zWIB~H^sHJ$X#L|lwkkjbrI^zdzuKrOPUyB>j&@cwt??ki{uj zsue`P*RWI2q9qLkqpzaIDKQ$!(uzMa6z>eACfbY!6UT-p532tQPxOxvf+{-|bZRxk7-jr2MD;Ss8ILKTe-JHBO2?$V3qe`_^Be_;PJU^*#?zDP(tS)-% zT&%&=_`;k%d2i9`!M}|*y+faduLE?V{*FQWr`6g$$P+*|9CCV~vJQ_9N+Juc2>Zzo zK0;$hsz9({56l&Y4+K$5DJ;+ElU`^-d6TYB)(+Kb`;eqCr@I9!*=<>8M|1gI-e5^+ z*`zIaJ?ex6HOgBUuLao?##BDp9jR=KX4|}h4T!Yh584#fk!WJ0mTBmb-SE3r5&Jl^ zWtmf&QBYkhrJ{f+lmL(i9SElz-iP43AUEpJh!3HKW5Ywx7RE5Uz`y7O(yzHp^@jgr z(wnM%Nyp9;hCV+(r&#d>77&DuNuB58aSM(-)6mXxt&X_+cc}foX=;Z&-fV$B?e401 zcg1p~bee6Y~e<%IPWe1qlyYbN1S z{UNxZCgTI%Y0Zpro~FHwYKrs_`e=CjG;QOowsDQ7&F=R$%)d-Sz7AGs+ps&J4IMSY zHga9Ub}bqmM{avJ@_nh6_flTd5* zH(@s94(a+KgZ3YBhpbf{H8C4JOoXZJ`qcQeLBHQJldW~EvWB4bLq_2hj5S(eaPrD1 zj5o3iFv7@$A%_CZ5ROWrQ_xX?v5b1+DC`B)6K~7PH8>LnZ!rN5gzG>IER@yZjhsR( zQ`bF1_sX6NiM)hYIJIcV11p?XVgZ@UPu%FJ+XoGF{@?;7%muF!T|q0SlFm8jMAd`0 zP&1nPZNLMg=-EXtmaw_uQ^V#Byk^Y??$D#t&_%xkg9I6QM~*B^xxpfPF*ZENZ!1_; z47Hio>^5mn(+o_3CJ?3^6~li&i{-xV+ub!zEuSyXjl=AigR#^H6&DVdarf={{K6A3 zI-aNrTO$~E;6flNC{@7@4ZEhMx!Qi={{0uWFX__c%Yil5I*Tk(B4lv(OnDlqI^qhb z2p1ylzUj02HQL@!`x+t)N~$Wji4PC=05YzizS8=wpddG?iZ9RxlaQ$uAL)NMLaD0d zijAN(3S1gwVkB1K$1*Pd5VplJUD?JOp^#z53o)!Cl6AwuvMB=#eXK&8uE;TR)9a-* z4&rf^Ax9A0$C@ALun|2j#dMfJx{M4~BdlaS+sx|GBpkq&X4`VA6jyPL6}2_Pj7H$N zNuFL(HG~DcQd>OpYSqGO_-s^$bGGQ{I#!^sNhUK^REql%!z~!_sUnlUsk51&1LaRL zPHuj5l_dP#arO5$Pesl#&w1ZjTO#L~=RUuAvw6-r$F^)S&pns;5cYc- zX!@a=e9=!(Ac`0e(ljx_0v@@@iI#M9(Il`U&Aic3&fhJ`*TL#l%|&LkJYZStk5*EV z_7lc-s9)elSZ;yII2Q1v$>p)jbJs*hJR7E=;7jCpA`VG8*`%L=7hu*0l}o&+ZkYVU z04RQfYPmOI+D>B~{jxeCH2_?^)tj;-FLp?oUVJHe!Q?rajq#Vha&@U zXc@=8e?(*c7q8co= zC5IDI$jNty^jy+5D3)1nn&+6Sq$g9DGBG9M#_?tWlh&W3w}Wz++4k;-lB$Q>tvL=694{aG6Fof_x7yI|XGFE&z1Xq8!ZxkvD21 z_zviW83&0GtPuv?FdnKE?79=I4X$8LA@~}Y%}AGqDH;S^tBZbzMR(hWjHF?eVyRGn ze>fE_MK!FlDMeG^zJ3K?VJVi|`up3;6=TGxlwhc)%N6YuKc7tIeOf9FH^sO6gHtWs zD7dos1vff1xMJDG_=sB`!m^LN?{^APwfd2CG1^^X9P#CCXk~G16zmnrJ+Mg>6(5l) z6)?>BqRNOtGg=%ij}qIhjt%)>weTrm*BbF1Ul5T{AxFuD^V>X@T*4KrA^S0ASut8j z2}@e$Ql4^R5AWJl!=@`pSd*eMxGa}EY`+jTLQyRo?58sZJ8?mann)_c1_@F)9*1u_ z1b!XDj%(y&e$N~-%&-Lt){^5&S}2Pb)@fp~Etcwrjj$vIOU)MNeFoz;i59OUe+Z^^ zlNCt;cLIa*D+$P?z@`O@3RZm6>TrCbm>8s0ZA#h!n?acfX(rT@`Pv5PWnerW0w%-Z z5|X(~(`A=qI!P1iN-UVtC$YQ6lxs{O?bmSOl9m(%3l;1lRISyTJaz$cIZB=|XzM{{ z5@u=O=3d+&<_&HZ`y&N!x>!8K`?iEutX>h?B8pqZDx>E3#s4OoMc)>nb)8B72MF2t zfvTq<>yT2qhJ&7?Xf`I}a3wi`*e5wn0)ZLq@PH1*%PAgmf*FjVoqE(_?0lRzuiy5hxi^u?RO7 z38_vkSXN=Dc-Gq=ieu$RNJ9iOmI>{P#NHW}?08hg4jj&{AtTaZM@$8$z;NFmaf0it zR9pNJ4nb=xp-9XzmgX<*Zxw1qDky^hvyu#8a&~~tlF|p)h(p_non=phh2w>2(lKl- z*4DPw-gN{^Zd$xRyaaT0cZ)yM$-e9@euqFNW};y3avNs6T!L@(06oq;Hbj22a}PMU~=Rp8M#gl*eY zPkXahp-@5NqV?gy>Tp^bgs^820>zG1pc6uaSi~q*k`&xVG7OQWl{8JmY}luuH{~3T zfyY+Kkz9eYag}CaQM=`+ma9htdNfCyYpF>b58969^?j;iY0cq;QD;+2G3HdmHB}5o zs=pJ@6|6$LRVY~P1?%e(MVbaXN!i%HQ5A#Dhxs=KIw5zbNhRTar9sdl(pXX@8j;`P zBqGsDmgVygN-e1=V8GDN6GbAAXJBD^Dz}U{UXFt{niUIi%$k#k<1WoYr0yacFz{Lj zGGo(Ibx^8q2}a}FgaQQ=|#C&5%IoGWwiBS`%8}u2jf1h z(0Cv&WMfAij1#a1oom+Dg=1+j62r2Y7&1}LD=>wjXOi*T)RD0IpSEuS)2ew#-Ehq=mBx=AYQ>gzdEmb_T2G|wwA6^W z=qxPIBQ`9*aqKx01ly*(ci=Qs&O=3UMvI>bKM}2%99Xg@%TPs8D|ph$GeHSv!7!sC zw`}PK3{4x(+RJt2{F!k>yS9RLH9@>m4gj9w-bO zW9u`efmx6A(~CM*9^G)Dy)9=>XJ%^GoIwsn81Ga8{GY5H^glMP>dct@|m;$ftgL*yQ)}M-D8-)Qf%LX)TpMr2#)XgQa zlZz{3KPOYdE+o2^Fmkadavq~bbdXHB3=|bj#;#Gc>zaZMDQUMI3rk95+frhw-fTRR zz|oL}Fg4WtFe2J4_`is;eycBt5<;*9n?aLRxkwY3G1xV86{TSjO@cinL6TKvn5#q+ zyn`xO2^!_14+0xDIZT3SfYWBrnSp#bY@66pCKSSEGa;SK3KJ!EsN!1QNjj=7Bf5u` zAu(+J4C;kBq8A11_Y=+!rh7KgM$|p+t5+DZoW?D}*dPWQHgW}voN1RJEH8*?vgK9$ zm=}lBDIAW3B<{trsI%f)a>zD%WZCFlT|iyX=GOe62pp}R#CU}+&=eudb0cP5thyZ^ zpM>Z8nC{Nc*XWx&P1gLeFU>c7NkqE{{ofxiSksBUlxSU2xq|g?w2czBpT-+xQdBCd zG}35+EV4_3!HCsy2pS=ZH3;1n$x(>UVRYuPupPTaVks?@K-$C`=MXi6J-NF#(GGiZ z*zz6hq=XK~uBkBBbhW)5wA8WX5%%0uKyd8106S5Qn%Hy8?;ET@?98LfRO;wWDA+bqZ*`8fOCiK| zu@@P71h<#4=NQ&SCDFxwt0#uC*`bNmeL79oz_18(-v~TMdFXYk5V_cZ^)qLY2gHK| zWHEq`fMW%8AX~afBWoBt5{`{vUmwh0e5NEbBoU8QgEe6|L=zSE2vnnT1w*o!tSaQQ ze6XX|(NUYEw^!sCd z8ddB+=lUg+r|B;3?R2XtB#ruQwXhtu3=Qi%4Hy=1njv*$Lq3zqx204>744kuVT0Js z$!s{CTa|2U%jVPJY_d82XkB5FRmh*;+;dncEZBr`fJ0${0+02m$Wsqo>yT7P<{h3b zle$8RijGClJQjhza_Nw_(;5$Z$N@Ss<<&l2!F~WKEO7RqucWLgQhD&xJVg0!+!Q|fpr{MLKVMRdy6ANK^qjS7HFCkBzD8nduyCutWRAU9 zle%`3wW%{*$PU(4wn?#I$yPkJ=Ok6CIgc{fTO`=yri8sL=pRpueJi*!54Rx3PAfJS zgV5e`n)V?r_KtVtUaM)Z)nhl@@XFnqwp)W+uUY4I%zXtsgw~o-x(zL& z0MUja=zNu@e~Y}dJyv0(J!KbmTV<=}>c2hl*q*{hYpSrP4EJ*@A0QLlr?rO@+^eno zLG>V?De1Igc^!#G?$M*42v&T1SiuqGIbe4tv2Rgp zZv^rb1^N`}RLeh4L;J-G+BUsTP&3N&!8_Wr6oYzUzmLLpUI*Sm-k#vD6oP`21-(wI zI+lN?IrI|8dnKAziQ#NHn=R`HX*}o%9o^Gf%f8`7M_k$fil=FT_lbSMz%krXunOKN z&57^cc(4{;FJt@YWig#BdKC?qlO*Bh!{PEXzo@Ww4L2 z3~qkibtwM|ya{`wAoziuWDM0opwm&Wy_P<-<_>%`IokXBm0Rk#TfAVC1#O*Su(1lV`C)RJ1%WvO-9YTA-oYFXCNEya&eD&V{{g2=O_a6=skyyC`mteNz(Fput0N%GG`3H|MYrjPvsUPe++~*8Ob_Q2m zIc?0XT;^vp{UZk^Jpva;OUuipYArri+l}-dA1NHTdY?ZwZjZFh;VF0N@)d+hc-}m< zJ9ES^z(vDhBON8Ad0-ripHg}a(aRru)D3v7Z63AnJ$k8pwpNsXpO*uqb_9ab$8+9& zx4e&qBk#ME+tG1CdjD7Hy<)|Sq?N8FV-Ibk)a}snJwbMh>M0bv0QH#aiOp*zO5AF1 z&t&GZ*|~dha>t<R!ul~ zajm<>_6T)!v7aZfQ$t2et|s!&a?2sFfF2^;FCJ6vuf+#flD6&&`#=X8EmLQA0EU*( zyNuqaSENHa_MVyS4E#mFT2|2Oh#uHS)@ST-YmuZ~(jMv1u#sLB5b_K*?6%`WB(Y%a zPA}O$%moEl39(>O%4_4jY^6gh+#WNU0ORe6@D6BTtVg{V1b#kpDqNweZ%?DoZ(j6lMR0??Wf?ip6eDW z)mXinYx{Ky8kJQg#+-iOP_EMa=fl3} z!8%uu{-OhcBIP@Y4$~rnS@YU#oH!Av{JXl1{Vh@t&Ya;~jd%T0*SzTf$I%L+#u^Bk zy@0Q0f*ET*WQOmRQ2nf8UJ~)FBJToEo44qfr6p?t5F2sqHksDK29K8*TK{o&;iEIa z;{2Ttp+q8;^_%wSRKoB0W@hZ5-Sl&r-KGzO-8V;b@*Ceeej=-X%Vw_%{ZQ|I!43sE zl$q9>U!9i&WfT4|$AZhthr?=cnmwUsY_pA;^pgUzV3~e~6+k9o4BE~nC}Insx7G1t z(=n#5{Adib0Rgn>th;l+Tfx>Fp4hRoRm&vry(sAY`+hW3eOqhw85 z``;agr@mB4?6W37yr%X_MIpyn-Jap^9=Yva4ijfJv1wSP|&2L4Xi0;;m}(qju= zZGWpW)$})-d-hMc<%Nb2%AeYF^l5v3=+Eg#NMlr~9vluDlc2c<@Ex>6O@CCKHEuIJ zW+T&VW00h&Pv*Euvu(!h-7vutx5|GoYXj#4rf8-M9}H|$`e-QcC7wHs)j^aFQ9lF! zDg#nxKu#5_lY0X`RKz~6a~ZGb!IIQc>X!cO`|M#mZC;mF2_s=*QcEWKbs!gpzwbTv zNb+C|v6U|bV&opOYtESSPHR3jjFZ41l4e2(Xq&^SdF!3_JMCrxCRyPuN2V8=((l7- z6TIqWQVSKG6rSZAmssWtXxvRT z;BimD!jVeA2XEuTI46Ygki)*>eikDoY(5!x zY+|DcGm|uOVe~ixx$lgT`vUSM9&eUIagcuh+WE&JPYj`mzRQDFXnoxoM=oIN7`{eM$tRlp0rN5p5H9lAM#4M zM%j)fCQ5KqzHxMf+I>MReuSGwEXFM;FGGD^+wC(%VnpvgBsCjbqG*d+Ls*di;xZLA zN8F~k`?@_QWO4Ov{z49IyVEtP&q7WgBd=KsS3m#)ef4TE%3vvDB^$~5o>sDDowa!1 zQ%|zCP6Xi#W+pAxc{_MpX|43Opxp>poTVI!Pa3O-(H*R;$7eEl#MYzlBb1OaE4x2j zt9@v94YZLqO(X^+*yKAUY{5f-4B2(-eIj)sT!O_=;XiQ}n~mgAY0n z|M4nX?)_u0J3gMVDxGAIExc~*ekUKFd_&O5?;i7FSlm@|1 zp+c6z=K84f@Wal7kF2iV{s;FvXU31e?ke3XXQHz#A3k`ncP01zcK%;Ekb9!r$w=Jf zE<-iy0^frP@7y_UZAp65#-^Nn$@Y>*5^lfo%+~hou%$c7@j=XOXGfFBOtcpXK->1) zkW;-#e+v2GUx3sfnB+Y=c&Og+exco7ZnaL3(PoD0HX>MJ)Q*E|m*c(QYKY$!M5~Uj zs1=+hnQPlct)P|Z>k6O8D;`JgYTKRZ;|vb-S&qT$<=RCI0v;(&CcXdQe%AeEQ3{2Y zkkjk)ziOLGn?!dY3_GMI@DMiwiqrXMJumY-Ug5m`V101j4bCjjV=#ZesIP2$_MA>% zsn31B+_^xAV>)zXk8Lfq;y*FC%!_i(uX3)fe)$CZgy+)z@>Sbp+qocJeXZx(c3-ed z56;Eay{2{un|Me@WhZk9l3Zs$v3^Iu>RZ*-xn1 zB&KLH4+NzEdGO4O&D%Q=6X&PIkv78AFQZbni}2XiN_Bt4f{3FUON=`is#$vJL^dd- z;jyyfYhf1I3E!_}>-FsQv9iAtWhtpL&M4+@s-7b&Ba0&Rn~~3beipsjs%E3+658P(=iuxyjc=<^gr|iaqoyC%Re+d z4NQ`dSV)z&@L7O<=xO41;mXT}fGbjp3E!b4LSj@1{}uXMEC$xB6(cYk@0yT9;qO7! zNjkv8;JUXh{`gk6O~7WRjm8%(Jchr4q^yLS!J6gJW-3GbK!xL!Tsb(NBME^K{{UjP z6I{V{WnjJpDH0}tkic_HplaxtKx81g(8s0xfK3E}kEqWN{R3?#83MvTErC7@P2%Mq z;5KfN|3Dy)z{DuoXZopSf+A0?=yrF?oyI-{naZf;5-xhVr!_jwgN(`Z+8T4h$sKtd z5hIKlxR(cL``V2w8$OUVEWmfW@4EAG8MZ5u8~*s6?{eQQKJ4f?cpD}(9#T3ScOr;S zTt9@}B=jy2Pr5)s*i!`py12Ow#+P2D>4P_cp}>UH4a>eHv=fCOp`GyPuqtFx2uD68 zZ@E3&f866&;hwsf8>PB3`A@@sTy}|PaWBLs%5m0THCPC@$@yE`a1UYs9q`ICYs<_f zDqoL=IJ0tQef``9QbY7PaX&@#-q!Y#h0N9k{uZ1 z*ga^>NV{wJ@Io6nyJo$`9g8KD$BuSgtNTp&`U7G{ioruCr>kV8tIGeNl}iy(4S&&A z5iB+QAg?&7T(TEED@N%Olu!b0L)P*x)4&tf53Z;0;|3*gM|PYxu-FwNvXFB3Fb)_n z{34Y_^l@b|&EdkM^KMd&gO&J)rH#X9Qr+~ohtGs4iae9x>{($tIe&iZsYE`(&F!@| zGH6nHD)Ky~m#v&VyS7H?^Za?dcY~)R8N$36jW6`?OZ6P=YI(941iZ_`k)z7z;5*vE z;MF?6^|}~UmN*xE4*E?~HFTV;3vQ5SkCKAf9zN$z8N7fP@(#Vb2zDJygNWfSG;TmdE@znG~VNsm;shMNv1DcEEI zb~2Jyx|%UzjJYm%mEDZR-OQ-zd6lU~P91J8^~Y2$R~!-em~kaZ2j!7rD{W6q?Ztx0 zB#p)(bLGVj>=qb6({3D%=x_^m8eRgTKo(K}H{-J&=ake^HE>Bh)-I0-QgC^Dw zcj&7si)U?gs3SHCxXI?+xCduyx2IE%_lmHfrVL00gau9#$=H;L^Pmy_tpg#{cwVLV zI(yS9byyi>7umD3wrY%1Dh<=sj7)zeyZlEVrAdZ8HCD>Hx8Lr< z|F9#Ww{+mniAG2mqXcSn6 zzzl$L&=Pogt0k1&cvc5}TKrIwdNIn85BKspdt%G)ZBMlzke2pa$|Z-^+y->E!0((lGMn+RjD8;pKQN@niK@(2Fx;2 z+l#+JosO!?peu#!(1W`Z%ns+~Ngq@{>b#4YW$oVTr^{C0R`o*W3{M-4|wr3ymPcbtJWF1?OfaR%eTaw<$&WGh3VW0jd z+Ftf4h&?HGHc&oX0)i8gGlwHF$)Eh(A?MT1 zXewhSvY?KgiT&tGX(O4OTK>@ffu8iYL;rx+{0Qx8c1(_pgGsPDsF2O^Me#sU7G8Ci zxb&`N;$aemiZ~n#QX#j9+nH6pB|IO$S*_>BDrx0WOLd}HsRPUg%b9aauAPa+a~b&7 zyh5u^rE~>+63VKpa;a?Gu6X{XpmNfchM(_@pl&utJEED4k3e6S%}@7dHl+Wgs8f?WX8$`ZZ1dCcGmKMNvB5gH^hP3Q#{wR zGSq0`w;(4-dU-uh-xqI0ldBDdjeyn|XXsJPS`;ObnhQ8@S>kc6BF*@lAyIv@66D7V zK2j~HOjf@lnLH~ZHlLEPG{0*0ihN~~F%^w7kmj6AabVuYslUSF^MC!4D~og$E!TC`d$J0& z#1o@jX98(?jzg)?Tn|VQI~5$acI>c@U-!i?)_+>)4q9Y^tgRVsuN7PAYxeZ5V>(C_ zrVpJX+d)?lD^q8mk{LD^jy9xVl#KD|N8;XF-|EF5DV#bLoI2I?rl;M}Govma^@mht z#rj-wWhMDJYvpH;tTTRjdp!lr*@jJ|l6m+%wH_2Oi;Rm$lv@E-%9N+YHfasSkvZKG zrf07xK_69lkNKWpGLu+I9y2osj~qUt+&OF3J$&lasV~jXKf0PLRFl^DcrsZjR4!Me zqpB!5u(=%+!H8rWXAEPZg0{4fKVcRl-9ALL!asmW(l<%%0+BGi<`>8OF?ZIReZUPD z7RL@B9&_jB?$Yn>*x@@HhYmFebbg;3E?n0L8s3~cyPK8noY#<^8|sbXdy-h6)JI@- z#9pz8rY%N57je7gXc4vVjF9usv?;Ih#MelGcbq5Jcq#HUNk(45S_#6;V+Y;PU)eg3 z#6zS$kVIDLy)9wt6nkDetQC?$FmgFtyBTtOOMPWX3cvwHKQAods6by49)#(Xz|~cD zZrzU7P$O||M%HGtXJ>4%-D)_vu`ihRQjV$hDMty=J%1+YA9q@I`zhHltP>ITw~8uh zERyIZxE5$;%t5-F`1kp4@dPA_M`84ZW7+Jn1^bGMeW!^!{-^8b^2Dy!LIHpRAW@IYn3*8tUX!9h4 zJjYY3I?FK#26>Knf#m354P&Hj24{?H>v$~&MY3@*Jgbrii)Qg`6lW)*MUbsP*jZb? z8{6aT&%%mOcW0ehx4tdTULE>hKpd;yDSz@(_XA!KsuL zWp>_oRKg8EK4HeM4&(Y)r?bzxdJA|?63X%Owi|x5UKH-%?Ej&zJMamIPAy$ObztSl z=YSyV-1<6fMrUv_TS5r;jD7a3@XS#DS@a3oUie_b`7S)-%U2V8yFWNV~-8=aLt5P43!>(&{0*Qh@E_`kIk;U}X_rTpiqDIq)^0Z2w z#nzBys9ukhLG{7mCf))IhXP&&3BnQ-4PoOtC=HfM>I#G<2hglo*~RY``WQL`mt%LZ zK*2bTRHlY#+VhY272i%+81sc(re3{axSq+ajb+Pe7d^r$5{fTSF)rt(%h@ZFaD}JS z(Z`pP&>Y|-Ae5YtGVm0*aFV6Q&T_#?CY?fgXX7zw-P4tTFs1k&utCv0Qt{aJxpHpv zFS=)`*&#Aq=dK8ggXEQKf0hK4OXC(I6$#c81De1jY6)R~!&7}kiF2ZGo7il>LG=T$ z?^EuSjbd%Z-2y3JI?W3g7!`W_lW}A9cMJZ73m48kL7FT&Ey z%fJ&ism5Ou@5UFX?N1!Oy~wvlrY2F=VhK;`ej=7AKjIHY9LYW;<+2wBo>uR5el^$#7fEl)<5c-!p3Z>Qwh}HmjWN@y7Qsfq>G+wzb;i@loo=4s zaAMb@VLa~Sy}ilw6ajo?q?1$Wo4{I=rLoU)#Ae=pSu1&(f ze!-RD^V>y{J@R_~uP?R{E+Mz$VEkUB2MP8_kR!~J5>`O-6G}69Zn0nS5oxvH)AyyV zhaWamZ;7ushn91{w7Pm`wH;g>vEOAk8oZ4_r=80r9erc6+fjO2>98S#{vNM|Xj zbScHaokaYEOIL+S%~(e;P#D(_aE+@=W3lV;kOSzCUvcdobz6yAxp5<#-rrA_*i)S8 z@e{j1X~yGL@|STI;#7>6f}atu;-%zTylyd`BC>Bgu|;j)Yg;M8-y?K;=>DNgg^L3a z)5AjER)#9)PP!A<*S&Q^D~h?a z)*6R@FpbWLN|?gJK^r`9E`9Djp&}?{#84Vf$gd@x8_0^yIfb?nS=JQfM^8f}r1Jxg z*b-pde01RM#gU~&%|KphFMqqYh^>a*hJ#cx1dnfGQE=LAiX0Ha$PXW3A=1RiWNZ(9 zKoy)}c5Ma!avMq|Zz_=!gk&nCM*~UtrjiUApAon=!+ze=bFm&*Ll@}t!o9Xru*JcE zeT|Ts06hq)X~~KMf%F6QDaScA_OA_Z8Ds-{LxJ?Dt5)+5-*!zNDpY7z5 z+2oQHAV(mLh+hpRJf1O4m?q-J)x-<|iJxBs{_8o36~|tI84Lv>4}{B1K*>sAHUAUmozB zP76jdcx~c5axoNMBh6{YJAT~r_q=w7)1OWDv;E{7ujzz+XXwAumYPpq&^%1+i>1pm znX{kyD3v5PlBct$ehmX@(C%MlY!t5?# z9lndg+}0o+s*j!r&9S}?gEP|xLQY^&Au~Md`+>j4`aY&p^c=p1*Hz=TM0^ZP$s^+I zf#mQBc(_@5>WL?K7GYa$$1Kr=FXEIYIuS+-2X^xY**0gWEh#W49kqCFBOv494A>s+ zOW?^~#DAeZzS8OirZI#*4vWSAG!`_AesOW1;}(PFuzktenRlLeoo~&*@rheZb_x5s z#FoDn>cveL;A`8;Dcq1Wxmrzj{A2>BvOq5c2Aj0w zxYQGAij45jNxA9OVkAQyB{80HS^(euJRMCO{1~P98eg*F1IbCBV1KNuK`oT z6qq-AfLRdlC0S#UB8*E6uppZXh@44KYZB8+!bK&1>1Q)uE`anclg(2qj{FjvkB^Zk z>_GSHx*p`BSSD1|mvxCphwJW)$>~9p>Y&$hKm2&HW&@pRsE?aDBKXUm@nSM@?o@acG>v0O_}AKKdhxlx{3=(xdT zE(F}qu#@CsS;?7jMPDm|=qSAOxOp{C6P{MlLATY+6PY2hA{wDuj&SudV#Qs=KP^Yl zxAZz063V)ebe!Y`N$$CD0oWJ@T<8y4J8^>SMIxf&J>rE&i4w9Gw~FtruSxCWzF^IK zEIqOOd~xT5coOZqB(rJ*sVCY!R!r2+FHim*sh&5yg!g+bR5FPhQ(j)zm>*DnM>e0# zg-OmJ*#hA?cz&;KN?ezs2^2&aeoZFMnXo>|XJ5086Z%rWrXpT?2~vl4g`|2t0y&At*ZedveTrR{gI-lug{*F8fAuzN436(o=#Jz7i?J=`U{5NKy~m~|QY z6vfV=XG=Gct{|V{l+@h@>`n8-lU{Y7#Kcmme65z>SM?^3KIS-&Iggz@c^M1yJ5E9& z9KB>ApWn5s_;vQmRs6hyqf4>N^WSzpG@H6<+||3Nt5C`!109H5Sr~WN$E*R&r&=Haz2e#tIkSeOBV8Uu;xK?EKC9 zqK(<(yEAMY?t!6e`$5hR*nacghyET(5^`D+Z{Y&U;p+i zS5nudue&Max7?h!&&mjs*lw8REoC*amU(I4ghr}VXDNwd*}o7K5!XC zE<4iOQRKoAiCNGqG39Av8KH#>gQ=NLY895|!E~`nnBtMgZzmTIKo$hGc>ox*nuyS7?W^}XiG*|ftRifagil)kD ziK+8PpgbF>VlHi3xfDhw^MQmB*4F-Na+e#7a_!mlXnqElz-TVjxoy~j12E^<>xq08 zsc$R zxhw9zY_@*6X?B*|!5)qQL^tY(J9Osm0;qzODDtA?F0_dUtve})nA3d0j$WWm2=VG( zh^%9%MxsyVcpZ2V6I^-{(t$RUCe-`lN|Br_$)mY=cI7(Lg#b6@n36LkJQ`%P{rt*t zM_NX|5{Z7Ibc6`sOyHvor{qKo1b?iG!URU#tcX52Dq9bUOi12;Y1+7{6XwR_!H~cF$aKb9Xd4)XS{7dAS}c{M{X^Ebp%%_rDJD|T@V@=D zm&U)z3UQ9eWX4p$96^ql{Ms1|Ole+SZeY{rDX!^KJnJPE77|`IUZ@rLlC-+AJW_~d z-FZr2XPyb`x||9%qe$P}$S~e&l~~@4RjV;GA1l|ux|d`5q!$}5$4j*!sFmX7DsnL& z%j3?Iy+4ie$Hzy)BS~9_F=yer5ROiskH{VzGMoKMSAoxdzh8=>Ze-?RmMKf)zz-l;GJlb97U zK>SrQaUn9~p0z5i1qOkAJ3w(?m#TyDToBaIpUq+%Pt`r&OB`!CYya; z@8WNl0X|9j=+zl2U4&ckwq?!HdGBpDwk2fwwDW})E2yqN^C@=j#v`XCA@!79-y#M3Ba${N^1GR^?Yt%r{3eq>y| z;M+8Ystx6VgSF}6MV%=(0)MQ0nvbASo`Dm+oINfm*VFR0E(HOhiwj2$!O?Bsj>b}u zbwSrDI(GcI>p(x5t9g*XK%s zb+0vCI&>&oXim(|#70XKr7K#&7fgz^yZl#`QZQ!sEz*atnP^SV94`;ELr|J494fQv zXl!P7qFKO|)c=^RcW@JtEEZmGsc5l?%>iC5ssYg@9}}u4G7Z~+{ppM|h-5v9Xen0^ zoZO~1ylHm_QYPR&rvUr+WmclQ`#uwz&l^usjlsE5qkOV$U3n!}r;f^zFx>Nn%cKm! zbovPh$@ zWN4>d`9+g+OQ(8;tCso^qL8ac;m$Wh!gl=Yt5)`vu32hHB%LR40-JaOxLk{y__0^H zg00{k-a8Ih@30Q6J-GPD;)C)^= zaB*>b{07=GoFf|aTk-F5oPmcIryi~&ZCZ_a-r1l0$gJS+g1W0J$qh^Ud?Dqi-+gyo z^D2e*RB7lNNagHM1A7W32W(*nY%$7+5JhpY5G*gL*MxKDxND)YE71gVMR5zWKGa=$ zPe1x2AGq^g@99gXKfp+Cd%2y{*-Vfu>;}~7lFU?WjsnQNvI#YJdSvE0?^NN|BcHSG z^>!EPw;uASZZ%a(2KnMJ_=vKj4A+EYeI)5O{9Mok=rI!AH^hSazR439+&586ebEct z^k+VL(@*~7M?SLU<$mk^*#}B*6leFVw3{ejdOjT&ANfc2zogwh61JOm4Gm%dQs=dX z%z$fEVa!toVbEUM`otLzXGaeHzum(AP7SugKn(Wvr7gIxb>TOK?< z_06iz(2`Zs<#e&)fEXApsAQ@ljg`!&a`j{|76jn<*`C{tWQDX>c%A6&|J>^YGKsB> zq0{TUmW!PtZ>*FqmgN1lUojh(^)97ydh5DHE{hH%@*=82f>74+N}?HJ-4d-UNdhRQ z11z_EQN^11DN5Eb-Oku6pY@URCn!%DtC_3cTl!`###&goX6#R$|LpQ|F$0&@s#%M* zB~UT&S61{a-$2VH9AB5pnD>`GEj0)eF<{Mau=u=Upc=~8edy!tI~-16-ia_H-4u?3MvD5YhDv1wS}aS%5F`O zw~J9cgS!w6s`jelf04#)vIgy{uQ4Tk2&4L6_m^>j!6?5$X&eXxpv%DtWFICuMO+S?L@tgDX`(<0|HYa87V0G(oOMUXrzX<>F;5- zi-c1MKrwZ|!seG<1r&(KOq7rOxh7 z>3B{T5|g+0?Wnm0u*UUjYk)T%R(0B0YRfXtdPF}!!{P2jl8OnZQ)aP2m^MuO{5aMC zj4gqOA(H^NO0Tp;wVCGleF5O1jG=4@1WSpD!$)>fy>Db@zLVWKQH=THJ0^-o&WBhv zbFEXp2IADQvj4ZiBJ@bM9W!APtQ_4_37{IF^np>`m3L02V*c2UiIS0H-#1WiCUuSH zmoK}P(Ab#tmC!#orFJvcKb4XZ4mnhXO??5~q513eZpF@@^iB?6(l6$FWB9U4 zo#}R|)Gn#1vHrf|!|8_#M*Gm=9nWYULwRFxh3AkwBJBqY^V2Y0dL715;CRb=lvh|Uco)Gz;^A98i-(H9y%qm#`@%&c82!z@9r87a zUU=isD(!>LqGf@M7E%7i1;!(83xJuJd$&M{2ZklYW(Spdll&8jzcPY7|V@k z6r5}OPw5p;hF@g$lRBjxM~&XXZ=ctsf(}r5dExI_)2xFwI2FFgD_Rl7SXj|w421K! z;EPM#kHqfK%wAew1rZ{O2H6Q6ODkJyzOk?{ zIysfvmzvr&vam3+OD|5&&Cgpk$ef*ulbs}Yp06YRWR|b2ti37a`j!0Xa4K0bO*?Hv z3ZMA(!6BlfO^(We?{g}t?FT?3*!FeBs`#0*>5Yu+hMGPFO+A`Zbk7#}uL@6bpY~@0 zebM1jLA44hMsQy}@Sok%0HX`t)JwJ@oXIv@o194(V)wvG9J@DGs1#x&_}=2NdaRH} zRS`=tc@-P5HX$q7;2wyIWm|EH$j^^wadsw@(9Hwc6x(wvkXM}SmhXi z<$NM%Ip*U*BN)r1GI6y7hUQ~e08WYh_}1KC1JiqS=yhECbONJ}ss%kRjCllgGREl2 z!+HS4!6*z|Fj&Qb;o=~XOzpPi#Uy$h`Ms>}k7jCBn6MRQbS`62^fI8BNkX!1v5|76 zN-c9=GE*qK%!F>a0F5AEq#V|fm$8W&JNMX5Jevo+2{6Uzrrq+SP3({%$sPKYqnbB57L z1^X&miDXWSwM|GEYe;fOXGo@y6cOY*Vsx=r0!@9^HdoW=9n0pWYgetT>^X7Us5d?1 z{-p|bInM9c4Lh)R1>Pr;dlmiZ*;Y zFFoUTt)9>+Pk%WQj1zGGSNfFW!Blk0Lvl)QdYfG}qDC}sVw}7jiBoM&`XO2zfcB;z zX44Z1P`U#cfN=+E;Oddf5AKLJ_8#SZbZ2GX(s+EhyO;OszR+P9v1lF1R+Cw$wX11o zt(uDE6ZO599qPnK_Z>a>g=}JYe*e-~e0YA};u|CPN%(OC1pxelDh5d}H)to(<&s2l zZ=szAJ|ZGKfciyYLpt{u{sp2P1%Ws2`&DVGVL7r<-?W=sK42_xzB-5OzM>lIDf~*qaEQP zF#|gil9c8Cz3B zhhXP;_dlmiP%Gq?0eE6@O4IS^C6D7(T6C+O^wuvr!au9+0NW=DUbX5K;4TFJ$x{Ap zuem*8IJ8~R_AysDYQm*|P8)wvP7D+^Jh5CtBLCa3((VvQs;zbx3j1v*)|U{?2l6Z; zuCoD4f*8T530)95zJI}AlcWc-XjzoZoC_B==aN_0cX4Z9y~AKv7+%Tl>EJwftf)e2yoVreqRlfj3Blq9NB5tSg!tB~z2F)7=f zQc=E45--IY55l*@0q|m@zlpFos7#R?y>Nf#RoR5^OY|(!DnbncM64cO7N-+^Ps{du zh@y~gH5yOkl8(v({EES<*kSnOO3;J6Gg~X#}aOfCrppS@|Ad=Y15X0AOrUO^@vIniC%@z#u{qRI2EaxD^k)AnWD~IF%4T7HS6- zOdVw^YmF$TMIiK>%1&48W(n3xbPON_(hyF}b_^(Z5-L?1$rf{z%(KBMqpTqntX$ED zGbtwU0xOovs$T{B59}K77X>iji!o4C60x#jI|XLYgp?{ntvAyFZn@-en)@SH1X1Hy zsZuhQ9(CRHY33lvX>c43d`IHDaj~OwXc|~Va6DK&9J@q!GY0A?LEbLl6RYm)orLY$d~EY7);RN&cklI^hq#<`?(SZ@ z)o%sk6+>T>$S;#)kA5S0e01JdOJKqHo_$Tou5&A|9n{4|MeU7WUgFVGe|%c5Yf)?b ziyB)eo&l7}5dD(hrf7w0MpfHKm#F#ANm$l?CenyPU7@AFDQ6>aKI`D2TIVy0^@bHZ zQ^Q;F+QD2WK34EK;*sV;aDZvc7M-bC;6yX6*0a2W(Y17y6ezwiEY9&@qW!rS3x5{R zNe4xEM6`00_dC!@B@!GFlUzJ=Rmbi3-5pmS>$tt1+c|dTIZaaX^kKexJ$Hw{Lw|M- z(_W!{o2Ng7HE8uy)LJlA!L%}rn!|O6+77A@`VOWpUB#L)dZj;d=PT~`YP0RGw7i0S zOWEUlbM@MOx~2bpth~SSwt2TQULN;aD{i}ZzwK1!y-IV%-j!;n`{{Q2vC4kJCj;H9 zN>7r=)#YS1+)4(cc%6WXh}tX3lVV|NKOR>?WRVO;!PJmWD8b+Zl65G)s7?J;>&~n$ zcIFAiiR98h$r}BW1d-OOvn@F6tNB`9p3{IYO0cJTw3S2^)gBb06zJf>ak;*JJ|r&;Hl*+e z#63b61fgT-pOHA5WOYg1d#SlP=vVYhIu6BG-7|7}&53CR84rF$Yc^??vQOaGu^!}p<4jh8YZsbtodx}>K+joA?>JuXC!f_&P zw^@q=rV8!i!Mg)qkwM+*F)9{&Dzlnfa~yg5)bZo?&F{R~di?RP%pA!b&&k`zcU{)b zb`DP6y#E*;`OpRp&me0gJo zWPwOd41?$mtCa!WV{mAk<5I6nnyus?4^sDy zgN;Vn&Bj2qfNseRd+}hjS<9W)^$G>>Gmx)eqcvOj_pThei=K!=(8EcM4vK0)H^LaC z)ED!BE`M&4e#c0~YNfq!Tg(>=Ob-#Pu)DY6pVo zetgg&JJ*F3$IOzn8w6RH7){Ez!f=>^EGHSi&dymz5*@@YdH9Y~wwVLQ1(zboe<%0^ zE)2?%+NCVo2h8D4F|hEPz0t(8oGVh@)k-aV)VvCn)TWS@i)%{dQmM2PF9MV&RNyFT zWGTPun+f}1wzN#LIhn&M2A#4ZfN5I!nrzAcq?Oy1MWAivl)RXm0DL%IT*fZ{^%$06 zAm8cx@|`;LCrI9aJPwMt)zhcfL42>BK5=401HM;jnIPx{r%wz^x94&kOn{ zo(tU0i@k512nd#}1}B`yZ@lrkTW`H}_4sipwX$cj^7a$+w@)8lT%5aP{w`+C=vj+@ zJ;~@5eB(~!vAD5$#Aq*;@CKI976%avabDnYLQJo$JNCI?2i3FR)<{k6$}}5!BRe`? z&l{PFQz>~y+R3(yxS>~6{Enx`cEMoK4^|#?jLc}W5g6H#@y2n>NENC@vd$U^sc@_E0ptTibG5u5jm)U~<;`b3b zeqMwzy;45p4eFoGZ%i61C#0UnU_8|Du1IeCPG=u`0Zx}DdNz*lgJKV2;vjv1?IS=KKTCLGNuI>VYB>V%l%y8(s*~=W zH~2GTr_S8xj*Sie_QcXz=t?XSgDjPUX%c;&J+RxK;zml6Iz-$p1<5JAt``1Wf+OL@5|H z65YrE#(^e&P7ogvAC6Y_&ikeWdYomn60u|a)4iHEKIZ*&ZP*(dKSxQqQ}IN=7N@A^ z(7LMTj(cO?@UT1Pjc+|md6JiKR^oO@VUf3tU8XD=xCn?#5=A?F^iZf+7`PiRMiyqidz1q4f}hjUX%c(5Q|^hjB%7?Z1h+n zk!cX5z#%?2J4;@0#c3b#Mm=HINGAHFrF5n-iW?e4_|ehiKcr#_ugxtVX;F8;hz+j* z(Wcyb0;rQ|O0k}>f5Mp<#+pLiI&#NJzuf*GSs5xo$WtnQZSs`2(2_#71fI>HZ-#c7 zk>I z>Lg#}LL^0T<0m3~eR>Fm@wOVTU;PCK~Bj*Dsx#(kSfwSI8&e*M5awgfn znaZS@Y%P29NR{AuIQA#OCg=1uFhetMGJA#?1nN^zPIcOl(Ix8XXiR48Q<>`ir3Mb) zPNtJ7sp{0+p-goTMouZy@pfd2M!7Tnz3!j6e@&I`TDM;GIy<~lc~@EeGSw_D@mQj+cYe(ma?cBed$plA_&Hg*q zaPE?tzT#*;lijng^YQQ`^%=KXOO1`@_RN&L9UZUO+7k>nQp4r!Y?PNGbN80^yq%$G zs~!X6Nc?Ohb}!19(o$c~F-!o_kOqiS_!gP58;-CY!v?y-e<98aKcUak|y* znD4yZ-R19Ul?;{7!T%s&`HXukX0(n!d|WD78oA+7?Oe}s$EOE-*WjTd@-f2#bO(&L% zP52QTsuDkus>YMGxJ3{wl}|b&$^VTt&DkVN{Hb9^I{^gn8@1q+F3pai%%!DkrQRKm^>wxo^^-q>_5Po5Yz zZx~5@0ndcl@1NC_WkZ>7f13;bdvHx8mXj~HTP@-XzfxVNu2(m!RduI2sUA>|&=1GS zc`7X}TB4W1Cc%>-wkDoU%k1`M#Sw4im*%WCEAY$Dfep~{P-^JLN^Jl>pnd8{QQmrH zsXMB=77i>C$W)yoKo6B_ySLC;1b#4w)r+w%S{7xd3Vh<3@Ad>9IuG5*Tv4#J`0`8h zvVaLT-=U&(sXbRHLi7R9DBq-$q5RG*%*px2sZLc8AnrIy0Rz%3!M8hCw3ZeCAaS7` zlV$Redb(S8G#L};M#n>i7Uw~!H@_(AcYzDBOzE79b8Qx9ml*<_$D}>x1?}7J6idDF z=6ta^+bNL|SQ4K21)>O2bt}()JnLSOL2GdJQjeHyuO6E$bqcfHxp~IV;*ymoS+4i~ zc+BvwfRtUS;jG&vdmN-LHOerE2<#*Q4J0!->gf_-2&C`oJS8|qh$4WN5Ffk(6+(e* z$@U;g5ZbOpJa5(JYaCKpXp->6Gh*T_!a?iO*)vd!aTuZwoCi8!x)?`*cAyHFfe3*q z2W4+LfV|88y1EvhawO;o*p88sZRZW2dJ9|&cq^*d+10YgFNL~Cm&6hv;gKsoZpKo+ zJzSRX0GU^IinS&uUE*-uS)5bKy;Tw>Xtb*8KxM_?U~Gz%P@&<)Kgjjqqa9$b_@Q9O~P3W5-DsXQSSX?VFj&Ve1pSK(0; zLx9%hT(G=zSNa+g78j)`!-!r(DRV2W9AY}D3g^uYrw~Y#*^VjdO3o>A&?sRjTk4(FqNxC??qyeaj=>S-=JR^s-!%d(Miy_;!1m>>#5_Qk{%&b2<{ z|Mf$^G;{$P70Hy)!DERbV}~N@!%AZUqA?gEdX#{_kZ_x^u(U{koe>&?KHU(jsIwp- zLuygrs%CHqUveSenP&kkFgk>|ujJ4~+z!STq)PdWhr+gl!yBPd$uRcHj^9*^D7` z7Y;SPjtkowL$oBbk0H~I{=@o1Vxa+XQwGA0U7CY^*k0sX#>f}{hm1U$l1C!_!Y0Nh z%tSoU_=qL0IYR1CvDtQoCyxST5zXUKS|n8_ZIwv*)JwC4=7%XHoqQJ$m|f_Ldi*K| zAZ8=DRYo+#9dt|SDx8a_2Rjc>S^{mX;pv9MP#(9Oo7f*K4C4NDw3q`$AjgP9%%8X< z&eibP6T1I$Fgb+uE+hdRJTHY+kRM685{8_xRMX|<3Sb0x4iR3YyE(9bv6Y1QkVEuE zu0bS$vfn`P56=QUo^H+E<7{BCMC6e|?8Hc+Z?cNQE(jg2-8L*IPwuHxhEmW>gXT{M zrL;>R+w|>x(RDt`9dW^Ow=(1qeN;M>hLE+@V`XBRK%YJWFZ!FX+Un+f&fF}s7VxC z?nLV7ay;6AjSEuD9?{7wnEUmLRb&5AcYeQ3$yWRC?U?i5{wDTk#*g_%Fw@I)I#`t9aYL+W zR5f+8s+%^6BXc1%6`nY8f{4Au?6o3r=G27?QS99mT|k9C&K!Do2hHVDq`?5;w3%zf zq}VY#65Q;z7dL+{AqLtVlR1_Do$IPT5zrVmNuVPIqbR>T|mC2+k4({AF&DA?G?{U^~F>J z`EnZCY5t87|U;c8woTy&{6e(@PryMixVQ3$Th0~Ti+`;`*4>JQmm8zKHu$zqR z2*7kpzxA@WU%elXyKisa=$&9UUA3?<|@$wh+doSMt`a+qpC0;#4?fR?nm)#@wnRtZTVr!J-$zZWl z_fzy)?0REC@GsaNd}RQey&}Fclu}6x(EcYPf*6-G3KbQiQzC=n5T!+By6rW5Xtq zklGh$IMbNAEN;bC-e0O`(v1wjn5GMVg6F#Rxvr;>e%?)F#L)^N-b zXyyH4a8@%?3s(`2LSdm;Thm=tzgg4m(j%qMY$``N!tdZv}FQ$whnPN$8OmqyuT8aC{t z$K}vVJl8VQPJxgCI)Tln&0pZCZS!0ht;ah;=vt7cI!e45GjC#RN4``XWD-FTN7}a< z2lEcK9_;*qF`(y;qxLL=dFngs{ngfaD5O?xeq6Cv!{msYZqlERFE6jPc*&#NnrAo9 zAI`JZ)>lBXjAo+N;cVx+%sQ z6zz2=LjbnNZj6H#wi}l;pe?0{f#2`rG(JbVPvdeaR3JaLoXZ=sG~Un~KO0bfhlG8u zDfH!rG5bI>mJw&KnM=Bi^t%h^+oVXGRSMkA5&BdnzqBG-Q-lNYu%%exm zYw%(2S-v)L^l0MRWfuFNr~2*~TX9yllZ8`3kAUy)-NE2fo{vt7)SN%!-xjZ`v{F~+ z-duwBim+QC7p5tdByJmCAALwC-Vj~DQMa|MMLI3`qV9$X-B5ym)s5+Vs6LX z;a)>)wxsC9Q}nIA4dD66OV;3aZM9UT;})+!UUoZwbN%&2x6^U&(5>wFEuDtrwARD# z!LsgxHXsve>S#`~z{?jvk4XI$C{Ic-#ESQ9(Bq|r7gwu0n^rzK4N;qZlvJVRARKQ6mB;ru6ICie0+aFqWp<}YZ<4;w0MlJbyrWWW0^DXnv}&mu-RYr$HWyKd zq#CCYTC>tv$aZmC>O^h4L(JH8&yTr{-44v%(+#&i-t zoxylim|a*~94n2W6X$~MB$ALjCJ~~TU-1)&{wQW7e#Il?UA-PO*xf_-@}w4)v{8J} zz+@h0q+!Eyvw#kp;~FbsiLosu1wbbt>c!Y@cf?{IZxhyFD(`ASQ9OD`c*uoGVR*3< z@-AjxabF0)1m@e=uy~*VkJtn=@nv9WA-^%yP+({Q>ULs&iFsz@SK-UULMG)>vFVdA zOyN|`UU;#?@;Ew>?45OoISm>S!PBHky>Mb~G>w@Y#~2k&2|JB^O>D7z9P~PV8j|qf zU~~#qujJSjw_0#2>EZnOZ63~0j|=+{&U(f=Bb+hLh(}6^e5404(nH4a9~(UQx*I*Z zgWhHCp{g4_&Zv8M^pn}kyu(#Dl7E9fDw^^?w}*yjer~Fg zziiqn@ zJDgB(nUI*Xm>ITT&-racj+ttPKcYs3VUj4}--EbL(nhyk+^H=>$hAy$w3->49=l{1 ze|vJ;PgaL@NIje@x32YN+vt_9^E+PKcfKBJDz4$%&qvQGWMyUy5a>h3Z#^eOC7M2j zs-pK3h}HH1D7H@F1y|ufttx&|!|^CoK}y`_Hy_pNh0T+A$u`j*4xmY{Ys=o!c+PM- zLl>t%if$v?gUSN*JJnyOvk<)J_|G^f+;oi3pWT#?;DalA#^1|)e}jxhNwLyIJmT@g z^%oZASXd$vQ=qisg$!d&k^!L2R+&LtqNj*Ia*&v{wcK4<7s?zfmjUqaWHLERzUsUz z%5`SFaW8A9En(xK&bbt;fm$^YpOLrq&83UF)S82D!*RyS1SErEW+huR$sMM)b9NQAg4)=T0$4EOGJa5rk!nz2v#MlnW z^A-t4Z>Hx69t5Y3ULzz6gD;lu2Res!32PXzr6Bi^0D>I3K18Lgqc^csmv8=+l*f27 znJp)uO#ZlmE%|mYfESA;Di-mQ)OdtqSPN)6No~nej_pgIlu*Ij;VksXw-Esl>N8@m z3m=Vm>O=xC`H=b`BT$&bKa%~fU-@7fHc(f^^`7_KnY!k*&YoMh{RK^T2L!iDn+ac`M|Pxe4D%qX8NyBPt8xIciQ&O z!2%l$h-^7&IL{4jaPFvnYJeYJi`0;Ej0?e4uX7khmD)HJR_&_+hVIvZ)8=bv#(2{- zI}*6)3#$~nAX_Ms-$VZ$Us{cOlDzUEy33gS$3SSB994qE0Dr7Svc?G_Xd(*<6Tkq) zxe9Zv7A^fQ_KM7EMnK?0pUn9HTh`C?^PD(jN$ zTg$DIp4iXAzcZ4ESHT^&@!?Wtz{z>TnIF0&KU}WX_j;~hD&&HEH0O)o?PYSKXoyf! z2}J=f8L(7utl@ zLs1+CN_wK}nIX7XZzXOW9=PEC45<5J;Ej>rawrWN_F@usMg>HfmrV%RaFu92o3#s% z5gQO ziih8%-gMHZ!a%}yJ%Jx0==eGQAEln$J38LdlGlFdYdZQCi{&Lvno8JAC5}%}&YH7Q zb#zH_$4fj8T^qp&Gihx45kd~|XlJt)S>miGBoKE1&7mDqvFJ^Bd5lB>GyrkC997_P zK;=Y*CW$d+U+u$H*>RW1_rRJD=i(M|uL+RbS1}T0($mfkWR(|}B*FwWNOVj~{N1?r z#IeYe7>$<>BuIr8SVl(Gjf3h3ljJ#BWP6sy@kLAb%8y~F(PO4liIO*zl7k2t~ zu~@MEokfS7uhEQTg8TMDGWoh%GHFau|Kbg5N^XZRrlGDZwwt5FB_b70X?T?KuvZbV zByiGKX&fZDMbc{7A8!no3%D~X!;NvjVyQQE49n`$W^bXNg|cRFe{UW-v+WK6^K9KA ziF5S1m%Bq8{F??7LQ1SnZ8OnTsW?JBt|=9hQ45NeI2!o6*$zdxm~}fq&heewA?Lga zU0(EhnG&J}Baxwh@SVQnWz12Q_B8dCyjbx@hEH(l}axRK^h~%41g zS1bp$gO|^q%+=E>4IhxEy*WyOyms)b`F8eN@4AvPdGts#z4#uNE$TVk%$hYwszhj5 z+NOLBucP^$ucL#u_NwPEpE&XACqJPbEX>Hi6?tKmM)HInS%YOOS|2h+h3n(2Ekx@R z%;&Xe*<}5WXxTx&%tXtA^}K<*0|&qw4+}nAHduZnT8^>&zGzw4^gb3XCx|kAGFmoS z|0~h5Lv6d?jFwYFZI!=v(x0(_Ife{N@KAXv|H|%|)w@ z-*Z<(wr|}1-~*5F_E6)dH$VK=+wW`K@W@+FzWKq%B@dpw>z+p*IlX6QMz*-?zWW}W zzVpHRhwdDDaOmXFoAu`d#2xM$IyLmxq5ELie&|KNy>QE$*zzG*xZlkF4-7T1*Tf2$ zd(l3}iDTTwuY=<^Xe-(N5!T7lLww%EuMcz1+c|54c723pxuOU8b_wq%Il?`xePrnL z&>o(_%;qufVvqaSVp^Z|{?PUq^nX5I^it>XZiq*Nd4&i~QrXH;DV0_(nn*@v@do+i z*5nl=5n!lL+ZaO-3Zwf9j-sK))VOM@3Dr_0$FB12VI;@VUOVp+6sJcvDuC7qWz-O(ftJKx%8g(s5t=ECox#V!Y~7-6Rj*fXP`9ZQ;J4nW-lT3VEZrdQhEK zXVgRLVfBc5t9qMyR6VBNt{zw4rQV_5sotgDt=^;FtKO&9)D!Cc>I3S7>buqVs1KFW>L=A_ z)K96OR-aX8)z7G(Ri9Hor+!}jg8D`EOX~CLm({;e|BLz+^#%1W)vv1mRXwB5ssBy= zn)-G1MfI=Lm(*{l-&D`4-%|ft{kHly>UY$?RllqL9Z%+h`aSh!_511%)E}xpQh%)e zM14j5srvWoKdAqx{*(IO)t{+9R~zc9>ic6W0rv6@iU0qcFp#D+)cl8bRKh!tX|E2y(eM>#BzHJOKqe?7GV`zXJBmvSnM#@MV zF63kxBWvUgg7HQk5CDN_qij@+sxfTTj1h`1){TZSW{ew6W5Q?|ZKGrCFm@Wdj7ek4 z*bRDR#+WtcjCrGLEEtQ%lF>8z#ZZd8*ZZU2(UT?g?xXn0WtQv1L-elZv++o~l zoHXt-?lw*t_ZV+B?ls|j~H(?-ex>%JZ8Mzc-;6d;~mC3 zjdvOEHr`{r*La_?W;|iM-}r#>Kl`|@CE0Nsy2X(?sKbPNy=zx(*?w@9pY&0b#Fltl z615E7qxk`+b*15gk17WP*5HuiS*4)!X0Cwmur zH+v6zFMA(*Kl=dtAo~#eF#8DmDEk=uIQsNQmH2VzuEc+b$Jo^IsBKs2iGW!bq zD*GDyI{OCuCi@oqHv10yF8dz)KKlXtA^Q>gG5ZPoDf=1wIr|0sCHocoHTw7( zw)O9MARz7d;-KN@Y|rPMUSf`XScDNb%(%6@Y}WkFY1l6gYA~s1Rt5GhbZ)E~W`SN5 zKyAF-ZaraIZW>~e$;+JKONWmRiSyg7nUY%CR*Sy^|H`X>`HC~ zD8(yKb`I)jguW_nU3GePTt+~viJNpj%$G< z)M683WGCBJR8Jy@%36y&$kykwiSdU#X$Rjv)b_GjnCjo*q(x|QT`dukT+{w%Wh;ka zgaCGj10iY)-c|k(TAcYhux=nG^~?grUF6D`gos(Gb~_=^8MG}Q!b%w!rSlHMbNHl? zy|}@%6Fs~vP3a6Z3Y(Kib0oyXxgLk3+JmTQF3s8EIdEfgpMzpGu?QGap&>j6*(wW@ zh7krHgyuCgwWzT35*tq{1m=={{5dQtZh1kWRSAR=?f-J3Z0^tRG-BTzM(#5|M^A%= zu?gPhuE*QtPKxT~|EKrHM}uU-+3eRmSK&>Mq&wFGix8;yFMi$sRC>dskyh1bGoLaW>#0IZig;5Fw)%T*bH$l)MO!8vP z>A4D`fjcwNT4>il335swu5G^4yc5x&D0^|zz{?PglVL9fF{YJ!KPv`PH0E9&-|W|q z5n-$t@&XgjdEmc_8}sA9oAY6cz-)S_8d6W zT&D`zimZ~mU5=_FsBT~wN?(T2#Q*CFe%Q`qQ?uXm7iq*lC4OH zo|8`~S14;X^n)yJ`G~zO0O4{l(yT={*fBrK9))S;aXL6X_4HiamaVHqCT<7bR~~3U zB61+Hgu;lMOpFmPs|%0|;73L0y8?+&F&q3^6g4~m!n44oyB0^Z+@V}~Z_Pag$fxIq zelR28(Kd3eMD^0+G^hsA({f%lsj*s81A3EMqKMZhI4DZMC!5uTP(V6KVowfSizU%J zVavu-h>u#lM6$u5)@kvILk@(ZQ$0tHCdG;uAL&;FwXc69u2pVTUN*e1g?ahWa4(M2 z;MIQ*UXlRWf~wDlp&d8({GbMJyB{Ta;|hOfs;5nRuC=rPk&<8(__B@spw%N(6n^%MHK*2*EfM;z%c zx8oqz4VJ{w`)Ei#GjHH7#8c9s&|fx6%RAs5pkE{QQW&pnD*Hm+&X5%-Sc&X+3N-o@ zJI7{s{QGFdIKZz_dTC{mkdip^2 z%o!_pGZh(c8-8tq>Hk`|+{Y)~y8Yxf4Js6lwK{#4x zur{3*plu!#_qwGnyl^do)LFHYw`UTAoZPo!dD7WCfsK?fTWzePj<34@l^LWBVaH1~R0i(WN14S--yofj~A(JBNmCS@S@0do@~XC1G5 zVV5131Pr`Nh{`%X#2|h`cyOzFT60JFi1TDWt}YJ z3Kt-k9Ra9??yQs4vadTJJ)+I`SP7M!t1i}|STao7IU~!Yb5<+}SSXn@Pk5x9gQN~1 z>s21fq*qp4(+}Mla*GOtbH(f^Sty|Wj+bIh`IHYD1ymf@O4q!XcmB*~@bdsy52!L| z3>O1O{VsXG@_l8<^@QjQm_PvzB_ff7RBmU1Ob5w(wHzd>7hGd62HCIi2b`y(W5-!w zRFbqex)nPJeqkmXxt3wYLc5*9Qiu}Ukac%V&QQfPDo#I*zQUr z76`152r>BDN0C{f-XU;uzytpGcc8-+ATS9cPh|i&gkWC^GY1J|fQv24 zG`e=7XMy*R1KudG1N129>oCvLmd2HePA91UImv@bzGBV8qSFEU5r^64u{Z|17Q++t_%t`B5a2pY$A<}Ma#PmbqFJO zcjGED{+1l*1Q*ci#(Q7qqCZGnG%35bQ3RjEFJ>0ljS&`|b8T|!7#0(kdOVn!MvAtY z8}xoCnhXC#c+U(a|}*VOJQcNij|_I7u!8 ziPkNE_hRBxi)b>b)v$hpgF;IiKf>K})R=5fW4>!xome-_EkYHh-B3H2Biqo{m(7^t zy7Bap2wvMh6wVyFzqWef`bWJbhJ3|#J(a)g{sO<9oR<4Jm&iDOm78`q@e2_C3bj0R zQ~L)hUZgXSKmuPrK?2Tt1PVKJ?4U0Xa4){wpdCeLrOhnx$q~1-`H^eVOphG*jqKP+ z8=@H`QZuI=0?!0:typeof process<"u"?process.platform==="win32":!1}}W.Environment=n})(ie||(ie={}));var ie;(function(W){class n{constructor(d,f,p){this.type=d,this.detail=f,this.timestamp=p}}W.LoaderEvent=n;class i{constructor(d){this._events=[new n(1,"",d)]}record(d,f){this._events.push(new n(d,f,W.Utilities.getHighPerformanceTimestamp()))}getEvents(){return this._events}}W.LoaderEventRecorder=i;class x{record(d,f){}getEvents(){return[]}}x.INSTANCE=new x,W.NullLoaderEventRecorder=x})(ie||(ie={}));var ie;(function(W){class n{static fileUriToFilePath(x,A){if(A=decodeURI(A).replace(/%23/g,"#"),x){if(/^file:\/\/\//.test(A))return A.substr(8);if(/^file:\/\//.test(A))return A.substr(5)}else if(/^file:\/\//.test(A))return A.substr(7);return A}static startsWith(x,A){return x.length>=A.length&&x.substr(0,A.length)===A}static endsWith(x,A){return x.length>=A.length&&x.substr(x.length-A.length)===A}static containsQueryString(x){return/^[^\#]*\?/gi.test(x)}static isAbsolutePath(x){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(x)}static forEachProperty(x,A){if(x){let d;for(d in x)x.hasOwnProperty(d)&&A(d,x[d])}}static isEmpty(x){let A=!0;return n.forEachProperty(x,()=>{A=!1}),A}static recursiveClone(x){if(!x||typeof x!="object"||x instanceof RegExp||!Array.isArray(x)&&Object.getPrototypeOf(x)!==Object.prototype)return x;let A=Array.isArray(x)?[]:{};return n.forEachProperty(x,(d,f)=>{f&&typeof f=="object"?A[d]=n.recursiveClone(f):A[d]=f}),A}static generateAnonymousModule(){return"===anonymous"+n.NEXT_ANONYMOUS_ID+++"==="}static isAnonymousModule(x){return n.startsWith(x,"===anonymous")}static getHighPerformanceTimestamp(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=W.global.performance&&typeof W.global.performance.now=="function"),this.HAS_PERFORMANCE_NOW?W.global.performance.now():Date.now()}}n.NEXT_ANONYMOUS_ID=1,n.PERFORMANCE_NOW_PROBED=!1,n.HAS_PERFORMANCE_NOW=!1,W.Utilities=n})(ie||(ie={}));var ie;(function(W){function n(A){if(A instanceof Error)return A;const d=new Error(A.message||String(A)||"Unknown Error");return A.stack&&(d.stack=A.stack),d}W.ensureError=n;class i{static validateConfigurationOptions(d){function f(p){if(p.phase==="loading"){console.error('Loading "'+p.moduleId+'" failed'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}if(p.phase==="factory"){console.error('The factory function of "'+p.moduleId+'" has thrown an exception'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}}if(d=d||{},typeof d.baseUrl!="string"&&(d.baseUrl=""),typeof d.isBuild!="boolean"&&(d.isBuild=!1),typeof d.paths!="object"&&(d.paths={}),typeof d.config!="object"&&(d.config={}),typeof d.catchError>"u"&&(d.catchError=!1),typeof d.recordStats>"u"&&(d.recordStats=!1),typeof d.urlArgs!="string"&&(d.urlArgs=""),typeof d.onError!="function"&&(d.onError=f),Array.isArray(d.ignoreDuplicateModules)||(d.ignoreDuplicateModules=[]),d.baseUrl.length>0&&(W.Utilities.endsWith(d.baseUrl,"/")||(d.baseUrl+="/")),typeof d.cspNonce!="string"&&(d.cspNonce=""),typeof d.preferScriptTags>"u"&&(d.preferScriptTags=!1),d.nodeCachedData&&typeof d.nodeCachedData=="object"&&(typeof d.nodeCachedData.seed!="string"&&(d.nodeCachedData.seed="seed"),(typeof d.nodeCachedData.writeDelay!="number"||d.nodeCachedData.writeDelay<0)&&(d.nodeCachedData.writeDelay=1e3*7),!d.nodeCachedData.path||typeof d.nodeCachedData.path!="string")){const p=n(new Error("INVALID cached data configuration, 'path' MUST be set"));p.phase="configuration",d.onError(p),d.nodeCachedData=void 0}return d}static mergeConfigurationOptions(d=null,f=null){let p=W.Utilities.recursiveClone(f||{});return W.Utilities.forEachProperty(d,(c,a)=>{c==="ignoreDuplicateModules"&&typeof p.ignoreDuplicateModules<"u"?p.ignoreDuplicateModules=p.ignoreDuplicateModules.concat(a):c==="paths"&&typeof p.paths<"u"?W.Utilities.forEachProperty(a,(m,e)=>p.paths[m]=e):c==="config"&&typeof p.config<"u"?W.Utilities.forEachProperty(a,(m,e)=>p.config[m]=e):p[c]=W.Utilities.recursiveClone(a)}),i.validateConfigurationOptions(p)}}W.ConfigurationOptionsUtil=i;class x{constructor(d,f){if(this._env=d,this.options=i.mergeConfigurationOptions(f),this._createIgnoreDuplicateModulesMap(),this._createSortedPathsRules(),this.options.baseUrl===""&&this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){let p=this.options.nodeRequire.main.filename,c=Math.max(p.lastIndexOf("/"),p.lastIndexOf("\\"));this.options.baseUrl=p.substring(0,c+1)}}_createIgnoreDuplicateModulesMap(){this.ignoreDuplicateModulesMap={};for(let d=0;d{Array.isArray(f)?this.sortedPathsRules.push({from:d,to:f}):this.sortedPathsRules.push({from:d,to:[f]})}),this.sortedPathsRules.sort((d,f)=>f.from.length-d.from.length)}cloneAndMerge(d){return new x(this._env,i.mergeConfigurationOptions(d,this.options))}getOptionsLiteral(){return this.options}_applyPaths(d){let f;for(let p=0,c=this.sortedPathsRules.length;pthis.triggerCallback(m),s=>this.triggerErrorback(m,s))}triggerCallback(a){let m=this._callbackMap[a];delete this._callbackMap[a];for(let e=0;e{a.removeEventListener("load",r),a.removeEventListener("error",s)},r=o=>{h(),m()},s=o=>{h(),e(o)};a.addEventListener("load",r),a.addEventListener("error",s)}load(a,m,e,h){if(/^node\|/.test(m)){let r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=m.split("|"),u=null;try{u=s(o[1])}catch(S){h(S);return}a.enqueueDefineAnonymousModule([],()=>u),e()}else{let r=document.createElement("script");r.setAttribute("async","async"),r.setAttribute("type","text/javascript"),this.attachListeners(r,e,h);const{trustedTypesPolicy:s}=a.getConfig().getOptionsLiteral();s&&(m=s.createScriptURL(m)),r.setAttribute("src",m);const{cspNonce:o}=a.getConfig().getOptionsLiteral();o&&r.setAttribute("nonce",o),document.getElementsByTagName("head")[0].appendChild(r)}}}function x(c){const{trustedTypesPolicy:a}=c.getConfig().getOptionsLiteral();try{return(a?self.eval(a.createScript("","true")):new Function("true")).call(self),!0}catch{return!1}}class A{constructor(){this._cachedCanUseEval=null}_canUseEval(a){return this._cachedCanUseEval===null&&(this._cachedCanUseEval=x(a)),this._cachedCanUseEval}load(a,m,e,h){if(/^node\|/.test(m)){const r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=m.split("|");let u=null;try{u=s(o[1])}catch(S){h(S);return}a.enqueueDefineAnonymousModule([],function(){return u}),e()}else{const{trustedTypesPolicy:r}=a.getConfig().getOptionsLiteral();if(!(/^((http:)|(https:)|(file:))/.test(m)&&m.substring(0,self.origin.length)!==self.origin)&&this._canUseEval(a)){fetch(m).then(o=>{if(o.status!==200)throw new Error(o.statusText);return o.text()}).then(o=>{o=`${o} -//# sourceURL=${m}`,(r?self.eval(r.createScript("",o)):new Function(o)).call(self),e()}).then(void 0,h);return}try{r&&(m=r.createScriptURL(m)),importScripts(m),e()}catch(o){h(o)}}}}class d{constructor(a){this._env=a,this._didInitialize=!1,this._didPatchNodeRequire=!1}_init(a){this._didInitialize||(this._didInitialize=!0,this._fs=a("fs"),this._vm=a("vm"),this._path=a("path"),this._crypto=a("crypto"))}_initNodeRequire(a,m){const{nodeCachedData:e}=m.getConfig().getOptionsLiteral();if(!e||this._didPatchNodeRequire)return;this._didPatchNodeRequire=!0;const h=this,r=a("module");function s(o){const u=o.constructor;let S=function(N){try{return o.require(N)}finally{}};return S.resolve=function(N,P){return u._resolveFilename(N,o,!1,P)},S.resolve.paths=function(N){return u._resolveLookupPaths(N,o)},S.main=process.mainModule,S.extensions=u._extensions,S.cache=u._cache,S}r.prototype._compile=function(o,u){const S=r.wrap(o.replace(/^#!.*/,"")),L=m.getRecorder(),N=h._getCachedDataPath(e,u),P={filename:u};let E;try{const y=h._fs.readFileSync(N);E=y.slice(0,16),P.cachedData=y.slice(16),L.record(60,N)}catch{L.record(61,N)}const v=new h._vm.Script(S,P),l=v.runInThisContext(P),b=h._path.dirname(u),g=s(this),w=[this.exports,g,this,u,b,process,Me,Buffer],M=l.apply(this.exports,w);return h._handleCachedData(v,S,N,!P.cachedData,m),h._verifyCachedData(v,S,N,E,m),M}}load(a,m,e,h){const r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=r.nodeInstrumenter||function(S){return S};this._init(s),this._initNodeRequire(s,a);let u=a.getRecorder();if(/^node\|/.test(m)){let S=m.split("|"),L=null;try{L=s(S[1])}catch(N){h(N);return}a.enqueueDefineAnonymousModule([],()=>L),e()}else{m=W.Utilities.fileUriToFilePath(this._env.isWindows,m);const S=this._path.normalize(m),L=this._getElectronRendererScriptPathOrUri(S),N=!!r.nodeCachedData,P=N?this._getCachedDataPath(r.nodeCachedData,m):void 0;this._readSourceAndCachedData(S,P,u,(E,v,l,b)=>{if(E){h(E);return}let g;v.charCodeAt(0)===d._BOM?g=d._PREFIX+v.substring(1)+d._SUFFIX:g=d._PREFIX+v+d._SUFFIX,g=o(g,S);const w={filename:L,cachedData:l},M=this._createAndEvalScript(a,g,w,e,h);this._handleCachedData(M,g,P,N&&!l,a),this._verifyCachedData(M,g,P,b,a)})}}_createAndEvalScript(a,m,e,h,r){const s=a.getRecorder();s.record(31,e.filename);const o=new this._vm.Script(m,e),u=o.runInThisContext(e),S=a.getGlobalAMDDefineFunc();let L=!1;const N=function(){return L=!0,S.apply(null,arguments)};return N.amd=S.amd,u.call(W.global,a.getGlobalAMDRequireFunc(),N,e.filename,this._path.dirname(e.filename)),s.record(32,e.filename),L?h():r(new Error(`Didn't receive define call in ${e.filename}!`)),o}_getElectronRendererScriptPathOrUri(a){if(!this._env.isElectronRenderer)return a;let m=a.match(/^([a-z])\:(.*)/i);return m?`file:///${(m[1].toUpperCase()+":"+m[2]).replace(/\\/g,"/")}`:`file://${a}`}_getCachedDataPath(a,m){const e=this._crypto.createHash("md5").update(m,"utf8").update(a.seed,"utf8").update(process.arch,"").digest("hex"),h=this._path.basename(m).replace(/\.js$/,"");return this._path.join(a.path,`${h}-${e}.code`)}_handleCachedData(a,m,e,h,r){a.cachedDataRejected?this._fs.unlink(e,s=>{r.getRecorder().record(62,e),this._createAndWriteCachedData(a,m,e,r),s&&r.getConfig().onError(s)}):h&&this._createAndWriteCachedData(a,m,e,r)}_createAndWriteCachedData(a,m,e,h){let r=Math.ceil(h.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,o=0,u;const S=()=>{setTimeout(()=>{u||(u=this._crypto.createHash("md5").update(m,"utf8").digest());const L=a.createCachedData();if(!(L.length===0||L.length===s||o>=5)){if(L.length{N&&h.getConfig().onError(N),h.getRecorder().record(63,e),S()})}},r*Math.pow(4,o++))};S()}_readSourceAndCachedData(a,m,e,h){if(!m)this._fs.readFile(a,{encoding:"utf8"},h);else{let r,s,o,u=2;const S=L=>{L?h(L):--u===0&&h(void 0,r,s,o)};this._fs.readFile(a,{encoding:"utf8"},(L,N)=>{r=N,S(L)}),this._fs.readFile(m,(L,N)=>{!L&&N&&N.length>0?(o=N.slice(0,16),s=N.slice(16),e.record(60,m)):e.record(61,m),S()})}}_verifyCachedData(a,m,e,h,r){h&&(a.cachedDataRejected||setTimeout(()=>{const s=this._crypto.createHash("md5").update(m,"utf8").digest();h.equals(s)||(r.getConfig().onError(new Error(`FAILED TO VERIFY CACHED DATA, deleting stale '${e}' now, but a RESTART IS REQUIRED`)),this._fs.unlink(e,o=>{o&&r.getConfig().onError(o)}))},Math.ceil(5e3*(1+Math.random()))))}}d._BOM=65279,d._PREFIX="(function (require, define, __filename, __dirname) { ",d._SUFFIX=` -});`;function f(c,a){if(a.__$__isRecorded)return a;const m=function(h){c.record(33,h);try{return a(h)}finally{c.record(34,h)}};return m.__$__isRecorded=!0,m}W.ensureRecordedNodeRequire=f;function p(c){return new n(c)}W.createScriptLoader=p})(ie||(ie={}));var ie;(function(W){class n{constructor(c){let a=c.lastIndexOf("/");a!==-1?this.fromModulePath=c.substr(0,a+1):this.fromModulePath=""}static _normalizeModuleId(c){let a=c,m;for(m=/\/\.\//;m.test(a);)a=a.replace(m,"/");for(a=a.replace(/^\.\//g,""),m=/\/(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//;m.test(a);)a=a.replace(m,"/");return a=a.replace(/^(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//,""),a}resolveModule(c){let a=c;return W.Utilities.isAbsolutePath(a)||(W.Utilities.startsWith(a,"./")||W.Utilities.startsWith(a,"../"))&&(a=n._normalizeModuleId(this.fromModulePath+a)),a}}n.ROOT=new n(""),W.ModuleIdResolver=n;class i{constructor(c,a,m,e,h,r){this.id=c,this.strId=a,this.dependencies=m,this._callback=e,this._errorback=h,this.moduleIdResolver=r,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}static _safeInvokeFunction(c,a){try{return{returnedValue:c.apply(W.global,a),producedError:null}}catch(m){return{returnedValue:null,producedError:m}}}static _invokeFactory(c,a,m,e){return c.shouldInvokeFactory(a)?c.shouldCatchError()?this._safeInvokeFunction(m,e):{returnedValue:m.apply(W.global,e),producedError:null}:{returnedValue:null,producedError:null}}complete(c,a,m,e){this._isComplete=!0;let h=null;if(this._callback)if(typeof this._callback=="function"){c.record(21,this.strId);let r=i._invokeFactory(a,this.strId,this._callback,m);h=r.producedError,c.record(22,this.strId),!h&&typeof r.returnedValue<"u"&&(!this.exportsPassedIn||W.Utilities.isEmpty(this.exports))&&(this.exports=r.returnedValue)}else this.exports=this._callback;if(h){let r=W.ensureError(h);r.phase="factory",r.moduleId=this.strId,r.neededBy=e(this.id),this.error=r,a.onError(r)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null}onDependencyError(c){return this._isComplete=!0,this.error=c,this._errorback?(this._errorback(c),!0):!1}isComplete(){return this._isComplete}}W.Module=i;class x{constructor(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId("exports"),this.getModuleId("module"),this.getModuleId("require")}getMaxModuleId(){return this._nextId}getModuleId(c){let a=this._strModuleIdToIntModuleId.get(c);return typeof a>"u"&&(a=this._nextId++,this._strModuleIdToIntModuleId.set(c,a),this._intModuleIdToStrModuleId[a]=c),a}getStrModuleId(c){return this._intModuleIdToStrModuleId[c]}}class A{constructor(c){this.id=c}}A.EXPORTS=new A(0),A.MODULE=new A(1),A.REQUIRE=new A(2),W.RegularDependency=A;class d{constructor(c,a,m){this.id=c,this.pluginId=a,this.pluginParam=m}}W.PluginDependency=d;class f{constructor(c,a,m,e,h=0){this._env=c,this._scriptLoader=a,this._loaderAvailableTimestamp=h,this._defineFunc=m,this._requireFunc=e,this._moduleIdProvider=new x,this._config=new W.Configuration(this._env),this._hasDependencyCycle=!1,this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[],this._requireFunc.moduleManager=this}reset(){return new f(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)}getGlobalAMDDefineFunc(){return this._defineFunc}getGlobalAMDRequireFunc(){return this._requireFunc}static _findRelevantLocationInStack(c,a){let m=r=>r.replace(/\\/g,"/"),e=m(c),h=a.split(/\n/);for(let r=0;rthis._moduleIdProvider.getStrModuleId(u.id))),this._resolve(o)}_normalizeDependency(c,a){if(c==="exports")return A.EXPORTS;if(c==="module")return A.MODULE;if(c==="require")return A.REQUIRE;let m=c.indexOf("!");if(m>=0){let e=a.resolveModule(c.substr(0,m)),h=a.resolveModule(c.substr(m+1)),r=this._moduleIdProvider.getModuleId(e+"!"+h),s=this._moduleIdProvider.getModuleId(e);return new d(r,s,h)}return new A(this._moduleIdProvider.getModuleId(a.resolveModule(c)))}_normalizeDependencies(c,a){let m=[],e=0;for(let h=0,r=c.length;hthis._moduleIdProvider.getStrModuleId(r));const h=W.ensureError(a);return h.phase="loading",h.moduleId=m,h.neededBy=e,h}_onLoadError(c,a){const m=this._createLoadError(c,a);this._modules2[c]||(this._modules2[c]=new i(c,this._moduleIdProvider.getStrModuleId(c),[],()=>{},null,null));let e=[];for(let s=0,o=this._moduleIdProvider.getMaxModuleId();s0;){let s=r.shift(),o=this._modules2[s];o&&(h=o.onDependencyError(m)||h);let u=this._inverseDependencies2[s];if(u)for(let S=0,L=u.length;S0;){let s=h.shift().dependencies;if(s)for(let o=0,u=s.length;othis._relativeRequire(c,m,e,h);return a.toUrl=m=>this._config.requireToUrl(c.resolveModule(m)),a.getStats=()=>this.getLoaderEvents(),a.hasDependencyCycle=()=>this._hasDependencyCycle,a.config=(m,e=!1)=>{this.configure(m,e)},a.__$__nodeRequire=W.global.nodeRequire,a}_loadModule(c){if(this._modules2[c]||this._knownModules2[c])return;this._knownModules2[c]=!0;let a=this._moduleIdProvider.getStrModuleId(c),m=this._config.moduleIdToPaths(a),e=/^@[^\/]+\/[^\/]+$/;this._env.isNode&&(a.indexOf("/")===-1||e.test(a))&&m.push("node|"+a);let h=-1,r=s=>{if(h++,h>=m.length)this._onLoadError(c,s);else{let o=m[h],u=this.getRecorder();if(this._config.isBuild()&&o==="empty:"){this._buildInfoPath[c]=o,this.defineModule(this._moduleIdProvider.getStrModuleId(c),[],null,null,null),this._onLoad(c);return}u.record(10,o),this._scriptLoader.load(this,o,()=>{this._config.isBuild()&&(this._buildInfoPath[c]=o),u.record(11,o),this._onLoad(c)},S=>{u.record(12,o),r(S)})}};r(null)}_loadPluginDependency(c,a){if(this._modules2[a.id]||this._knownModules2[a.id])return;this._knownModules2[a.id]=!0;let m=e=>{this.defineModule(this._moduleIdProvider.getStrModuleId(a.id),[],e,null,null)};m.error=e=>{this._config.onError(this._createLoadError(a.id,e))},c.load(a.pluginParam,this._createRequire(n.ROOT),m,this._config.getOptionsLiteral())}_resolve(c){let a=c.dependencies;if(a)for(let m=0,e=a.length;mthis._moduleIdProvider.getStrModuleId(o)).join(` => -`)),c.unresolvedDependenciesCount--;continue}if(this._inverseDependencies2[h.id]=this._inverseDependencies2[h.id]||[],this._inverseDependencies2[h.id].push(c.id),h instanceof d){let s=this._modules2[h.pluginId];if(s&&s.isComplete()){this._loadPluginDependency(s.exports,h);continue}let o=this._inversePluginDependencies2.get(h.pluginId);o||(o=[],this._inversePluginDependencies2.set(h.pluginId,o)),o.push(h),this._loadModule(h.pluginId);continue}this._loadModule(h.id)}c.unresolvedDependenciesCount===0&&this._onModuleComplete(c)}_onModuleComplete(c){let a=this.getRecorder();if(c.isComplete())return;let m=c.dependencies,e=[];if(m)for(let o=0,u=m.length;othis._config.getConfigForModule(c.strId)};continue}if(S===A.REQUIRE){e[o]=this._createRequire(c.moduleIdResolver);continue}let L=this._modules2[S.id];if(L){e[o]=L.exports;continue}e[o]=null}const h=o=>(this._inverseDependencies2[o]||[]).map(u=>this._moduleIdProvider.getStrModuleId(u));c.complete(a,this._config,e,h);let r=this._inverseDependencies2[c.id];if(this._inverseDependencies2[c.id]=null,r)for(let o=0,u=r.length;o"u"&&f())})(ie||(ie={})),function(){const W=globalThis.MonacoEnvironment,n=W&&W.baseUrl?W.baseUrl:"../../../";function i(e,h){if(W?.createTrustedTypesPolicy)try{return W.createTrustedTypesPolicy(e,h)}catch(r){console.warn(r);return}try{return self.trustedTypes?.createPolicy(e,h)}catch(r){console.warn(r);return}}const x=i("amdLoader",{createScriptURL:e=>e,createScript:(e,...h)=>{const r=h.slice(0,-1).join(","),s=h.pop().toString();return`(function anonymous(${r}) { ${s} -})`}});function A(){try{return(x?globalThis.eval(x.createScript("","true")):new Function("true")).call(globalThis),!0}catch{return!1}}function d(){return new Promise((e,h)=>{if(typeof globalThis.define=="function"&&globalThis.define.amd)return e();const r=n+"vs/loader.js";if(!(/^((http:)|(https:)|(file:))/.test(r)&&r.substring(0,globalThis.origin.length)!==globalThis.origin)&&A()){fetch(r).then(o=>{if(o.status!==200)throw new Error(o.statusText);return o.text()}).then(o=>{o=`${o} -//# sourceURL=${r}`,(x?globalThis.eval(x.createScript("",o)):new Function(o)).call(globalThis),e()}).then(void 0,h);return}x?importScripts(x.createScriptURL(r)):importScripts(r),e()})}function f(){require.config({baseUrl:n,catchError:!0,trustedTypesPolicy:x,amdModulesPattern:/^vs\//})}function p(e){return d().then(()=>(f(),new Promise((h,r)=>{require([e],h,r)})))}function c(e){setTimeout(function(){const h=e.create((r,s)=>{globalThis.postMessage(r,s)});for(self.onmessage=r=>h.onmessage(r.data,r.ports);m.length>0;)self.onmessage(m.shift())},0)}typeof globalThis.define=="function"&&globalThis.define.amd&&f();let a=!0;const m=[];globalThis.onmessage=e=>{if(!a){m.push(e);return}a=!1,p(e.data).then(h=>{c(h)},h=>{console.error(h)})}}(),X(J[7],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Permutation=n.CallbackIterable=n.ArrayQueue=n.booleanComparator=n.numberComparator=n.CompareResult=void 0,n.tail=i,n.tail2=x,n.equals=A,n.removeFastWithoutKeepingOrder=d,n.binarySearch=f,n.binarySearch2=p,n.quickSelect=c,n.groupBy=a,n.groupAdjacentBy=m,n.forEachAdjacent=e,n.forEachWithNeighbors=h,n.coalesce=r,n.coalesceInPlace=s,n.isFalsyOrEmpty=o,n.isNonEmptyArray=u,n.distinct=S,n.firstOrDefault=L,n.range=N,n.arrayInsert=P,n.pushToStart=E,n.pushToEnd=v,n.pushMany=l,n.asArray=b,n.insertInto=g,n.splice=w,n.compareBy=_,n.tieBreakComparators=C,n.reverseOrder=T;function i(F,q=0){return F[F.length-(1+q)]}function x(F){if(F.length===0)throw new Error("Invalid tail call");return[F.slice(0,F.length-1),F[F.length-1]]}function A(F,q,B=(G,$)=>G===$){if(F===q)return!0;if(!F||!q||F.length!==q.length)return!1;for(let G=0,$=F.length;G<$;G++)if(!B(F[G],q[G]))return!1;return!0}function d(F,q){const B=F.length-1;qB(F[G],q))}function p(F,q){let B=0,G=F-1;for(;B<=G;){const $=(B+G)/2|0,U=q($);if(U<0)B=$+1;else if(U>0)G=$-1;else return $}return-(B+1)}function c(F,q,B){if(F=F|0,F>=q.length)throw new TypeError("invalid index");const G=q[Math.floor(q.length*Math.random())],$=[],U=[],ee=[];for(const re of q){const ue=B(re,G);ue<0?$.push(re):ue>0?U.push(re):ee.push(re)}return F<$.length?c(F,$,B):F<$.length+ee.length?ee[0]:c(F-($.length+ee.length),U,B)}function a(F,q){const B=[];let G;for(const $ of F.slice(0).sort(q))!G||q(G[0],$)!==0?(G=[$],B.push(G)):G.push($);return B}function*m(F,q){let B,G;for(const $ of F)G!==void 0&&q(G,$)?B.push($):(B&&(yield B),B=[$]),G=$;B&&(yield B)}function e(F,q){for(let B=0;B<=F.length;B++)q(B===0?void 0:F[B-1],B===F.length?void 0:F[B])}function h(F,q){for(let B=0;B!!q)}function s(F){let q=0;for(let B=0;B0}function S(F,q=B=>B){const B=new Set;return F.filter(G=>{const $=q(G);return B.has($)?!1:(B.add($),!0)})}function L(F,q){return F.length>0?F[0]:q}function N(F,q){let B=typeof q=="number"?F:0;typeof q=="number"?B=F:(B=0,q=F);const G=[];if(B<=q)for(let $=B;$q;$--)G.push($);return G}function P(F,q,B){const G=F.slice(0,q),$=F.slice(q);return G.concat(B,$)}function E(F,q){const B=F.indexOf(q);B>-1&&(F.splice(B,1),F.unshift(q))}function v(F,q){const B=F.indexOf(q);B>-1&&(F.splice(B,1),F.push(q))}function l(F,q){for(const B of q)F.push(B)}function b(F){return Array.isArray(F)?F:[F]}function g(F,q,B){const G=M(F,q),$=F.length,U=B.length;F.length=$+U;for(let ee=$-1;ee>=G;ee--)F[ee+U]=F[ee];for(let ee=0;ee0}F.isGreaterThan=G;function $(U){return U===0}F.isNeitherLessOrGreaterThan=$,F.greaterThan=1,F.lessThan=-1,F.neitherLessOrGreaterThan=0})(y||(n.CompareResult=y={}));function _(F,q){return(B,G)=>q(F(B),F(G))}function C(...F){return(q,B)=>{for(const G of F){const $=G(q,B);if(!y.isNeitherLessOrGreaterThan($))return $}return y.neitherLessOrGreaterThan}}const R=(F,q)=>F-q;n.numberComparator=R;const D=(F,q)=>(0,n.numberComparator)(F?1:0,q?1:0);n.booleanComparator=D;function T(F){return(q,B)=>-F(q,B)}class O{constructor(q){this.items=q,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(q){let B=this.firstIdx;for(;B=0&&q(this.items[B]);)B--;const G=B===this.lastIdx?null:this.items.slice(B+1,this.lastIdx+1);return this.lastIdx=B,G}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const q=this.items[this.firstIdx];return this.firstIdx++,q}takeCount(q){const B=this.items.slice(this.firstIdx,this.firstIdx+q);return this.firstIdx+=q,B}}n.ArrayQueue=O;class z{static{this.empty=new z(q=>{})}constructor(q){this.iterate=q}toArray(){const q=[];return this.iterate(B=>(q.push(B),!0)),q}filter(q){return new z(B=>this.iterate(G=>q(G)?B(G):!0))}map(q){return new z(B=>this.iterate(G=>B(q(G))))}findLast(q){let B;return this.iterate(G=>(q(G)&&(B=G),!0)),B}findLastMaxBy(q){let B,G=!0;return this.iterate($=>((G||y.isGreaterThan(q($,B)))&&(G=!1,B=$),!0)),B}}n.CallbackIterable=z;class j{constructor(q){this._indexMap=q}static createSortPermutation(q,B){const G=Array.from(q.keys()).sort(($,U)=>B(q[$],q[U]));return new j(G)}apply(q){return q.map((B,G)=>q[this._indexMap[G]])}inverse(){const q=this._indexMap.slice();for(let B=0;B=0;S--){const L=s[S];if(o(L))return S}return-1}function A(s,o){const u=d(s,o);return u===-1?void 0:s[u]}function d(s,o,u=0,S=s.length){let L=u,N=S;for(;L0&&(u=L)}return u}function m(s,o){if(s.length===0)return;let u=s[0];for(let S=1;S=0&&(u=L)}return u}function e(s,o){return a(s,(u,S)=>-o(u,S))}function h(s,o){if(s.length===0)return-1;let u=0;for(let S=1;S0&&(u=S)}return u}function r(s,o){for(const u of s){const S=o(u);if(S!==void 0)return S}}}),X(J[39],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CachedFunction=n.LRUCachedFunction=void 0,n.identity=i;function i(d){return d}class x{constructor(f,p){this.lastCache=void 0,this.lastArgKey=void 0,typeof f=="function"?(this._fn=f,this._computeKey=i):(this._fn=p,this._computeKey=f.getCacheKey)}get(f){const p=this._computeKey(f);return this.lastArgKey!==p&&(this.lastArgKey=p,this.lastCache=this._fn(f)),this.lastCache}}n.LRUCachedFunction=x;class A{get cachedValues(){return this._map}constructor(f,p){this._map=new Map,this._map2=new Map,typeof f=="function"?(this._fn=f,this._computeKey=i):(this._fn=p,this._computeKey=f.getCacheKey)}get(f){const p=this._computeKey(f);if(this._map2.has(p))return this._map2.get(p);const c=this._fn(f);return this._map.set(f,c),this._map2.set(p,c),c}}n.CachedFunction=A}),X(J[40],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Color=n.HSVA=n.HSLA=n.RGBA=void 0;function i(p,c){const a=Math.pow(10,c);return Math.round(p*a)/a}class x{constructor(c,a,m,e=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,c))|0,this.g=Math.min(255,Math.max(0,a))|0,this.b=Math.min(255,Math.max(0,m))|0,this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.r===a.r&&c.g===a.g&&c.b===a.b&&c.a===a.a}}n.RGBA=x;class A{constructor(c,a,m,e){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=i(Math.max(Math.min(1,a),0),3),this.l=i(Math.max(Math.min(1,m),0),3),this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.h===a.h&&c.s===a.s&&c.l===a.l&&c.a===a.a}static fromRGBA(c){const a=c.r/255,m=c.g/255,e=c.b/255,h=c.a,r=Math.max(a,m,e),s=Math.min(a,m,e);let o=0,u=0;const S=(s+r)/2,L=r-s;if(L>0){switch(u=Math.min(S<=.5?L/(2*S):L/(2-2*S),1),r){case a:o=(m-e)/L+(m1&&(m-=1),m<1/6?c+(a-c)*6*m:m<1/2?a:m<2/3?c+(a-c)*(2/3-m)*6:c}static toRGBA(c){const a=c.h/360,{s:m,l:e,a:h}=c;let r,s,o;if(m===0)r=s=o=e;else{const u=e<.5?e*(1+m):e+m-e*m,S=2*e-u;r=A._hue2rgb(S,u,a+1/3),s=A._hue2rgb(S,u,a),o=A._hue2rgb(S,u,a-1/3)}return new x(Math.round(r*255),Math.round(s*255),Math.round(o*255),h)}}n.HSLA=A;class d{constructor(c,a,m,e){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=i(Math.max(Math.min(1,a),0),3),this.v=i(Math.max(Math.min(1,m),0),3),this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.h===a.h&&c.s===a.s&&c.v===a.v&&c.a===a.a}static fromRGBA(c){const a=c.r/255,m=c.g/255,e=c.b/255,h=Math.max(a,m,e),r=Math.min(a,m,e),s=h-r,o=h===0?0:s/h;let u;return s===0?u=0:h===a?u=((m-e)/s%6+6)%6:h===m?u=(e-a)/s+2:u=(a-m)/s+4,new d(Math.round(u*60),o,h,c.a)}static toRGBA(c){const{h:a,s:m,v:e,a:h}=c,r=e*m,s=r*(1-Math.abs(a/60%2-1)),o=e-r;let[u,S,L]=[0,0,0];return a<60?(u=r,S=s):a<120?(u=s,S=r):a<180?(S=r,L=s):a<240?(S=s,L=r):a<300?(u=s,L=r):a<=360&&(u=r,L=s),u=Math.round((u+o)*255),S=Math.round((S+o)*255),L=Math.round((L+o)*255),new x(u,S,L,h)}}n.HSVA=d;class f{static fromHex(c){return f.Format.CSS.parseHex(c)||f.red}static equals(c,a){return!c&&!a?!0:!c||!a?!1:c.equals(a)}get hsla(){return this._hsla?this._hsla:A.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:d.fromRGBA(this.rgba)}constructor(c){if(c)if(c instanceof x)this.rgba=c;else if(c instanceof A)this._hsla=c,this.rgba=A.toRGBA(c);else if(c instanceof d)this._hsva=c,this.rgba=d.toRGBA(c);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(c){return!!c&&x.equals(this.rgba,c.rgba)&&A.equals(this.hsla,c.hsla)&&d.equals(this.hsva,c.hsva)}getRelativeLuminance(){const c=f._relativeLuminanceForComponent(this.rgba.r),a=f._relativeLuminanceForComponent(this.rgba.g),m=f._relativeLuminanceForComponent(this.rgba.b),e=.2126*c+.7152*a+.0722*m;return i(e,4)}static _relativeLuminanceForComponent(c){const a=c/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(c){const a=this.getRelativeLuminance(),m=c.getRelativeLuminance();return a>m}isDarkerThan(c){const a=this.getRelativeLuminance(),m=c.getRelativeLuminance();return a{throw u.stack?r.isErrorNoTelemetry(u)?new r(u.message+` - -`+u.stack):new Error(u.message+` - -`+u.stack):u},0)}}emit(u){this.listeners.forEach(S=>{S(u)})}onUnexpectedError(u){this.unexpectedErrorHandler(u),this.emit(u)}onUnexpectedExternalError(u){this.unexpectedErrorHandler(u)}}n.ErrorHandler=i,n.errorHandler=new i;function x(o){p(o)||n.errorHandler.onUnexpectedError(o)}function A(o){p(o)||n.errorHandler.onUnexpectedExternalError(o)}function d(o){if(o instanceof Error){const{name:u,message:S}=o,L=o.stacktrace||o.stack;return{$isError:!0,name:u,message:S,stack:L,noTelemetry:r.isErrorNoTelemetry(o)}}return o}const f="Canceled";function p(o){return o instanceof c?!0:o instanceof Error&&o.name===f&&o.message===f}class c extends Error{constructor(){super(f),this.name=this.message}}n.CancellationError=c;function a(){const o=new Error(f);return o.name=o.message,o}function m(o){return o?new Error(`Illegal argument: ${o}`):new Error("Illegal argument")}function e(o){return o?new Error(`Illegal state: ${o}`):new Error("Illegal state")}class h extends Error{constructor(u){super("NotSupported"),u&&(this.message=u)}}n.NotSupportedError=h;class r extends Error{constructor(u){super(u),this.name="CodeExpectedError"}static fromError(u){if(u instanceof r)return u;const S=new r;return S.message=u.message,S.stack=u.stack,S}static isErrorNoTelemetry(u){return u.name==="CodeExpectedError"}}n.ErrorNoTelemetry=r;class s extends Error{constructor(u){super(u||"An unexpected bug occurred."),Object.setPrototypeOf(this,s.prototype)}}n.BugIndicatingError=s}),X(J[12],Z([0,1,3]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ok=x,n.assertNever=A,n.softAssert=d,n.assertFn=f,n.checkAdjacentItems=p;function x(c,a){if(!c)throw new Error(a?`Assertion failed (${a})`:"Assertion Failed")}function A(c,a="Unreachable"){throw new Error(a)}function d(c){c||(0,i.onUnexpectedError)(new i.BugIndicatingError("Soft Assertion Failed"))}function f(c){if(!c()){debugger;c(),(0,i.onUnexpectedError)(new i.BugIndicatingError("Assertion Failed"))}}function p(c,a){let m=0;for(;m=0;b--)yield l[b]}x.reverse=m;function e(l){return!l||l[Symbol.iterator]().next().done===!0}x.isEmpty=e;function h(l){return l[Symbol.iterator]().next().value}x.first=h;function r(l,b){let g=0;for(const w of l)if(b(w,g++))return!0;return!1}x.some=r;function s(l,b){for(const g of l)if(b(g))return g}x.find=s;function*o(l,b){for(const g of l)b(g)&&(yield g)}x.filter=o;function*u(l,b){let g=0;for(const w of l)yield b(w,g++)}x.map=u;function*S(l,b){let g=0;for(const w of l)yield*b(w,g++)}x.flatMap=S;function*L(...l){for(const b of l)yield*b}x.concat=L;function N(l,b,g){let w=g;for(const M of l)w=b(w,M);return w}x.reduce=N;function*P(l,b,g=l.length){for(b<0&&(b+=l.length),g<0?g+=l.length:g>l.length&&(g=l.length);b=98&&L<=113)return null;switch(L){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return x.keyCodeToStr(L)}e.toElectronAccelerator=S})(a||(n.KeyCodeUtils=a={}));function m(e,h){const r=(h&65535)<<16>>>0;return(e|r)>>>0}}),X(J[43],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Lazy=void 0;class i{constructor(A){this.executor=A,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(A){this._error=A}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}n.Lazy=i}),X(J[8],Z([0,1,18,19]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DisposableMap=n.ImmortalReference=n.RefCountedDisposable=n.MutableDisposable=n.Disposable=n.DisposableStore=void 0,n.setDisposableTracker=f,n.trackDisposable=p,n.markAsDisposed=c,n.markAsSingleton=e,n.isDisposable=h,n.dispose=r,n.combinedDisposable=s,n.toDisposable=o;const A=!1;let d=null;function f(v){d=v}if(A){const v="__is_disposable_tracked__";f(new class{trackDisposable(l){const b=new Error("Potentially leaked disposable").stack;setTimeout(()=>{l[v]||console.log(b)},3e3)}setParent(l,b){if(l&&l!==S.None)try{l[v]=!0}catch{}}markAsDisposed(l){if(l&&l!==S.None)try{l[v]=!0}catch{}}markAsSingleton(l){}})}function p(v){return d?.trackDisposable(v),v}function c(v){d?.markAsDisposed(v)}function a(v,l){d?.setParent(v,l)}function m(v,l){if(d)for(const b of v)d.setParent(b,l)}function e(v){return d?.markAsSingleton(v),v}function h(v){return typeof v=="object"&&v!==null&&typeof v.dispose=="function"&&v.dispose.length===0}function r(v){if(x.Iterable.is(v)){const l=[];for(const b of v)if(b)try{b.dispose()}catch(g){l.push(g)}if(l.length===1)throw l[0];if(l.length>1)throw new AggregateError(l,"Encountered errors while disposing of store");return Array.isArray(v)?[]:v}else if(v)return v.dispose(),v}function s(...v){const l=o(()=>r(v));return m(v,l),l}function o(v){const l=p({dispose:(0,i.createSingleCallFunction)(()=>{c(l),v()})});return l}class u{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,p(this)}dispose(){this._isDisposed||(c(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{r(this._toDispose)}finally{this._toDispose.clear()}}add(l){if(!l)return l;if(l===this)throw new Error("Cannot register a disposable on itself!");return a(l,this),this._isDisposed?u.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(l),l}deleteAndLeak(l){l&&this._toDispose.has(l)&&(this._toDispose.delete(l),a(l,null))}}n.DisposableStore=u;class S{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new u,p(this),a(this._store,this)}dispose(){c(this),this._store.dispose()}_register(l){if(l===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(l)}}n.Disposable=S;class L{constructor(){this._isDisposed=!1,p(this)}get value(){return this._isDisposed?void 0:this._value}set value(l){this._isDisposed||l===this._value||(this._value?.dispose(),l&&a(l,this),this._value=l)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,c(this),this._value?.dispose(),this._value=void 0}}n.MutableDisposable=L;class N{constructor(l){this._disposable=l,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}n.RefCountedDisposable=N;class P{constructor(l){this.object=l}dispose(){}}n.ImmortalReference=P;class E{constructor(){this._store=new Map,this._isDisposed=!1,p(this)}dispose(){c(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{r(this._store.values())}finally{this._store.clear()}}get(l){return this._store.get(l)}set(l,b,g=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),g||this._store.get(l)?.dispose(),this._store.set(l,b)}deleteAndDispose(l){this._store.get(l)?.dispose(),this._store.delete(l)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}n.DisposableMap=E}),X(J[20],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinkedList=void 0;class i{static{this.Undefined=new i(void 0)}constructor(d){this.element=d,this.next=i.Undefined,this.prev=i.Undefined}}class x{constructor(){this._first=i.Undefined,this._last=i.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===i.Undefined}clear(){let d=this._first;for(;d!==i.Undefined;){const f=d.next;d.prev=i.Undefined,d.next=i.Undefined,d=f}this._first=i.Undefined,this._last=i.Undefined,this._size=0}unshift(d){return this._insert(d,!1)}push(d){return this._insert(d,!0)}_insert(d,f){const p=new i(d);if(this._first===i.Undefined)this._first=p,this._last=p;else if(f){const a=this._last;this._last=p,p.prev=a,a.next=p}else{const a=this._first;this._first=p,p.next=a,a.prev=p}this._size+=1;let c=!1;return()=>{c||(c=!0,this._remove(p))}}shift(){if(this._first!==i.Undefined){const d=this._first.element;return this._remove(this._first),d}}pop(){if(this._last!==i.Undefined){const d=this._last.element;return this._remove(this._last),d}}_remove(d){if(d.prev!==i.Undefined&&d.next!==i.Undefined){const f=d.prev;f.next=d.next,d.next.prev=f}else d.prev===i.Undefined&&d.next===i.Undefined?(this._first=i.Undefined,this._last=i.Undefined):d.next===i.Undefined?(this._last=this._last.prev,this._last.next=i.Undefined):d.prev===i.Undefined&&(this._first=this._first.next,this._first.prev=i.Undefined);this._size-=1}*[Symbol.iterator](){let d=this._first;for(;d!==i.Undefined;)yield d.element,d=d.next}}n.LinkedList=x}),X(J[21],Z([0,1]),function(W,n){"use strict";var i,x;Object.defineProperty(n,"__esModule",{value:!0}),n.SetMap=n.BidirectionalMap=n.LRUCache=n.LinkedMap=n.ResourceMap=void 0;class A{constructor(r,s){this.uri=r,this.value=s}}function d(h){return Array.isArray(h)}class f{static{this.defaultToKey=r=>r.toString()}constructor(r,s){if(this[i]="ResourceMap",r instanceof f)this.map=new Map(r.map),this.toKey=s??f.defaultToKey;else if(d(r)){this.map=new Map,this.toKey=s??f.defaultToKey;for(const[o,u]of r)this.set(o,u)}else this.map=new Map,this.toKey=r??f.defaultToKey}set(r,s){return this.map.set(this.toKey(r),new A(r,s)),this}get(r){return this.map.get(this.toKey(r))?.value}has(r){return this.map.has(this.toKey(r))}get size(){return this.map.size}clear(){this.map.clear()}delete(r){return this.map.delete(this.toKey(r))}forEach(r,s){typeof s<"u"&&(r=r.bind(s));for(const[o,u]of this.map)r(u.value,u.uri,this)}*values(){for(const r of this.map.values())yield r.value}*keys(){for(const r of this.map.values())yield r.uri}*entries(){for(const r of this.map.values())yield[r.uri,r.value]}*[(i=Symbol.toStringTag,Symbol.iterator)](){for(const[,r]of this.map)yield[r.uri,r.value]}}n.ResourceMap=f;class p{constructor(){this[x]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(r){return this._map.has(r)}get(r,s=0){const o=this._map.get(r);if(o)return s!==0&&this.touch(o,s),o.value}set(r,s,o=0){let u=this._map.get(r);if(u)u.value=s,o!==0&&this.touch(u,o);else{switch(u={key:r,value:s,next:void 0,previous:void 0},o){case 0:this.addItemLast(u);break;case 1:this.addItemFirst(u);break;case 2:this.addItemLast(u);break;default:this.addItemLast(u);break}this._map.set(r,u),this._size++}return this}delete(r){return!!this.remove(r)}remove(r){const s=this._map.get(r);if(s)return this._map.delete(r),this.removeItem(s),this._size--,s.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const r=this._head;return this._map.delete(r.key),this.removeItem(r),this._size--,r.value}forEach(r,s){const o=this._state;let u=this._head;for(;u;){if(s?r.bind(s)(u.value,u.key,this):r(u.value,u.key,this),this._state!==o)throw new Error("LinkedMap got modified during iteration.");u=u.next}}keys(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:o.key,done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}values(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:o.value,done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}entries(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:[o.key,o.value],done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}[(x=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(r){if(r>=this.size)return;if(r===0){this.clear();return}let s=this._head,o=this.size;for(;s&&o>r;)this._map.delete(s.key),s=s.next,o--;this._head=s,this._size=o,s&&(s.previous=void 0),this._state++}trimNew(r){if(r>=this.size)return;if(r===0){this.clear();return}let s=this._tail,o=this.size;for(;s&&o>r;)this._map.delete(s.key),s=s.previous,o--;this._tail=s,this._size=o,s&&(s.next=void 0),this._state++}addItemFirst(r){if(!this._head&&!this._tail)this._tail=r;else if(this._head)r.next=this._head,this._head.previous=r;else throw new Error("Invalid list");this._head=r,this._state++}addItemLast(r){if(!this._head&&!this._tail)this._head=r;else if(this._tail)r.previous=this._tail,this._tail.next=r;else throw new Error("Invalid list");this._tail=r,this._state++}removeItem(r){if(r===this._head&&r===this._tail)this._head=void 0,this._tail=void 0;else if(r===this._head){if(!r.next)throw new Error("Invalid list");r.next.previous=void 0,this._head=r.next}else if(r===this._tail){if(!r.previous)throw new Error("Invalid list");r.previous.next=void 0,this._tail=r.previous}else{const s=r.next,o=r.previous;if(!s||!o)throw new Error("Invalid list");s.previous=o,o.next=s}r.next=void 0,r.previous=void 0,this._state++}touch(r,s){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(s!==1&&s!==2)){if(s===1){if(r===this._head)return;const o=r.next,u=r.previous;r===this._tail?(u.next=void 0,this._tail=u):(o.previous=u,u.next=o),r.previous=void 0,r.next=this._head,this._head.previous=r,this._head=r,this._state++}else if(s===2){if(r===this._tail)return;const o=r.next,u=r.previous;r===this._head?(o.previous=void 0,this._head=o):(o.previous=u,u.next=o),r.next=void 0,r.previous=this._tail,this._tail.next=r,this._tail=r,this._state++}}}toJSON(){const r=[];return this.forEach((s,o)=>{r.push([o,s])}),r}fromJSON(r){this.clear();for(const[s,o]of r)this.set(s,o)}}n.LinkedMap=p;class c extends p{constructor(r,s=1){super(),this._limit=r,this._ratio=Math.min(Math.max(0,s),1)}get limit(){return this._limit}set limit(r){this._limit=r,this.checkTrim()}get(r,s=2){return super.get(r,s)}peek(r){return super.get(r,0)}set(r,s){return super.set(r,s,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class a extends c{constructor(r,s=1){super(r,s)}trim(r){this.trimOld(r)}set(r,s){return super.set(r,s),this.checkTrim(),this}}n.LRUCache=a;class m{constructor(r){if(this._m1=new Map,this._m2=new Map,r)for(const[s,o]of r)this.set(s,o)}clear(){this._m1.clear(),this._m2.clear()}set(r,s){this._m1.set(r,s),this._m2.set(s,r)}get(r){return this._m1.get(r)}getKey(r){return this._m2.get(r)}delete(r){const s=this._m1.get(r);return s===void 0?!1:(this._m1.delete(r),this._m2.delete(s),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}n.BidirectionalMap=m;class e{constructor(){this.map=new Map}add(r,s){let o=this.map.get(r);o||(o=new Set,this.map.set(r,o)),o.add(s)}delete(r,s){const o=this.map.get(r);o&&(o.delete(s),o.size===0&&this.map.delete(r))}forEach(r,s){const o=this.map.get(r);o&&o.forEach(s)}get(r){const s=this.map.get(r);return s||new Set}}n.SetMap=e}),X(J[22],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.StopWatch=void 0;const i=globalThis.performance&&typeof globalThis.performance.now=="function";class x{static create(d){return new x(d)}constructor(d){this._now=i&&d===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}n.StopWatch=x}),X(J[9],Z([0,1,3,18,8,20,22]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Relay=n.EventBufferer=n.EventMultiplexer=n.MicrotaskEmitter=n.DebounceEmitter=n.PauseableEmitter=n.createEventDeliveryQueue=n.Emitter=n.ListenerRefusalError=n.ListenerLeakError=n.EventProfiling=n.Event=void 0;const p=!1,c=!1,a=!1;var m;(function(C){C.None=()=>A.Disposable.None;function R(K){if(a){const{onDidAddListener:Q}=K,k=s.create();let I=0;K.onDidAddListener=()=>{++I===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),k.print()),Q?.()}}}function D(K,Q){return ee(K,()=>{},0,void 0,!0,void 0,Q)}C.defer=D;function T(K){return(Q,k=null,I)=>{let V=!1,H;return H=K(Y=>{if(!V)return H?H.dispose():V=!0,Q.call(k,Y)},null,I),V&&H.dispose(),H}}C.once=T;function O(K,Q){return C.once(C.filter(K,Q))}C.onceIf=O;function z(K,Q,k){return $((I,V=null,H)=>K(Y=>I.call(V,Q(Y)),null,H),k)}C.map=z;function j(K,Q,k){return $((I,V=null,H)=>K(Y=>{Q(Y),I.call(V,Y)},null,H),k)}C.forEach=j;function F(K,Q,k){return $((I,V=null,H)=>K(Y=>Q(Y)&&I.call(V,Y),null,H),k)}C.filter=F;function q(K){return K}C.signal=q;function B(...K){return(Q,k=null,I)=>{const V=(0,A.combinedDisposable)(...K.map(H=>H(Y=>Q.call(k,Y))));return U(V,I)}}C.any=B;function G(K,Q,k,I){let V=k;return z(K,H=>(V=Q(V,H),V),I)}C.reduce=G;function $(K,Q){let k;const I={onWillAddFirstListener(){k=K(V.fire,V)},onDidRemoveLastListener(){k?.dispose()}};Q||R(I);const V=new E(I);return Q?.add(V),V.event}function U(K,Q){return Q instanceof Array?Q.push(K):Q&&Q.add(K),K}function ee(K,Q,k=100,I=!1,V=!1,H,Y){let te,ne,ae,le=0,oe;const se={leakWarningThreshold:H,onWillAddFirstListener(){te=K(he=>{le++,ne=Q(ne,he),I&&!ae&&(ce.fire(ne),ne=void 0),oe=()=>{const be=ne;ne=void 0,ae=void 0,(!I||le>1)&&ce.fire(be),le=0},typeof k=="number"?(clearTimeout(ae),ae=setTimeout(oe,k)):ae===void 0&&(ae=0,queueMicrotask(oe))})},onWillRemoveListener(){V&&le>0&&oe?.()},onDidRemoveLastListener(){oe=void 0,te.dispose()}};Y||R(se);const ce=new E(se);return Y?.add(ce),ce.event}C.debounce=ee;function re(K,Q=0,k){return C.debounce(K,(I,V)=>I?(I.push(V),I):[V],Q,void 0,!0,void 0,k)}C.accumulate=re;function ue(K,Q=(I,V)=>I===V,k){let I=!0,V;return F(K,H=>{const Y=I||!Q(H,V);return I=!1,V=H,Y},k)}C.latch=ue;function de(K,Q,k){return[C.filter(K,Q,k),C.filter(K,I=>!Q(I),k)]}C.split=de;function ge(K,Q=!1,k=[],I){let V=k.slice(),H=K(ne=>{V?V.push(ne):te.fire(ne)});I&&I.add(H);const Y=()=>{V?.forEach(ne=>te.fire(ne)),V=null},te=new E({onWillAddFirstListener(){H||(H=K(ne=>te.fire(ne)),I&&I.add(H))},onDidAddFirstListener(){V&&(Q?setTimeout(Y):Y())},onDidRemoveLastListener(){H&&H.dispose(),H=null}});return I&&I.add(te),te.event}C.buffer=ge;function t(K,Q){return(I,V,H)=>{const Y=Q(new pe);return K(function(te){const ne=Y.evaluate(te);ne!==me&&I.call(V,ne)},void 0,H)}}C.chain=t;const me=Symbol("HaltChainable");class pe{constructor(){this.steps=[]}map(Q){return this.steps.push(Q),this}forEach(Q){return this.steps.push(k=>(Q(k),k)),this}filter(Q){return this.steps.push(k=>Q(k)?k:me),this}reduce(Q,k){let I=k;return this.steps.push(V=>(I=Q(I,V),I)),this}latch(Q=(k,I)=>k===I){let k=!0,I;return this.steps.push(V=>{const H=k||!Q(V,I);return k=!1,I=V,H?V:me}),this}evaluate(Q){for(const k of this.steps)if(Q=k(Q),Q===me)break;return Q}}function Le(K,Q,k=I=>I){const I=(...te)=>Y.fire(k(...te)),V=()=>K.on(Q,I),H=()=>K.removeListener(Q,I),Y=new E({onWillAddFirstListener:V,onDidRemoveLastListener:H});return Y.event}C.fromNodeEventEmitter=Le;function we(K,Q,k=I=>I){const I=(...te)=>Y.fire(k(...te)),V=()=>K.addEventListener(Q,I),H=()=>K.removeEventListener(Q,I),Y=new E({onWillAddFirstListener:V,onDidRemoveLastListener:H});return Y.event}C.fromDOMEventEmitter=we;function Ce(K){return new Promise(Q=>T(K)(Q))}C.toPromise=Ce;function ve(K){const Q=new E;return K.then(k=>{Q.fire(k)},()=>{Q.fire(void 0)}).finally(()=>{Q.dispose()}),Q.event}C.fromPromise=ve;function fe(K,Q){return K(k=>Q.fire(k))}C.forward=fe;function Se(K,Q,k){return Q(k),K(I=>Q(I))}C.runAndSubscribe=Se;class _e{constructor(Q,k){this._observable=Q,this._counter=0,this._hasChanged=!1;const I={onWillAddFirstListener:()=>{Q.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Q.removeObserver(this)}};k||R(I),this.emitter=new E(I),k&&k.add(this.emitter)}beginUpdate(Q){this._counter++}handlePossibleChange(Q){}handleChange(Q,k){this._hasChanged=!0}endUpdate(Q){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ye(K,Q){return new _e(K,Q).emitter.event}C.fromObservable=ye;function Ee(K){return(Q,k,I)=>{let V=0,H=!1;const Y={beginUpdate(){V++},endUpdate(){V--,V===0&&(K.reportChanges(),H&&(H=!1,Q.call(k)))},handlePossibleChange(){},handleChange(){H=!0}};K.addObserver(Y),K.reportChanges();const te={dispose(){K.removeObserver(Y)}};return I instanceof A.DisposableStore?I.add(te):Array.isArray(I)&&I.push(te),te}}C.fromObservableLight=Ee})(m||(n.Event=m={}));class e{static{this.all=new Set}static{this._idPool=0}constructor(R){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${R}_${e._idPool++}`,e.all.add(this)}start(R){this._stopWatch=new f.StopWatch,this.listenerCount=R}stop(){if(this._stopWatch){const R=this._stopWatch.elapsed();this.durations.push(R),this.elapsedOverall+=R,this.invocationCount+=1,this._stopWatch=void 0}}}n.EventProfiling=e;let h=-1;class r{static{this._idPool=1}constructor(R,D,T=(r._idPool++).toString(16).padStart(3,"0")){this._errorHandler=R,this.threshold=D,this.name=T,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(R,D){const T=this.threshold;if(T<=0||D{const z=this._stacks.get(R.value)||0;this._stacks.set(R.value,z-1)}}getMostFrequentStack(){if(!this._stacks)return;let R,D=0;for(const[T,O]of this._stacks)(!R||D{if(C instanceof S)R(C);else for(let D=0;D{C.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(C.join(` -`)),C.length=0)},3e3),P=new FinalizationRegistry(R=>{typeof R=="string"&&C.push(R)})}class E{constructor(R){this._size=0,this._options=R,this._leakageMon=h>0||this._options?.leakWarningThreshold?new r(R?.onListenerError??i.onUnexpectedError,this._options?.leakWarningThreshold??h):void 0,this._perfMon=this._options?._profName?new e(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(c){const R=this._listeners;queueMicrotask(()=>{N(R,D=>D.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(R,D,T)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const q=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(q);const B=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],G=new u(`${q}. HINT: Stack shows most frequent listener (${B[1]}-times)`,B[0]);return(this._options?.onListenerError||i.onUnexpectedError)(G),A.Disposable.None}if(this._disposed)return A.Disposable.None;D&&(R=R.bind(D));const O=new S(R);let z,j;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(O.stack=s.create(),z=this._leakageMon.check(O.stack,this._size+1)),c&&(O.stack=j??s.create()),this._listeners?this._listeners instanceof S?(this._deliveryQueue??=new l,this._listeners=[this._listeners,O]):this._listeners.push(O):(this._options?.onWillAddFirstListener?.(this),this._listeners=O,this._options?.onDidAddFirstListener?.(this)),this._size++;const F=(0,A.toDisposable)(()=>{P?.unregister(F),z?.(),this._removeListener(O)});if(T instanceof A.DisposableStore?T.add(F):Array.isArray(T)&&T.push(F),P){const q=new Error().stack.split(` -`).slice(2,3).join(` -`).trim(),B=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(q);P.register(F,B?.[2]??q,F)}return F},this._event}_removeListener(R){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}const D=this._listeners,T=D.indexOf(R);if(T===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,D[T]=void 0;const O=this._deliveryQueue.current===this;if(this._size*L<=D.length){let z=0;for(let j=0;j0}}n.Emitter=E;const v=()=>new l;n.createEventDeliveryQueue=v;class l{constructor(){this.i=-1,this.end=0}enqueue(R,D,T){this.i=0,this.end=T,this.current=R,this.value=D}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class b extends E{constructor(R){super(R),this._isPaused=0,this._eventQueue=new d.LinkedList,this._mergeFn=R?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const R=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(R))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(R){this._size&&(this._isPaused!==0?this._eventQueue.push(R):super.fire(R))}}n.PauseableEmitter=b;class g extends b{constructor(R){super(R),this._delay=R.delay??100}fire(R){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(R)}}n.DebounceEmitter=g;class w extends E{constructor(R){super(R),this._queuedEvents=[],this._mergeFn=R?.merge}fire(R){this.hasListeners()&&(this._queuedEvents.push(R),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(D=>super.fire(D)),this._queuedEvents=[]}))}}n.MicrotaskEmitter=w;class M{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new E({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(R){const D={event:R,listener:null};this.events.push(D),this.hasListeners&&this.hook(D);const T=()=>{this.hasListeners&&this.unhook(D);const O=this.events.indexOf(D);this.events.splice(O,1)};return(0,A.toDisposable)((0,x.createSingleCallFunction)(T))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(R=>this.hook(R))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(R=>this.unhook(R))}hook(R){R.listener=R.event(D=>this.emitter.fire(D))}unhook(R){R.listener?.dispose(),R.listener=null}dispose(){this.emitter.dispose();for(const R of this.events)R.listener?.dispose();this.events=[]}}n.EventMultiplexer=M;class y{constructor(){this.data=[]}wrapEvent(R,D,T){return(O,z,j)=>R(F=>{const q=this.data[this.data.length-1];if(!D){q?q.buffers.push(()=>O.call(z,F)):O.call(z,F);return}const B=q;if(!B){O.call(z,D(T,F));return}B.items??=[],B.items.push(F),B.buffers.length===0&&q.buffers.push(()=>{B.reducedResult??=T?B.items.reduce(D,T):B.items.reduce(D),O.call(z,B.reducedResult)})},void 0,j)}bufferEvents(R){const D={buffers:new Array};this.data.push(D);const T=R();return this.data.pop(),D.buffers.forEach(O=>O()),T}}n.EventBufferer=y;class _{constructor(){this.listening=!1,this.inputEvent=m.None,this.inputEventListener=A.Disposable.None,this.emitter=new E({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(R){this.inputEvent=R,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=R(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}n.Relay=_}),X(J[23],Z([0,1,9]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CancellationTokenSource=n.CancellationToken=void 0,n.cancelOnDispose=p;const x=Object.freeze(function(c,a){const m=setTimeout(c.bind(a),0);return{dispose(){clearTimeout(m)}}});var A;(function(c){function a(m){return m===c.None||m===c.Cancelled||m instanceof d?!0:!m||typeof m!="object"?!1:typeof m.isCancellationRequested=="boolean"&&typeof m.onCancellationRequested=="function"}c.isCancellationToken=a,c.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),c.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:x})})(A||(n.CancellationToken=A={}));class d{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?x:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class f{constructor(a){this._token=void 0,this._parentListener=void 0,this._parentListener=a&&a.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new d),this._token}cancel(){this._token?this._token instanceof d&&this._token.cancel():this._token=A.Cancelled}dispose(a=!1){a&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof d&&this._token.dispose():this._token=A.None}}n.CancellationTokenSource=f;function p(c){const a=new f;return c.add({dispose(){a.cancel()}}),a.token}}),X(J[6],Z([0,1,39,43]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.InvisibleCharacters=n.AmbiguousCharacters=n.noBreakWhitespace=n.UTF8_BOM_CHARACTER=n.UNUSUAL_LINE_TERMINATORS=n.GraphemeIterator=n.CodePointIterator=void 0,n.isFalsyOrWhitespace=A,n.format=f,n.htmlAttributeEncodeValue=p,n.escape=c,n.escapeRegExpCharacters=a,n.trim=m,n.ltrim=e,n.rtrim=h,n.convertSimple2RegExpPattern=r,n.stripWildcards=s,n.createRegExp=o,n.regExpLeadsToEndlessLoop=u,n.splitLines=S,n.splitLinesIncludeSeparators=L,n.firstNonWhitespaceIndex=N,n.getLeadingWhitespace=P,n.lastNonWhitespaceIndex=E,n.compare=v,n.compareSubstring=l,n.compareIgnoreCase=b,n.compareSubstringIgnoreCase=g,n.isAsciiDigit=w,n.isLowerAsciiLetter=M,n.isUpperAsciiLetter=y,n.equalsIgnoreCase=_,n.startsWithIgnoreCase=C,n.commonPrefixLength=R,n.commonSuffixLength=D,n.isHighSurrogate=T,n.isLowSurrogate=O,n.computeCodePoint=z,n.getNextCodePoint=j,n.nextCharLength=G,n.prevCharLength=$,n.getCharContainingOffset=U,n.containsRTL=ue,n.isBasicASCII=ge,n.containsUnusualLineTerminators=t,n.isFullWidthCharacter=me,n.isEmojiImprecise=pe,n.startsWithUTF8BOM=Le,n.containsUppercaseCharacter=we,n.singleLetterHash=Ce,n.getLeftDeleteOffset=_e;function A(k){return!k||typeof k!="string"?!0:k.trim().length===0}const d=/{(\d+)}/g;function f(k,...I){return I.length===0?k:k.replace(d,function(V,H){const Y=parseInt(H,10);return isNaN(Y)||Y<0||Y>=I.length?V:I[Y]})}function p(k){return k.replace(/[<>"'&]/g,I=>{switch(I){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return I})}function c(k){return k.replace(/[<>&]/g,function(I){switch(I){case"<":return"<";case">":return">";case"&":return"&";default:return I}})}function a(k){return k.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function m(k,I=" "){const V=e(k,I);return h(V,I)}function e(k,I){if(!k||!I)return k;const V=I.length;if(V===0||k.length===0)return k;let H=0;for(;k.indexOf(I,H)===H;)H=H+V;return k.substring(H)}function h(k,I){if(!k||!I)return k;const V=I.length,H=k.length;if(V===0||H===0)return k;let Y=H,te=-1;for(;te=k.lastIndexOf(I,Y-1),!(te===-1||te+V!==Y);){if(te===0)return"";Y=te}return k.substring(0,Y)}function r(k){return k.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function s(k){return k.replace(/\*/g,"")}function o(k,I,V={}){if(!k)throw new Error("Cannot create regex from empty string");I||(k=a(k)),V.wholeWord&&(/\B/.test(k.charAt(0))||(k="\\b"+k),/\B/.test(k.charAt(k.length-1))||(k=k+"\\b"));let H="";return V.global&&(H+="g"),V.matchCase||(H+="i"),V.multiline&&(H+="m"),V.unicode&&(H+="u"),new RegExp(k,H)}function u(k){return k.source==="^"||k.source==="^$"||k.source==="$"||k.source==="^\\s*$"?!1:!!(k.exec("")&&k.lastIndex===0)}function S(k){return k.split(/\r\n|\r|\n/)}function L(k){const I=[],V=k.split(/(\r\n|\r|\n)/);for(let H=0;H=0;V--){const H=k.charCodeAt(V);if(H!==32&&H!==9)return V}return-1}function v(k,I){return kI?1:0}function l(k,I,V=0,H=k.length,Y=0,te=I.length){for(;Voe)return 1}const ne=H-V,ae=te-Y;return neae?1:0}function b(k,I){return g(k,I,0,k.length,0,I.length)}function g(k,I,V=0,H=k.length,Y=0,te=I.length){for(;V=128||oe>=128)return l(k.toLowerCase(),I.toLowerCase(),V,H,Y,te);M(le)&&(le-=32),M(oe)&&(oe-=32);const se=le-oe;if(se!==0)return se}const ne=H-V,ae=te-Y;return neae?1:0}function w(k){return k>=48&&k<=57}function M(k){return k>=97&&k<=122}function y(k){return k>=65&&k<=90}function _(k,I){return k.length===I.length&&g(k,I)===0}function C(k,I){const V=I.length;return I.length>k.length?!1:g(k,I,0,V)===0}function R(k,I){const V=Math.min(k.length,I.length);let H;for(H=0;H1){const H=k.charCodeAt(I-2);if(T(H))return z(H,V)}return V}class q{get offset(){return this._offset}constructor(I,V=0){this._str=I,this._len=I.length,this._offset=V}setOffset(I){this._offset=I}prevCodePoint(){const I=F(this._str,this._offset);return this._offset-=I>=65536?2:1,I}nextCodePoint(){const I=j(this._str,this._len,this._offset);return this._offset+=I>=65536?2:1,I}eol(){return this._offset>=this._len}}n.CodePointIterator=q;class B{get offset(){return this._iterator.offset}constructor(I,V=0){this._iterator=new q(I,V)}nextGraphemeLength(){const I=fe.getInstance(),V=this._iterator,H=V.offset;let Y=I.getGraphemeBreakType(V.nextCodePoint());for(;!V.eol();){const te=V.offset,ne=I.getGraphemeBreakType(V.nextCodePoint());if(ve(Y,ne)){V.setOffset(te);break}Y=ne}return V.offset-H}prevGraphemeLength(){const I=fe.getInstance(),V=this._iterator,H=V.offset;let Y=I.getGraphemeBreakType(V.prevCodePoint());for(;V.offset>0;){const te=V.offset,ne=I.getGraphemeBreakType(V.prevCodePoint());if(ve(ne,Y)){V.setOffset(te);break}Y=ne}return H-V.offset}eol(){return this._iterator.eol()}}n.GraphemeIterator=B;function G(k,I){return new B(k,I).nextGraphemeLength()}function $(k,I){return new B(k,I).prevGraphemeLength()}function U(k,I){I>0&&O(k.charCodeAt(I))&&I--;const V=I+G(k,I);return[V-$(k,V),V]}let ee;function re(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function ue(k){return ee||(ee=re()),ee.test(k)}const de=/^[\t\n\r\x20-\x7E]*$/;function ge(k){return de.test(k)}n.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function t(k){return n.UNUSUAL_LINE_TERMINATORS.test(k)}function me(k){return k>=11904&&k<=55215||k>=63744&&k<=64255||k>=65281&&k<=65374}function pe(k){return k>=127462&&k<=127487||k===8986||k===8987||k===9200||k===9203||k>=9728&&k<=10175||k===11088||k===11093||k>=127744&&k<=128591||k>=128640&&k<=128764||k>=128992&&k<=129008||k>=129280&&k<=129535||k>=129648&&k<=129782}n.UTF8_BOM_CHARACTER="\uFEFF";function Le(k){return!!(k&&k.length>0&&k.charCodeAt(0)===65279)}function we(k,I=!1){return k?(I&&(k=k.replace(/\\./g,"")),k.toLowerCase()!==k):!1}function Ce(k){return k=k%(2*26),k<26?String.fromCharCode(97+k):String.fromCharCode(65+k-26)}function ve(k,I){return k===0?I!==5&&I!==7:k===2&&I===3?!1:k===4||k===2||k===3||I===4||I===2||I===3?!0:!(k===8&&(I===8||I===9||I===11||I===12)||(k===11||k===9)&&(I===9||I===10)||(k===12||k===10)&&I===10||I===5||I===13||I===7||k===1||k===13&&I===14||k===6&&I===6)}class fe{static{this._INSTANCE=null}static getInstance(){return fe._INSTANCE||(fe._INSTANCE=new fe),fe._INSTANCE}constructor(){this._data=Se()}getGraphemeBreakType(I){if(I<32)return I===10?3:I===13?2:4;if(I<127)return 0;const V=this._data,H=V.length/3;let Y=1;for(;Y<=H;)if(IV[3*Y+1])Y=2*Y+1;else return V[3*Y+2];return 0}}function Se(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function _e(k,I){if(k===0)return 0;const V=ye(k,I);if(V!==void 0)return V;const H=new q(I,k);return H.prevCodePoint(),H.offset}function ye(k,I){const V=new q(I,k);let H=V.prevCodePoint();for(;Ee(H)||H===65039||H===8419;){if(V.offset===0)return;H=V.prevCodePoint()}if(!pe(H))return;let Y=V.offset;return Y>0&&V.prevCodePoint()===8205&&(Y=V.offset),Y}function Ee(k){return 127995<=k&&k<=127999}n.noBreakWhitespace="\xA0";class K{static{this.ambiguousCharacterData=new x.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new i.LRUCachedFunction({getCacheKey:JSON.stringify},I=>{function V(se){const ce=new Map;for(let he=0;he!se.startsWith("_")&&se in te);ne.length===0&&(ne=["_default"]);let ae;for(const se of ne){const ce=V(te[se]);ae=Y(ae,ce)}const le=V(te._common),oe=H(le,ae);return new K(oe)})}static getInstance(I){return K.cache.get(Array.from(I))}static{this._locales=new x.Lazy(()=>Object.keys(K.ambiguousCharacterData.value).filter(I=>!I.startsWith("_")))}static getLocales(){return K._locales.value}constructor(I){this.confusableDictionary=I}isAmbiguous(I){return this.confusableDictionary.has(I)}getPrimaryConfusable(I){return this.confusableDictionary.get(I)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}n.AmbiguousCharacters=K;class Q{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static{this._data=void 0}static getData(){return this._data||(this._data=new Set(Q.getRawData())),this._data}static isInvisibleCharacter(I){return Q.getData().has(I)}static get codePoints(){return Q.getData()}}n.InvisibleCharacters=Q}),X(J[44],Z([0,1,6]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.StringSHA1=void 0,n.hash=x,n.doHash=A,n.numberHash=d,n.stringHash=p,n.toHexString=r;function x(o){return A(o,0)}function A(o,u){switch(typeof o){case"object":return o===null?d(349,u):Array.isArray(o)?c(o,u):a(o,u);case"string":return p(o,u);case"boolean":return f(o,u);case"number":return d(o,u);case"undefined":return d(937,u);default:return d(617,u)}}function d(o,u){return(u<<5)-u+o|0}function f(o,u){return d(o?433:863,u)}function p(o,u){u=d(149417,u);for(let S=0,L=o.length;SA(L,S),u)}function a(o,u){return u=d(181387,u),Object.keys(o).sort().reduce((S,L)=>(S=p(L,S),A(o[L],S)),u)}function m(o,u,S=32){const L=S-u,N=~((1<>>L)>>>0}function e(o,u=0,S=o.byteLength,L=0){for(let N=0;NS.toString(16).padStart(2,"0")).join(""):h((o>>>0).toString(16),u/4)}class s{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(u){const S=u.length;if(S===0)return;const L=this._buff;let N=this._buffLen,P=this._leftoverHighSurrogate,E,v;for(P!==0?(E=P,v=-1,P=0):(E=u.charCodeAt(0),v=0);;){let l=E;if(i.isHighSurrogate(E))if(v+1>>6,u[S++]=128|(L&63)>>>0):L<65536?(u[S++]=224|(L&61440)>>>12,u[S++]=128|(L&4032)>>>6,u[S++]=128|(L&63)>>>0):(u[S++]=240|(L&1835008)>>>18,u[S++]=128|(L&258048)>>>12,u[S++]=128|(L&4032)>>>6,u[S++]=128|(L&63)>>>0),S>=64&&(this._step(),S-=64,this._totalLen+=64,u[0]=u[64],u[1]=u[65],u[2]=u[66]),S}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),r(this._h0)+r(this._h1)+r(this._h2)+r(this._h3)+r(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,e(this._buff,this._buffLen),this._buffLen>56&&(this._step(),e(this._buff));const u=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(u/4294967296),!1),this._buffDV.setUint32(60,u%4294967296,!1),this._step()}_step(){const u=s._bigBlock32,S=this._buffDV;for(let w=0;w<64;w+=4)u.setUint32(w,S.getUint32(w,!1),!1);for(let w=64;w<320;w+=4)u.setUint32(w,m(u.getUint32(w-12,!1)^u.getUint32(w-32,!1)^u.getUint32(w-56,!1)^u.getUint32(w-64,!1),1),!1);let L=this._h0,N=this._h1,P=this._h2,E=this._h3,v=this._h4,l,b,g;for(let w=0;w<80;w++)w<20?(l=N&P|~N&E,b=1518500249):w<40?(l=N^P^E,b=1859775393):w<60?(l=N&P|N&E|P&E,b=2400959708):(l=N^P^E,b=3395469782),g=m(L,5)+l+v+b+u.getUint32(w*4,!1)&4294967295,v=E,E=P,P=m(N,30),N=L,L=g;this._h0=this._h0+L&4294967295,this._h1=this._h1+N&4294967295,this._h2=this._h2+P&4294967295,this._h3=this._h3+E&4294967295,this._h4=this._h4+v&4294967295}}n.StringSHA1=s}),X(J[24],Z([0,1,41,44]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LcsDiff=n.StringDiffSequence=void 0,n.stringDiff=d;class A{constructor(e){this.source=e}getElements(){const e=this.source,h=new Int32Array(e.length);for(let r=0,s=e.length;r0||this.m_modifiedCount>0)&&this.m_changes.push(new i.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,h){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,h),this.m_originalCount++}AddModifiedElement(e,h){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,h),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class a{constructor(e,h,r=null){this.ContinueProcessingPredicate=r,this._originalSequence=e,this._modifiedSequence=h;const[s,o,u]=a._getElements(e),[S,L,N]=a._getElements(h);this._hasStrings=u&&N,this._originalStringElements=s,this._originalElementsOrHash=o,this._modifiedStringElements=S,this._modifiedElementsOrHash=L,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const h=e.getElements();if(a._isStringArray(h)){const r=new Int32Array(h.length);for(let s=0,o=h.length;s=e&&s>=r&&this.ElementsAreEqual(h,s);)h--,s--;if(e>h||r>s){let E;return r<=s?(f.Assert(e===h+1,"originalStart should only be one more than originalEnd"),E=[new i.DiffChange(e,0,r,s-r+1)]):e<=h?(f.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),E=[new i.DiffChange(e,h-e+1,r,0)]):(f.Assert(e===h+1,"originalStart should only be one more than originalEnd"),f.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),E=[]),E}const u=[0],S=[0],L=this.ComputeRecursionPoint(e,h,r,s,u,S,o),N=u[0],P=S[0];if(L!==null)return L;if(!o[0]){const E=this.ComputeDiffRecursive(e,N,r,P,o);let v=[];return o[0]?v=[new i.DiffChange(N+1,h-(N+1)+1,P+1,s-(P+1)+1)]:v=this.ComputeDiffRecursive(N+1,h,P+1,s,o),this.ConcatenateChanges(E,v)}return[new i.DiffChange(e,h-e+1,r,s-r+1)]}WALKTRACE(e,h,r,s,o,u,S,L,N,P,E,v,l,b,g,w,M,y){let _=null,C=null,R=new c,D=h,T=r,O=l[0]-w[0]-s,z=-1073741824,j=this.m_forwardHistory.length-1;do{const F=O+e;F===D||F=0&&(N=this.m_forwardHistory[j],e=N[0],D=1,T=N.length-1)}while(--j>=-1);if(_=R.getReverseChanges(),y[0]){let F=l[0]+1,q=w[0]+1;if(_!==null&&_.length>0){const B=_[_.length-1];F=Math.max(F,B.getOriginalEnd()),q=Math.max(q,B.getModifiedEnd())}C=[new i.DiffChange(F,v-F+1,q,g-q+1)]}else{R=new c,D=u,T=S,O=l[0]-w[0]-L,z=1073741824,j=M?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const F=O+o;F===D||F=P[F+1]?(E=P[F+1]-1,b=E-O-L,E>z&&R.MarkNextChange(),z=E+1,R.AddOriginalElement(E+1,b+1),O=F+1-o):(E=P[F-1],b=E-O-L,E>z&&R.MarkNextChange(),z=E,R.AddModifiedElement(E+1,b+1),O=F-1-o),j>=0&&(P=this.m_reverseHistory[j],o=P[0],D=1,T=P.length-1)}while(--j>=-1);C=R.getChanges()}return this.ConcatenateChanges(_,C)}ComputeRecursionPoint(e,h,r,s,o,u,S){let L=0,N=0,P=0,E=0,v=0,l=0;e--,r--,o[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const b=h-e+(s-r),g=b+1,w=new Int32Array(g),M=new Int32Array(g),y=s-r,_=h-e,C=e-r,R=h-s,T=(_-y)%2===0;w[y]=e,M[_]=h,S[0]=!1;for(let O=1;O<=b/2+1;O++){let z=0,j=0;P=this.ClipDiagonalBound(y-O,O,y,g),E=this.ClipDiagonalBound(y+O,O,y,g);for(let q=P;q<=E;q+=2){q===P||qz+j&&(z=L,j=N),!T&&Math.abs(q-_)<=O-1&&L>=M[q])return o[0]=L,u[0]=N,B<=M[q]&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):null}const F=(z-e+(j-r)-O)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(z,F))return S[0]=!0,o[0]=z,u[0]=j,F>0&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):(e++,r++,[new i.DiffChange(e,h-e+1,r,s-r+1)]);v=this.ClipDiagonalBound(_-O,O,_,g),l=this.ClipDiagonalBound(_+O,O,_,g);for(let q=v;q<=l;q+=2){q===v||q=M[q+1]?L=M[q+1]-1:L=M[q-1],N=L-(q-_)-R;const B=L;for(;L>e&&N>r&&this.ElementsAreEqual(L,N);)L--,N--;if(M[q]=L,T&&Math.abs(q-y)<=O&&L<=w[q])return o[0]=L,u[0]=N,B>=w[q]&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):null}if(O<=1447){let q=new Int32Array(E-P+2);q[0]=y-P+1,p.Copy2(w,P,q,1,E-P+1),this.m_forwardHistory.push(q),q=new Int32Array(l-v+2),q[0]=_-v+1,p.Copy2(M,v,q,1,l-v+1),this.m_reverseHistory.push(q)}}return this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S)}PrettifyChanges(e){for(let h=0;h0,S=r.modifiedLength>0;for(;r.originalStart+r.originalLength=0;h--){const r=e[h];let s=0,o=0;if(h>0){const E=e[h-1];s=E.originalStart+E.originalLength,o=E.modifiedStart+E.modifiedLength}const u=r.originalLength>0,S=r.modifiedLength>0;let L=0,N=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength);for(let E=1;;E++){const v=r.originalStart-E,l=r.modifiedStart-E;if(vN&&(N=g,L=E)}r.originalStart-=L,r.modifiedStart-=L;const P=[null];if(h>0&&this.ChangesOverlap(e[h-1],e[h],P)){e[h-1]=P[0],e.splice(h,1),h++;continue}}if(this._hasStrings)for(let h=1,r=e.length;h0&&l>L&&(L=l,N=E,P=v)}return L>0?[N,P]:null}_contiguousSequenceScore(e,h,r){let s=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,h){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(h>0){const r=e+h;if(this._OriginalIsBoundary(r-1)||this._OriginalIsBoundary(r))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,h){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(h>0){const r=e+h;if(this._ModifiedIsBoundary(r-1)||this._ModifiedIsBoundary(r))return!0}return!1}_boundaryScore(e,h,r,s){const o=this._OriginalRegionIsBoundary(e,h)?1:0,u=this._ModifiedRegionIsBoundary(r,s)?1:0;return o+u}ConcatenateChanges(e,h){const r=[];if(e.length===0||h.length===0)return h.length>0?h:e;if(this.ChangesOverlap(e[e.length-1],h[0],r)){const s=new Array(e.length+h.length-1);return p.Copy(e,0,s,0,e.length-1),s[e.length-1]=r[0],p.Copy(h,1,s,e.length,h.length-1),s}else{const s=new Array(e.length+h.length);return p.Copy(e,0,s,0,e.length),p.Copy(h,0,s,e.length,h.length),s}}ChangesOverlap(e,h,r){if(f.Assert(e.originalStart<=h.originalStart,"Left change is not less than or equal to right change"),f.Assert(e.modifiedStart<=h.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=h.originalStart||e.modifiedStart+e.modifiedLength>=h.modifiedStart){const s=e.originalStart;let o=e.originalLength;const u=e.modifiedStart;let S=e.modifiedLength;return e.originalStart+e.originalLength>=h.originalStart&&(o=h.originalStart+h.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=h.modifiedStart&&(S=h.modifiedStart+h.modifiedLength-e.modifiedStart),r[0]=new i.DiffChange(s,o,u,S),!0}else return r[0]=null,!1}ClipDiagonalBound(e,h,r,s){if(e>=0&&e"u"}function a(u){return!m(u)}function m(u){return c(u)||u===null}function e(u,S){if(!u)throw new Error(S?`Unexpected type, expected '${S}'`:"Unexpected type")}function h(u){if(m(u))throw new Error("Assertion Failed: argument is undefined or null");return u}function r(u){return typeof u=="function"}function s(u,S){const L=Math.min(u.length,S.length);for(let N=0;N{s[o]=u&&typeof u=="object"?x(u):u}),s}function A(r){if(!r||typeof r!="object")return r;const s=[r];for(;s.length>0;){const o=s.shift();Object.freeze(o);for(const u in o)if(d.call(o,u)){const S=o[u];typeof S=="object"&&!Object.isFrozen(S)&&!(0,i.isTypedArray)(S)&&s.push(S)}}return r}const d=Object.prototype.hasOwnProperty;function f(r,s){return p(r,s,new Set)}function p(r,s,o){if((0,i.isUndefinedOrNull)(r))return r;const u=s(r);if(typeof u<"u")return u;if(Array.isArray(r)){const S=[];for(const L of r)S.push(p(L,s,o));return S}if((0,i.isObject)(r)){if(o.has(r))throw new Error("Cannot clone recursive data-structure");o.add(r);const S={};for(const L in r)d.call(r,L)&&(S[L]=p(r[L],s,o));return o.delete(r),S}return r}function c(r,s,o=!0){return(0,i.isObject)(r)?((0,i.isObject)(s)&&Object.keys(s).forEach(u=>{u in r?o&&((0,i.isObject)(r[u])&&(0,i.isObject)(s[u])?c(r[u],s[u],o):r[u]=s[u]):r[u]=s[u]}),r):s}function a(r,s){if(r===s)return!0;if(r==null||s===null||s===void 0||typeof r!=typeof s||typeof r!="object"||Array.isArray(r)!==Array.isArray(s))return!1;let o,u;if(Array.isArray(r)){if(r.length!==s.length)return!1;for(o=0;ofunction(){const L=Array.prototype.slice.call(arguments,0);return s(S,L)},u={};for(const S of r)u[S]=o(S);return u}}),X(J[28],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.toUint8=i,n.toUint32=x;function i(A){return A<0?0:A>255?255:A|0}function x(A){return A<0?0:A>4294967295?4294967295:A|0}}),X(J[29],Z([0,1,28]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CharacterSet=n.CharacterClassifier=void 0;class x{constructor(f){const p=(0,i.toUint8)(f);this._defaultValue=p,this._asciiMap=x._createAsciiMap(p),this._map=new Map}static _createAsciiMap(f){const p=new Uint8Array(256);return p.fill(f),p}set(f,p){const c=(0,i.toUint8)(p);f>=0&&f<256?this._asciiMap[f]=c:this._map.set(f,c)}get(f){return f>=0&&f<256?this._asciiMap[f]:this._map.get(f)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}n.CharacterClassifier=x;class A{constructor(){this._actual=new x(0)}add(f){this._actual.set(f,1)}has(f){return this._actual.get(f)===1}clear(){return this._actual.clear()}}n.CharacterSet=A}),X(J[5],Z([0,1,3]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.OffsetRangeSet=n.OffsetRange=void 0;class x{static addRange(f,p){let c=0;for(;cp))return new x(f,p)}static ofLength(f){return new x(0,f)}static ofStartAndLength(f,p){return new x(f,f+p)}constructor(f,p){if(this.start=f,this.endExclusive=p,f>p)throw new i.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(f){return new x(this.start+f,this.endExclusive+f)}deltaStart(f){return new x(this.start+f,this.endExclusive)}deltaEnd(f){return new x(this.start,this.endExclusive+f)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(f){return this.start<=f&&f=f.endExclusive}slice(f){return f.slice(this.start,this.endExclusive)}substring(f){return f.substring(this.start,this.endExclusive)}clip(f){if(this.isEmpty)throw new i.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,f))}clipCyclic(f){if(this.isEmpty)throw new i.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return f=this.endExclusive?this.start+(f-this.start)%this.length:f}forEach(f){for(let p=this.start;pf.toString()).join(", ")}intersectsStrict(f){let p=0;for(;pf+p.length,0)}}n.OffsetRangeSet=A}),X(J[4],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Position=void 0;class i{constructor(A,d){this.lineNumber=A,this.column=d}with(A=this.lineNumber,d=this.column){return A===this.lineNumber&&d===this.column?this:new i(A,d)}delta(A=0,d=0){return this.with(this.lineNumber+A,this.column+d)}equals(A){return i.equals(this,A)}static equals(A,d){return!A&&!d?!0:!!A&&!!d&&A.lineNumber===d.lineNumber&&A.column===d.column}isBefore(A){return i.isBefore(this,A)}static isBefore(A,d){return A.lineNumberp||d===p&&f>c?(this.startLineNumber=p,this.startColumn=c,this.endLineNumber=d,this.endColumn=f):(this.startLineNumber=d,this.startColumn=f,this.endLineNumber=p,this.endColumn=c)}isEmpty(){return x.isEmpty(this)}static isEmpty(d){return d.startLineNumber===d.endLineNumber&&d.startColumn===d.endColumn}containsPosition(d){return x.containsPosition(this,d)}static containsPosition(d,f){return!(f.lineNumberd.endLineNumber||f.lineNumber===d.startLineNumber&&f.columnd.endColumn)}static strictContainsPosition(d,f){return!(f.lineNumberd.endLineNumber||f.lineNumber===d.startLineNumber&&f.column<=d.startColumn||f.lineNumber===d.endLineNumber&&f.column>=d.endColumn)}containsRange(d){return x.containsRange(this,d)}static containsRange(d,f){return!(f.startLineNumberd.endLineNumber||f.endLineNumber>d.endLineNumber||f.startLineNumber===d.startLineNumber&&f.startColumnd.endColumn)}strictContainsRange(d){return x.strictContainsRange(this,d)}static strictContainsRange(d,f){return!(f.startLineNumberd.endLineNumber||f.endLineNumber>d.endLineNumber||f.startLineNumber===d.startLineNumber&&f.startColumn<=d.startColumn||f.endLineNumber===d.endLineNumber&&f.endColumn>=d.endColumn)}plusRange(d){return x.plusRange(this,d)}static plusRange(d,f){let p,c,a,m;return f.startLineNumberd.endLineNumber?(a=f.endLineNumber,m=f.endColumn):f.endLineNumber===d.endLineNumber?(a=f.endLineNumber,m=Math.max(f.endColumn,d.endColumn)):(a=d.endLineNumber,m=d.endColumn),new x(p,c,a,m)}intersectRanges(d){return x.intersectRanges(this,d)}static intersectRanges(d,f){let p=d.startLineNumber,c=d.startColumn,a=d.endLineNumber,m=d.endColumn;const e=f.startLineNumber,h=f.startColumn,r=f.endLineNumber,s=f.endColumn;return pr?(a=r,m=s):a===r&&(m=Math.min(m,s)),p>a||p===a&&c>m?null:new x(p,c,a,m)}equalsRange(d){return x.equalsRange(this,d)}static equalsRange(d,f){return!d&&!f?!0:!!d&&!!f&&d.startLineNumber===f.startLineNumber&&d.startColumn===f.startColumn&&d.endLineNumber===f.endLineNumber&&d.endColumn===f.endColumn}getEndPosition(){return x.getEndPosition(this)}static getEndPosition(d){return new i.Position(d.endLineNumber,d.endColumn)}getStartPosition(){return x.getStartPosition(this)}static getStartPosition(d){return new i.Position(d.startLineNumber,d.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(d,f){return new x(this.startLineNumber,this.startColumn,d,f)}setStartPosition(d,f){return new x(d,f,this.endLineNumber,this.endColumn)}collapseToStart(){return x.collapseToStart(this)}static collapseToStart(d){return new x(d.startLineNumber,d.startColumn,d.startLineNumber,d.startColumn)}collapseToEnd(){return x.collapseToEnd(this)}static collapseToEnd(d){return new x(d.endLineNumber,d.endColumn,d.endLineNumber,d.endColumn)}delta(d){return new x(this.startLineNumber+d,this.startColumn,this.endLineNumber+d,this.endColumn)}static fromPositions(d,f=d){return new x(d.lineNumber,d.column,f.lineNumber,f.column)}static lift(d){return d?new x(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn):null}static isIRange(d){return d&&typeof d.startLineNumber=="number"&&typeof d.startColumn=="number"&&typeof d.endLineNumber=="number"&&typeof d.endColumn=="number"}static areIntersectingOrTouching(d,f){return!(d.endLineNumberd.startLineNumber}toJSON(){return this}}n.Range=x}),X(J[13],Z([0,1,3,5,2,15]),function(W,n,i,x,A,d){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LineRangeSet=n.LineRange=void 0;class f{static fromRangeInclusive(a){return new f(a.startLineNumber,a.endLineNumber+1)}static joinMany(a){if(a.length===0)return[];let m=new p(a[0].slice());for(let e=1;em)throw new i.BugIndicatingError(`startLineNumber ${a} cannot be after endLineNumberExclusive ${m}`);this.startLineNumber=a,this.endLineNumberExclusive=m}contains(a){return this.startLineNumber<=a&&ah.endLineNumberExclusive>=a.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,h=>h.startLineNumber<=a.endLineNumberExclusive)+1;if(m===e)this._normalizedRanges.splice(m,0,a);else if(m===e-1){const h=this._normalizedRanges[m];this._normalizedRanges[m]=h.join(a)}else{const h=this._normalizedRanges[m].join(this._normalizedRanges[e-1]).join(a);this._normalizedRanges.splice(m,e-m,h)}}contains(a){const m=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumber<=a);return!!m&&m.endLineNumberExclusive>a}intersects(a){const m=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumbera.startLineNumber}getUnion(a){if(this._normalizedRanges.length===0)return a;if(a._normalizedRanges.length===0)return this;const m=[];let e=0,h=0,r=null;for(;e=s.startLineNumber?r=new f(r.startLineNumber,Math.max(r.endLineNumberExclusive,s.endLineNumberExclusive)):(m.push(r),r=s)}return r!==null&&m.push(r),new p(m)}subtractFrom(a){const m=(0,d.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,s=>s.endLineNumberExclusive>=a.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,s=>s.startLineNumber<=a.endLineNumberExclusive)+1;if(m===e)return new p([a]);const h=[];let r=a.startLineNumber;for(let s=m;sr&&h.push(new f(r,o.startLineNumber)),r=o.endLineNumberExclusive}return ra.toString()).join(", ")}getIntersection(a){const m=[];let e=0,h=0;for(;em.delta(a)))}}n.LineRangeSet=p}),X(J[48],Z([0,1,4,2]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Selection=void 0;class A extends x.Range{constructor(f,p,c,a){super(f,p,c,a),this.selectionStartLineNumber=f,this.selectionStartColumn=p,this.positionLineNumber=c,this.positionColumn=a}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(f){return A.selectionsEqual(this,f)}static selectionsEqual(f,p){return f.selectionStartLineNumber===p.selectionStartLineNumber&&f.selectionStartColumn===p.selectionStartColumn&&f.positionLineNumber===p.positionLineNumber&&f.positionColumn===p.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(f,p){return this.getDirection()===0?new A(this.startLineNumber,this.startColumn,f,p):new A(f,p,this.startLineNumber,this.startColumn)}getPosition(){return new i.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new i.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(f,p){return this.getDirection()===0?new A(f,p,this.endLineNumber,this.endColumn):new A(this.endLineNumber,this.endColumn,f,p)}static fromPositions(f,p=f){return new A(f.lineNumber,f.column,p.lineNumber,p.column)}static fromRange(f,p){return p===0?new A(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn):new A(f.endLineNumber,f.endColumn,f.startLineNumber,f.startColumn)}static liftSelection(f){return new A(f.selectionStartLineNumber,f.selectionStartColumn,f.positionLineNumber,f.positionColumn)}static selectionsArrEqual(f,p){if(f&&!p||!f&&p)return!1;if(!f&&!p)return!0;if(f.length!==p.length)return!1;for(let c=0,a=f.length;cf.lineCount:this.columnCount>=f.columnCount}createRange(f){return this.lineCount===0?new x.Range(f.lineNumber,f.column,f.lineNumber,f.column+this.columnCount):new x.Range(f.lineNumber,f.column,f.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(f){return this.lineCount===0?new i.Position(f.lineNumber,f.column+this.columnCount):new i.Position(f.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}n.TextLength=A}),X(J[49],Z([0,1,5,30]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PositionOffsetTransformer=void 0;class A{constructor(f){this.text=f,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let p=0;p(0,i.checkAdjacentItems)(s,(o,u)=>o.range.getEndPosition().isBeforeOrEqual(u.range.getStartPosition())))}apply(s){let o="",u=new A.Position(1,1);for(const L of this.edits){const N=L.range,P=N.getStartPosition(),E=N.getEndPosition(),v=m(u,P);v.isEmpty()||(o+=s.getValueOfRange(v)),o+=L.text,u=E}const S=m(u,s.endPositionExclusive);return S.isEmpty()||(o+=s.getValueOfRange(S)),o}applyToString(s){const o=new h(s);return this.apply(o)}getNewRanges(){const s=[];let o=0,u=0,S=0;for(const L of this.edits){const N=p.TextLength.ofText(L.text),P=A.Position.lift({lineNumber:L.range.startLineNumber+u,column:L.range.startColumn+(L.range.startLineNumber===o?S:0)}),E=N.createRange(P);s.push(E),u=E.endLineNumber-L.range.endLineNumber,S=E.endColumn-L.range.endColumn,o=L.range.endLineNumber}return s}}n.TextEdit=c;class a{constructor(s,o){this.range=s,this.text=o}toSingleEditOperation(){return{range:this.range,text:this.text}}}n.SingleTextEdit=a;function m(r,s){if(r.lineNumber===s.lineNumber&&r.column===Number.MAX_SAFE_INTEGER)return f.Range.fromPositions(s,s);if(!r.isBeforeOrEqual(s))throw new x.BugIndicatingError("start must be before end");return new f.Range(r.lineNumber,r.column,s.lineNumber,s.column)}class e{get endPositionExclusive(){return this.length.addToPosition(new A.Position(1,1))}}n.AbstractText=e;class h extends e{constructor(s){super(),this.value=s,this._t=new d.PositionOffsetTransformer(this.value)}getValueOfRange(s){return this._t.getOffsetRange(s).substring(this.value)}get length(){return this._t.textLength}}n.StringText=h}),X(J[51],Z([0,1,21,29]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.WordCharacterClassifier=void 0,n.getMapForWordSeparators=f;class A extends x.CharacterClassifier{constructor(c,a){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=a,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let m=0,e=c.length;ma)break;m=e}return m}findNextIntlWordAtOrAfterOffset(c,a){for(const m of this._getIntlSegmenterWordsOnLine(c))if(!(m.index/?";function A(a=""){let m="(-?\\d*\\.\\d\\w*)|([^";for(const e of n.USUAL_WORD_SEPARATORS)a.indexOf(e)>=0||(m+="\\"+e);return m+="\\s]+)",new RegExp(m,"g")}n.DEFAULT_WORD_REGEXP=A();function d(a){let m=n.DEFAULT_WORD_REGEXP;if(a&&a instanceof RegExp)if(a.global)m=a;else{let e="g";a.ignoreCase&&(e+="i"),a.multiline&&(e+="m"),a.unicode&&(e+="u"),m=new RegExp(a.source,e)}return m.lastIndex=0,m}const f=new x.LinkedList;f.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function p(a,m,e,h,r){if(m=d(m),r||(r=i.Iterable.first(f)),e.length>r.maxLen){let L=a-r.maxLen/2;return L<0?L=0:h+=L,e=e.substring(L,a+r.maxLen/2),p(a,m,e,h,r)}const s=Date.now(),o=a-1-h;let u=-1,S=null;for(let L=1;!(Date.now()-s>=r.timeBudget);L++){const N=o-r.windowSize*L;m.lastIndex=Math.max(0,N);const P=c(m,e,o,u);if(!P&&S||(S=P,N<=0))break;u=N}if(S){const L={word:S[0],startColumn:h+1+S.index,endColumn:h+1+S.index+S[0].length};return m.lastIndex=0,L}return null}function c(a,m,e,h){let r;for(;r=a.exec(m);){const s=r.index||0;if(s<=e&&a.lastIndex>=e)return r;if(h>0&&s>h)return null}return null}}),X(J[10],Z([0,1,7,3,5]),function(W,n,i,x,A){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DateTimeout=n.InfiniteTimeout=n.OffsetPair=n.SequenceDiff=n.DiffAlgorithmResult=void 0;class d{static trivial(e,h){return new d([new f(A.OffsetRange.ofLength(e.length),A.OffsetRange.ofLength(h.length))],!1)}static trivialTimedOut(e,h){return new d([new f(A.OffsetRange.ofLength(e.length),A.OffsetRange.ofLength(h.length))],!0)}constructor(e,h){this.diffs=e,this.hitTimeout=h}}n.DiffAlgorithmResult=d;class f{static invert(e,h){const r=[];return(0,i.forEachAdjacent)(e,(s,o)=>{r.push(f.fromOffsetPairs(s?s.getEndExclusives():p.zero,o?o.getStarts():new p(h,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+h)))}),r}static fromOffsetPairs(e,h){return new f(new A.OffsetRange(e.offset1,h.offset1),new A.OffsetRange(e.offset2,h.offset2))}static assertSorted(e){let h;for(const r of e){if(h&&!(h.seq1Range.endExclusive<=r.seq1Range.start&&h.seq2Range.endExclusive<=r.seq2Range.start))throw new x.BugIndicatingError("Sequence diffs must be sorted");h=r}}constructor(e,h){this.seq1Range=e,this.seq2Range=h}swap(){return new f(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new f(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new f(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new f(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new f(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const h=this.seq1Range.intersect(e.seq1Range),r=this.seq2Range.intersect(e.seq2Range);if(!(!h||!r))return new f(h,r)}getStarts(){return new p(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new p(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}n.SequenceDiff=f;class p{static{this.zero=new p(0,0)}static{this.max=new p(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}constructor(e,h){this.offset1=e,this.offset2=h}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new p(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}n.OffsetPair=p;class c{static{this.instance=new c}isValid(){return!0}}n.InfiniteTimeout=c;class a{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new x.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimeh.length||_>r.length)continue;const C=s(y,_);u.set(L,C);const R=y===w?S.get(L+1):S.get(L-1);if(S.set(L,C!==y?new d(R,y,_,C-y):R),u.get(L)===h.length&&u.get(L)-L===r.length)break e}}let N=S.get(L);const P=[];let E=h.length,v=r.length;for(;;){const l=N?N.x+N.length:0,b=N?N.y+N.length:0;if((l!==E||b!==v)&&P.push(new x.SequenceDiff(new i.OffsetRange(l,E),new i.OffsetRange(b,v))),!N)break;E=N.x,v=N.y,N=N.prev}return P.reverse(),new x.DiffAlgorithmResult(P,!1)}}n.MyersDiffAlgorithm=A;class d{constructor(a,m,e,h){this.prev=a,this.x=m,this.y=e,this.length=h}}class f{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(a){return a<0?(a=-a-1,this.negativeArr[a]):this.positiveArr[a]}set(a,m){if(a<0){if(a=-a-1,a>=this.negativeArr.length){const e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[a]=m}else{if(a>=this.positiveArr.length){const e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[a]=m}}}class p{constructor(){this.positiveArr=[],this.negativeArr=[]}get(a){return a<0?(a=-a-1,this.negativeArr[a]):this.positiveArr[a]}set(a,m){a<0?(a=-a-1,this.negativeArr[a]=m):this.positiveArr[a]=m}}}),X(J[52],Z([0,1,7,5,10]),function(W,n,i,x,A){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.optimizeSequenceDiffs=d,n.removeShortMatches=a,n.extendDiffsToEntireWordIfAppropriate=m,n.removeVeryShortMatchingLinesBetweenDiffs=h,n.removeVeryShortMatchingTextBetweenLongDiffs=r;function d(s,o,u){let S=u;return S=f(s,o,S),S=f(s,o,S),S=p(s,o,S),S}function f(s,o,u){if(u.length===0)return u;const S=[];S.push(u[0]);for(let N=1;N0&&(E=E.delta(l))}L.push(E)}return S.length>0&&L.push(S[S.length-1]),L}function p(s,o,u){if(!s.getBoundaryScore||!o.getBoundaryScore)return u;for(let S=0;S0?u[S-1]:void 0,N=u[S],P=S+1=S.start&&s.seq2Range.start-P>=L.start&&u.isStronglyEqual(s.seq2Range.start-P,s.seq2Range.endExclusive-P)&&P<100;)P++;P--;let E=0;for(;s.seq1Range.start+El&&(l=y,v=b)}return s.delta(v)}function a(s,o,u){const S=[];for(const L of u){const N=S[S.length-1];if(!N){S.push(L);continue}L.seq1Range.start-N.seq1Range.endExclusive<=2||L.seq2Range.start-N.seq2Range.endExclusive<=2?S[S.length-1]=new A.SequenceDiff(N.seq1Range.join(L.seq1Range),N.seq2Range.join(L.seq2Range)):S.push(L)}return S}function m(s,o,u){const S=A.SequenceDiff.invert(u,s.length),L=[];let N=new A.OffsetPair(0,0);function P(v,l){if(v.offset10;){const C=S[0];if(!(C.seq1Range.intersects(w.seq1Range)||C.seq2Range.intersects(w.seq2Range)))break;const D=s.findWordContaining(C.seq1Range.start),T=o.findWordContaining(C.seq2Range.start),O=new A.SequenceDiff(D,T),z=O.intersect(C);if(y+=z.seq1Range.length,_+=z.seq2Range.length,w=w.join(O),w.seq1Range.endExclusive>=C.seq1Range.endExclusive)S.shift();else break}y+_<(w.seq1Range.length+w.seq2Range.length)*2/3&&L.push(w),N=w.getEndExclusives()}for(;S.length>0;){const v=S.shift();v.seq1Range.isEmpty||(P(v.getStarts(),v),P(v.getEndExclusives().delta(-1),v))}return e(u,L)}function e(s,o){const u=[];for(;s.length>0||o.length>0;){const S=s[0],L=o[0];let N;S&&(!L||S.seq1Range.start0&&u[u.length-1].seq1Range.endExclusive>=N.seq1Range.start?u[u.length-1]=u[u.length-1].join(N):u.push(N)}return u}function h(s,o,u){let S=u;if(S.length===0)return S;let L=0,N;do{N=!1;const P=[S[0]];for(let E=1;E5||M.seq1Range.length+M.seq2Range.length>5)};const v=S[E],l=P[P.length-1];b(l,v)?(N=!0,P[P.length-1]=P[P.length-1].join(v)):P.push(v)}S=P}while(L++<10&&N);return S}function r(s,o,u){let S=u;if(S.length===0)return S;let L=0,N;do{N=!1;const E=[S[0]];for(let v=1;v5||_.length>500)return!1;const R=s.getText(_).trim();if(R.length>20||R.split(/\r\n|\r|\n/).length>1)return!1;const D=s.countLinesIn(M.seq1Range),T=M.seq1Range.length,O=o.countLinesIn(M.seq2Range),z=M.seq2Range.length,j=s.countLinesIn(y.seq1Range),F=y.seq1Range.length,q=o.countLinesIn(y.seq2Range),B=y.seq2Range.length,G=2*40+50;function $(U){return Math.min(U,G)}return Math.pow(Math.pow($(D*40+T),1.5)+Math.pow($(O*40+z),1.5),1.5)+Math.pow(Math.pow($(j*40+F),1.5)+Math.pow($(q*40+B),1.5),1.5)>(G**1.5)**1.5*1.3};const l=S[v],b=E[E.length-1];g(b,l)?(N=!0,E[E.length-1]=E[E.length-1].join(l)):E.push(l)}S=E}while(L++<10&&N);const P=[];return(0,i.forEachWithNeighbors)(S,(E,v,l)=>{let b=v;function g(R){return R.length>0&&R.trim().length<=3&&v.seq1Range.length+v.seq2Range.length>100}const w=s.extendToFullLines(v.seq1Range),M=s.getText(new x.OffsetRange(w.start,v.seq1Range.start));g(M)&&(b=b.deltaStart(-M.length));const y=s.getText(new x.OffsetRange(v.seq1Range.endExclusive,w.endExclusive));g(y)&&(b=b.deltaEnd(y.length));const _=A.SequenceDiff.fromOffsetPairs(E?E.getEndExclusives():A.OffsetPair.zero,l?l.getStarts():A.OffsetPair.max),C=b.intersect(_);P.length>0&&C.getStarts().equals(P[P.length-1].getEndExclusives())?P[P.length-1]=P[P.length-1].join(C):P.push(C)}),P}}),X(J[53],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LineSequence=void 0;class i{constructor(d,f){this.trimmedHash=d,this.lines=f}getElement(d){return this.trimmedHash[d]}get length(){return this.trimmedHash.length}getBoundaryScore(d){const f=d===0?0:x(this.lines[d-1]),p=d===this.lines.length?0:x(this.lines[d]);return 1e3-(f+p)}getText(d){return this.lines.slice(d.start,d.endExclusive).join(` -`)}isStronglyEqual(d,f){return this.lines[d]===this.lines[f]}}n.LineSequence=i;function x(A){let d=0;for(;d0&&E>0&&h.get(P-1,E-1)===3&&(b+=r.get(P-1,E-1)),b+=m?m(P,E):1):b=-1;const g=Math.max(v,l,b);if(g===b){const w=P>0&&E>0?r.get(P-1,E-1):0;r.set(P,E,w+1),h.set(P,E,3)}else g===v?(r.set(P,E,0),h.set(P,E,1)):g===l&&(r.set(P,E,0),h.set(P,E,2));e.set(P,E,g)}const s=[];let o=p.length,u=c.length;function S(P,E){(P+1!==o||E+1!==u)&&s.push(new x.SequenceDiff(new i.OffsetRange(P+1,o),new i.OffsetRange(E+1,u))),o=P,u=E}let L=p.length-1,N=c.length-1;for(;L>=0&&N>=0;)h.get(L,N)===3?(S(L,N),L--,N--):h.get(L,N)===1?L--:N--;return S(-1,-1),s.reverse(),new x.DiffAlgorithmResult(s,!1)}}n.DynamicProgrammingDiffing=d}),X(J[33],Z([0,1,15,5,4,2,16]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinesSliceCharSequence=void 0;class p{constructor(r,s,o){this.lines=r,this.range=s,this.considerWhitespaceChanges=o,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let u=this.range.startLineNumber;u<=this.range.endLineNumber;u++){let S=r[u-1],L=0;u===this.range.startLineNumber&&this.range.startColumn>1&&(L=this.range.startColumn-1,S=S.substring(L)),this.lineStartOffsets.push(L);let N=0;if(!o){const E=S.trimStart();N=S.length-E.length,S=E.trimEnd()}this.trimmedWsLengthsByLineIdx.push(N);const P=u===this.range.endLineNumber?Math.min(this.range.endColumn-1-L-N,S.length):S.length;for(let E=0;EString.fromCharCode(s)).join("")}getElement(r){return this.elements[r]}get length(){return this.elements.length}getBoundaryScore(r){const s=e(r>0?this.elements[r-1]:-1),o=e(rS<=r),u=r-this.firstElementOffsetByLineIdx[o];return new A.Position(this.range.startLineNumber+o,1+this.lineStartOffsets[o]+u+(u===0&&s==="left"?0:this.trimmedWsLengthsByLineIdx[o]))}translateRange(r){const s=this.translateOffset(r.start,"right"),o=this.translateOffset(r.endExclusive,"left");return o.isBefore(s)?d.Range.fromPositions(o,o):d.Range.fromPositions(s,o)}findWordContaining(r){if(r<0||r>=this.elements.length||!c(this.elements[r]))return;let s=r;for(;s>0&&c(this.elements[s-1]);)s--;let o=r;for(;ou<=r.start)??0,o=(0,i.findFirstMonotonous)(this.firstElementOffsetByLineIdx,u=>r.endExclusive<=u)??this.elements.length;return new x.OffsetRange(s,o)}}n.LinesSliceCharSequence=p;function c(h){return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57}const a={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function m(h){return a[h]}function e(h){return h===10?8:h===13?7:(0,f.isSpace)(h)?6:h>=97&&h<=122?0:h>=65&&h<=90?1:h>=48&&h<=57?2:h===-1?3:h===44||h===59?5:4}}),X(J[34],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MovedText=n.LinesDiff=void 0;class i{constructor(d,f,p){this.changes=d,this.moves=f,this.hitTimeout=p}}n.LinesDiff=i;class x{constructor(d,f){this.lineRangeMapping=d,this.changes=f}}n.MovedText=x}),X(J[17],Z([0,1,3,13,4,2,50]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RangeMapping=n.DetailedLineRangeMapping=n.LineRangeMapping=void 0;class p{static inverse(r,s,o){const u=[];let S=1,L=1;for(const P of r){const E=new p(new x.LineRange(S,P.original.startLineNumber),new x.LineRange(L,P.modified.startLineNumber));E.modified.isEmpty||u.push(E),S=P.original.endLineNumberExclusive,L=P.modified.endLineNumberExclusive}const N=new p(new x.LineRange(S,s+1),new x.LineRange(L,o+1));return N.modified.isEmpty||u.push(N),u}static clip(r,s,o){const u=[];for(const S of r){const L=S.original.intersect(s),N=S.modified.intersect(o);L&&!L.isEmpty&&N&&!N.isEmpty&&u.push(new p(L,N))}return u}constructor(r,s){this.original=r,this.modified=s}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new p(this.modified,this.original)}join(r){return new p(this.original.join(r.original),this.modified.join(r.modified))}toRangeMapping(){const r=this.original.toInclusiveRange(),s=this.modified.toInclusiveRange();if(r&&s)return new e(r,s);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new i.BugIndicatingError("not a valid diff");return new e(new d.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new d.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new e(new d.Range(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new d.Range(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(r,s){if(a(this.original.endLineNumberExclusive,r)&&a(this.modified.endLineNumberExclusive,s))return new e(new d.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new d.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new e(d.Range.fromPositions(new A.Position(this.original.startLineNumber,1),c(new A.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),r)),d.Range.fromPositions(new A.Position(this.modified.startLineNumber,1),c(new A.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),s)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new e(d.Range.fromPositions(c(new A.Position(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),r),c(new A.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),r)),d.Range.fromPositions(c(new A.Position(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),s),c(new A.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),s)));throw new i.BugIndicatingError}}n.LineRangeMapping=p;function c(h,r){if(h.lineNumber<1)return new A.Position(1,1);if(h.lineNumber>r.length)return new A.Position(r.length,r[r.length-1].length+1);const s=r[h.lineNumber-1];return h.column>s.length+1?new A.Position(h.lineNumber,s.length+1):h}function a(h,r){return h>=1&&h<=r.length}class m extends p{static fromRangeMappings(r){const s=x.LineRange.join(r.map(u=>x.LineRange.fromRangeInclusive(u.originalRange))),o=x.LineRange.join(r.map(u=>x.LineRange.fromRangeInclusive(u.modifiedRange)));return new m(s,o,r)}constructor(r,s,o){super(r,s),this.innerChanges=o}flip(){return new m(this.modified,this.original,this.innerChanges?.map(r=>r.flip()))}withInnerChangesFromLineRanges(){return new m(this.original,this.modified,[this.toRangeMapping()])}}n.DetailedLineRangeMapping=m;class e{static assertSorted(r){for(let s=1;s${this.modifiedRange.toString()}}`}flip(){return new e(this.modifiedRange,this.originalRange)}toTextEdit(r){const s=r.getValueOfRange(this.modifiedRange);return new f.SingleTextEdit(this.originalRange,s)}}n.RangeMapping=e}),X(J[55],Z([0,1,10,17,7,15,21,13,33,16,32,2]),function(W,n,i,x,A,d,f,p,c,a,m,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.computeMovedLines=h;function h(N,P,E,v,l,b){let{moves:g,excludedChanges:w}=s(N,P,E,b);if(!b.isValid())return[];const M=N.filter(_=>!w.has(_)),y=o(M,v,l,P,E,b);return(0,A.pushMany)(g,y),g=S(g),g=g.filter(_=>{const C=_.original.toOffsetRange().slice(P).map(D=>D.trim());return C.join(` -`).length>=15&&r(C,D=>D.length>=2)>=2}),g=L(N,g),g}function r(N,P){let E=0;for(const v of N)P(v)&&E++;return E}function s(N,P,E,v){const l=[],b=N.filter(M=>M.modified.isEmpty&&M.original.length>=3).map(M=>new a.LineRangeFragment(M.original,P,M)),g=new Set(N.filter(M=>M.original.isEmpty&&M.modified.length>=3).map(M=>new a.LineRangeFragment(M.modified,E,M))),w=new Set;for(const M of b){let y=-1,_;for(const C of g){const R=M.computeSimilarity(C);R>y&&(y=R,_=C)}if(y>.9&&_&&(g.delete(_),l.push(new x.LineRangeMapping(M.range,_.range)),w.add(M.source),w.add(_.source)),!v.isValid())return{moves:l,excludedChanges:w}}return{moves:l,excludedChanges:w}}function o(N,P,E,v,l,b){const g=[],w=new f.SetMap;for(const R of N)for(let D=R.original.startLineNumber;DR.modified.startLineNumber,A.numberComparator));for(const R of N){let D=[];for(let T=R.modified.startLineNumber;T{for(const B of D)if(B.originalLineRange.endLineNumberExclusive+1===F.endLineNumberExclusive&&B.modifiedLineRange.endLineNumberExclusive+1===z.endLineNumberExclusive){B.originalLineRange=new p.LineRange(B.originalLineRange.startLineNumber,F.endLineNumberExclusive),B.modifiedLineRange=new p.LineRange(B.modifiedLineRange.startLineNumber,z.endLineNumberExclusive),j.push(B);return}const q={modifiedLineRange:z,originalLineRange:F};M.push(q),j.push(q)}),D=j}if(!b.isValid())return[]}M.sort((0,A.reverseOrder)((0,A.compareBy)(R=>R.modifiedLineRange.length,A.numberComparator)));const y=new p.LineRangeSet,_=new p.LineRangeSet;for(const R of M){const D=R.modifiedLineRange.startLineNumber-R.originalLineRange.startLineNumber,T=y.subtractFrom(R.modifiedLineRange),O=_.subtractFrom(R.originalLineRange).getWithDelta(D),z=T.getIntersection(O);for(const j of z.ranges){if(j.length<3)continue;const F=j,q=j.delta(-D);g.push(new x.LineRangeMapping(q,F)),y.addRange(F),_.addRange(q)}}g.sort((0,A.compareBy)(R=>R.original.startLineNumber,A.numberComparator));const C=new d.MonotonousArray(N);for(let R=0;R$.original.startLineNumber<=D.original.startLineNumber),O=(0,d.findLastMonotonous)(N,$=>$.modified.startLineNumber<=D.modified.startLineNumber),z=Math.max(D.original.startLineNumber-T.original.startLineNumber,D.modified.startLineNumber-O.modified.startLineNumber),j=C.findLastMonotonous($=>$.original.startLineNumber$.modified.startLineNumberv.length||U>l.length||y.contains(U)||_.contains($)||!u(v[$-1],l[U-1],b))break}B>0&&(_.addRange(new p.LineRange(D.original.startLineNumber-B,D.original.startLineNumber)),y.addRange(new p.LineRange(D.modified.startLineNumber-B,D.modified.startLineNumber)));let G;for(G=0;Gv.length||U>l.length||y.contains(U)||_.contains($)||!u(v[$-1],l[U-1],b))break}G>0&&(_.addRange(new p.LineRange(D.original.endLineNumberExclusive,D.original.endLineNumberExclusive+G)),y.addRange(new p.LineRange(D.modified.endLineNumberExclusive,D.modified.endLineNumberExclusive+G))),(B>0||G>0)&&(g[R]=new x.LineRangeMapping(new p.LineRange(D.original.startLineNumber-B,D.original.endLineNumberExclusive+G),new p.LineRange(D.modified.startLineNumber-B,D.modified.endLineNumberExclusive+G)))}return g}function u(N,P,E){if(N.trim()===P.trim())return!0;if(N.length>300&&P.length>300)return!1;const l=new m.MyersDiffAlgorithm().compute(new c.LinesSliceCharSequence([N],new e.Range(1,1,1,N.length),!1),new c.LinesSliceCharSequence([P],new e.Range(1,1,1,P.length),!1),E);let b=0;const g=i.SequenceDiff.invert(l.diffs,N.length);for(const _ of g)_.seq1Range.forEach(C=>{(0,a.isSpace)(N.charCodeAt(C))||b++});function w(_){let C=0;for(let R=0;RP.length?N:P);return b/M>.6&&M>10}function S(N){if(N.length===0)return N;N.sort((0,A.compareBy)(E=>E.original.startLineNumber,A.numberComparator));const P=[N[0]];for(let E=1;E=0&&g>=0&&b+g<=2){P[P.length-1]=v.join(l);continue}P.push(l)}return P}function L(N,P){const E=new d.MonotonousArray(N);return P=P.filter(v=>{const l=E.findLastMonotonous(w=>w.original.startLineNumberw.modified.startLineNumber$===U))return new s.LinesDiff([],[],!1);if(E.length===1&&E[0].length===0||v.length===1&&v[0].length===0)return new s.LinesDiff([new o.DetailedLineRangeMapping(new A.LineRange(1,E.length+1),new A.LineRange(1,v.length+1),[new o.RangeMapping(new f.Range(1,1,E.length,E[E.length-1].length+1),new f.Range(1,1,v.length,v[v.length-1].length+1))])],[],!1);const b=l.maxComputationTimeMs===0?p.InfiniteTimeout.instance:new p.DateTimeout(l.maxComputationTimeMs),g=!l.ignoreTrimWhitespace,w=new Map;function M($){let U=w.get($);return U===void 0&&(U=w.size,w.set($,U)),U}const y=E.map($=>M($.trim())),_=v.map($=>M($.trim())),C=new h.LineSequence(y,E),R=new h.LineSequence(_,v),D=C.length+R.length<1700?this.dynamicProgrammingDiffing.compute(C,R,b,($,U)=>E[$]===v[U]?v[U].length===0?.1:1+Math.log(1+v[U].length):.99):this.myersDiffingAlgorithm.compute(C,R,b);let T=D.diffs,O=D.hitTimeout;T=(0,e.optimizeSequenceDiffs)(C,R,T),T=(0,e.removeVeryShortMatchingLinesBetweenDiffs)(C,R,T);const z=[],j=$=>{if(g)for(let U=0;U<$;U++){const ee=F+U,re=q+U;if(E[ee]!==v[re]){const ue=this.refineDiff(E,v,new p.SequenceDiff(new d.OffsetRange(ee,ee+1),new d.OffsetRange(re,re+1)),b,g);for(const de of ue.mappings)z.push(de);ue.hitTimeout&&(O=!0)}}};let F=0,q=0;for(const $ of T){(0,x.assertFn)(()=>$.seq1Range.start-F===$.seq2Range.start-q);const U=$.seq1Range.start-F;j(U),F=$.seq1Range.endExclusive,q=$.seq2Range.endExclusive;const ee=this.refineDiff(E,v,$,b,g);ee.hitTimeout&&(O=!0);for(const re of ee.mappings)z.push(re)}j(E.length-F);const B=S(z,E,v);let G=[];return l.computeMoves&&(G=this.computeMoves(B,E,v,y,_,b,g)),(0,x.assertFn)(()=>{function $(ee,re){if(ee.lineNumber<1||ee.lineNumber>re.length)return!1;const ue=re[ee.lineNumber-1];return!(ee.column<1||ee.column>ue.length+1)}function U(ee,re){return!(ee.startLineNumber<1||ee.startLineNumber>re.length+1||ee.endLineNumberExclusive<1||ee.endLineNumberExclusive>re.length+1)}for(const ee of B){if(!ee.innerChanges)return!1;for(const re of ee.innerChanges)if(!($(re.modifiedRange.getStartPosition(),v)&&$(re.modifiedRange.getEndPosition(),v)&&$(re.originalRange.getStartPosition(),E)&&$(re.originalRange.getEndPosition(),E)))return!1;if(!U(ee.modified,v)||!U(ee.original,E))return!1}return!0}),new s.LinesDiff(B,G,O)}computeMoves(E,v,l,b,g,w,M){return(0,m.computeMovedLines)(E,v,l,b,g,w).map(C=>{const R=this.refineDiff(v,l,new p.SequenceDiff(C.original.toOffsetRange(),C.modified.toOffsetRange()),w,M),D=S(R.mappings,v,l,!0);return new s.MovedText(C,D)})}refineDiff(E,v,l,b,g){const M=N(l).toRangeMapping2(E,v),y=new r.LinesSliceCharSequence(E,M.originalRange,g),_=new r.LinesSliceCharSequence(v,M.modifiedRange,g),C=y.length+_.length<500?this.dynamicProgrammingDiffing.compute(y,_,b):this.myersDiffingAlgorithm.compute(y,_,b),R=!1;let D=C.diffs;R&&p.SequenceDiff.assertSorted(D),D=(0,e.optimizeSequenceDiffs)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.extendDiffsToEntireWordIfAppropriate)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.removeShortMatches)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.removeVeryShortMatchingTextBetweenLongDiffs)(y,_,D),R&&p.SequenceDiff.assertSorted(D);const T=D.map(O=>new o.RangeMapping(y.translateRange(O.seq1Range),_.translateRange(O.seq2Range)));return R&&o.RangeMapping.assertSorted(T),{mappings:T,hitTimeout:C.hitTimeout}}}n.DefaultLinesDiffComputer=u;function S(P,E,v,l=!1){const b=[];for(const g of(0,i.groupAdjacentBy)(P.map(w=>L(w,E,v)),(w,M)=>w.original.overlapOrTouch(M.original)||w.modified.overlapOrTouch(M.modified))){const w=g[0],M=g[g.length-1];b.push(new o.DetailedLineRangeMapping(w.original.join(M.original),w.modified.join(M.modified),g.map(y=>y.innerChanges[0])))}return(0,x.assertFn)(()=>!l&&b.length>0&&(b[0].modified.startLineNumber!==b[0].original.startLineNumber||v.length-b[b.length-1].modified.endLineNumberExclusive!==E.length-b[b.length-1].original.endLineNumberExclusive)?!1:(0,x.checkAdjacentItems)(b,(g,w)=>w.original.startLineNumber-g.original.endLineNumberExclusive===w.modified.startLineNumber-g.modified.endLineNumberExclusive&&g.original.endLineNumberExclusive=v[P.modifiedRange.startLineNumber-1].length&&P.originalRange.startColumn-1>=E[P.originalRange.startLineNumber-1].length&&P.originalRange.startLineNumber<=P.originalRange.endLineNumber+b&&P.modifiedRange.startLineNumber<=P.modifiedRange.endLineNumber+b&&(l=1);const g=new A.LineRange(P.originalRange.startLineNumber+l,P.originalRange.endLineNumber+1+b),w=new A.LineRange(P.modifiedRange.startLineNumber+l,P.modifiedRange.endLineNumber+1+b);return new o.DetailedLineRangeMapping(g,w,[P])}function N(P){return new o.LineRangeMapping(new A.LineRange(P.seq1Range.start+1,P.seq1Range.endExclusive+1),new A.LineRange(P.seq2Range.start+1,P.seq2Range.endExclusive+1))}}),X(J[57],Z([0,1,24,34,17,6,2,12,13]),function(W,n,i,x,A,d,f,p,c){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DiffComputer=n.LegacyLinesDiffComputer=void 0;const a=3;class m{computeDiff(v,l,b){const w=new S(v,l,{maxComputationTime:b.maxComputationTimeMs,shouldIgnoreTrimWhitespace:b.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),M=[];let y=null;for(const _ of w.changes){let C;_.originalEndLineNumber===0?C=new c.LineRange(_.originalStartLineNumber+1,_.originalStartLineNumber+1):C=new c.LineRange(_.originalStartLineNumber,_.originalEndLineNumber+1);let R;_.modifiedEndLineNumber===0?R=new c.LineRange(_.modifiedStartLineNumber+1,_.modifiedStartLineNumber+1):R=new c.LineRange(_.modifiedStartLineNumber,_.modifiedEndLineNumber+1);let D=new A.DetailedLineRangeMapping(C,R,_.charChanges?.map(T=>new A.RangeMapping(new f.Range(T.originalStartLineNumber,T.originalStartColumn,T.originalEndLineNumber,T.originalEndColumn),new f.Range(T.modifiedStartLineNumber,T.modifiedStartColumn,T.modifiedEndLineNumber,T.modifiedEndColumn))));y&&(y.modified.endLineNumberExclusive===D.modified.startLineNumber||y.original.endLineNumberExclusive===D.original.startLineNumber)&&(D=new A.DetailedLineRangeMapping(y.original.join(D.original),y.modified.join(D.modified),y.innerChanges&&D.innerChanges?y.innerChanges.concat(D.innerChanges):void 0),M.pop()),M.push(D),y=D}return(0,p.assertFn)(()=>(0,p.checkAdjacentItems)(M,(_,C)=>C.original.startLineNumber-_.original.endLineNumberExclusive===C.modified.startLineNumber-_.modified.endLineNumberExclusive&&_.original.endLineNumberExclusive(v===10?"\\n":String.fromCharCode(v))+`-(${this._lineNumbers[l]},${this._columns[l]})`).join(", ")+"]"}_assertIndex(v,l){if(v<0||v>=l.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(v){return v>0&&v===this._lineNumbers.length?this.getEndLineNumber(v-1):(this._assertIndex(v,this._lineNumbers),this._lineNumbers[v])}getEndLineNumber(v){return v===-1?this.getStartLineNumber(v+1):(this._assertIndex(v,this._lineNumbers),this._charCodes[v]===10?this._lineNumbers[v]+1:this._lineNumbers[v])}getStartColumn(v){return v>0&&v===this._columns.length?this.getEndColumn(v-1):(this._assertIndex(v,this._columns),this._columns[v])}getEndColumn(v){return v===-1?this.getStartColumn(v+1):(this._assertIndex(v,this._columns),this._charCodes[v]===10?1:this._columns[v]+1)}}class s{constructor(v,l,b,g,w,M,y,_){this.originalStartLineNumber=v,this.originalStartColumn=l,this.originalEndLineNumber=b,this.originalEndColumn=g,this.modifiedStartLineNumber=w,this.modifiedStartColumn=M,this.modifiedEndLineNumber=y,this.modifiedEndColumn=_}static createFromDiffChange(v,l,b){const g=l.getStartLineNumber(v.originalStart),w=l.getStartColumn(v.originalStart),M=l.getEndLineNumber(v.originalStart+v.originalLength-1),y=l.getEndColumn(v.originalStart+v.originalLength-1),_=b.getStartLineNumber(v.modifiedStart),C=b.getStartColumn(v.modifiedStart),R=b.getEndLineNumber(v.modifiedStart+v.modifiedLength-1),D=b.getEndColumn(v.modifiedStart+v.modifiedLength-1);return new s(g,w,M,y,_,C,R,D)}}function o(E){if(E.length<=1)return E;const v=[E[0]];let l=v[0];for(let b=1,g=E.length;b0&&l.originalLength<20&&l.modifiedLength>0&&l.modifiedLength<20&&w()){const O=b.createCharSequence(v,l.originalStart,l.originalStart+l.originalLength-1),z=g.createCharSequence(v,l.modifiedStart,l.modifiedStart+l.modifiedLength-1);if(O.getElements().length>0&&z.getElements().length>0){let j=e(O,z,w,!0).changes;y&&(j=o(j)),T=[];for(let F=0,q=j.length;F1&&j>1;){const F=T.charCodeAt(z-2),q=O.charCodeAt(j-2);if(F!==q)break;z--,j--}(z>1||j>1)&&this._pushTrimWhitespaceCharChange(g,w+1,1,z,M+1,1,j)}{let z=N(T,1),j=N(O,1);const F=T.length+1,q=O.length+1;for(;z!0;const v=Date.now();return()=>Date.now()-vnew i.LegacyLinesDiffComputer,getDefault:()=>new x.DefaultLinesDiffComputer}}),X(J[59],Z([0,1,40]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.computeDefaultDocumentColors=e;function x(h){const r=[];for(const s of h){const o=Number(s);(o||o===0&&s.replace(/\s/g,"")!=="")&&r.push(o)}return r}function A(h,r,s,o){return{red:h/255,blue:s/255,green:r/255,alpha:o}}function d(h,r){const s=r.index,o=r[0].length;if(!s)return;const u=h.positionAt(s);return{startLineNumber:u.lineNumber,startColumn:u.column,endLineNumber:u.lineNumber,endColumn:u.column+o}}function f(h,r){if(!h)return;const s=i.Color.Format.CSS.parseHex(r);if(s)return{range:h,color:A(s.rgba.r,s.rgba.g,s.rgba.b,s.rgba.a)}}function p(h,r,s){if(!h||r.length!==1)return;const u=r[0].values(),S=x(u);return{range:h,color:A(S[0],S[1],S[2],s?S[3]:1)}}function c(h,r,s){if(!h||r.length!==1)return;const u=r[0].values(),S=x(u),L=new i.Color(new i.HSLA(S[0],S[1]/100,S[2]/100,s?S[3]:1));return{range:h,color:A(L.rgba.r,L.rgba.g,L.rgba.b,L.rgba.a)}}function a(h,r){return typeof h=="string"?[...h.matchAll(r)]:h.findMatches(r)}function m(h){const r=[],o=a(h,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(o.length>0)for(const u of o){const S=u.filter(E=>E!==void 0),L=S[1],N=S[2];if(!N)continue;let P;if(L==="rgb"){const E=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;P=p(d(h,u),a(N,E),!1)}else if(L==="rgba"){const E=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;P=p(d(h,u),a(N,E),!0)}else if(L==="hsl"){const E=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;P=c(d(h,u),a(N,E),!1)}else if(L==="hsla"){const E=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;P=c(d(h,u),a(N,E),!0)}else L==="#"&&(P=f(d(h,u),L+N));P&&r.push(P)}return r}function e(h){return!h||typeof h.getValue!="function"||typeof h.positionAt!="function"?[]:m(h)}}),X(J[60],Z([0,1,29]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinkComputer=n.StateMachine=void 0,n.computeLinks=m;class x{constructor(h,r,s){const o=new Uint8Array(h*r);for(let u=0,S=h*r;ur&&(r=N),L>s&&(s=L),P>s&&(s=P)}r++,s++;const o=new x(s,r,0);for(let u=0,S=h.length;u=this._maxCharCode?0:this._states.get(h,r)}}n.StateMachine=A;let d=null;function f(){return d===null&&(d=new A([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),d}let p=null;function c(){if(p===null){p=new i.CharacterClassifier(0);const e=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let r=0;ro);if(o>0){const L=r.charCodeAt(o-1),N=r.charCodeAt(S);(L===40&&N===41||L===91&&N===93||L===123&&N===125)&&S--}return{range:{startLineNumber:s,startColumn:o+1,endLineNumber:s,endColumn:S+2},url:r.substring(o,S+1)}}static computeLinks(h,r=f()){const s=c(),o=[];for(let u=1,S=h.getLineCount();u<=S;u++){const L=h.getLineContent(u),N=L.length;let P=0,E=0,v=0,l=1,b=!1,g=!1,w=!1,M=!1;for(;P=0?(p+=f?1:-1,p<0?p=A.length-1:p%=A.length,A[p]):null}}n.BasicInplaceReplace=i}),X(J[62],Z([0,1,27]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ApplyEditsResult=n.SearchData=n.ValidAnnotatedEditOperation=n.FindMatch=n.TextModelResolvedOptions=n.InjectedTextCursorStops=n.GlyphMarginLane=n.OverviewRulerLane=void 0,n.isITextSnapshot=c,n.shouldSynchronizeModel=h;var x;(function(r){r[r.Left=1]="Left",r[r.Center=2]="Center",r[r.Right=4]="Right",r[r.Full=7]="Full"})(x||(n.OverviewRulerLane=x={}));var A;(function(r){r[r.Left=1]="Left",r[r.Center=2]="Center",r[r.Right=3]="Right"})(A||(n.GlyphMarginLane=A={}));var d;(function(r){r[r.Both=0]="Both",r[r.Right=1]="Right",r[r.Left=2]="Left",r[r.None=3]="None"})(d||(n.InjectedTextCursorStops=d={}));class f{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(s){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,s.tabSize|0),s.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,s.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!s.insertSpaces,this.defaultEOL=s.defaultEOL|0,this.trimAutoWhitespace=!!s.trimAutoWhitespace,this.bracketPairColorizationOptions=s.bracketPairColorizationOptions}equals(s){return this.tabSize===s.tabSize&&this._indentSizeIsTabSize===s._indentSizeIsTabSize&&this.indentSize===s.indentSize&&this.insertSpaces===s.insertSpaces&&this.defaultEOL===s.defaultEOL&&this.trimAutoWhitespace===s.trimAutoWhitespace&&(0,i.equals)(this.bracketPairColorizationOptions,s.bracketPairColorizationOptions)}createChangeEvent(s){return{tabSize:this.tabSize!==s.tabSize,indentSize:this.indentSize!==s.indentSize,insertSpaces:this.insertSpaces!==s.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==s.trimAutoWhitespace}}}n.TextModelResolvedOptions=f;class p{constructor(s,o){this._findMatchBrand=void 0,this.range=s,this.matches=o}}n.FindMatch=p;function c(r){return r&&typeof r.read=="function"}class a{constructor(s,o,u,S,L,N){this.identifier=s,this.range=o,this.text=u,this.forceMoveMarkers=S,this.isAutoWhitespaceEdit=L,this._isTracked=N}}n.ValidAnnotatedEditOperation=a;class m{constructor(s,o,u){this.regex=s,this.wordSeparators=o,this.simpleSearch=u}}n.SearchData=m;class e{constructor(s,o,u){this.reverseEdits=s,this.changes=o,this.trimAutoWhitespaceLineNumbers=u}}n.ApplyEditsResult=e;function h(r){return!r.isTooLargeForSyncing()&&!r.isForSimpleWidget}}),X(J[63],Z([0,1,7,28]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PrefixSumIndexOfResult=n.ConstantTimePrefixSumComputer=n.PrefixSumComputer=void 0;class A{constructor(c){this.values=c,this.prefixSum=new Uint32Array(c.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(c,a){c=(0,x.toUint32)(c);const m=this.values,e=this.prefixSum,h=a.length;return h===0?!1:(this.values=new Uint32Array(m.length+h),this.values.set(m.subarray(0,c),0),this.values.set(m.subarray(c),c+h),this.values.set(a,c),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(c,a){return c=(0,x.toUint32)(c),a=(0,x.toUint32)(a),this.values[c]===a?!1:(this.values[c]=a,c-1=m.length)return!1;const h=m.length-c;return a>=h&&(a=h),a===0?!1:(this.values=new Uint32Array(m.length-a),this.values.set(m.subarray(0,c),0),this.values.set(m.subarray(c+a),c),this.prefixSum=new Uint32Array(this.values.length),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(c){return c<0?0:(c=(0,x.toUint32)(c),this._getPrefixSum(c))}_getPrefixSum(c){if(c<=this.prefixSumValidIndex[0])return this.prefixSum[c];let a=this.prefixSumValidIndex[0]+1;a===0&&(this.prefixSum[0]=this.values[0],a++),c>=this.values.length&&(c=this.values.length-1);for(let m=a;m<=c;m++)this.prefixSum[m]=this.prefixSum[m-1]+this.values[m];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],c),this.prefixSum[c]}getIndexOf(c){c=Math.floor(c),this.getTotalSum();let a=0,m=this.values.length-1,e=0,h=0,r=0;for(;a<=m;)if(e=a+(m-a)/2|0,h=this.prefixSum[e],r=h-this.values[e],c=h)a=e+1;else break;return new f(e,c-r)}}n.PrefixSumComputer=A;class d{constructor(c){this._values=c,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(c){return this._ensureValid(),c===0?0:this._prefixSum[c-1]}getIndexOf(c){this._ensureValid();const a=this._indexBySum[c],m=a>0?this._prefixSum[a-1]:0;return new f(a,c-m)}removeValues(c,a){this._values.splice(c,a),this._invalidate(c)}insertValues(c,a){this._values=(0,i.arrayInsert)(this._values,c,a),this._invalidate(c)}_invalidate(c){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,c-1)}_ensureValid(){if(!this._isValid){for(let c=this._validEndIndex+1,a=this._values.length;c0?this._prefixSum[c-1]:0;this._prefixSum[c]=e+m;for(let h=0;h=0;let N=null;try{N=i.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:L,global:!0,unicode:!0})}catch{return null}if(!N)return null;let P=!this.isRegex&&!L;return P&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(P=this.matchCase),new f.SearchData(N,this.wordSeparators?(0,x.getMapForWordSeparators)(this.wordSeparators,[]):null,P?this.searchString:null)}}n.SearchParams=c;function a(S){if(!S||S.length===0)return!1;for(let L=0,N=S.length;L=N)break;const E=S.charCodeAt(L);if(E===110||E===114||E===87)return!0}}return!1}function m(S,L,N){if(!N)return new f.FindMatch(S,null);const P=[];for(let E=0,v=L.length;E>0);N[v]>=L?E=v-1:N[v+1]>=L?(P=v,E=v):P=v+1}return P+1}}class h{static findMatches(L,N,P,E,v){const l=N.parseSearchRequest();return l?l.regex.multiline?this._doFindMatchesMultiline(L,P,new u(l.wordSeparators,l.regex),E,v):this._doFindMatchesLineByLine(L,P,l,E,v):[]}static _getMultilineMatchRange(L,N,P,E,v,l){let b,g=0;E?(g=E.findLineFeedCountBeforeOffset(v),b=N+v+g):b=N+v;let w;if(E){const C=E.findLineFeedCountBeforeOffset(v+l.length)-g;w=b+l.length+C}else w=b+l.length;const M=L.getPositionAt(b),y=L.getPositionAt(w);return new d.Range(M.lineNumber,M.column,y.lineNumber,y.column)}static _doFindMatchesMultiline(L,N,P,E,v){const l=L.getOffsetAt(N.getStartPosition()),b=L.getValueInRange(N,1),g=L.getEOL()===`\r -`?new e(b):null,w=[];let M=0,y;for(P.reset(0);y=P.next(b);)if(w[M++]=m(this._getMultilineMatchRange(L,l,b,g,y.index,y[0]),y,E),M>=v)return w;return w}static _doFindMatchesLineByLine(L,N,P,E,v){const l=[];let b=0;if(N.startLineNumber===N.endLineNumber){const w=L.getLineContent(N.startLineNumber).substring(N.startColumn-1,N.endColumn-1);return b=this._findMatchesInLine(P,w,N.startLineNumber,N.startColumn-1,b,l,E,v),l}const g=L.getLineContent(N.startLineNumber).substring(N.startColumn-1);b=this._findMatchesInLine(P,g,N.startLineNumber,N.startColumn-1,b,l,E,v);for(let w=N.startLineNumber+1;w=g))return v;return v}const M=new u(L.wordSeparators,L.regex);let y;M.reset(0);do if(y=M.next(N),y&&(l[v++]=m(new d.Range(P,y.index+1+E,P,y.index+1+y[0].length+E),y,b),v>=g))return v;while(y);return v}static findNextMatch(L,N,P,E){const v=N.parseSearchRequest();if(!v)return null;const l=new u(v.wordSeparators,v.regex);return v.regex.multiline?this._doFindNextMatchMultiline(L,P,l,E):this._doFindNextMatchLineByLine(L,P,l,E)}static _doFindNextMatchMultiline(L,N,P,E){const v=new A.Position(N.lineNumber,1),l=L.getOffsetAt(v),b=L.getLineCount(),g=L.getValueInRange(new d.Range(v.lineNumber,v.column,b,L.getLineMaxColumn(b)),1),w=L.getEOL()===`\r -`?new e(g):null;P.reset(N.column-1);const M=P.next(g);return M?m(this._getMultilineMatchRange(L,l,g,w,M.index,M[0]),M,E):N.lineNumber!==1||N.column!==1?this._doFindNextMatchMultiline(L,new A.Position(1,1),P,E):null}static _doFindNextMatchLineByLine(L,N,P,E){const v=L.getLineCount(),l=N.lineNumber,b=L.getLineContent(l),g=this._findFirstMatchInLine(P,b,l,N.column,E);if(g)return g;for(let w=1;w<=v;w++){const M=(l+w-1)%v,y=L.getLineContent(M+1),_=this._findFirstMatchInLine(P,y,M+1,1,E);if(_)return _}return null}static _findFirstMatchInLine(L,N,P,E,v){L.reset(E-1);const l=L.next(N);return l?m(new d.Range(P,l.index+1,P,l.index+1+l[0].length),l,v):null}static findPreviousMatch(L,N,P,E){const v=N.parseSearchRequest();if(!v)return null;const l=new u(v.wordSeparators,v.regex);return v.regex.multiline?this._doFindPreviousMatchMultiline(L,P,l,E):this._doFindPreviousMatchLineByLine(L,P,l,E)}static _doFindPreviousMatchMultiline(L,N,P,E){const v=this._doFindMatchesMultiline(L,new d.Range(1,1,N.lineNumber,N.column),P,E,10*p);if(v.length>0)return v[v.length-1];const l=L.getLineCount();return N.lineNumber!==l||N.column!==L.getLineMaxColumn(l)?this._doFindPreviousMatchMultiline(L,new A.Position(l,L.getLineMaxColumn(l)),P,E):null}static _doFindPreviousMatchLineByLine(L,N,P,E){const v=L.getLineCount(),l=N.lineNumber,b=L.getLineContent(l).substring(0,N.column-1),g=this._findLastMatchInLine(P,b,l,E);if(g)return g;for(let w=1;w<=v;w++){const M=(v+l-w-1)%v,y=L.getLineContent(M+1),_=this._findLastMatchInLine(P,y,M+1,E);if(_)return _}return null}static _findLastMatchInLine(L,N,P,E){let v=null,l;for(L.reset(0);l=L.next(N);)v=m(new d.Range(P,l.index+1,P,l.index+1+l[0].length),l,E);return v}}n.TextModelSearch=h;function r(S,L,N,P,E){if(P===0)return!0;const v=L.charCodeAt(P-1);if(S.get(v)!==0||v===13||v===10)return!0;if(E>0){const l=L.charCodeAt(P);if(S.get(l)!==0)return!0}return!1}function s(S,L,N,P,E){if(P+E===N)return!0;const v=L.charCodeAt(P+E);if(S.get(v)!==0||v===13||v===10)return!0;if(E>0){const l=L.charCodeAt(P+E-1);if(S.get(l)!==0)return!0}return!1}function o(S,L,N,P,E){return r(S,L,N,P,E)&&s(S,L,N,P,E)}class u{constructor(L,N){this._wordSeparators=L,this._searchRegex=N,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(L){this._searchRegex.lastIndex=L,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(L){const N=L.length;let P;do{if(this._prevMatchStartIndex+this._prevMatchLength===N||(P=this._searchRegex.exec(L),!P))return null;const E=P.index,v=P[0].length;if(E===this._prevMatchStartIndex&&v===this._prevMatchLength){if(v===0){i.getNextCodePoint(L,N,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=E,this._prevMatchLength=v,!this._wordSeparators||o(this._wordSeparators,L,N,E,v))return P}while(P);return null}}n.Searcher=u}),X(J[66],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EditorWorkerHost=void 0;class i{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(A){return A.getChannel(i.CHANNEL_NAME)}static setChannel(A,d){A.setChannel(i.CHANNEL_NAME,d)}}n.EditorWorkerHost=i}),X(J[67],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.findSectionHeaders=A;const i=new RegExp("\\bMARK:\\s*(.*)$","d"),x=/^-+|-+$/g;function A(a,m){let e=[];if(m.findRegionSectionHeaders&&m.foldingRules?.markers){const h=d(a,m);e=e.concat(h)}if(m.findMarkSectionHeaders){const h=f(a);e=e.concat(h)}return e}function d(a,m){const e=[],h=a.getLineCount();for(let r=1;r<=h;r++){const s=a.getLineContent(r),o=s.match(m.foldingRules.markers.start);if(o){const u={startLineNumber:r,startColumn:o[0].length+1,endLineNumber:r,endColumn:s.length+1};if(u.endColumn>u.startColumn){const S={range:u,...c(s.substring(o[0].length)),shouldBeInComments:!1};(S.text||S.hasSeparatorLine)&&e.push(S)}}}return e}function f(a){const m=[],e=a.getLineCount();for(let h=1;h<=e;h++){const r=a.getLineContent(h);p(r,h,m)}return m}function p(a,m,e){i.lastIndex=0;const h=i.exec(a);if(h){const r=h.indices[1][0]+1,s=h.indices[1][1]+1,o={startLineNumber:m,startColumn:r,endLineNumber:m,endColumn:s};if(o.endColumn>o.startColumn){const u={range:o,...c(h[1]),shouldBeInComments:!0};(u.text||u.hasSeparatorLine)&&e.push(u)}}}function c(a){a=a.trim();const m=a.startsWith("-");return a=a.replace(x,""),{text:a,hasSeparatorLine:m}}}),X(J[68],Z([0,1,2,65,6,12,31]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.UnicodeTextModelHighlighter=void 0;class p{static computeUnicodeHighlights(h,r,s){const o=s?s.startLineNumber:1,u=s?s.endLineNumber:h.getLineCount(),S=new a(r),L=S.getCandidateCodePoints();let N;L==="allNonBasicAscii"?N=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):N=new RegExp(`${c(Array.from(L))}`,"g");const P=new x.Searcher(null,N),E=[];let v=!1,l,b=0,g=0,w=0;e:for(let M=o,y=u;M<=y;M++){const _=h.getLineContent(M),C=_.length;P.reset(0);do if(l=P.next(_),l){let R=l.index,D=l.index+l[0].length;if(R>0){const j=_.charCodeAt(R-1);A.isHighSurrogate(j)&&R--}if(D+1=1e3){v=!0;break e}E.push(new i.Range(M,R+1,M,D+1))}}while(l)}return{ranges:E,hasMore:v,ambiguousCharacterCount:b,invisibleCharacterCount:g,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(h,r){const s=new a(r);switch(s.shouldHighlightNonBasicASCII(h,null)){case 0:return null;case 2:return{kind:1};case 3:{const u=h.codePointAt(0),S=s.ambiguousCharacters.getPrimaryConfusable(u),L=A.AmbiguousCharacters.getLocales().filter(N=>!A.AmbiguousCharacters.getInstance(new Set([...r.allowedLocales,N])).isAmbiguous(u));return{kind:0,confusableWith:String.fromCodePoint(S),notAmbiguousInLocales:L}}case 1:return{kind:2}}}}n.UnicodeTextModelHighlighter=p;function c(e,h){return`[${A.escapeRegExpCharacters(e.map(s=>String.fromCodePoint(s)).join(""))}]`}class a{constructor(h){this.options=h,this.allowedCodePoints=new Set(h.allowedCodePoints),this.ambiguousCharacters=A.AmbiguousCharacters.getInstance(new Set(h.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const h=new Set;if(this.options.invisibleCharacters)for(const r of A.InvisibleCharacters.codePoints)m(String.fromCodePoint(r))||h.add(r);if(this.options.ambiguousCharacters)for(const r of this.ambiguousCharacters.getConfusableCodePoints())h.add(r);for(const r of this.allowedCodePoints)h.delete(r);return h}shouldHighlightNonBasicASCII(h,r){const s=h.codePointAt(0);if(this.allowedCodePoints.has(s))return 0;if(this.options.nonBasicASCII)return 1;let o=!1,u=!1;if(r)for(const S of r){const L=S.codePointAt(0),N=A.isBasicASCII(S);o=o||N,!N&&!this.ambiguousCharacters.isAmbiguous(L)&&!A.InvisibleCharacters.isInvisibleCharacter(L)&&(u=!0)}return!o&&u?0:this.options.invisibleCharacters&&!m(h)&&A.InvisibleCharacters.isInvisibleCharacter(s)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(s)?3:0}}function m(e){return e===" "||e===` -`||e===" "}}),X(J[69],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.WrappingIndent=n.TrackedRangeStickiness=n.TextEditorCursorStyle=n.TextEditorCursorBlinkingStyle=n.SymbolTag=n.SymbolKind=n.SignatureHelpTriggerKind=n.ShowLightbulbIconMode=n.SelectionDirection=n.ScrollbarVisibility=n.ScrollType=n.RenderMinimap=n.RenderLineNumbersType=n.PositionAffinity=n.PartialAcceptTriggerKind=n.OverviewRulerLane=n.OverlayWidgetPositionPreference=n.NewSymbolNameTriggerKind=n.NewSymbolNameTag=n.MouseTargetType=n.MinimapSectionHeaderStyle=n.MinimapPosition=n.MarkerTag=n.MarkerSeverity=n.KeyCode=n.InlineEditTriggerKind=n.InlineCompletionTriggerKind=n.InlayHintKind=n.InjectedTextCursorStops=n.IndentAction=n.HoverVerbosityAction=n.GlyphMarginLane=n.EndOfLineSequence=n.EndOfLinePreference=n.EditorOption=n.EditorAutoIndentStrategy=n.DocumentHighlightKind=n.DefaultEndOfLine=n.CursorChangeReason=n.ContentWidgetPositionPreference=n.CompletionTriggerKind=n.CompletionItemTag=n.CompletionItemKind=n.CompletionItemInsertTextRule=n.CodeActionTriggerType=n.AccessibilitySupport=void 0;var i;(function(t){t[t.Unknown=0]="Unknown",t[t.Disabled=1]="Disabled",t[t.Enabled=2]="Enabled"})(i||(n.AccessibilitySupport=i={}));var x;(function(t){t[t.Invoke=1]="Invoke",t[t.Auto=2]="Auto"})(x||(n.CodeActionTriggerType=x={}));var A;(function(t){t[t.None=0]="None",t[t.KeepWhitespace=1]="KeepWhitespace",t[t.InsertAsSnippet=4]="InsertAsSnippet"})(A||(n.CompletionItemInsertTextRule=A={}));var d;(function(t){t[t.Method=0]="Method",t[t.Function=1]="Function",t[t.Constructor=2]="Constructor",t[t.Field=3]="Field",t[t.Variable=4]="Variable",t[t.Class=5]="Class",t[t.Struct=6]="Struct",t[t.Interface=7]="Interface",t[t.Module=8]="Module",t[t.Property=9]="Property",t[t.Event=10]="Event",t[t.Operator=11]="Operator",t[t.Unit=12]="Unit",t[t.Value=13]="Value",t[t.Constant=14]="Constant",t[t.Enum=15]="Enum",t[t.EnumMember=16]="EnumMember",t[t.Keyword=17]="Keyword",t[t.Text=18]="Text",t[t.Color=19]="Color",t[t.File=20]="File",t[t.Reference=21]="Reference",t[t.Customcolor=22]="Customcolor",t[t.Folder=23]="Folder",t[t.TypeParameter=24]="TypeParameter",t[t.User=25]="User",t[t.Issue=26]="Issue",t[t.Snippet=27]="Snippet"})(d||(n.CompletionItemKind=d={}));var f;(function(t){t[t.Deprecated=1]="Deprecated"})(f||(n.CompletionItemTag=f={}));var p;(function(t){t[t.Invoke=0]="Invoke",t[t.TriggerCharacter=1]="TriggerCharacter",t[t.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(p||(n.CompletionTriggerKind=p={}));var c;(function(t){t[t.EXACT=0]="EXACT",t[t.ABOVE=1]="ABOVE",t[t.BELOW=2]="BELOW"})(c||(n.ContentWidgetPositionPreference=c={}));var a;(function(t){t[t.NotSet=0]="NotSet",t[t.ContentFlush=1]="ContentFlush",t[t.RecoverFromMarkers=2]="RecoverFromMarkers",t[t.Explicit=3]="Explicit",t[t.Paste=4]="Paste",t[t.Undo=5]="Undo",t[t.Redo=6]="Redo"})(a||(n.CursorChangeReason=a={}));var m;(function(t){t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"})(m||(n.DefaultEndOfLine=m={}));var e;(function(t){t[t.Text=0]="Text",t[t.Read=1]="Read",t[t.Write=2]="Write"})(e||(n.DocumentHighlightKind=e={}));var h;(function(t){t[t.None=0]="None",t[t.Keep=1]="Keep",t[t.Brackets=2]="Brackets",t[t.Advanced=3]="Advanced",t[t.Full=4]="Full"})(h||(n.EditorAutoIndentStrategy=h={}));var r;(function(t){t[t.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",t[t.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",t[t.accessibilitySupport=2]="accessibilitySupport",t[t.accessibilityPageSize=3]="accessibilityPageSize",t[t.ariaLabel=4]="ariaLabel",t[t.ariaRequired=5]="ariaRequired",t[t.autoClosingBrackets=6]="autoClosingBrackets",t[t.autoClosingComments=7]="autoClosingComments",t[t.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",t[t.autoClosingDelete=9]="autoClosingDelete",t[t.autoClosingOvertype=10]="autoClosingOvertype",t[t.autoClosingQuotes=11]="autoClosingQuotes",t[t.autoIndent=12]="autoIndent",t[t.automaticLayout=13]="automaticLayout",t[t.autoSurround=14]="autoSurround",t[t.bracketPairColorization=15]="bracketPairColorization",t[t.guides=16]="guides",t[t.codeLens=17]="codeLens",t[t.codeLensFontFamily=18]="codeLensFontFamily",t[t.codeLensFontSize=19]="codeLensFontSize",t[t.colorDecorators=20]="colorDecorators",t[t.colorDecoratorsLimit=21]="colorDecoratorsLimit",t[t.columnSelection=22]="columnSelection",t[t.comments=23]="comments",t[t.contextmenu=24]="contextmenu",t[t.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",t[t.cursorBlinking=26]="cursorBlinking",t[t.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",t[t.cursorStyle=28]="cursorStyle",t[t.cursorSurroundingLines=29]="cursorSurroundingLines",t[t.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",t[t.cursorWidth=31]="cursorWidth",t[t.disableLayerHinting=32]="disableLayerHinting",t[t.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",t[t.domReadOnly=34]="domReadOnly",t[t.dragAndDrop=35]="dragAndDrop",t[t.dropIntoEditor=36]="dropIntoEditor",t[t.emptySelectionClipboard=37]="emptySelectionClipboard",t[t.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",t[t.extraEditorClassName=39]="extraEditorClassName",t[t.fastScrollSensitivity=40]="fastScrollSensitivity",t[t.find=41]="find",t[t.fixedOverflowWidgets=42]="fixedOverflowWidgets",t[t.folding=43]="folding",t[t.foldingStrategy=44]="foldingStrategy",t[t.foldingHighlight=45]="foldingHighlight",t[t.foldingImportsByDefault=46]="foldingImportsByDefault",t[t.foldingMaximumRegions=47]="foldingMaximumRegions",t[t.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",t[t.fontFamily=49]="fontFamily",t[t.fontInfo=50]="fontInfo",t[t.fontLigatures=51]="fontLigatures",t[t.fontSize=52]="fontSize",t[t.fontWeight=53]="fontWeight",t[t.fontVariations=54]="fontVariations",t[t.formatOnPaste=55]="formatOnPaste",t[t.formatOnType=56]="formatOnType",t[t.glyphMargin=57]="glyphMargin",t[t.gotoLocation=58]="gotoLocation",t[t.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",t[t.hover=60]="hover",t[t.inDiffEditor=61]="inDiffEditor",t[t.inlineSuggest=62]="inlineSuggest",t[t.inlineEdit=63]="inlineEdit",t[t.letterSpacing=64]="letterSpacing",t[t.lightbulb=65]="lightbulb",t[t.lineDecorationsWidth=66]="lineDecorationsWidth",t[t.lineHeight=67]="lineHeight",t[t.lineNumbers=68]="lineNumbers",t[t.lineNumbersMinChars=69]="lineNumbersMinChars",t[t.linkedEditing=70]="linkedEditing",t[t.links=71]="links",t[t.matchBrackets=72]="matchBrackets",t[t.minimap=73]="minimap",t[t.mouseStyle=74]="mouseStyle",t[t.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",t[t.mouseWheelZoom=76]="mouseWheelZoom",t[t.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",t[t.multiCursorModifier=78]="multiCursorModifier",t[t.multiCursorPaste=79]="multiCursorPaste",t[t.multiCursorLimit=80]="multiCursorLimit",t[t.occurrencesHighlight=81]="occurrencesHighlight",t[t.overviewRulerBorder=82]="overviewRulerBorder",t[t.overviewRulerLanes=83]="overviewRulerLanes",t[t.padding=84]="padding",t[t.pasteAs=85]="pasteAs",t[t.parameterHints=86]="parameterHints",t[t.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",t[t.placeholder=88]="placeholder",t[t.definitionLinkOpensInPeek=89]="definitionLinkOpensInPeek",t[t.quickSuggestions=90]="quickSuggestions",t[t.quickSuggestionsDelay=91]="quickSuggestionsDelay",t[t.readOnly=92]="readOnly",t[t.readOnlyMessage=93]="readOnlyMessage",t[t.renameOnType=94]="renameOnType",t[t.renderControlCharacters=95]="renderControlCharacters",t[t.renderFinalNewline=96]="renderFinalNewline",t[t.renderLineHighlight=97]="renderLineHighlight",t[t.renderLineHighlightOnlyWhenFocus=98]="renderLineHighlightOnlyWhenFocus",t[t.renderValidationDecorations=99]="renderValidationDecorations",t[t.renderWhitespace=100]="renderWhitespace",t[t.revealHorizontalRightPadding=101]="revealHorizontalRightPadding",t[t.roundedSelection=102]="roundedSelection",t[t.rulers=103]="rulers",t[t.scrollbar=104]="scrollbar",t[t.scrollBeyondLastColumn=105]="scrollBeyondLastColumn",t[t.scrollBeyondLastLine=106]="scrollBeyondLastLine",t[t.scrollPredominantAxis=107]="scrollPredominantAxis",t[t.selectionClipboard=108]="selectionClipboard",t[t.selectionHighlight=109]="selectionHighlight",t[t.selectOnLineNumbers=110]="selectOnLineNumbers",t[t.showFoldingControls=111]="showFoldingControls",t[t.showUnused=112]="showUnused",t[t.snippetSuggestions=113]="snippetSuggestions",t[t.smartSelect=114]="smartSelect",t[t.smoothScrolling=115]="smoothScrolling",t[t.stickyScroll=116]="stickyScroll",t[t.stickyTabStops=117]="stickyTabStops",t[t.stopRenderingLineAfter=118]="stopRenderingLineAfter",t[t.suggest=119]="suggest",t[t.suggestFontSize=120]="suggestFontSize",t[t.suggestLineHeight=121]="suggestLineHeight",t[t.suggestOnTriggerCharacters=122]="suggestOnTriggerCharacters",t[t.suggestSelection=123]="suggestSelection",t[t.tabCompletion=124]="tabCompletion",t[t.tabIndex=125]="tabIndex",t[t.unicodeHighlighting=126]="unicodeHighlighting",t[t.unusualLineTerminators=127]="unusualLineTerminators",t[t.useShadowDOM=128]="useShadowDOM",t[t.useTabStops=129]="useTabStops",t[t.wordBreak=130]="wordBreak",t[t.wordSegmenterLocales=131]="wordSegmenterLocales",t[t.wordSeparators=132]="wordSeparators",t[t.wordWrap=133]="wordWrap",t[t.wordWrapBreakAfterCharacters=134]="wordWrapBreakAfterCharacters",t[t.wordWrapBreakBeforeCharacters=135]="wordWrapBreakBeforeCharacters",t[t.wordWrapColumn=136]="wordWrapColumn",t[t.wordWrapOverride1=137]="wordWrapOverride1",t[t.wordWrapOverride2=138]="wordWrapOverride2",t[t.wrappingIndent=139]="wrappingIndent",t[t.wrappingStrategy=140]="wrappingStrategy",t[t.showDeprecated=141]="showDeprecated",t[t.inlayHints=142]="inlayHints",t[t.editorClassName=143]="editorClassName",t[t.pixelRatio=144]="pixelRatio",t[t.tabFocusMode=145]="tabFocusMode",t[t.layoutInfo=146]="layoutInfo",t[t.wrappingInfo=147]="wrappingInfo",t[t.defaultColorDecorators=148]="defaultColorDecorators",t[t.colorDecoratorsActivatedOn=149]="colorDecoratorsActivatedOn",t[t.inlineCompletionsAccessibilityVerbose=150]="inlineCompletionsAccessibilityVerbose"})(r||(n.EditorOption=r={}));var s;(function(t){t[t.TextDefined=0]="TextDefined",t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"})(s||(n.EndOfLinePreference=s={}));var o;(function(t){t[t.LF=0]="LF",t[t.CRLF=1]="CRLF"})(o||(n.EndOfLineSequence=o={}));var u;(function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=3]="Right"})(u||(n.GlyphMarginLane=u={}));var S;(function(t){t[t.Increase=0]="Increase",t[t.Decrease=1]="Decrease"})(S||(n.HoverVerbosityAction=S={}));var L;(function(t){t[t.None=0]="None",t[t.Indent=1]="Indent",t[t.IndentOutdent=2]="IndentOutdent",t[t.Outdent=3]="Outdent"})(L||(n.IndentAction=L={}));var N;(function(t){t[t.Both=0]="Both",t[t.Right=1]="Right",t[t.Left=2]="Left",t[t.None=3]="None"})(N||(n.InjectedTextCursorStops=N={}));var P;(function(t){t[t.Type=1]="Type",t[t.Parameter=2]="Parameter"})(P||(n.InlayHintKind=P={}));var E;(function(t){t[t.Automatic=0]="Automatic",t[t.Explicit=1]="Explicit"})(E||(n.InlineCompletionTriggerKind=E={}));var v;(function(t){t[t.Invoke=0]="Invoke",t[t.Automatic=1]="Automatic"})(v||(n.InlineEditTriggerKind=v={}));var l;(function(t){t[t.DependsOnKbLayout=-1]="DependsOnKbLayout",t[t.Unknown=0]="Unknown",t[t.Backspace=1]="Backspace",t[t.Tab=2]="Tab",t[t.Enter=3]="Enter",t[t.Shift=4]="Shift",t[t.Ctrl=5]="Ctrl",t[t.Alt=6]="Alt",t[t.PauseBreak=7]="PauseBreak",t[t.CapsLock=8]="CapsLock",t[t.Escape=9]="Escape",t[t.Space=10]="Space",t[t.PageUp=11]="PageUp",t[t.PageDown=12]="PageDown",t[t.End=13]="End",t[t.Home=14]="Home",t[t.LeftArrow=15]="LeftArrow",t[t.UpArrow=16]="UpArrow",t[t.RightArrow=17]="RightArrow",t[t.DownArrow=18]="DownArrow",t[t.Insert=19]="Insert",t[t.Delete=20]="Delete",t[t.Digit0=21]="Digit0",t[t.Digit1=22]="Digit1",t[t.Digit2=23]="Digit2",t[t.Digit3=24]="Digit3",t[t.Digit4=25]="Digit4",t[t.Digit5=26]="Digit5",t[t.Digit6=27]="Digit6",t[t.Digit7=28]="Digit7",t[t.Digit8=29]="Digit8",t[t.Digit9=30]="Digit9",t[t.KeyA=31]="KeyA",t[t.KeyB=32]="KeyB",t[t.KeyC=33]="KeyC",t[t.KeyD=34]="KeyD",t[t.KeyE=35]="KeyE",t[t.KeyF=36]="KeyF",t[t.KeyG=37]="KeyG",t[t.KeyH=38]="KeyH",t[t.KeyI=39]="KeyI",t[t.KeyJ=40]="KeyJ",t[t.KeyK=41]="KeyK",t[t.KeyL=42]="KeyL",t[t.KeyM=43]="KeyM",t[t.KeyN=44]="KeyN",t[t.KeyO=45]="KeyO",t[t.KeyP=46]="KeyP",t[t.KeyQ=47]="KeyQ",t[t.KeyR=48]="KeyR",t[t.KeyS=49]="KeyS",t[t.KeyT=50]="KeyT",t[t.KeyU=51]="KeyU",t[t.KeyV=52]="KeyV",t[t.KeyW=53]="KeyW",t[t.KeyX=54]="KeyX",t[t.KeyY=55]="KeyY",t[t.KeyZ=56]="KeyZ",t[t.Meta=57]="Meta",t[t.ContextMenu=58]="ContextMenu",t[t.F1=59]="F1",t[t.F2=60]="F2",t[t.F3=61]="F3",t[t.F4=62]="F4",t[t.F5=63]="F5",t[t.F6=64]="F6",t[t.F7=65]="F7",t[t.F8=66]="F8",t[t.F9=67]="F9",t[t.F10=68]="F10",t[t.F11=69]="F11",t[t.F12=70]="F12",t[t.F13=71]="F13",t[t.F14=72]="F14",t[t.F15=73]="F15",t[t.F16=74]="F16",t[t.F17=75]="F17",t[t.F18=76]="F18",t[t.F19=77]="F19",t[t.F20=78]="F20",t[t.F21=79]="F21",t[t.F22=80]="F22",t[t.F23=81]="F23",t[t.F24=82]="F24",t[t.NumLock=83]="NumLock",t[t.ScrollLock=84]="ScrollLock",t[t.Semicolon=85]="Semicolon",t[t.Equal=86]="Equal",t[t.Comma=87]="Comma",t[t.Minus=88]="Minus",t[t.Period=89]="Period",t[t.Slash=90]="Slash",t[t.Backquote=91]="Backquote",t[t.BracketLeft=92]="BracketLeft",t[t.Backslash=93]="Backslash",t[t.BracketRight=94]="BracketRight",t[t.Quote=95]="Quote",t[t.OEM_8=96]="OEM_8",t[t.IntlBackslash=97]="IntlBackslash",t[t.Numpad0=98]="Numpad0",t[t.Numpad1=99]="Numpad1",t[t.Numpad2=100]="Numpad2",t[t.Numpad3=101]="Numpad3",t[t.Numpad4=102]="Numpad4",t[t.Numpad5=103]="Numpad5",t[t.Numpad6=104]="Numpad6",t[t.Numpad7=105]="Numpad7",t[t.Numpad8=106]="Numpad8",t[t.Numpad9=107]="Numpad9",t[t.NumpadMultiply=108]="NumpadMultiply",t[t.NumpadAdd=109]="NumpadAdd",t[t.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",t[t.NumpadSubtract=111]="NumpadSubtract",t[t.NumpadDecimal=112]="NumpadDecimal",t[t.NumpadDivide=113]="NumpadDivide",t[t.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",t[t.ABNT_C1=115]="ABNT_C1",t[t.ABNT_C2=116]="ABNT_C2",t[t.AudioVolumeMute=117]="AudioVolumeMute",t[t.AudioVolumeUp=118]="AudioVolumeUp",t[t.AudioVolumeDown=119]="AudioVolumeDown",t[t.BrowserSearch=120]="BrowserSearch",t[t.BrowserHome=121]="BrowserHome",t[t.BrowserBack=122]="BrowserBack",t[t.BrowserForward=123]="BrowserForward",t[t.MediaTrackNext=124]="MediaTrackNext",t[t.MediaTrackPrevious=125]="MediaTrackPrevious",t[t.MediaStop=126]="MediaStop",t[t.MediaPlayPause=127]="MediaPlayPause",t[t.LaunchMediaPlayer=128]="LaunchMediaPlayer",t[t.LaunchMail=129]="LaunchMail",t[t.LaunchApp2=130]="LaunchApp2",t[t.Clear=131]="Clear",t[t.MAX_VALUE=132]="MAX_VALUE"})(l||(n.KeyCode=l={}));var b;(function(t){t[t.Hint=1]="Hint",t[t.Info=2]="Info",t[t.Warning=4]="Warning",t[t.Error=8]="Error"})(b||(n.MarkerSeverity=b={}));var g;(function(t){t[t.Unnecessary=1]="Unnecessary",t[t.Deprecated=2]="Deprecated"})(g||(n.MarkerTag=g={}));var w;(function(t){t[t.Inline=1]="Inline",t[t.Gutter=2]="Gutter"})(w||(n.MinimapPosition=w={}));var M;(function(t){t[t.Normal=1]="Normal",t[t.Underlined=2]="Underlined"})(M||(n.MinimapSectionHeaderStyle=M={}));var y;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.TEXTAREA=1]="TEXTAREA",t[t.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",t[t.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",t[t.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",t[t.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",t[t.CONTENT_TEXT=6]="CONTENT_TEXT",t[t.CONTENT_EMPTY=7]="CONTENT_EMPTY",t[t.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",t[t.CONTENT_WIDGET=9]="CONTENT_WIDGET",t[t.OVERVIEW_RULER=10]="OVERVIEW_RULER",t[t.SCROLLBAR=11]="SCROLLBAR",t[t.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",t[t.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(y||(n.MouseTargetType=y={}));var _;(function(t){t[t.AIGenerated=1]="AIGenerated"})(_||(n.NewSymbolNameTag=_={}));var C;(function(t){t[t.Invoke=0]="Invoke",t[t.Automatic=1]="Automatic"})(C||(n.NewSymbolNameTriggerKind=C={}));var R;(function(t){t[t.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",t[t.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",t[t.TOP_CENTER=2]="TOP_CENTER"})(R||(n.OverlayWidgetPositionPreference=R={}));var D;(function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=4]="Right",t[t.Full=7]="Full"})(D||(n.OverviewRulerLane=D={}));var T;(function(t){t[t.Word=0]="Word",t[t.Line=1]="Line",t[t.Suggest=2]="Suggest"})(T||(n.PartialAcceptTriggerKind=T={}));var O;(function(t){t[t.Left=0]="Left",t[t.Right=1]="Right",t[t.None=2]="None",t[t.LeftOfInjectedText=3]="LeftOfInjectedText",t[t.RightOfInjectedText=4]="RightOfInjectedText"})(O||(n.PositionAffinity=O={}));var z;(function(t){t[t.Off=0]="Off",t[t.On=1]="On",t[t.Relative=2]="Relative",t[t.Interval=3]="Interval",t[t.Custom=4]="Custom"})(z||(n.RenderLineNumbersType=z={}));var j;(function(t){t[t.None=0]="None",t[t.Text=1]="Text",t[t.Blocks=2]="Blocks"})(j||(n.RenderMinimap=j={}));var F;(function(t){t[t.Smooth=0]="Smooth",t[t.Immediate=1]="Immediate"})(F||(n.ScrollType=F={}));var q;(function(t){t[t.Auto=1]="Auto",t[t.Hidden=2]="Hidden",t[t.Visible=3]="Visible"})(q||(n.ScrollbarVisibility=q={}));var B;(function(t){t[t.LTR=0]="LTR",t[t.RTL=1]="RTL"})(B||(n.SelectionDirection=B={}));var G;(function(t){t.Off="off",t.OnCode="onCode",t.On="on"})(G||(n.ShowLightbulbIconMode=G={}));var $;(function(t){t[t.Invoke=1]="Invoke",t[t.TriggerCharacter=2]="TriggerCharacter",t[t.ContentChange=3]="ContentChange"})($||(n.SignatureHelpTriggerKind=$={}));var U;(function(t){t[t.File=0]="File",t[t.Module=1]="Module",t[t.Namespace=2]="Namespace",t[t.Package=3]="Package",t[t.Class=4]="Class",t[t.Method=5]="Method",t[t.Property=6]="Property",t[t.Field=7]="Field",t[t.Constructor=8]="Constructor",t[t.Enum=9]="Enum",t[t.Interface=10]="Interface",t[t.Function=11]="Function",t[t.Variable=12]="Variable",t[t.Constant=13]="Constant",t[t.String=14]="String",t[t.Number=15]="Number",t[t.Boolean=16]="Boolean",t[t.Array=17]="Array",t[t.Object=18]="Object",t[t.Key=19]="Key",t[t.Null=20]="Null",t[t.EnumMember=21]="EnumMember",t[t.Struct=22]="Struct",t[t.Event=23]="Event",t[t.Operator=24]="Operator",t[t.TypeParameter=25]="TypeParameter"})(U||(n.SymbolKind=U={}));var ee;(function(t){t[t.Deprecated=1]="Deprecated"})(ee||(n.SymbolTag=ee={}));var re;(function(t){t[t.Hidden=0]="Hidden",t[t.Blink=1]="Blink",t[t.Smooth=2]="Smooth",t[t.Phase=3]="Phase",t[t.Expand=4]="Expand",t[t.Solid=5]="Solid"})(re||(n.TextEditorCursorBlinkingStyle=re={}));var ue;(function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"})(ue||(n.TextEditorCursorStyle=ue={}));var de;(function(t){t[t.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",t[t.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",t[t.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",t[t.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(de||(n.TrackedRangeStickiness=de={}));var ge;(function(t){t[t.None=0]="None",t[t.Same=1]="Same",t[t.Indent=2]="Indent",t[t.DeepIndent=3]="DeepIndent"})(ge||(n.WrappingIndent=ge={}))}),X(J[70],Z([0,1,9,8]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TokenizationRegistry=void 0;class A{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new i.Emitter,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(p){this._onDidChange.fire({changedLanguages:p,changedColorMap:!1})}register(p,c){return this._tokenizationSupports.set(p,c),this.handleChange([p]),(0,x.toDisposable)(()=>{this._tokenizationSupports.get(p)===c&&(this._tokenizationSupports.delete(p),this.handleChange([p]))})}get(p){return this._tokenizationSupports.get(p)||null}registerFactory(p,c){this._factories.get(p)?.dispose();const a=new d(this,p,c);return this._factories.set(p,a),(0,x.toDisposable)(()=>{const m=this._factories.get(p);!m||m!==a||(this._factories.delete(p),m.dispose())})}async getOrCreate(p){const c=this.get(p);if(c)return c;const a=this._factories.get(p);return!a||a.isResolved?null:(await a.resolve(),this.get(p))}isResolved(p){if(this.get(p))return!0;const a=this._factories.get(p);return!!(!a||a.isResolved)}setColorMap(p){this._colorMap=p,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}n.TokenizationRegistry=A;class d extends x.Disposable{get isResolved(){return this._isResolved}constructor(p,c,a){super(),this._registry=p,this._languageId=c,this._factory=a,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const p=await this._factory.tokenizationSupport;this._isResolved=!0,p&&!this._isDisposed&&this._register(this._registry.register(this._languageId,p))}}}),X(J[35],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getNLSMessages=i,n.getNLSLanguage=x;function i(){return globalThis._VSCODE_NLS_MESSAGES}function x(){return globalThis._VSCODE_NLS_LANGUAGE}}),X(J[36],Z([0,1,35,35]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getNLSMessages=n.getNLSLanguage=void 0,n.localize=f,n.localize2=c,Object.defineProperty(n,"getNLSLanguage",{enumerable:!0,get:function(){return x.getNLSLanguage}}),Object.defineProperty(n,"getNLSMessages",{enumerable:!0,get:function(){return x.getNLSMessages}});const A=(0,i.getNLSLanguage)()==="pseudo"||typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function d(a,m){let e;return m.length===0?e=a:e=a.replace(/\{(\d+)\}/g,(h,r)=>{const s=r[0],o=m[s];let u=h;return typeof o=="string"?u=o:(typeof o=="number"||typeof o=="boolean"||o===void 0||o===null)&&(u=String(o)),u}),A&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function f(a,m,...e){return d(typeof a=="number"?p(a,m):m,e)}function p(a,m){const e=(0,i.getNLSMessages)()?.[a];if(typeof e!="string"){if(typeof m=="string")return m;throw new Error(`!!! NLS MISSING: ${a} !!!`)}return e}function c(a,m,...e){let h;typeof a=="number"?h=p(a,m):h=m;const r=d(h,e);return{value:r,original:m===h?r:d(m,e)}}}),X(J[11],Z([0,1,36]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isAndroid=n.isEdge=n.isSafari=n.isFirefox=n.isChrome=n.OS=n.setTimeout0=n.setTimeout0IsFaster=n.language=n.userAgent=n.isMobile=n.isIOS=n.webWorkerOrigin=n.isWebWorker=n.isWeb=n.isNative=n.isLinux=n.isMacintosh=n.isWindows=n.LANGUAGE_DEFAULT=void 0,n.isLittleEndian=g,n.LANGUAGE_DEFAULT="en";let x=!1,A=!1,d=!1,f=!1,p=!1,c=!1,a=!1,m=!1,e=!1,h=!1,r,s=n.LANGUAGE_DEFAULT,o=n.LANGUAGE_DEFAULT,u,S;const L=globalThis;let N;typeof L.vscode<"u"&&typeof L.vscode.process<"u"?N=L.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(N=process);const P=typeof N?.versions?.electron=="string",E=P&&N?.type==="renderer";if(typeof N=="object"){x=N.platform==="win32",A=N.platform==="darwin",d=N.platform==="linux",f=d&&!!N.env.SNAP&&!!N.env.SNAP_REVISION,a=P,e=!!N.env.CI||!!N.env.BUILD_ARTIFACTSTAGINGDIRECTORY,r=n.LANGUAGE_DEFAULT,s=n.LANGUAGE_DEFAULT;const w=N.env.VSCODE_NLS_CONFIG;if(w)try{const M=JSON.parse(w);r=M.userLocale,o=M.osLocale,s=M.resolvedLanguage||n.LANGUAGE_DEFAULT,u=M.languagePack?.translationsConfigFile}catch{}p=!0}else typeof navigator=="object"&&!E?(S=navigator.userAgent,x=S.indexOf("Windows")>=0,A=S.indexOf("Macintosh")>=0,m=(S.indexOf("Macintosh")>=0||S.indexOf("iPad")>=0||S.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,d=S.indexOf("Linux")>=0,h=S?.indexOf("Mobi")>=0,c=!0,s=i.getNLSLanguage()||n.LANGUAGE_DEFAULT,r=navigator.language.toLowerCase(),o=r):console.error("Unable to resolve platform.");let v=0;A?v=1:x?v=3:d&&(v=2),n.isWindows=x,n.isMacintosh=A,n.isLinux=d,n.isNative=p,n.isWeb=c,n.isWebWorker=c&&typeof L.importScripts=="function",n.webWorkerOrigin=n.isWebWorker?L.origin:void 0,n.isIOS=m,n.isMobile=h,n.userAgent=S,n.language=s,n.setTimeout0IsFaster=typeof L.postMessage=="function"&&!L.importScripts,n.setTimeout0=(()=>{if(n.setTimeout0IsFaster){const w=[];L.addEventListener("message",y=>{if(y.data&&y.data.vscodeScheduleAsyncWork)for(let _=0,C=w.length;_{const _=++M;w.push({id:_,callback:y}),L.postMessage({vscodeScheduleAsyncWork:_},"*")}}return w=>setTimeout(w)})(),n.OS=A||m?2:x?1:3;let l=!0,b=!1;function g(){if(!b){b=!0;const w=new Uint8Array(2);w[0]=1,w[1]=2,l=new Uint16Array(w.buffer)[0]===513}return l}n.isChrome=!!(n.userAgent&&n.userAgent.indexOf("Chrome")>=0),n.isFirefox=!!(n.userAgent&&n.userAgent.indexOf("Firefox")>=0),n.isSafari=!!(!n.isChrome&&n.userAgent&&n.userAgent.indexOf("Safari")>=0),n.isEdge=!!(n.userAgent&&n.userAgent.indexOf("Edg/")>=0),n.isAndroid=!!(n.userAgent&&n.userAgent.indexOf("Android")>=0)}),X(J[71],Z([0,1,23,3,9,8,11,45]),function(W,n,i,x,A,d,f,p){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CancelableAsyncIterableObject=n.AsyncIterableObject=n.Promises=n.DeferredPromise=n.GlobalIdleValue=n.AbstractIdleValue=n._runWhenIdle=n.runWhenGlobalIdle=n.RunOnceScheduler=n.IntervalTimer=n.TimeoutTimer=n.ThrottledDelayer=n.Delayer=n.Throttler=void 0,n.isThenable=c,n.createCancelablePromise=a,n.raceCancellation=m,n.timeout=u,n.disposableTimeout=S,n.first=L,n.createCancelableAsyncIterable=y;function c(_){return!!_&&typeof _.then=="function"}function a(_){const C=new i.CancellationTokenSource,R=_(C.token),D=new Promise((T,O)=>{const z=C.token.onCancellationRequested(()=>{z.dispose(),O(new x.CancellationError)});Promise.resolve(R).then(j=>{z.dispose(),C.dispose(),T(j)},j=>{z.dispose(),C.dispose(),O(j)})});return new class{cancel(){C.cancel(),C.dispose()}then(T,O){return D.then(T,O)}catch(T){return this.then(void 0,T)}finally(T){return D.finally(T)}}}function m(_,C,R){return new Promise((D,T)=>{const O=C.onCancellationRequested(()=>{O.dispose(),D(R)});_.then(D,T).finally(()=>O.dispose())})}class e{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(C){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=C,!this.queuedPromise){const R=()=>{if(this.queuedPromise=null,this.isDisposed)return;const D=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,D};this.queuedPromise=new Promise(D=>{this.activePromise.then(R,R).then(D)})}return new Promise((R,D)=>{this.queuedPromise.then(R,D)})}return this.activePromise=C(),new Promise((R,D)=>{this.activePromise.then(T=>{this.activePromise=null,R(T)},T=>{this.activePromise=null,D(T)})})}dispose(){this.isDisposed=!0}}n.Throttler=e;const h=(_,C)=>{let R=!0;const D=setTimeout(()=>{R=!1,C()},_);return{isTriggered:()=>R,dispose:()=>{clearTimeout(D),R=!1}}},r=_=>{let C=!0;return queueMicrotask(()=>{C&&(C=!1,_())}),{isTriggered:()=>C,dispose:()=>{C=!1}}};class s{constructor(C){this.defaultDelay=C,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(C,R=this.defaultDelay){this.task=C,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((T,O)=>{this.doResolve=T,this.doReject=O}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const T=this.task;return this.task=null,T()}}));const D=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=R===p.MicrotaskDelay?r(D):h(R,D),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new x.CancellationError),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}}n.Delayer=s;class o{constructor(C){this.delayer=new s(C),this.throttler=new e}trigger(C,R){return this.delayer.trigger(()=>this.throttler.queue(C),R)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}n.ThrottledDelayer=o;function u(_,C){return C?new Promise((R,D)=>{const T=setTimeout(()=>{O.dispose(),R()},_),O=C.onCancellationRequested(()=>{clearTimeout(T),O.dispose(),D(new x.CancellationError)})}):a(R=>u(_,R))}function S(_,C=0,R){const D=setTimeout(()=>{_(),R&&T.dispose()},C),T=(0,d.toDisposable)(()=>{clearTimeout(D),R?.deleteAndLeak(T)});return R?.add(T),T}function L(_,C=D=>!!D,R=null){let D=0;const T=_.length,O=()=>{if(D>=T)return Promise.resolve(R);const z=_[D++];return Promise.resolve(z()).then(F=>C(F)?Promise.resolve(F):O())};return O()}class N{constructor(C,R){this._isDisposed=!1,this._token=-1,typeof C=="function"&&typeof R=="number"&&this.setIfNotSet(C,R)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(C,R){if(this._isDisposed)throw new x.BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,C()},R)}setIfNotSet(C,R){if(this._isDisposed)throw new x.BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,C()},R))}}n.TimeoutTimer=N;class P{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(C,R,D=globalThis){if(this.isDisposed)throw new x.BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const T=D.setInterval(()=>{C()},R);this.disposable=(0,d.toDisposable)(()=>{D.clearInterval(T),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}n.IntervalTimer=P;class E{constructor(C,R){this.timeoutToken=-1,this.runner=C,this.timeout=R,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(C=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,C)}get delay(){return this.timeout}set delay(C){this.timeout=C}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner?.()}}n.RunOnceScheduler=E,function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?n._runWhenIdle=(_,C)=>{(0,f.setTimeout0)(()=>{if(R)return;const D=Date.now()+15;C(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,D-Date.now())}}))});let R=!1;return{dispose(){R||(R=!0)}}}:n._runWhenIdle=(_,C,R)=>{const D=_.requestIdleCallback(C,typeof R=="number"?{timeout:R}:void 0);let T=!1;return{dispose(){T||(T=!0,_.cancelIdleCallback(D))}}},n.runWhenGlobalIdle=_=>(0,n._runWhenIdle)(globalThis,_)}();class v{constructor(C,R){this._didRun=!1,this._executor=()=>{try{this._value=R()}catch(D){this._error=D}finally{this._didRun=!0}},this._handle=(0,n._runWhenIdle)(C,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}n.AbstractIdleValue=v;class l extends v{constructor(C){super(globalThis,C)}}n.GlobalIdleValue=l;class b{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((C,R)=>{this.completeCallback=C,this.errorCallback=R})}complete(C){return new Promise(R=>{this.completeCallback(C),this.outcome={outcome:0,value:C},R()})}error(C){return new Promise(R=>{this.errorCallback(C),this.outcome={outcome:1,value:C},R()})}cancel(){return this.error(new x.CancellationError)}}n.DeferredPromise=b;var g;(function(_){async function C(D){let T;const O=await Promise.all(D.map(z=>z.then(j=>j,j=>{T||(T=j)})));if(typeof T<"u")throw T;return O}_.settled=C;function R(D){return new Promise(async(T,O)=>{try{await D(T,O)}catch(z){O(z)}})}_.withAsyncBody=R})(g||(n.Promises=g={}));class w{static fromArray(C){return new w(R=>{R.emitMany(C)})}static fromPromise(C){return new w(async R=>{R.emitMany(await C)})}static fromPromises(C){return new w(async R=>{await Promise.all(C.map(async D=>R.emitOne(await D)))})}static merge(C){return new w(async R=>{await Promise.all(C.map(async D=>{for await(const T of D)R.emitOne(T)}))})}static{this.EMPTY=w.fromArray([])}constructor(C,R){this._state=0,this._results=[],this._error=null,this._onReturn=R,this._onStateChanged=new A.Emitter,queueMicrotask(async()=>{const D={emitOne:T=>this.emitOne(T),emitMany:T=>this.emitMany(T),reject:T=>this.reject(T)};try{await Promise.resolve(C(D)),this.resolve()}catch(T){this.reject(T)}finally{D.emitOne=void 0,D.emitMany=void 0,D.reject=void 0}})}[Symbol.asyncIterator](){let C=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(C(this._onReturn?.(),{done:!0,value:void 0})}}static map(C,R){return new w(async D=>{for await(const T of C)D.emitOne(R(T))})}map(C){return w.map(this,C)}static filter(C,R){return new w(async D=>{for await(const T of C)R(T)&&D.emitOne(T)})}filter(C){return w.filter(this,C)}static coalesce(C){return w.filter(C,R=>!!R)}coalesce(){return w.coalesce(this)}static async toPromise(C){const R=[];for await(const D of C)R.push(D);return R}toPromise(){return w.toPromise(this)}emitOne(C){this._state===0&&(this._results.push(C),this._onStateChanged.fire())}emitMany(C){this._state===0&&(this._results=this._results.concat(C),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(C){this._state===0&&(this._state=2,this._error=C,this._onStateChanged.fire())}}n.AsyncIterableObject=w;class M extends w{constructor(C,R){super(R),this._source=C}cancel(){this._source.cancel()}}n.CancelableAsyncIterableObject=M;function y(_){const C=new i.CancellationTokenSource,R=_(C.token);return new M(C,async D=>{const T=C.token.onCancellationRequested(()=>{T.dispose(),C.dispose(),D.reject(new x.CancellationError)});try{for await(const O of R){if(C.token.isCancellationRequested)return;D.emitOne(O)}T.dispose(),C.dispose()}catch(O){T.dispose(),C.dispose(),D.reject(O)}})}}),X(J[72],Z([0,1,11]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.platform=n.env=n.cwd=void 0;let x;const A=globalThis.vscode;if(typeof A<"u"&&typeof A.process<"u"){const d=A.process;x={get platform(){return d.platform},get arch(){return d.arch},get env(){return d.env},cwd(){return d.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?x={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:x={get platform(){return i.isWindows?"win32":i.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};n.cwd=x.cwd,n.env=x.env,n.platform=x.platform}),X(J[37],Z([0,1,72]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.sep=n.extname=n.basename=n.dirname=n.relative=n.resolve=n.join=n.normalize=n.posix=n.win32=void 0;const x=65,A=97,d=90,f=122,p=46,c=47,a=92,m=58,e=63;class h extends Error{constructor(b,g,w){let M;typeof g=="string"&&g.indexOf("not ")===0?(M="must not be",g=g.replace(/^not /,"")):M="must be";const y=b.indexOf(".")!==-1?"property":"argument";let _=`The "${b}" ${y} ${M} of type ${g}`;_+=`. Received type ${typeof w}`,super(_),this.code="ERR_INVALID_ARG_TYPE"}}function r(l,b){if(l===null||typeof l!="object")throw new h(b,"Object",l)}function s(l,b){if(typeof l!="string")throw new h(b,"string",l)}const o=i.platform==="win32";function u(l){return l===c||l===a}function S(l){return l===c}function L(l){return l>=x&&l<=d||l>=A&&l<=f}function N(l,b,g,w){let M="",y=0,_=-1,C=0,R=0;for(let D=0;D<=l.length;++D){if(D2){const T=M.lastIndexOf(g);T===-1?(M="",y=0):(M=M.slice(0,T),y=M.length-1-M.lastIndexOf(g)),_=D,C=0;continue}else if(M.length!==0){M="",y=0,_=D,C=0;continue}}b&&(M+=M.length>0?`${g}..`:"..",y=2)}else M.length>0?M+=`${g}${l.slice(_+1,D)}`:M=l.slice(_+1,D),y=D-_-1;_=D,C=0}else R===p&&C!==-1?++C:C=-1}return M}function P(l){return l?`${l[0]==="."?"":"."}${l}`:""}function E(l,b){r(b,"pathObject");const g=b.dir||b.root,w=b.base||`${b.name||""}${P(b.ext)}`;return g?g===b.root?`${g}${w}`:`${g}${l}${w}`:w}n.win32={resolve(...l){let b="",g="",w=!1;for(let M=l.length-1;M>=-1;M--){let y;if(M>=0){if(y=l[M],s(y,`paths[${M}]`),y.length===0)continue}else b.length===0?y=i.cwd():(y=i.env[`=${b}`]||i.cwd(),(y===void 0||y.slice(0,2).toLowerCase()!==b.toLowerCase()&&y.charCodeAt(2)===a)&&(y=`${b}\\`));const _=y.length;let C=0,R="",D=!1;const T=y.charCodeAt(0);if(_===1)u(T)&&(C=1,D=!0);else if(u(T))if(D=!0,u(y.charCodeAt(1))){let O=2,z=O;for(;O<_&&!u(y.charCodeAt(O));)O++;if(O<_&&O!==z){const j=y.slice(z,O);for(z=O;O<_&&u(y.charCodeAt(O));)O++;if(O<_&&O!==z){for(z=O;O<_&&!u(y.charCodeAt(O));)O++;(O===_||O!==z)&&(R=`\\\\${j}\\${y.slice(z,O)}`,C=O)}}}else C=1;else L(T)&&y.charCodeAt(1)===m&&(R=y.slice(0,2),C=2,_>2&&u(y.charCodeAt(2))&&(D=!0,C=3));if(R.length>0)if(b.length>0){if(R.toLowerCase()!==b.toLowerCase())continue}else b=R;if(w){if(b.length>0)break}else if(g=`${y.slice(C)}\\${g}`,w=D,D&&b.length>0)break}return g=N(g,!w,"\\",u),w?`${b}\\${g}`:`${b}${g}`||"."},normalize(l){s(l,"path");const b=l.length;if(b===0)return".";let g=0,w,M=!1;const y=l.charCodeAt(0);if(b===1)return S(y)?"\\":l;if(u(y))if(M=!0,u(l.charCodeAt(1))){let C=2,R=C;for(;C2&&u(l.charCodeAt(2))&&(M=!0,g=3));let _=g0&&u(l.charCodeAt(b-1))&&(_+="\\"),w===void 0?M?`\\${_}`:_:M?`${w}\\${_}`:`${w}${_}`},isAbsolute(l){s(l,"path");const b=l.length;if(b===0)return!1;const g=l.charCodeAt(0);return u(g)||b>2&&L(g)&&l.charCodeAt(1)===m&&u(l.charCodeAt(2))},join(...l){if(l.length===0)return".";let b,g;for(let y=0;y0&&(b===void 0?b=g=_:b+=`\\${_}`)}if(b===void 0)return".";let w=!0,M=0;if(typeof g=="string"&&u(g.charCodeAt(0))){++M;const y=g.length;y>1&&u(g.charCodeAt(1))&&(++M,y>2&&(u(g.charCodeAt(2))?++M:w=!1))}if(w){for(;M=2&&(b=`\\${b.slice(M)}`)}return n.win32.normalize(b)},relative(l,b){if(s(l,"from"),s(b,"to"),l===b)return"";const g=n.win32.resolve(l),w=n.win32.resolve(b);if(g===w||(l=g.toLowerCase(),b=w.toLowerCase(),l===b))return"";let M=0;for(;MM&&l.charCodeAt(y-1)===a;)y--;const _=y-M;let C=0;for(;CC&&b.charCodeAt(R-1)===a;)R--;const D=R-C,T=_T){if(b.charCodeAt(C+z)===a)return w.slice(C+z+1);if(z===2)return w.slice(C+z)}_>T&&(l.charCodeAt(M+z)===a?O=z:z===2&&(O=3)),O===-1&&(O=0)}let j="";for(z=M+O+1;z<=y;++z)(z===y||l.charCodeAt(z)===a)&&(j+=j.length===0?"..":"\\..");return C+=O,j.length>0?`${j}${w.slice(C,R)}`:(w.charCodeAt(C)===a&&++C,w.slice(C,R))},toNamespacedPath(l){if(typeof l!="string"||l.length===0)return l;const b=n.win32.resolve(l);if(b.length<=2)return l;if(b.charCodeAt(0)===a){if(b.charCodeAt(1)===a){const g=b.charCodeAt(2);if(g!==e&&g!==p)return`\\\\?\\UNC\\${b.slice(2)}`}}else if(L(b.charCodeAt(0))&&b.charCodeAt(1)===m&&b.charCodeAt(2)===a)return`\\\\?\\${b}`;return l},dirname(l){s(l,"path");const b=l.length;if(b===0)return".";let g=-1,w=0;const M=l.charCodeAt(0);if(b===1)return u(M)?l:".";if(u(M)){if(g=w=1,u(l.charCodeAt(1))){let C=2,R=C;for(;C2&&u(l.charCodeAt(2))?3:2,w=g);let y=-1,_=!0;for(let C=b-1;C>=w;--C)if(u(l.charCodeAt(C))){if(!_){y=C;break}}else _=!1;if(y===-1){if(g===-1)return".";y=g}return l.slice(0,y)},basename(l,b){b!==void 0&&s(b,"suffix"),s(l,"path");let g=0,w=-1,M=!0,y;if(l.length>=2&&L(l.charCodeAt(0))&&l.charCodeAt(1)===m&&(g=2),b!==void 0&&b.length>0&&b.length<=l.length){if(b===l)return"";let _=b.length-1,C=-1;for(y=l.length-1;y>=g;--y){const R=l.charCodeAt(y);if(u(R)){if(!M){g=y+1;break}}else C===-1&&(M=!1,C=y+1),_>=0&&(R===b.charCodeAt(_)?--_===-1&&(w=y):(_=-1,w=C))}return g===w?w=C:w===-1&&(w=l.length),l.slice(g,w)}for(y=l.length-1;y>=g;--y)if(u(l.charCodeAt(y))){if(!M){g=y+1;break}}else w===-1&&(M=!1,w=y+1);return w===-1?"":l.slice(g,w)},extname(l){s(l,"path");let b=0,g=-1,w=0,M=-1,y=!0,_=0;l.length>=2&&l.charCodeAt(1)===m&&L(l.charCodeAt(0))&&(b=w=2);for(let C=l.length-1;C>=b;--C){const R=l.charCodeAt(C);if(u(R)){if(!y){w=C+1;break}continue}M===-1&&(y=!1,M=C+1),R===p?g===-1?g=C:_!==1&&(_=1):g!==-1&&(_=-1)}return g===-1||M===-1||_===0||_===1&&g===M-1&&g===w+1?"":l.slice(g,M)},format:E.bind(null,"\\"),parse(l){s(l,"path");const b={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return b;const g=l.length;let w=0,M=l.charCodeAt(0);if(g===1)return u(M)?(b.root=b.dir=l,b):(b.base=b.name=l,b);if(u(M)){if(w=1,u(l.charCodeAt(1))){let O=2,z=O;for(;O0&&(b.root=l.slice(0,w));let y=-1,_=w,C=-1,R=!0,D=l.length-1,T=0;for(;D>=w;--D){if(M=l.charCodeAt(D),u(M)){if(!R){_=D+1;break}continue}C===-1&&(R=!1,C=D+1),M===p?y===-1?y=D:T!==1&&(T=1):y!==-1&&(T=-1)}return C!==-1&&(y===-1||T===0||T===1&&y===C-1&&y===_+1?b.base=b.name=l.slice(_,C):(b.name=l.slice(_,y),b.base=l.slice(_,C),b.ext=l.slice(y,C))),_>0&&_!==w?b.dir=l.slice(0,_-1):b.dir=b.root,b},sep:"\\",delimiter:";",win32:null,posix:null};const v=(()=>{if(o){const l=/\\/g;return()=>{const b=i.cwd().replace(l,"/");return b.slice(b.indexOf("/"))}}return()=>i.cwd()})();n.posix={resolve(...l){let b="",g=!1;for(let w=l.length-1;w>=-1&&!g;w--){const M=w>=0?l[w]:v();s(M,`paths[${w}]`),M.length!==0&&(b=`${M}/${b}`,g=M.charCodeAt(0)===c)}return b=N(b,!g,"/",S),g?`/${b}`:b.length>0?b:"."},normalize(l){if(s(l,"path"),l.length===0)return".";const b=l.charCodeAt(0)===c,g=l.charCodeAt(l.length-1)===c;return l=N(l,!b,"/",S),l.length===0?b?"/":g?"./":".":(g&&(l+="/"),b?`/${l}`:l)},isAbsolute(l){return s(l,"path"),l.length>0&&l.charCodeAt(0)===c},join(...l){if(l.length===0)return".";let b;for(let g=0;g0&&(b===void 0?b=w:b+=`/${w}`)}return b===void 0?".":n.posix.normalize(b)},relative(l,b){if(s(l,"from"),s(b,"to"),l===b||(l=n.posix.resolve(l),b=n.posix.resolve(b),l===b))return"";const g=1,w=l.length,M=w-g,y=1,_=b.length-y,C=M<_?M:_;let R=-1,D=0;for(;DC){if(b.charCodeAt(y+D)===c)return b.slice(y+D+1);if(D===0)return b.slice(y+D)}else M>C&&(l.charCodeAt(g+D)===c?R=D:D===0&&(R=0));let T="";for(D=g+R+1;D<=w;++D)(D===w||l.charCodeAt(D)===c)&&(T+=T.length===0?"..":"/..");return`${T}${b.slice(y+R)}`},toNamespacedPath(l){return l},dirname(l){if(s(l,"path"),l.length===0)return".";const b=l.charCodeAt(0)===c;let g=-1,w=!0;for(let M=l.length-1;M>=1;--M)if(l.charCodeAt(M)===c){if(!w){g=M;break}}else w=!1;return g===-1?b?"/":".":b&&g===1?"//":l.slice(0,g)},basename(l,b){b!==void 0&&s(b,"ext"),s(l,"path");let g=0,w=-1,M=!0,y;if(b!==void 0&&b.length>0&&b.length<=l.length){if(b===l)return"";let _=b.length-1,C=-1;for(y=l.length-1;y>=0;--y){const R=l.charCodeAt(y);if(R===c){if(!M){g=y+1;break}}else C===-1&&(M=!1,C=y+1),_>=0&&(R===b.charCodeAt(_)?--_===-1&&(w=y):(_=-1,w=C))}return g===w?w=C:w===-1&&(w=l.length),l.slice(g,w)}for(y=l.length-1;y>=0;--y)if(l.charCodeAt(y)===c){if(!M){g=y+1;break}}else w===-1&&(M=!1,w=y+1);return w===-1?"":l.slice(g,w)},extname(l){s(l,"path");let b=-1,g=0,w=-1,M=!0,y=0;for(let _=l.length-1;_>=0;--_){const C=l.charCodeAt(_);if(C===c){if(!M){g=_+1;break}continue}w===-1&&(M=!1,w=_+1),C===p?b===-1?b=_:y!==1&&(y=1):b!==-1&&(y=-1)}return b===-1||w===-1||y===0||y===1&&b===w-1&&b===g+1?"":l.slice(b,w)},format:E.bind(null,"/"),parse(l){s(l,"path");const b={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return b;const g=l.charCodeAt(0)===c;let w;g?(b.root="/",w=1):w=0;let M=-1,y=0,_=-1,C=!0,R=l.length-1,D=0;for(;R>=w;--R){const T=l.charCodeAt(R);if(T===c){if(!C){y=R+1;break}continue}_===-1&&(C=!1,_=R+1),T===p?M===-1?M=R:D!==1&&(D=1):M!==-1&&(D=-1)}if(_!==-1){const T=y===0&&g?1:y;M===-1||D===0||D===1&&M===_-1&&M===y+1?b.base=b.name=l.slice(T,_):(b.name=l.slice(T,M),b.base=l.slice(T,_),b.ext=l.slice(M,_))}return y>0?b.dir=l.slice(0,y-1):g&&(b.dir="/"),b},sep:"/",delimiter:":",win32:null,posix:null},n.posix.win32=n.win32.win32=n.win32,n.posix.posix=n.win32.posix=n.posix,n.normalize=o?n.win32.normalize:n.posix.normalize,n.join=o?n.win32.join:n.posix.join,n.resolve=o?n.win32.resolve:n.posix.resolve,n.relative=o?n.win32.relative:n.posix.relative,n.dirname=o?n.win32.dirname:n.posix.dirname,n.basename=o?n.win32.basename:n.posix.basename,n.extname=o?n.win32.extname:n.posix.extname,n.sep=o?n.win32.sep:n.posix.sep}),X(J[14],Z([0,1,37,11]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.URI=void 0,n.uriToFsPath=N;const A=/^\w[\w\d+.-]*$/,d=/^\//,f=/^\/\//;function p(b,g){if(!b.scheme&&g)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${b.authority}", path: "${b.path}", query: "${b.query}", fragment: "${b.fragment}"}`);if(b.scheme&&!A.test(b.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(b.path){if(b.authority){if(!d.test(b.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(b.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function c(b,g){return!b&&!g?"file":b}function a(b,g){switch(b){case"https":case"http":case"file":g?g[0]!==e&&(g=e+g):g=e;break}return g}const m="",e="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class r{static isUri(g){return g instanceof r?!0:g?typeof g.authority=="string"&&typeof g.fragment=="string"&&typeof g.path=="string"&&typeof g.query=="string"&&typeof g.scheme=="string"&&typeof g.fsPath=="string"&&typeof g.with=="function"&&typeof g.toString=="function":!1}constructor(g,w,M,y,_,C=!1){typeof g=="object"?(this.scheme=g.scheme||m,this.authority=g.authority||m,this.path=g.path||m,this.query=g.query||m,this.fragment=g.fragment||m):(this.scheme=c(g,C),this.authority=w||m,this.path=a(this.scheme,M||m),this.query=y||m,this.fragment=_||m,p(this,C))}get fsPath(){return N(this,!1)}with(g){if(!g)return this;let{scheme:w,authority:M,path:y,query:_,fragment:C}=g;return w===void 0?w=this.scheme:w===null&&(w=m),M===void 0?M=this.authority:M===null&&(M=m),y===void 0?y=this.path:y===null&&(y=m),_===void 0?_=this.query:_===null&&(_=m),C===void 0?C=this.fragment:C===null&&(C=m),w===this.scheme&&M===this.authority&&y===this.path&&_===this.query&&C===this.fragment?this:new o(w,M,y,_,C)}static parse(g,w=!1){const M=h.exec(g);return M?new o(M[2]||m,l(M[4]||m),l(M[5]||m),l(M[7]||m),l(M[9]||m),w):new o(m,m,m,m,m)}static file(g){let w=m;if(x.isWindows&&(g=g.replace(/\\/g,e)),g[0]===e&&g[1]===e){const M=g.indexOf(e,2);M===-1?(w=g.substring(2),g=e):(w=g.substring(2,M),g=g.substring(M)||e)}return new o("file",w,g,m,m)}static from(g,w){return new o(g.scheme,g.authority,g.path,g.query,g.fragment,w)}static joinPath(g,...w){if(!g.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let M;return x.isWindows&&g.scheme==="file"?M=r.file(i.win32.join(N(g,!0),...w)).path:M=i.posix.join(g.path,...w),g.with({path:M})}toString(g=!1){return P(this,g)}toJSON(){return this}static revive(g){if(g){if(g instanceof r)return g;{const w=new o(g);return w._formatted=g.external??null,w._fsPath=g._sep===s?g.fsPath??null:null,w}}else return g}}n.URI=r;const s=x.isWindows?1:void 0;class o extends r{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=N(this,!1)),this._fsPath}toString(g=!1){return g?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){const g={$mid:1};return this._fsPath&&(g.fsPath=this._fsPath,g._sep=s),this._formatted&&(g.external=this._formatted),this.path&&(g.path=this.path),this.scheme&&(g.scheme=this.scheme),this.authority&&(g.authority=this.authority),this.query&&(g.query=this.query),this.fragment&&(g.fragment=this.fragment),g}}const u={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function S(b,g,w){let M,y=-1;for(let _=0;_=97&&C<=122||C>=65&&C<=90||C>=48&&C<=57||C===45||C===46||C===95||C===126||g&&C===47||w&&C===91||w&&C===93||w&&C===58)y!==-1&&(M+=encodeURIComponent(b.substring(y,_)),y=-1),M!==void 0&&(M+=b.charAt(_));else{M===void 0&&(M=b.substr(0,_));const R=u[C];R!==void 0?(y!==-1&&(M+=encodeURIComponent(b.substring(y,_)),y=-1),M+=R):y===-1&&(y=_)}}return y!==-1&&(M+=encodeURIComponent(b.substring(y))),M!==void 0?M:b}function L(b){let g;for(let w=0;w1&&b.scheme==="file"?w=`//${b.authority}${b.path}`:b.path.charCodeAt(0)===47&&(b.path.charCodeAt(1)>=65&&b.path.charCodeAt(1)<=90||b.path.charCodeAt(1)>=97&&b.path.charCodeAt(1)<=122)&&b.path.charCodeAt(2)===58?g?w=b.path.substr(1):w=b.path[1].toLowerCase()+b.path.substr(2):w=b.path,x.isWindows&&(w=w.replace(/\//g,"\\")),w}function P(b,g){const w=g?L:S;let M="",{scheme:y,authority:_,path:C,query:R,fragment:D}=b;if(y&&(M+=y,M+=":"),(_||y==="file")&&(M+=e,M+=e),_){let T=_.indexOf("@");if(T!==-1){const O=_.substr(0,T);_=_.substr(T+1),T=O.lastIndexOf(":"),T===-1?M+=w(O,!1,!1):(M+=w(O.substr(0,T),!1,!1),M+=":",M+=w(O.substr(T+1),!1,!0)),M+="@"}_=_.toLowerCase(),T=_.lastIndexOf(":"),T===-1?M+=w(_,!1,!0):(M+=w(_.substr(0,T),!1,!0),M+=_.substr(T))}if(C){if(C.length>=3&&C.charCodeAt(0)===47&&C.charCodeAt(2)===58){const T=C.charCodeAt(1);T>=65&&T<=90&&(C=`/${String.fromCharCode(T+32)}:${C.substr(3)}`)}else if(C.length>=2&&C.charCodeAt(1)===58){const T=C.charCodeAt(0);T>=65&&T<=90&&(C=`${String.fromCharCode(T+32)}:${C.substr(2)}`)}M+=w(C,!0,!1)}return R&&(M+="?",M+=w(R,!1,!1)),D&&(M+="#",M+=g?D:S(D,!1,!1)),M}function E(b){try{return decodeURIComponent(b)}catch{return b.length>3?b.substr(0,3)+E(b.substr(3)):b}}const v=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function l(b){return b.match(v)?b.replace(v,g=>E(g)):b}}),X(J[38],Z([0,1,3,11,6,14,37]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.COI=n.FileAccess=n.VSCODE_AUTHORITY=n.RemoteAuthorities=n.connectionTokenQueryName=n.Schemas=void 0,n.matchesScheme=c,n.matchesSomeScheme=a;var p;(function(r){r.inMemory="inmemory",r.vscode="vscode",r.internal="private",r.walkThrough="walkThrough",r.walkThroughSnippet="walkThroughSnippet",r.http="http",r.https="https",r.file="file",r.mailto="mailto",r.untitled="untitled",r.data="data",r.command="command",r.vscodeRemote="vscode-remote",r.vscodeRemoteResource="vscode-remote-resource",r.vscodeManagedRemoteResource="vscode-managed-remote-resource",r.vscodeUserData="vscode-userdata",r.vscodeCustomEditor="vscode-custom-editor",r.vscodeNotebookCell="vscode-notebook-cell",r.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",r.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",r.vscodeNotebookCellOutput="vscode-notebook-cell-output",r.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",r.vscodeNotebookMetadata="vscode-notebook-metadata",r.vscodeInteractiveInput="vscode-interactive-input",r.vscodeSettings="vscode-settings",r.vscodeWorkspaceTrust="vscode-workspace-trust",r.vscodeTerminal="vscode-terminal",r.vscodeChatCodeBlock="vscode-chat-code-block",r.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",r.vscodeChatSesssion="vscode-chat-editor",r.webviewPanel="webview-panel",r.vscodeWebview="vscode-webview",r.extension="extension",r.vscodeFileResource="vscode-file",r.tmp="tmp",r.vsls="vsls",r.vscodeSourceControl="vscode-scm",r.commentsInput="comment",r.codeSetting="code-setting",r.outputChannel="output"})(p||(n.Schemas=p={}));function c(r,s){return d.URI.isUri(r)?(0,A.equalsIgnoreCase)(r.scheme,s):(0,A.startsWithIgnoreCase)(r,s+":")}function a(r,...s){return s.some(o=>c(r,o))}n.connectionTokenQueryName="tkn";class m{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(s){this._preferredWebSchema=s}get _remoteResourcesPath(){return f.posix.join(this._serverRootPath,p.vscodeRemoteResource)}rewrite(s){if(this._delegate)try{return this._delegate(s)}catch(P){return i.onUnexpectedError(P),s}const o=s.authority;let u=this._hosts[o];u&&u.indexOf(":")!==-1&&u.indexOf("[")===-1&&(u=`[${u}]`);const S=this._ports[o],L=this._connectionTokens[o];let N=`path=${encodeURIComponent(s.path)}`;return typeof L=="string"&&(N+=`&${n.connectionTokenQueryName}=${encodeURIComponent(L)}`),d.URI.from({scheme:x.isWeb?this._preferredWebSchema:p.vscodeRemoteResource,authority:`${u}:${S}`,path:this._remoteResourcesPath,query:N})}}n.RemoteAuthorities=new m,n.VSCODE_AUTHORITY="vscode-app";class e{static{this.FALLBACK_AUTHORITY=n.VSCODE_AUTHORITY}asBrowserUri(s){const o=this.toUri(s,W);return this.uriToBrowserUri(o)}uriToBrowserUri(s){return s.scheme===p.vscodeRemote?n.RemoteAuthorities.rewrite(s):s.scheme===p.file&&(x.isNative||x.webWorkerOrigin===`${p.vscodeFileResource}://${e.FALLBACK_AUTHORITY}`)?s.with({scheme:p.vscodeFileResource,authority:s.authority||e.FALLBACK_AUTHORITY,query:null,fragment:null}):s}toUri(s,o){if(d.URI.isUri(s))return s;if(globalThis._VSCODE_FILE_ROOT){const u=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(u))return d.URI.joinPath(d.URI.parse(u,!0),s);const S=f.join(u,s);return d.URI.file(S)}return d.URI.parse(o.toUrl(s))}}n.FileAccess=new e;var h;(function(r){const s=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);r.CoopAndCoep=Object.freeze(s.get("3"));const o="vscode-coi";function u(L){let N;typeof L=="string"?N=new URL(L).searchParams:L instanceof URL?N=L.searchParams:d.URI.isUri(L)&&(N=new URL(L.toString(!0)).searchParams);const P=N?.get(o);if(P)return s.get(P)}r.getHeadersFromQuery=u;function S(L,N,P){if(!globalThis.crossOriginIsolated)return;const E=N&&P?"3":P?"2":"1";L instanceof URLSearchParams?L.set(o,E):L[o]=E}r.addSearchParam=S})(h||(n.COI=h={}))}),X(J[76],Z([0,1,3,9,8,38,11,6]),function(W,n,i,x,A,d,f,p){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SimpleWorkerServer=n.SimpleWorkerClient=void 0,n.logOnceWebWorkerWarning=h,n.create=l;const c=!1,a="default",m="$initialize";let e=!1;function h(b){f.isWeb&&(e||(e=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(b.message))}class r{constructor(g,w,M,y,_){this.vsWorker=g,this.req=w,this.channel=M,this.method=y,this.args=_,this.type=0}}class s{constructor(g,w,M,y){this.vsWorker=g,this.seq=w,this.res=M,this.err=y,this.type=1}}class o{constructor(g,w,M,y,_){this.vsWorker=g,this.req=w,this.channel=M,this.eventName=y,this.arg=_,this.type=2}}class u{constructor(g,w,M){this.vsWorker=g,this.req=w,this.event=M,this.type=3}}class S{constructor(g,w){this.vsWorker=g,this.req=w,this.type=4}}class L{constructor(g){this._workerId=-1,this._handler=g,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(g){this._workerId=g}sendMessage(g,w,M){const y=String(++this._lastSentReq);return new Promise((_,C)=>{this._pendingReplies[y]={resolve:_,reject:C},this._send(new r(this._workerId,y,g,w,M))})}listen(g,w,M){let y=null;const _=new x.Emitter({onWillAddFirstListener:()=>{y=String(++this._lastSentReq),this._pendingEmitters.set(y,_),this._send(new o(this._workerId,y,g,w,M))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(y),this._send(new S(this._workerId,y)),y=null}});return _.event}handleMessage(g){!g||!g.vsWorker||this._workerId!==-1&&g.vsWorker!==this._workerId||this._handleMessage(g)}createProxyToRemoteChannel(g,w){const M={get:(y,_)=>(typeof _=="string"&&!y[_]&&(E(_)?y[_]=C=>this.listen(g,_,C):P(_)?y[_]=this.listen(g,_,void 0):_.charCodeAt(0)===36&&(y[_]=async(...C)=>(await w?.(),this.sendMessage(g,_,C)))),y[_])};return new Proxy(Object.create(null),M)}_handleMessage(g){switch(g.type){case 1:return this._handleReplyMessage(g);case 0:return this._handleRequestMessage(g);case 2:return this._handleSubscribeEventMessage(g);case 3:return this._handleEventMessage(g);case 4:return this._handleUnsubscribeEventMessage(g)}}_handleReplyMessage(g){if(!this._pendingReplies[g.seq]){console.warn("Got reply to unknown seq");return}const w=this._pendingReplies[g.seq];if(delete this._pendingReplies[g.seq],g.err){let M=g.err;g.err.$isError&&(M=new Error,M.name=g.err.name,M.message=g.err.message,M.stack=g.err.stack),w.reject(M);return}w.resolve(g.res)}_handleRequestMessage(g){const w=g.req;this._handler.handleMessage(g.channel,g.method,g.args).then(y=>{this._send(new s(this._workerId,w,y,void 0))},y=>{y.detail instanceof Error&&(y.detail=(0,i.transformErrorForSerialization)(y.detail)),this._send(new s(this._workerId,w,void 0,(0,i.transformErrorForSerialization)(y)))})}_handleSubscribeEventMessage(g){const w=g.req,M=this._handler.handleEvent(g.channel,g.eventName,g.arg)(y=>{this._send(new u(this._workerId,w,y))});this._pendingEvents.set(w,M)}_handleEventMessage(g){if(!this._pendingEmitters.has(g.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(g.req).fire(g.event)}_handleUnsubscribeEventMessage(g){if(!this._pendingEvents.has(g.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(g.req).dispose(),this._pendingEvents.delete(g.req)}_send(g){const w=[];if(g.type===0)for(let M=0;M{this._protocol.handleMessage(_)},_=>{(0,i.onUnexpectedError)(_)})),this._protocol=new L({sendMessage:(_,C)=>{this._worker.postMessage(_,C)},handleMessage:(_,C,R)=>this._handleMessage(_,C,R),handleEvent:(_,C,R)=>this._handleEvent(_,C,R)}),this._protocol.setWorkerId(this._worker.getId());let M=null;const y=globalThis.require;typeof y<"u"&&typeof y.getConfig=="function"?M=y.getConfig():typeof globalThis.requirejs<"u"&&(M=globalThis.requirejs.s.contexts._.config),this._onModuleLoaded=this._protocol.sendMessage(a,m,[this._worker.getId(),JSON.parse(JSON.stringify(M)),w.amdModuleId]),this.proxy=this._protocol.createProxyToRemoteChannel(a,async()=>{await this._onModuleLoaded}),this._onModuleLoaded.catch(_=>{this._onError("Worker failed to load "+w.amdModuleId,_)})}_handleMessage(g,w,M){const y=this._localChannels.get(g);if(!y)return Promise.reject(new Error(`Missing channel ${g} on main thread`));if(typeof y[w]!="function")return Promise.reject(new Error(`Missing method ${w} on main thread channel ${g}`));try{return Promise.resolve(y[w].apply(y,M))}catch(_){return Promise.reject(_)}}_handleEvent(g,w,M){const y=this._localChannels.get(g);if(!y)throw new Error(`Missing channel ${g} on main thread`);if(E(w)){const _=y[w].call(y,M);if(typeof _!="function")throw new Error(`Missing dynamic event ${w} on main thread channel ${g}.`);return _}if(P(w)){const _=y[w];if(typeof _!="function")throw new Error(`Missing event ${w} on main thread channel ${g}.`);return _}throw new Error(`Malformed event name ${w}`)}setChannel(g,w){this._localChannels.set(g,w)}_onError(g,w){console.error(g),console.info(w)}}n.SimpleWorkerClient=N;function P(b){return b[0]==="o"&&b[1]==="n"&&p.isUpperAsciiLetter(b.charCodeAt(2))}function E(b){return/^onDynamic/.test(b)&&p.isUpperAsciiLetter(b.charCodeAt(9))}class v{constructor(g,w){this._localChannels=new Map,this._remoteChannels=new Map,this._requestHandlerFactory=w,this._requestHandler=null,this._protocol=new L({sendMessage:(M,y)=>{g(M,y)},handleMessage:(M,y,_)=>this._handleMessage(M,y,_),handleEvent:(M,y,_)=>this._handleEvent(M,y,_)})}onmessage(g){this._protocol.handleMessage(g)}_handleMessage(g,w,M){if(g===a&&w===m)return this.initialize(M[0],M[1],M[2]);const y=g===a?this._requestHandler:this._localChannels.get(g);if(!y)return Promise.reject(new Error(`Missing channel ${g} on worker thread`));if(typeof y[w]!="function")return Promise.reject(new Error(`Missing method ${w} on worker thread channel ${g}`));try{return Promise.resolve(y[w].apply(y,M))}catch(_){return Promise.reject(_)}}_handleEvent(g,w,M){const y=g===a?this._requestHandler:this._localChannels.get(g);if(!y)throw new Error(`Missing channel ${g} on worker thread`);if(E(w)){const _=y[w].call(y,M);if(typeof _!="function")throw new Error(`Missing dynamic event ${w} on request handler.`);return _}if(P(w)){const _=y[w];if(typeof _!="function")throw new Error(`Missing event ${w} on request handler.`);return _}throw new Error(`Malformed event name ${w}`)}getChannel(g){if(!this._remoteChannels.has(g)){const w=this._protocol.createProxyToRemoteChannel(g);this._remoteChannels.set(g,w)}return this._remoteChannels.get(g)}async initialize(g,w,M){if(this._protocol.setWorkerId(g),this._requestHandlerFactory){this._requestHandler=this._requestHandlerFactory(this);return}if(w&&(typeof w.baseUrl<"u"&&delete w.baseUrl,typeof w.paths<"u"&&typeof w.paths.vs<"u"&&delete w.paths.vs,typeof w.trustedTypesPolicy<"u"&&delete w.trustedTypesPolicy,w.catchError=!0,globalThis.require.config(w)),c){const y=d.FileAccess.asBrowserUri(`${M}.js`).toString(!0);return new Promise((_,C)=>{W([`${y}`],_,C)}).then(_=>{if(this._requestHandler=_.create(this),!this._requestHandler)throw new Error("No RequestHandler!")})}return new Promise((y,_)=>{(globalThis.require||W)([M],R=>{if(this._requestHandler=R.create(this),!this._requestHandler){_(new Error("No RequestHandler!"));return}y()},_)})}}n.SimpleWorkerServer=v;function l(b){return new v(b,null)}}),X(J[73],Z([0,1,47,14,2,70,36]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.InlineEditTriggerKind=n.TreeSitterTokenizationRegistry=n.TokenizationRegistry=n.LazyTokenizationSupport=n.InlayHintKind=n.Command=n.NewSymbolNameTriggerKind=n.NewSymbolNameTag=n.FoldingRangeKind=n.TextEdit=n.SymbolKinds=n.symbolKindNames=n.DocumentHighlightKind=n.SignatureHelpTriggerKind=n.DocumentPasteTriggerKind=n.SelectedSuggestionInfo=n.InlineCompletionTriggerKind=n.CompletionItemKinds=n.HoverVerbosityAction=n.EncodedTokenizationResult=n.TokenizationResult=n.Token=void 0,n.isLocationLink=S,n.getAriaLabelForSymbol=L;class p{constructor(_,C,R){this.offset=_,this.type=C,this.language=R,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}n.Token=p;class c{constructor(_,C){this.tokens=_,this.endState=C,this._tokenizationResultBrand=void 0}}n.TokenizationResult=c;class a{constructor(_,C){this.tokens=_,this.endState=C,this._encodedTokenizationResultBrand=void 0}}n.EncodedTokenizationResult=a;var m;(function(y){y[y.Increase=0]="Increase",y[y.Decrease=1]="Decrease"})(m||(n.HoverVerbosityAction=m={}));var e;(function(y){const _=new Map;_.set(0,i.Codicon.symbolMethod),_.set(1,i.Codicon.symbolFunction),_.set(2,i.Codicon.symbolConstructor),_.set(3,i.Codicon.symbolField),_.set(4,i.Codicon.symbolVariable),_.set(5,i.Codicon.symbolClass),_.set(6,i.Codicon.symbolStruct),_.set(7,i.Codicon.symbolInterface),_.set(8,i.Codicon.symbolModule),_.set(9,i.Codicon.symbolProperty),_.set(10,i.Codicon.symbolEvent),_.set(11,i.Codicon.symbolOperator),_.set(12,i.Codicon.symbolUnit),_.set(13,i.Codicon.symbolValue),_.set(15,i.Codicon.symbolEnum),_.set(14,i.Codicon.symbolConstant),_.set(15,i.Codicon.symbolEnum),_.set(16,i.Codicon.symbolEnumMember),_.set(17,i.Codicon.symbolKeyword),_.set(27,i.Codicon.symbolSnippet),_.set(18,i.Codicon.symbolText),_.set(19,i.Codicon.symbolColor),_.set(20,i.Codicon.symbolFile),_.set(21,i.Codicon.symbolReference),_.set(22,i.Codicon.symbolCustomColor),_.set(23,i.Codicon.symbolFolder),_.set(24,i.Codicon.symbolTypeParameter),_.set(25,i.Codicon.account),_.set(26,i.Codicon.issues);function C(T){let O=_.get(T);return O||(console.info("No codicon found for CompletionItemKind "+T),O=i.Codicon.symbolProperty),O}y.toIcon=C;const R=new Map;R.set("method",0),R.set("function",1),R.set("constructor",2),R.set("field",3),R.set("variable",4),R.set("class",5),R.set("struct",6),R.set("interface",7),R.set("module",8),R.set("property",9),R.set("event",10),R.set("operator",11),R.set("unit",12),R.set("value",13),R.set("constant",14),R.set("enum",15),R.set("enum-member",16),R.set("enumMember",16),R.set("keyword",17),R.set("snippet",27),R.set("text",18),R.set("color",19),R.set("file",20),R.set("reference",21),R.set("customcolor",22),R.set("folder",23),R.set("type-parameter",24),R.set("typeParameter",24),R.set("account",25),R.set("issue",26);function D(T,O){let z=R.get(T);return typeof z>"u"&&!O&&(z=9),z}y.fromString=D})(e||(n.CompletionItemKinds=e={}));var h;(function(y){y[y.Automatic=0]="Automatic",y[y.Explicit=1]="Explicit"})(h||(n.InlineCompletionTriggerKind=h={}));class r{constructor(_,C,R,D){this.range=_,this.text=C,this.completionKind=R,this.isSnippetText=D}equals(_){return A.Range.lift(this.range).equalsRange(_.range)&&this.text===_.text&&this.completionKind===_.completionKind&&this.isSnippetText===_.isSnippetText}}n.SelectedSuggestionInfo=r;var s;(function(y){y[y.Automatic=0]="Automatic",y[y.PasteAs=1]="PasteAs"})(s||(n.DocumentPasteTriggerKind=s={}));var o;(function(y){y[y.Invoke=1]="Invoke",y[y.TriggerCharacter=2]="TriggerCharacter",y[y.ContentChange=3]="ContentChange"})(o||(n.SignatureHelpTriggerKind=o={}));var u;(function(y){y[y.Text=0]="Text",y[y.Read=1]="Read",y[y.Write=2]="Write"})(u||(n.DocumentHighlightKind=u={}));function S(y){return y&&x.URI.isUri(y.uri)&&A.Range.isIRange(y.range)&&(A.Range.isIRange(y.originSelectionRange)||A.Range.isIRange(y.targetSelectionRange))}n.symbolKindNames={17:(0,f.localize)(669,"array"),16:(0,f.localize)(670,"boolean"),4:(0,f.localize)(671,"class"),13:(0,f.localize)(672,"constant"),8:(0,f.localize)(673,"constructor"),9:(0,f.localize)(674,"enumeration"),21:(0,f.localize)(675,"enumeration member"),23:(0,f.localize)(676,"event"),7:(0,f.localize)(677,"field"),0:(0,f.localize)(678,"file"),11:(0,f.localize)(679,"function"),10:(0,f.localize)(680,"interface"),19:(0,f.localize)(681,"key"),5:(0,f.localize)(682,"method"),1:(0,f.localize)(683,"module"),2:(0,f.localize)(684,"namespace"),20:(0,f.localize)(685,"null"),15:(0,f.localize)(686,"number"),18:(0,f.localize)(687,"object"),24:(0,f.localize)(688,"operator"),3:(0,f.localize)(689,"package"),6:(0,f.localize)(690,"property"),14:(0,f.localize)(691,"string"),22:(0,f.localize)(692,"struct"),25:(0,f.localize)(693,"type parameter"),12:(0,f.localize)(694,"variable")};function L(y,_){return(0,f.localize)(695,"{0} ({1})",y,n.symbolKindNames[_])}var N;(function(y){const _=new Map;_.set(0,i.Codicon.symbolFile),_.set(1,i.Codicon.symbolModule),_.set(2,i.Codicon.symbolNamespace),_.set(3,i.Codicon.symbolPackage),_.set(4,i.Codicon.symbolClass),_.set(5,i.Codicon.symbolMethod),_.set(6,i.Codicon.symbolProperty),_.set(7,i.Codicon.symbolField),_.set(8,i.Codicon.symbolConstructor),_.set(9,i.Codicon.symbolEnum),_.set(10,i.Codicon.symbolInterface),_.set(11,i.Codicon.symbolFunction),_.set(12,i.Codicon.symbolVariable),_.set(13,i.Codicon.symbolConstant),_.set(14,i.Codicon.symbolString),_.set(15,i.Codicon.symbolNumber),_.set(16,i.Codicon.symbolBoolean),_.set(17,i.Codicon.symbolArray),_.set(18,i.Codicon.symbolObject),_.set(19,i.Codicon.symbolKey),_.set(20,i.Codicon.symbolNull),_.set(21,i.Codicon.symbolEnumMember),_.set(22,i.Codicon.symbolStruct),_.set(23,i.Codicon.symbolEvent),_.set(24,i.Codicon.symbolOperator),_.set(25,i.Codicon.symbolTypeParameter);function C(R){let D=_.get(R);return D||(console.info("No codicon found for SymbolKind "+R),D=i.Codicon.symbolProperty),D}y.toIcon=C})(N||(n.SymbolKinds=N={}));class P{}n.TextEdit=P;class E{static{this.Comment=new E("comment")}static{this.Imports=new E("imports")}static{this.Region=new E("region")}static fromValue(_){switch(_){case"comment":return E.Comment;case"imports":return E.Imports;case"region":return E.Region}return new E(_)}constructor(_){this.value=_}}n.FoldingRangeKind=E;var v;(function(y){y[y.AIGenerated=1]="AIGenerated"})(v||(n.NewSymbolNameTag=v={}));var l;(function(y){y[y.Invoke=0]="Invoke",y[y.Automatic=1]="Automatic"})(l||(n.NewSymbolNameTriggerKind=l={}));var b;(function(y){function _(C){return!C||typeof C!="object"?!1:typeof C.id=="string"&&typeof C.title=="string"}y.is=_})(b||(n.Command=b={}));var g;(function(y){y[y.Type=1]="Type",y[y.Parameter=2]="Parameter"})(g||(n.InlayHintKind=g={}));class w{constructor(_){this.createSupport=_,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(_=>{_&&_.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}n.LazyTokenizationSupport=w,n.TokenizationRegistry=new d.TokenizationRegistry,n.TreeSitterTokenizationRegistry=new d.TokenizationRegistry;var M;(function(y){y[y.Invoke=0]="Invoke",y[y.Automatic=1]="Automatic"})(M||(n.InlineEditTriggerKind=M={}))}),X(J[74],Z([0,1,23,9,42,14,4,2,48,73,69]),function(W,n,i,x,A,d,f,p,c,a,m){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KeyMod=void 0,n.createMonacoBaseAPI=h;class e{static{this.CtrlCmd=2048}static{this.Shift=1024}static{this.Alt=512}static{this.WinCtrl=256}static chord(s,o){return(0,A.KeyChord)(s,o)}}n.KeyMod=e;function h(){return{editor:void 0,languages:void 0,CancellationTokenSource:i.CancellationTokenSource,Emitter:x.Emitter,KeyCode:m.KeyCode,KeyMod:e,Position:f.Position,Range:p.Range,Selection:c.Selection,SelectionDirection:m.SelectionDirection,MarkerSeverity:m.MarkerSeverity,MarkerTag:m.MarkerTag,Uri:d.URI,Token:a.Token}}}),X(J[75],Z([0,1,71,8,14,4,2,31,64]),function(W,n,i,x,A,d,f,p,c){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MirrorModel=n.WorkerTextModelSyncServer=n.WorkerTextModelSyncClient=n.STOP_SYNC_MODEL_DELTA_TIME_MS=void 0,n.STOP_SYNC_MODEL_DELTA_TIME_MS=60*1e3;class a extends x.Disposable{constructor(r,s,o=!1){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=r,this._modelService=s,!o){const u=new i.IntervalTimer;u.cancelAndSet(()=>this._checkStopModelSync(),Math.round(n.STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(u)}}dispose(){for(const r in this._syncedModels)(0,x.dispose)(this._syncedModels[r]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(r,s=!1){for(const o of r){const u=o.toString();this._syncedModels[u]||this._beginModelSync(o,s),this._syncedModels[u]&&(this._syncedModelsLastUsedTime[u]=new Date().getTime())}}_checkStopModelSync(){const r=new Date().getTime(),s=[];for(const o in this._syncedModelsLastUsedTime)r-this._syncedModelsLastUsedTime[o]>n.STOP_SYNC_MODEL_DELTA_TIME_MS&&s.push(o);for(const o of s)this._stopModelSync(o)}_beginModelSync(r,s){const o=this._modelService.getModel(r);if(!o||!s&&o.isTooLargeForSyncing())return;const u=r.toString();this._proxy.$acceptNewModel({url:o.uri.toString(),lines:o.getLinesContent(),EOL:o.getEOL(),versionId:o.getVersionId()});const S=new x.DisposableStore;S.add(o.onDidChangeContent(L=>{this._proxy.$acceptModelChanged(u.toString(),L)})),S.add(o.onWillDispose(()=>{this._stopModelSync(u)})),S.add((0,x.toDisposable)(()=>{this._proxy.$acceptRemovedModel(u)})),this._syncedModels[u]=S}_stopModelSync(r){const s=this._syncedModels[r];delete this._syncedModels[r],delete this._syncedModelsLastUsedTime[r],(0,x.dispose)(s)}}n.WorkerTextModelSyncClient=a;class m{constructor(){this._models=Object.create(null)}getModel(r){return this._models[r]}getModels(){const r=[];return Object.keys(this._models).forEach(s=>r.push(this._models[s])),r}$acceptNewModel(r){this._models[r.url]=new e(A.URI.parse(r.url),r.lines,r.EOL,r.versionId)}$acceptModelChanged(r,s){if(!this._models[r])return;this._models[r].onEvents(s)}$acceptRemovedModel(r){this._models[r]&&delete this._models[r]}}n.WorkerTextModelSyncServer=m;class e extends c.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(r){const s=[];for(let o=0;othis._lines.length)s=this._lines.length,o=this._lines[s-1].length+1,u=!0;else{const S=this._lines[s-1].length+1;o<1?(o=1,u=!0):o>S&&(o=S,u=!0)}return u?{lineNumber:s,column:o}:r}}n.MirrorModel=e}),X(J[77],Z([0,1,24,2,60,61,74,66,22,68,58,27,38,59,67,75]),function(W,n,i,x,A,d,f,p,c,a,m,e,h,r,s,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EditorSimpleWorker=n.BaseEditorSimpleWorker=void 0,n.create=N;const u=!1;class S{constructor(){this._workerTextModelSyncServer=new o.WorkerTextModelSyncServer}dispose(){}_getModel(E){return this._workerTextModelSyncServer.getModel(E)}_getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(E){this._workerTextModelSyncServer.$acceptNewModel(E)}$acceptModelChanged(E,v){this._workerTextModelSyncServer.$acceptModelChanged(E,v)}$acceptRemovedModel(E){this._workerTextModelSyncServer.$acceptRemovedModel(E)}async $computeUnicodeHighlights(E,v,l){const b=this._getModel(E);return b?a.UnicodeTextModelHighlighter.computeUnicodeHighlights(b,v,l):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async $findSectionHeaders(E,v){const l=this._getModel(E);return l?(0,s.findSectionHeaders)(l,v):[]}async $computeDiff(E,v,l,b){const g=this._getModel(E),w=this._getModel(v);return!g||!w?null:L.computeDiff(g,w,l,b)}static computeDiff(E,v,l,b){const g=b==="advanced"?m.linesDiffComputers.getDefault():m.linesDiffComputers.getLegacy(),w=E.getLinesContent(),M=v.getLinesContent(),y=g.computeDiff(w,M,l),_=y.changes.length>0?!1:this._modelsAreIdentical(E,v);function C(R){return R.map(D=>[D.original.startLineNumber,D.original.endLineNumberExclusive,D.modified.startLineNumber,D.modified.endLineNumberExclusive,D.innerChanges?.map(T=>[T.originalRange.startLineNumber,T.originalRange.startColumn,T.originalRange.endLineNumber,T.originalRange.endColumn,T.modifiedRange.startLineNumber,T.modifiedRange.startColumn,T.modifiedRange.endLineNumber,T.modifiedRange.endColumn])])}return{identical:_,quitEarly:y.hitTimeout,changes:C(y.changes),moves:y.moves.map(R=>[R.lineRangeMapping.original.startLineNumber,R.lineRangeMapping.original.endLineNumberExclusive,R.lineRangeMapping.modified.startLineNumber,R.lineRangeMapping.modified.endLineNumberExclusive,C(R.changes)])}}static _modelsAreIdentical(E,v){const l=E.getLineCount(),b=v.getLineCount();if(l!==b)return!1;for(let g=1;g<=l;g++){const w=E.getLineContent(g),M=v.getLineContent(g);if(w!==M)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(E,v,l){const b=this._getModel(E);if(!b)return v;const g=[];let w;v=v.slice(0).sort((y,_)=>{if(y.range&&_.range)return x.Range.compareRangesUsingStarts(y.range,_.range);const C=y.range?0:1,R=_.range?0:1;return C-R});let M=0;for(let y=1;yL._diffLimit){g.push({range:y,text:_});continue}const D=(0,i.stringDiff)(R,_,l),T=b.offsetAt(x.Range.lift(y).getStartPosition());for(const O of D){const z=b.positionAt(T+O.originalStart),j=b.positionAt(T+O.originalStart+O.originalLength),F={text:_.substr(O.modifiedStart,O.modifiedLength),range:{startLineNumber:z.lineNumber,startColumn:z.column,endLineNumber:j.lineNumber,endColumn:j.column}};b.getValueInRange(F.range)!==F.text&&g.push(F)}}return typeof w=="number"&&g.push({eol:w,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),g}async $computeLinks(E){const v=this._getModel(E);return v?(0,A.computeLinks)(v):null}async $computeDefaultDocumentColors(E){const v=this._getModel(E);return v?(0,r.computeDefaultDocumentColors)(v):null}static{this._suggestionsLimit=1e4}async $textualSuggest(E,v,l,b){const g=new c.StopWatch,w=new RegExp(l,b),M=new Set;e:for(const y of E){const _=this._getModel(y);if(_){for(const C of _.words(w))if(!(C===v||!isNaN(Number(C)))&&(M.add(C),M.size>L._suggestionsLimit))break e}}return{words:Array.from(M),duration:g.elapsed()}}async $computeWordRanges(E,v,l,b){const g=this._getModel(E);if(!g)return Object.create(null);const w=new RegExp(l,b),M=Object.create(null);for(let y=v.startLineNumber;ythis._host.$fhr(M,y),w={host:(0,e.createProxyObject)(l,b),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(w,v),Promise.resolve((0,e.getAllMethodNames)(this._foreignModule))):new Promise((M,y)=>{const _=C=>{this._foreignModule=C.create(w,v),M((0,e.getAllMethodNames)(this._foreignModule))};if(!u)W([`${E}`],_,y);else{const C=h.FileAccess.asBrowserUri(`${E}.js`).toString(!0);new Promise((R,D)=>{W([`${C}`],R,D)}).then(_).catch(y)}})}$fmr(E,v){if(!this._foreignModule||typeof this._foreignModule[E]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+E));try{return Promise.resolve(this._foreignModule[E].apply(this._foreignModule,v))}catch(l){return Promise.reject(l)}}}n.EditorSimpleWorker=L;function N(P){return new L(p.EditorWorkerHost.getChannel(P),null)}typeof importScripts=="function"&&(globalThis.monaco=(0,f.createMonacoBaseAPI)())})}).call(this); - -//# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map \ No newline at end of file diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/abap/abap.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/abap/abap.js deleted file mode 100644 index 4d640ab5d..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/abap/abap.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/abap/abap", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var i in e)s(t,i,{get:e[i],enumerable:!0})},d=(t,e,i,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!c.call(t,n)&&n!==i&&s(t,n,{get:()=>e[n],enumerable:!(a=o(e,n))||a.enumerable});return t};var p=t=>d(s({},"__esModule",{value:!0}),t);var g={};l(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},u={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}};return p(g);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/apex/apex.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/apex/apex.js deleted file mode 100644 index 1d345475b..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/apex/apex.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/apex/apex", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(e,t)=>{for(var s in t)i(e,s,{get:t[s],enumerable:!0})},g=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of c(t))!l.call(e,o)&&o!==s&&i(e,o,{get:()=>t[o],enumerable:!(a=r(t,o))||a.enumerable});return e};var p=e=>g(i({},"__esModule",{value:!0}),e);var h={};d(h,{conf:()=>m,language:()=>b});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},u=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],f=e=>e.charAt(0).toUpperCase()+e.substr(1),n=[];u.forEach(e=>{n.push(e),n.push(e.toUpperCase()),n.push(f(e))});var b={defaultToken:"",tokenPostfix:".apex",keywords:n,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};return p(h);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/azcli/azcli.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/azcli/azcli.js deleted file mode 100644 index 842f39cd1..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/azcli/azcli.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/azcli/azcli", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},k=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!l.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(a=i(e,n))||a.enumerable});return t};var p=t=>k(s({},"__esModule",{value:!0}),t);var d={};c(d,{conf:()=>f,language:()=>g});var f={comments:{lineComment:"#"}},g={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}};return p(d);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/bat/bat.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/bat/bat.js deleted file mode 100644 index 34424bd87..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/bat/bat.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/bat/bat", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var g=(o,e)=>{for(var t in e)n(o,t,{get:e[t],enumerable:!0})},c=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!i.call(o,s)&&s!==t&&n(o,s,{get:()=>e[s],enumerable:!(a=r(e,s))||a.enumerable});return o};var p=o=>c(n({},"__esModule",{value:!0}),o);var k={};g(k,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var g=(e,n)=>{for(var o in n)r(e,o,{get:n[o],enumerable:!0})},l=(e,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of c(n))!a.call(e,t)&&t!==o&&r(e,t,{get:()=>n[t],enumerable:!(i=s(n,t))||i.enumerable});return e};var m=e=>l(r({},"__esModule",{value:!0}),e);var y={};g(y,{conf:()=>$,language:()=>w});var p=e=>`\\b${e}\\b`,k="[_a-zA-Z]",x="[_a-zA-Z0-9]",u=p(`${k}${x}*`),d=["targetScope","resource","module","param","var","output","for","in","if","existing"],b=["true","false","null"],f="[ \\t\\r\\n]",C="[0-9]+",$={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:`:.,=}])' - `,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},w={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},m=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(o,t)&&t!==n&&s(o,t,{get:()=>e[t],enumerable:!(r=i(e,t))||r.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},g={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/clojure/clojure.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/clojure/clojure.js deleted file mode 100644 index 3a3369e92..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/clojure/clojure.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/clojure/clojure", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},l=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!c.call(t,n)&&n!==r&&a(t,n,{get:()=>e[n],enumerable:!(s=o(e,n))||s.enumerable});return t};var p=t=>l(a({},"__esModule",{value:!0}),t);var h={};d(h,{conf:()=>u,language:()=>m});var u={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}};return p(h);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/coffee/coffee.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/coffee/coffee.js deleted file mode 100644 index d8dfa50cd..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/coffee/coffee.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/coffee/coffee", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},p=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of g(e))!a.call(n,r)&&r!==t&&s(n,r,{get:()=>e[r],enumerable:!(o=i(e,r))||o.enumerable});return n};var c=n=>p(s({},"__esModule",{value:!0}),n);var m={};l(m,{conf:()=>d,language:()=>x});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},x={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var i in e)o(n,i,{get:e[i],enumerable:!0})},l=(n,e,i,_)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!s.call(n,t)&&t!==i&&o(n,t,{get:()=>e[t],enumerable:!(_=r(e,t))||_.enumerable});return n};var d=n=>l(o({},"__esModule",{value:!0}),n);var u={};c(u,{conf:()=>p,language:()=>m});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},m={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m512","__m512d","__m512i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>="],symbols:/[=>\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/[^)]+/,"string.raw"],[/\)$S2\"/,{token:"string.raw.end",next:"@pop"}],[/\)/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}};return d(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csharp/csharp.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csharp/csharp.js deleted file mode 100644 index 6ff355045..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csharp/csharp.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/csharp/csharp", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return t};var g=t=>p(s({},"__esModule",{value:!0}),t);var u={};l(u,{conf:()=>d,language:()=>m});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return g(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csp/csp.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csp/csp.js deleted file mode 100644 index 5a15883d3..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/csp/csp.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/csp/csp", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var a=(r,t)=>{for(var s in t)o(r,s,{get:t[s],enumerable:!0})},c=(r,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of u(t))!g.call(r,e)&&e!==s&&o(r,e,{get:()=>t[e],enumerable:!(n=i(t,e))||n.enumerable});return r};var q=r=>c(o({},"__esModule",{value:!0}),r);var p={};a(p,{conf:()=>f,language:()=>l});var f={brackets:[],autoClosingPairs:[],surroundingPairs:[]},l={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!l.call(t,n)&&n!==o&&r(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var d=t=>c(r({},"__esModule",{value:!0}),t);var k={};m(k,{conf:()=>u,language:()=>p});var u={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},p={defaultToken:"",tokenPostfix:".css",ws:`[ -\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};return d(k);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/cypher/cypher.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/cypher/cypher.js deleted file mode 100644 index 98ade3a2e..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/cypher/cypher.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/cypher/cypher", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(i,e)=>{for(var n in e)s(i,n,{get:e[n],enumerable:!0})},g=(i,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(i,t)&&t!==n&&s(i,t,{get:()=>e[t],enumerable:!(o=r(e,t))||o.enumerable});return i};var p=i=>g(s({},"__esModule",{value:!0}),i);var u={};c(u,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},m={defaultToken:"",tokenPostfix:".cypher",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","AND","AS","ASC","ASCENDING","BY","CALL","CASE","CONTAINS","CREATE","DELETE","DESC","DESCENDING","DETACH","DISTINCT","ELSE","END","ENDS","EXISTS","IN","IS","LIMIT","MANDATORY","MATCH","MERGE","NOT","ON","ON","OPTIONAL","OR","ORDER","REMOVE","RETURN","SET","SKIP","STARTS","THEN","UNION","UNWIND","WHEN","WHERE","WITH","XOR","YIELD"],builtinLiterals:["true","TRUE","false","FALSE","null","NULL"],builtinFunctions:["abs","acos","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endNode","exists","exp","floor","head","id","keys","labels","last","left","length","log","log10","lTrim","max","min","nodes","percentileCont","percentileDisc","pi","properties","radians","rand","range","relationships","replace","reverse","right","round","rTrim","sign","sin","size","split","sqrt","startNode","stDev","stDevP","substring","sum","tail","tan","timestamp","toBoolean","toFloat","toInteger","toLower","toString","toUpper","trim","type"],operators:["+","-","*","/","%","^","=","<>","<",">","<=",">=","->","<-","-->","<--"],escapes:/\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+/,octaldigits:/[0-7]+/,hexdigits:/[0-9a-fA-F]+/,tokenizer:{root:[[/[{}[\]()]/,"@brackets"],{include:"common"}],common:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/:[a-zA-Z_][\w]*/,"type.identifier"],[/[a-zA-Z_][\w]*(?=\()/,{cases:{"@builtinFunctions":"predefined.function"}}],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":"keyword","@builtinLiterals":"predefined.literal","@default":"identifier"}}],[/`/,"identifier.escape","@identifierBacktick"],[/[;,.:|]/,"delimiter"],[/[<>=%+\-*/^]+/,{cases:{"@operators":"delimiter","@default":""}}]],numbers:[[/-?(@digits)[eE](-?(@digits))?/,"number.float"],[/-?(@digits)?\.(@digits)([eE]-?(@digits))?/,"number.float"],[/-?0x(@hexdigits)/,"number.hex"],[/-?0(@octaldigits)/,"number.octal"],[/-?(@digits)/,"number"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@stringDouble"],[/'/,"string","@stringSingle"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/\/\/.*/,"comment"],[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],stringDouble:[[/[^\\"]+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/"/,"string","@pop"]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/'/,"string","@pop"]],identifierBacktick:[[/[^\\`]+/,"identifier.escape"],[/@escapes/,"identifier.escape"],[/\\./,"identifier.escape.invalid"],[/`/,"identifier.escape","@pop"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dart/dart.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dart/dart.js deleted file mode 100644 index e021c87e8..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dart/dart.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/dart/dart", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var p=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!a.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(s=i(e,o))||s.enumerable});return n};var l=n=>g(r({},"__esModule",{value:!0}),n);var x={};p(x,{conf:()=>d,language:()=>m});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},m={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}};return l(x);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dockerfile/dockerfile.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dockerfile/dockerfile.js deleted file mode 100644 index 80855ba5a..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/dockerfile/dockerfile.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/dockerfile/dockerfile", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(o,e)=>{for(var s in e)a(o,s,{get:e[s],enumerable:!0})},g=(o,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!i.call(o,n)&&n!==s&&a(o,n,{get:()=>e[n],enumerable:!(t=l(e,n))||t.enumerable});return o};var c=o=>g(a({},"__esModule",{value:!0}),o);var k={};p(k,{conf:()=>u,language:()=>d});var u={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}};return c(k);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ecl/ecl.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ecl/ecl.js deleted file mode 100644 index 5ab7f0014..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ecl/ecl.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/ecl/ecl", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)r(o,t,{get:e[t],enumerable:!0})},d=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!l.call(o,n)&&n!==t&&r(o,n,{get:()=>e[n],enumerable:!(a=i(e,n))||a.enumerable});return o};var p=o=>d(r({},"__esModule",{value:!0}),o);var g={};c(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},u={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}};return p(g);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/elixir/elixir.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/elixir/elixir.js deleted file mode 100644 index 0dc7bcc0c..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/elixir/elixir.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/elixir/elixir", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var i in e)o(t,i,{get:e[i],enumerable:!0})},c=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!a.call(t,n)&&n!==i&&o(t,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return t};var m=t=>c(o({},"__esModule",{value:!0}),t);var p={};d(p,{conf:()=>u,language:()=>g});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},g={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)(\s+)/,["constant","constant.punctuation","white"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-z]|[A-Z]+)\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-z]|[A-Z]+)\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-z]|[A-Z]+)\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-z]|[A-Z]+)\"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?'''/,{token:"comment.block.documentation",next:"@singleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc (~[sS])?'/,{token:"comment.block.documentation",next:"@singleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedHeredocDocstring:[[/'''/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedStringDocstring:[[/'/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}};return m(p);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/flow9/flow9.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/flow9/flow9.js deleted file mode 100644 index 2f6b1dd6d..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/flow9/flow9.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/flow9/flow9", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>g,language:()=>f});var g={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},f={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/freemarker2/freemarker2.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/freemarker2/freemarker2.js deleted file mode 100644 index c10e5abb1..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/freemarker2/freemarker2.js +++ /dev/null @@ -1,12 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/freemarker2/freemarker2", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var B=Object.create;var d=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var h=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),S=(t,n)=>{for(var i in n)d(t,i,{get:n[i],enumerable:!0})},s=(t,n,i,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of D(n))!v.call(t,o)&&o!==i&&d(t,o,{get:()=>n[o],enumerable:!(e=C(n,o))||e.enumerable});return t},m=(t,n,i)=>(s(t,n,"default"),i&&s(i,n,"default")),x=(t,n,i)=>(i=t!=null?B(T(t)):{},s(n||!t||!t.__esModule?d(i,"default",{value:t,enumerable:!0}):i,t)),I=t=>s(d({},"__esModule",{value:!0}),t);var F=h((q,f)=>{var y=x(w("vs/editor/editor.api"));f.exports=y});var M={};S(M,{TagAngleInterpolationBracket:()=>L,TagAngleInterpolationDollar:()=>R,TagAutoInterpolationBracket:()=>j,TagAutoInterpolationDollar:()=>Z,TagBracketInterpolationBracket:()=>O,TagBracketInterpolationDollar:()=>z});var _={};m(_,x(F()));var l=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],k=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],r={close:">",id:"angle",open:"<"},u={close:"\\]",id:"bracket",open:"\\["},P={close:"[>\\]]",id:"auto",open:"[<\\[]"},g={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},A={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function p(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:` -\r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${t.open}#(?:${k.join("|")})([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),end:new RegExp(`${t.open}/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${t.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),afterText:new RegExp(`^${t.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${t.close}$`),action:{indentAction:_.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${t.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),action:{indentAction:_.languages.IndentAction.Indent}}]}}function b(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:` -\r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${k.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:_.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:_.languages.IndentAction.Indent}}]}}function a(t,n){let i=`_${t.id}_${n.id}`,e=c=>c.replace(/__id__/g,i),o=c=>{let E=c.source.replace(/__id__/g,i);return new RegExp(E,c.flags)};return{unicode:!0,includeLF:!1,start:e("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[e("open__id__")]:new RegExp(t.open),[e("close__id__")]:new RegExp(t.close),[e("iOpen1__id__")]:new RegExp(n.open1),[e("iOpen2__id__")]:new RegExp(n.open2),[e("iClose__id__")]:new RegExp(n.close),[e("startTag__id__")]:o(/(@open__id__)(#)/),[e("endTag__id__")]:o(/(@open__id__)(\/#)/),[e("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[e("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[e("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[e("default__id__")]:[{include:e("@directive_token__id__")},{include:e("@interpolation_and_text_token__id__")}],[e("fmExpression__id__.directive")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("fmExpression__id__.interpolation")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("inParen__id__.plain")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("inParen__id__.gt")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("noSpaceExpression__id__")]:[{include:e("@no_space_expression_end_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("unifiedCall__id__")]:[{include:e("@unified_call_token__id__")}],[e("singleString__id__")]:[{include:e("@string_single_token__id__")}],[e("doubleString__id__")]:[{include:e("@string_double_token__id__")}],[e("rawSingleString__id__")]:[{include:e("@string_single_raw_token__id__")}],[e("rawDoubleString__id__")]:[{include:e("@string_double_raw_token__id__")}],[e("expressionComment__id__")]:[{include:e("@expression_comment_token__id__")}],[e("noParse__id__")]:[{include:e("@no_parse_token__id__")}],[e("terseComment__id__")]:[{include:e("@terse_comment_token__id__")}],[e("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:e("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:e("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:{token:"comment",next:e("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:e("@fmExpression__id__.directive")}]]],[e("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:n.id==="bracket"?"@brackets.interpolation":"delimiter.interpolation"},{token:n.id==="bracket"?"delimiter.interpolation":"@brackets.interpolation",next:e("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[e("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[e("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[e("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[e("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[e("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:e("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:e("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:e("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:e("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\]":{cases:{...n.id==="bracket"?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},...t.id==="bracket"?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:e("@inParen__id__.gt")},"\\)":{cases:{[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\}":{cases:{...n.id==="bracket"?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[e("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:e("@expressionComment__id__")}]],[e("directive_end_token__id__")]:[[/>/,t.id==="bracket"?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[e("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[e("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:e("@fmExpression__id__.directive")}]],[e("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:e("@noSpaceExpression__id__")}]],[e("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[e("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[e("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function $(t){let n=a(r,t),i=a(u,t),e=a(P,t);return{...n,...i,...e,unicode:!0,includeLF:!1,start:`default_auto_${t.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...n.tokenizer,...i.tokenizer,...e.tokenizer}}}var R={conf:p(r),language:a(r,g)},z={conf:p(u),language:a(u,g)},L={conf:p(r),language:a(r,A)},O={conf:p(u),language:a(u,A)},Z={conf:b(),language:$(g)},j={conf:b(),language:$(A)};return I(M);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/fsharp/fsharp.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/fsharp/fsharp.js deleted file mode 100644 index 5d9f11dcb..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/fsharp/fsharp.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/fsharp/fsharp", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var o in e)s(n,o,{get:e[o],enumerable:!0})},g=(n,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(n,t)&&t!==o&&s(n,t,{get:()=>e[t],enumerable:!(i=r(e,t))||i.enumerable});return n};var f=n=>g(s({},"__esModule",{value:!0}),n);var d={};c(d,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},u={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}};return f(d);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/go/go.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/go/go.js deleted file mode 100644 index 2c1d6eacb..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/go/go.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/go/go", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var m=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!c.call(n,o)&&o!==t&&s(n,o,{get:()=>e[o],enumerable:!(r=i(e,o))||r.enumerable});return n};var g=n=>l(s({},"__esModule",{value:!0}),n);var d={};m(d,{conf:()=>p,language:()=>u});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},u={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}};return g(d);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/graphql/graphql.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/graphql/graphql.js deleted file mode 100644 index 7436daaba..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/graphql/graphql.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/graphql/graphql", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},d=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!l.call(n,o)&&o!==t&&s(n,o,{get:()=>e[o],enumerable:!(r=a(e,o))||r.enumerable});return n};var p=n=>d(s({},"__esModule",{value:!0}),n);var u={};c(u,{conf:()=>g,language:()=>I});var g={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},I={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/handlebars/handlebars.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/handlebars/handlebars.js deleted file mode 100644 index ee6b1e7f5..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/handlebars/handlebars.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/handlebars/handlebars", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var h=Object.create;var i=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),S=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},m=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of u(t))!k.call(e,r)&&r!==n&&i(e,r,{get:()=>t[r],enumerable:!(o=b(t,r))||o.enumerable});return e},l=(e,t,n)=>(m(e,t,"default"),n&&m(n,t,"default")),s=(e,t,n)=>(n=e!=null?h(x(e)):{},m(t||!e||!e.__esModule?i(n,"default",{value:e,enumerable:!0}):n,e)),E=e=>m(i({},"__esModule",{value:!0}),e);var c=T((I,d)=>{var w=s(y("vs/editor/editor.api"));d.exports=w});var f={};S(f,{conf:()=>g,language:()=>$});var a={};l(a,s(c()));var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],g={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:a.languages.IndentAction.Indent}}]},$={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};return E(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/hcl/hcl.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/hcl/hcl.js deleted file mode 100644 index 0eae60773..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/hcl/hcl.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/hcl/hcl", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of i(e))!c.call(t,s)&&s!==o&&r(t,s,{get:()=>e[s],enumerable:!(n=a(e,s))||n.enumerable});return t};var m=t=>d(r({},"__esModule",{value:!0}),t);var f={};l(f,{conf:()=>p,language:()=>g});var p={comments:{lineComment:"#",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},g={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}};return m(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/html/html.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/html/html.js deleted file mode 100644 index fbe1539f5..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/html/html.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/html/html", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var u=Object.create;var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var k=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),T=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},o=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of x(t))!g.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(s=b(t,r))||s.enumerable});return e},d=(e,t,n)=>(o(e,t,"default"),n&&o(n,t,"default")),m=(e,t,n)=>(n=e!=null?u(y(e)):{},o(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),w=e=>o(a({},"__esModule",{value:!0}),e);var l=E((A,p)=>{var h=m(k("vs/editor/editor.api"));p.exports=h});var $={};T($,{conf:()=>v,language:()=>f});var i={};d(i,m(l()));var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],v={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${c.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:i.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${c.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:i.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},f={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};return w($);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ini/ini.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ini/ini.js deleted file mode 100644 index 898352315..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ini/ini.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/ini/ini", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var s in e)t(n,s,{get:e[s],enumerable:!0})},l=(n,e,s,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of r(e))!g.call(n,o)&&o!==s&&t(n,o,{get:()=>e[o],enumerable:!(a=i(e,o))||a.enumerable});return n};var p=n=>l(t({},"__esModule",{value:!0}),n);var f={};c(f,{conf:()=>u,language:()=>m});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},m={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};return p(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/java/java.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/java/java.js deleted file mode 100644 index e1a65706e..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/java/java.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/java/java", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var g=t=>d(s({},"__esModule",{value:!0}),t);var f={};l(f,{conf:()=>m,language:()=>p});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},p={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};return g(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/javascript/javascript.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/javascript/javascript.js deleted file mode 100644 index 286829896..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/javascript/javascript.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/javascript/javascript", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var x=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),h=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},s=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of f(t))!k.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(c=u(t,r))||c.enumerable});return e},g=(e,t,n)=>(s(e,t,"default"),n&&s(n,t,"default")),p=(e,t,n)=>(n=e!=null?x(b(e)):{},s(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),v=e=>s(a({},"__esModule",{value:!0}),e);var d=w((C,l)=>{var A=p(y("vs/editor/editor.api"));l.exports=A});var _={};h(_,{conf:()=>$,language:()=>T});var i={};g(i,p(d()));var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:i.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:i.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:i.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:i.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},o={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};var $=m,T={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.operators,symbols:o.symbols,escapes:o.escapes,digits:o.digits,octaldigits:o.octaldigits,binarydigits:o.binarydigits,hexdigits:o.hexdigits,regexpctl:o.regexpctl,regexpesc:o.regexpesc,tokenizer:o.tokenizer};return v(_);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/julia/julia.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/julia/julia.js deleted file mode 100644 index 6d32348f8..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/julia/julia.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/julia/julia", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})},l=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!p.call(t,r)&&r!==n&&o(t,r,{get:()=>e[r],enumerable:!(a=i(e,r))||a.enumerable});return t};var d=t=>l(o({},"__esModule",{value:!0}),t);var u={};c(u,{conf:()=>g,language:()=>m});var g={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},m={tokenPostfix:".julia",keywords:["begin","while","if","for","try","return","break","continue","function","macro","quote","let","local","global","const","do","struct","module","baremodule","using","import","export","end","else","elseif","catch","finally","mutable","primitive","abstract","type","in","isa","where","new"],types:["LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","AbstractArray","UndefKeywordError","AbstractChannel","UndefRefError","AbstractChar","UndefVarError","AbstractDict","Union","AbstractDisplay","UnionAll","AbstractFloat","UnitRange","AbstractIrrational","Unsigned","AbstractMatrix","AbstractRange","Val","AbstractSet","Vararg","AbstractString","VecElement","AbstractUnitRange","VecOrMat","AbstractVecOrMat","Vector","AbstractVector","VersionNumber","Any","WeakKeyDict","ArgumentError","WeakRef","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError"],keywordops:["<:",">:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","\u03C0","\u212F","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","\xF7","\u2208","\u2209","\u220B","\u220C","\u2218","\u221A","\u221B","\u2229","\u222A","\u2248","\u2249","\u2260","\u2261","\u2262","\u2264","\u2265","\u2286","\u2287","\u2288","\u2289","\u228A","\u228B","\u22BB"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/π|ℯ|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}};return d(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/kotlin/kotlin.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/kotlin/kotlin.js deleted file mode 100644 index ed9a2232c..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/kotlin/kotlin.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/kotlin/kotlin", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var i in e)o(n,i,{get:e[i],enumerable:!0})},d=(n,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of r(e))!c.call(n,t)&&t!==i&&o(n,t,{get:()=>e[t],enumerable:!(s=a(e,t))||s.enumerable});return n};var g=n=>d(o({},"__esModule",{value:!0}),n);var f={};l(f,{conf:()=>m,language:()=>p});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},p={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};return g(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/less/less.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/less/less.js deleted file mode 100644 index 416b2b727..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/less/less.js +++ /dev/null @@ -1,11 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/less/less", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var i in e)r(t,i,{get:e[i],enumerable:!0})},u=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(t,n)&&n!==i&&r(t,n,{get:()=>e[n],enumerable:!(o=s(e,n))||o.enumerable});return t};var c=t=>u(r({},"__esModule",{value:!0}),t);var p={};d(p,{conf:()=>m,language:()=>g});var m={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},g={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}};return c(p);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lexon/lexon.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lexon/lexon.js deleted file mode 100644 index c77bf5e06..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lexon/lexon.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/lexon/lexon", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var i in e)n(t,i,{get:e[i],enumerable:!0})},p=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!a.call(t,o)&&o!==i&&n(t,o,{get:()=>e[o],enumerable:!(r=s(e,o))||r.enumerable});return t};var c=t=>p(n({},"__esModule",{value:!0}),t);var k={};l(k,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"COMMENT"},brackets:[["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:":",close:"."}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},u={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}};return c(k);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/liquid/liquid.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/liquid/liquid.js deleted file mode 100644 index 9af8f1d5a..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/liquid/liquid.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/liquid/liquid", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var p=Object.create;var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),T=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},r=(e,t,i,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of w(t))!q.call(e,o)&&o!==i&&a(e,o,{get:()=>t[o],enumerable:!(l=g(t,o))||l.enumerable});return e},d=(e,t,i)=>(r(e,t,"default"),i&&r(i,t,"default")),s=(e,t,i)=>(i=e!=null?p(h(e)):{},r(t||!e||!e.__esModule?a(i,"default",{value:e,enumerable:!0}):i,e)),k=e=>r(a({},"__esModule",{value:!0}),e);var c=b((y,u)=>{var _=s(f("vs/editor/editor.api"));u.exports=_});var $={};T($,{conf:()=>x,language:()=>S});var n={};d(n,s(c()));var m=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],x={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[""],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:n.languages.IndentAction.Indent}}]},S={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}};return k($);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lua/lua.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lua/lua.js deleted file mode 100644 index 004e02515..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/lua/lua.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/lua/lua", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},g={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var R=(o,e)=>{for(var s in e)r(o,s,{get:e[s],enumerable:!0})},c=(o,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!i.call(o,t)&&t!==s&&r(o,t,{get:()=>e[t],enumerable:!(n=E(e,t))||n.enumerable});return o};var m=o=>c(r({},"__esModule",{value:!0}),o);var N={};R(N,{conf:()=>A,language:()=>p});var A={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},p={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}};return m(N);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/markdown/markdown.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/markdown/markdown.js deleted file mode 100644 index b9edf5109..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/markdown/markdown.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/markdown/markdown", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!i.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(a=r(e,n))||a.enumerable});return t};var d=t=>m(s({},"__esModule",{value:!0}),t);var b={};l(b,{conf:()=>p,language:()=>g});var p={comments:{blockComment:[""]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},g={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)(\-|\w)*/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)(\-|\w)*\s*>/,{token:"tag"}],[//,"comment","@pop"],[//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};return l(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pla/pla.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pla/pla.js deleted file mode 100644 index 4ba2dbf75..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pla/pla.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/pla/pla", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var l=(o,e)=>{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},c=(o,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of r(e))!p.call(o,t)&&t!==n&&s(o,t,{get:()=>e[t],enumerable:!(i=a(e,t))||i.enumerable});return o};var d=o=>c(s({},"__esModule",{value:!0}),o);var u={};l(u,{conf:()=>k,language:()=>m});var k={comments:{lineComment:"#"},brackets:[["[","]"],["<",">"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},m={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}};return d(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/postiats/postiats.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/postiats/postiats.js deleted file mode 100644 index 9e846e5dd..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/postiats/postiats.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/postiats/postiats", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},l=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!c.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return t};var d=t=>l(i({},"__esModule",{value:!0}),t);var g={};p(g,{conf:()=>m,language:()=>x});var m={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},x={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}};return d(g);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powerquery/powerquery.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powerquery/powerquery.js deleted file mode 100644 index 83f84cf56..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powerquery/powerquery.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/powerquery/powerquery", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)i(t,n,{get:e[n],enumerable:!0})},m=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of s(e))!l.call(t,a)&&a!==n&&i(t,a,{get:()=>e[a],enumerable:!(o=r(e,a))||o.enumerable});return t};var u=t=>m(i({},"__esModule",{value:!0}),t);var b={};T(b,{conf:()=>d,language:()=>c});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},c={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}};return u(b);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powershell/powershell.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powershell/powershell.js deleted file mode 100644 index 1109d7393..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/powershell/powershell.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/powershell/powershell", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of i(e))!l.call(n,s)&&s!==t&&o(n,s,{get:()=>e[s],enumerable:!(a=r(e,s))||a.enumerable});return n};var p=n=>g(o({},"__esModule",{value:!0}),n);var u={};c(u,{conf:()=>d,language:()=>m});var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/protobuf/protobuf.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/protobuf/protobuf.js deleted file mode 100644 index 74580ff30..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/protobuf/protobuf.js +++ /dev/null @@ -1,11 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/protobuf/protobuf", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var i in e)o(t,i,{get:e[i],enumerable:!0})},d=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!a.call(t,n)&&n!==i&&o(t,n,{get:()=>e[n],enumerable:!(s=r(e,n))||s.enumerable});return t};var l=t=>d(o({},"__esModule",{value:!0}),t);var m={};p(m,{conf:()=>u,language:()=>f});var k=["true","false"],u={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:`.,=}])>' - `,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},f={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}};return l(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pug/pug.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pug/pug.js deleted file mode 100644 index 798bd16d6..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/pug/pug.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/pug/pug", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!r.call(t,n)&&n!==o&&a(t,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return t};var d=t=>c(a({},"__esModule",{value:!0}),t);var g={};p(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},u={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:o.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:o.languages.IndentAction.Indent}}]},E={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};return g(z);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redis/redis.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redis/redis.js deleted file mode 100644 index 35edabc7a..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redis/redis.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/redis/redis", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var R=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var A=(S,E)=>{for(var T in E)R(S,T,{get:E[T],enumerable:!0})},O=(S,E,T,o)=>{if(E&&typeof E=="object"||typeof E=="function")for(let e of N(E))!s.call(S,e)&&e!==T&&R(S,e,{get:()=>E[e],enumerable:!(o=n(E,e))||o.enumerable});return S};var L=S=>O(R({},"__esModule",{value:!0}),S);var r={};A(r,{conf:()=>I,language:()=>i});var I={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}};return L(r);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redshift/redshift.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redshift/redshift.js deleted file mode 100644 index c6a2a2b9a..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/redshift/redshift.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/redshift/redshift", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var p=(_,e)=>{for(var r in e)i(_,r,{get:e[r],enumerable:!0})},l=(_,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of o(e))!n.call(_,t)&&t!==r&&i(_,t,{get:()=>e[t],enumerable:!(a=s(e,t))||a.enumerable});return _};var g=_=>l(i({},"__esModule",{value:!0}),_);var m={};p(m,{conf:()=>c,language:()=>d});var c={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","AZ64","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LANGUAGE","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY16","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};return g(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/restructuredtext/restructuredtext.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/restructuredtext/restructuredtext.js deleted file mode 100644 index 9c50bbc67..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/restructuredtext/restructuredtext.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/restructuredtext/restructuredtext", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var k=(n,e)=>{for(var i in e)t(n,i,{get:e[i],enumerable:!0})},c=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!r.call(n,s)&&s!==i&&t(n,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return n};var p=n=>c(t({},"__esModule",{value:!0}),n);var g={};k(g,{conf:()=>u,language:()=>m});var u={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},m={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}};return p(g);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ruby/ruby.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ruby/ruby.js deleted file mode 100644 index 5406570b8..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/ruby/ruby.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/ruby/ruby", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},l=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!d.call(t,n)&&n!==r&&o(t,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return t};var a=t=>l(o({},"__esModule",{value:!0}),t);var m={};p(m,{conf:()=>g,language:()=>x});var g={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},x={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}};return a(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/rust/rust.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/rust/rust.js deleted file mode 100644 index 80db3a6d0..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/rust/rust.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/rust/rust", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var _=(t,e)=>{for(var n in e)r(t,n,{get:e[n],enumerable:!0})},u=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!c.call(t,o)&&o!==n&&r(t,o,{get:()=>e[o],enumerable:!(s=i(e,o))||s.enumerable});return t};var l=t=>u(r({},"__esModule",{value:!0}),t);var m={};_(m,{conf:()=>f,language:()=>p});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},p={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}};return l(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sb/sb.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sb/sb.js deleted file mode 100644 index 5519cbd28..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sb/sb.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/sb/sb", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(o,e)=>{for(var t in e)r(o,t,{get:e[t],enumerable:!0})},c=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(o,n)&&n!==t&&r(o,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return o};var g=o=>c(r({},"__esModule",{value:!0}),o);var m={};d(m,{conf:()=>p,language:()=>f});var p={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},f={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}};return g(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scala/scala.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scala/scala.js deleted file mode 100644 index f07ee4cd7..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scala/scala.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/scala/scala", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!d.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(a=s(e,o))||a.enumerable});return t};var g=t=>c(n({},"__esModule",{value:!0}),t);var m={};l(m,{conf:()=>p,language:()=>w});var p={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},w={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};return g(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scheme/scheme.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scheme/scheme.js deleted file mode 100644 index aca0c9058..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scheme/scheme.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/scheme/scheme", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!l.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(a=r(e,n))||a.enumerable});return o};var p=o=>m(s({},"__esModule",{value:!0}),o);var u={};c(u,{conf:()=>d,language:()=>g});var d={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},g={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}};return p(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scss/scss.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scss/scss.js deleted file mode 100644 index d4770cf0d..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/scss/scss.js +++ /dev/null @@ -1,12 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/scss/scss", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!d.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return t};var s=t=>m(i({},"__esModule",{value:!0}),t);var k={};c(k,{conf:()=>u,language:()=>p});var u={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},p={defaultToken:"",tokenPostfix:".scss",ws:`[ -\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}};return s(k);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/shell/shell.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/shell/shell.js deleted file mode 100644 index 5564df936..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/shell/shell.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/shell/shell", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(r,e)=>{for(var i in e)a(r,i,{get:e[i],enumerable:!0})},d=(r,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!l.call(r,t)&&t!==i&&a(r,t,{get:()=>e[t],enumerable:!(o=s(e,t))||o.enumerable});return r};var p=r=>d(a({},"__esModule",{value:!0}),r);var g={};c(g,{conf:()=>m,language:()=>u});var m={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},u={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],startingWithDash:/\-+\w+/,identifiersWithDashes:/[a-zA-Z]\w+(?:@startingWithDash)+/,symbols:/[=>{ -"use strict";var moduleExports=(()=>{var f=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var o=(e,x)=>{for(var d in x)f(e,d,{get:x[d],enumerable:!0})},r=(e,x,d,u)=>{if(x&&typeof x=="object"||typeof x=="function")for(let i of n(x))!s.call(e,i)&&i!==d&&f(e,i,{get:()=>x[i],enumerable:!(u=t(x,i))||u.enumerable});return e};var a=e=>r(f({},"__esModule",{value:!0}),e);var l={};o(l,{conf:()=>c,language:()=>m});var c={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},m={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return a(l);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sophia/sophia.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sophia/sophia.js deleted file mode 100644 index 857b4b73d..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sophia/sophia.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/sophia/sophia", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(r=i(e,n))||r.enumerable});return t};var d=t=>m(s({},"__esModule",{value:!0}),t);var u={};l(u,{conf:()=>f,language:()=>g});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},g={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};return d(u);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sparql/sparql.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sparql/sparql.js deleted file mode 100644 index 6aae90416..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sparql/sparql.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/sparql/sparql", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var d=(s,e)=>{for(var n in e)o(s,n,{get:e[n],enumerable:!0})},c=(s,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!l.call(s,t)&&t!==n&&o(s,t,{get:()=>e[t],enumerable:!(r=i(e,t))||r.enumerable});return s};var g=s=>c(o({},"__esModule",{value:!0}),s);var m={};d(m,{conf:()=>u,language:()=>p});var u={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},p={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}};return g(m);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sql/sql.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sql/sql.js deleted file mode 100644 index ed2f1a458..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/sql/sql.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/sql/sql", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var I=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var L=(T,E)=>{for(var A in E)I(T,A,{get:E[A],enumerable:!0})},e=(T,E,A,N)=>{if(E&&typeof E=="object"||typeof E=="function")for(let R of O(E))!C.call(T,R)&&R!==A&&I(T,R,{get:()=>E[R],enumerable:!(N=S(E,R))||N.enumerable});return T};var P=T=>e(I({},"__esModule",{value:!0}),T);var M={};L(M,{conf:()=>D,language:()=>U});var D={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},U={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}};return P(M);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/st/st.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/st/st.js deleted file mode 100644 index fc2b9edbd..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/st/st.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/st/st", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!i.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(a=s(e,o))||a.enumerable});return n};var _=n=>l(r({},"__esModule",{value:!0}),n);var m={};d(m,{conf:()=>p,language:()=>u});var p={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},u={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends","implements"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var n in e)i(o,n,{get:e[n],enumerable:!0})},u=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!l.call(o,t)&&t!==n&&i(o,t,{get:()=>e[t],enumerable:!(r=a(e,t))||r.enumerable});return o};var d=o=>u(i({},"__esModule",{value:!0}),o);var f={};c(f,{conf:()=>p,language:()=>m});var p={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},m={defaultToken:"",tokenPostfix:".swift",identifier:/[a-zA-Z_][\w$]*/,attributes:["@GKInspectable","@IBAction","@IBDesignable","@IBInspectable","@IBOutlet","@IBSegueAction","@NSApplicationMain","@NSCopying","@NSManaged","@Sendable","@UIApplicationMain","@autoclosure","@actorIndependent","@asyncHandler","@available","@convention","@derivative","@differentiable","@discardableResult","@dynamicCallable","@dynamicMemberLookup","@escaping","@frozen","@globalActor","@inlinable","@inline","@main","@noDerivative","@nonobjc","@noreturn","@objc","@objcMembers","@preconcurrency","@propertyWrapper","@requires_stored_property_inits","@resultBuilder","@testable","@unchecked","@unknown","@usableFromInline","@warn_unqualified_access"],accessmodifiers:["open","public","internal","fileprivate","private"],keywords:["#available","#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning","Any","Protocol","Self","Type","actor","as","assignment","associatedtype","associativity","async","await","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","dynamicType","else","enum","extension","fallthrough","false","fileprivate","final","for","func","get","guard","higherThan","if","import","in","indirect","infix","init","inout","internal","is","isolated","lazy","left","let","lowerThan","mutating","nil","none","nonisolated","nonmutating","open","operator","optional","override","postfix","precedence","precedencegroup","prefix","private","protocol","public","repeat","required","rethrows","return","right","safe","self","set","some","static","struct","subscript","super","switch","throw","throws","true","try","typealias","unowned","unsafe","var","weak","where","while","willSet","__consuming","__owned"],symbols:/[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}};return d(f);})(); -/*!--------------------------------------------------------------------------------------------- - * Copyright (C) David Owens II, owensd.io. All rights reserved. - *--------------------------------------------------------------------------------------------*/ -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/systemverilog/systemverilog.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/systemverilog/systemverilog.js deleted file mode 100644 index 35c14c021..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/systemverilog/systemverilog.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/systemverilog/systemverilog", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of a(e))!c.call(n,i)&&i!==t&&r(n,i,{get:()=>e[i],enumerable:!(o=s(e,i))||o.enumerable});return n};var p=n=>l(r({},"__esModule",{value:!0}),n);var f={};d(f,{conf:()=>u,language:()=>m});var u={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},m={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}};return p(f);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/tcl/tcl.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/tcl/tcl.js deleted file mode 100644 index 1ab974cbe..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/tcl/tcl.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/tcl/tcl", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!l.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=r(e,n))||i.enumerable});return t};var u=t=>p(s({},"__esModule",{value:!0}),t);var g={};c(g,{conf:()=>k,language:()=>d});var k={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},d={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var m=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var s=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},d=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of n(t))!a.call(e,i)&&i!==r&&m(e,i,{get:()=>t[i],enumerable:!(o=l(t,i))||o.enumerable});return e};var p=e=>d(m({},"__esModule",{value:!0}),e);var g={};s(g,{conf:()=>h,language:()=>c});var h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],[""],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},c={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};return p(g);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typescript/typescript.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typescript/typescript.js deleted file mode 100644 index fed2be6fe..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typescript/typescript.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/typescript/typescript", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var l=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),y=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of x(t))!u.call(e,r)&&r!==n&&s(e,r,{get:()=>t[r],enumerable:!(c=m(t,r))||c.enumerable});return e},a=(e,t,n)=>(i(e,t,"default"),n&&i(n,t,"default")),p=(e,t,n)=>(n=e!=null?l(b(e)):{},i(t||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e)),w=e=>i(s({},"__esModule",{value:!0}),e);var d=k((T,g)=>{var A=p(f("vs/editor/editor.api"));g.exports=A});var h={};y(h,{conf:()=>v,language:()=>$});var o={};a(o,p(d()));var v={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:o.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:o.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:o.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:o.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},$={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};return w(h);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typespec/typespec.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typespec/typespec.js deleted file mode 100644 index 6ca0a8c8b..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/typespec/typespec.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/typespec/typespec", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var m=(e,n)=>{for(var o in n)i(e,o,{get:n[o],enumerable:!0})},p=(e,n,o,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of l(n))!k.call(e,t)&&t!==o&&i(e,t,{get:()=>n[t],enumerable:!(r=g(n,t))||r.enumerable});return e};var x=e=>p(i({},"__esModule",{value:!0}),e);var P={};m(P,{conf:()=>L,language:()=>y});var c=e=>`\\b${e}\\b`,s=e=>`(?!${e})`,d="[_a-zA-Z]",u="[_a-zA-Z0-9]",a=c(`${d}${u}*`),f=c("[_a-zA-Z-0-9]+"),$=["import","model","scalar","namespace","op","interface","union","using","is","extends","enum","alias","return","void","if","else","projection","dec","extern","fn"],b=["true","false","null","unknown","never"],w="[ \\t\\r\\n]",C="[0-9]+",L={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],indentationRules:{decreaseIndentPattern:new RegExp("^((?!.*?/\\*).*\\*/)?\\s*[\\}\\]].*$"),increaseIndentPattern:new RegExp("^((?!//).)*(\\{([^}\"'`/]*|(\\t|[ ])*//.*)|\\([^)\"'`/]*|\\[[^\\]\"'`/]*)$"),unIndentedLinePattern:new RegExp("^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$")}},y={defaultToken:"",tokenPostfix:".tsp",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=:;<>]+/,keywords:$,namedLiterals:b,escapes:'\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|"|\\${)',tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:'(|"|"")[^"]',action:{token:"string"}},{regex:`"""${s('"')}`,action:{token:"string",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:'[^\\\\"$]+',action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:'"',action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"@expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:w},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:'"""',action:{token:"string",next:"@stringVerbatim"}},{regex:`"${s('""')}`,action:{token:"string",next:"@stringLiteral"}},{regex:C,action:{token:"number"}},{regex:a,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}},{regex:`@${a}`,action:{token:"tag"}},{regex:`#${f}`,action:{token:"directive"}}]}};return x(P);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/vb/vb.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/vb/vb.js deleted file mode 100644 index c3bdaa983..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/vb/vb.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/vb/vb", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var i=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},c=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!l.call(n,o)&&o!==t&&r(n,o,{get:()=>e[o],enumerable:!(s=a(e,o))||s.enumerable});return n};var u=n=>c(r({},"__esModule",{value:!0}),n);var k={};i(k,{conf:()=>g,language:()=>p});var g={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},p={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=>{ -"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var a in e)s(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of l(e))!u.call(t,i)&&i!==a&&s(t,i,{get:()=>e[i],enumerable:!(o=m(e,i))||o.enumerable});return t};var x=t=>d(s({},"__esModule",{value:!0}),t);var F={};p(F,{conf:()=>f,language:()=>L});var f={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function r(t){let e=[],a=t.split(/\t+|\r+|\n+| +/);for(let o=0;o0&&e.push(a[o]);return e}var g=r("true false"),_=r(` - alias - break - case - const - const_assert - continue - continuing - default - diagnostic - discard - else - enable - fn - for - if - let - loop - override - requires - return - struct - switch - var - while - `),h=r(` - NULL - Self - abstract - active - alignas - alignof - as - asm - asm_fragment - async - attribute - auto - await - become - binding_array - cast - catch - class - co_await - co_return - co_yield - coherent - column_major - common - compile - compile_fragment - concept - const_cast - consteval - constexpr - constinit - crate - debugger - decltype - delete - demote - demote_to_helper - do - dynamic_cast - enum - explicit - export - extends - extern - external - fallthrough - filter - final - finally - friend - from - fxgroup - get - goto - groupshared - highp - impl - implements - import - inline - instanceof - interface - layout - lowp - macro - macro_rules - match - mediump - meta - mod - module - move - mut - mutable - namespace - new - nil - noexcept - noinline - nointerpolation - noperspective - null - nullptr - of - operator - package - packoffset - partition - pass - patch - pixelfragment - precise - precision - premerge - priv - protected - pub - public - readonly - ref - regardless - register - reinterpret_cast - require - resource - restrict - self - set - shared - sizeof - smooth - snorm - static - static_assert - static_cast - std - subroutine - super - target - template - this - thread_local - throw - trait - try - type - typedef - typeid - typename - typeof - union - unless - unorm - unsafe - unsized - use - using - varying - virtual - volatile - wgsl - where - with - writeonly - yield - `),b=r(` - read write read_write - function private workgroup uniform storage - perspective linear flat - center centroid sample - vertex_index instance_index position front_facing frag_depth - local_invocation_id local_invocation_index - global_invocation_id workgroup_id num_workgroups - sample_index sample_mask - rgba8unorm - rgba8snorm - rgba8uint - rgba8sint - rgba16uint - rgba16sint - rgba16float - r32uint - r32sint - r32float - rg32uint - rg32sint - rg32float - rgba32uint - rgba32sint - rgba32float - bgra8unorm -`),v=r(` - bool - f16 - f32 - i32 - sampler sampler_comparison - texture_depth_2d - texture_depth_2d_array - texture_depth_cube - texture_depth_cube_array - texture_depth_multisampled_2d - texture_external - texture_external - u32 - `),y=r(` - array - atomic - mat2x2 - mat2x3 - mat2x4 - mat3x2 - mat3x3 - mat3x4 - mat4x2 - mat4x3 - mat4x4 - ptr - texture_1d - texture_2d - texture_2d_array - texture_3d - texture_cube - texture_cube_array - texture_multisampled_2d - texture_storage_1d - texture_storage_2d - texture_storage_2d_array - texture_storage_3d - vec2 - vec3 - vec4 - `),k=r(` - vec2i vec3i vec4i - vec2u vec3u vec4u - vec2f vec3f vec4f - vec2h vec3h vec4h - mat2x2f mat2x3f mat2x4f - mat3x2f mat3x3f mat3x4f - mat4x2f mat4x3f mat4x4f - mat2x2h mat2x3h mat2x4h - mat3x2h mat3x3h mat3x4h - mat4x2h mat4x3h mat4x4h - `),w=r(` - bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2 - ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross - degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit - firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length - log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract - reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose - trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine - textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers - textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare - textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge - textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin - atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm - pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm - unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier - workgroupUniformLoad -`),S=r(` - & - && - -> - / - = - == - != - > - >= - < - <= - % - - - -- - + - ++ - | - || - * - << - >> - += - -= - *= - /= - %= - &= - |= - ^= - >>= - <<= - `),C=/enable|requires|diagnostic/,c=/[_\p{XID_Start}]\p{XID_Continue}*/u,n="variable.predefined",L={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:g,keywords:_,reserved:h,predeclared_enums:b,predeclared_types:v,predeclared_type_generators:y,predeclared_type_aliases:k,predeclared_intrinsics:w,operators:S,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[C,"keyword","@directive"],[c,{cases:{"@atoms":n,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":n,"@predeclared_types":n,"@predeclared_type_generators":n,"@predeclared_type_aliases":n,"@predeclared_intrinsics":n,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[c,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};return x(F);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/xml/xml.js b/public/js/monaco-editor-0.52.2/min/vs/basic-languages/xml/xml.js deleted file mode 100644 index 040ca5821..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/basic-languages/xml/xml.js +++ /dev/null @@ -1,10 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/xml/xml", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var u=Object.create;var m=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),b=(e,t)=>{for(var n in t)m(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!x.call(e,o)&&o!==n&&m(e,o,{get:()=>t[o],enumerable:!(r=g(t,o))||r.enumerable});return e},l=(e,t,n)=>(i(e,t,"default"),n&&i(n,t,"default")),c=(e,t,n)=>(n=e!=null?u(k(e)):{},i(t||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),q=e=>i(m({},"__esModule",{value:!0}),e);var s=w((v,d)=>{var N=c(f("vs/editor/editor.api"));d.exports=N});var I={};b(I,{conf:()=>A,language:()=>C});var a={};l(a,c(s()));var A={comments:{blockComment:[""]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:a.languages.IndentAction.Indent}}]},C={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"),typeof Re!="string"&&!dt(Re))if(typeof Re.toString=="function"){if(Re=Re.toString(),typeof Re!="string")throw Pt("dirty is not a string, aborting")}else throw Pt("toString is not a function");if(!e.isSupported)return Re;if(ue||xe(Se),e.removed=[],typeof Re=="string"&&($=!1),$){if(Re.nodeName){const rt=Oe(Re.nodeName);if(!x[rt]||z[rt])throw Pt("root node is forbidden and cannot be sanitized in-place")}}else if(Re instanceof m)We=je(""),qe=We.ownerDocument.importNode(Re,!0),qe.nodeType===Ft.element&&qe.nodeName==="BODY"||qe.nodeName==="HTML"?We=qe:We.appendChild(qe);else{if(!pe&&!R&&!ie&&Re.indexOf("<")===-1)return r&&ee?r.createHTML(Re):Re;if(We=je(Re),!We)return pe?null:ee?u:""}We&&he&&He(We.firstChild);const tt=Xe($?Re:We);for(;Ue=tt.nextNode();)st(Ue)||(Ue.content instanceof E&&Ie(Ue.content),De(Ue));if($)return Re;if(pe){if(ae)for(Je=h.call(We.ownerDocument);We.firstChild;)Je.appendChild(We.firstChild);else Je=We;return(V.shadowroot||V.shadowrootmode)&&(Je=w.call(k,Je,!0)),Je}let Qe=ie?We.outerHTML:We.innerHTML;return ie&&x["!doctype"]&&We.ownerDocument&&We.ownerDocument.doctype&&We.ownerDocument.doctype.name&&_t(ai,We.ownerDocument.doctype.name)&&(Qe=" -`+Qe),R&&Wt([L,D,T],rt=>{Qe=Rt(Qe,rt," ")}),r&&ee?r.createHTML(Qe):Qe},e.setConfig=function(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};xe(Re),ue=!0},e.clearConfig=function(){Fe=null,ue=!1},e.isValidAttribute=function(Re,Se,We){Fe||xe({});const qe=Oe(Re),Ue=Oe(Se);return pt(qe,Ue,We)},e.addHook=function(Re,Se){typeof Se=="function"&&(S[Re]=S[Re]||[],At(S[Re],Se))},e.removeHook=function(Re){if(S[Re])return ei(S[Re])},e.removeHooks=function(Re){S[Re]&&(S[Re]=[])},e.removeAllHooks=function(){S={}},e}var xi=di();define("vs/base/browser/dompurify/dompurify",function(){return xi}),define(ne[39],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FastDomNode=void 0,e.createFastDomNode=I;class d{constructor(y){this.domNode=y,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(y){const m=k(y);this._maxWidth!==m&&(this._maxWidth=m,this.domNode.style.maxWidth=this._maxWidth)}setWidth(y){const m=k(y);this._width!==m&&(this._width=m,this.domNode.style.width=this._width)}setHeight(y){const m=k(y);this._height!==m&&(this._height=m,this.domNode.style.height=this._height)}setTop(y){const m=k(y);this._top!==m&&(this._top=m,this.domNode.style.top=this._top)}setLeft(y){const m=k(y);this._left!==m&&(this._left=m,this.domNode.style.left=this._left)}setBottom(y){const m=k(y);this._bottom!==m&&(this._bottom=m,this.domNode.style.bottom=this._bottom)}setRight(y){const m=k(y);this._right!==m&&(this._right=m,this.domNode.style.right=this._right)}setPaddingLeft(y){const m=k(y);this._paddingLeft!==m&&(this._paddingLeft=m,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(y){this._fontFamily!==y&&(this._fontFamily=y,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(y){this._fontWeight!==y&&(this._fontWeight=y,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(y){const m=k(y);this._fontSize!==m&&(this._fontSize=m,this.domNode.style.fontSize=this._fontSize)}setFontStyle(y){this._fontStyle!==y&&(this._fontStyle=y,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(y){this._fontFeatureSettings!==y&&(this._fontFeatureSettings=y,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(y){this._fontVariationSettings!==y&&(this._fontVariationSettings=y,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(y){this._textDecoration!==y&&(this._textDecoration=y,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(y){const m=k(y);this._lineHeight!==m&&(this._lineHeight=m,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(y){const m=k(y);this._letterSpacing!==m&&(this._letterSpacing=m,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(y){this._className!==y&&(this._className=y,this.domNode.className=this._className)}toggleClassName(y,m){this.domNode.classList.toggle(y,m),this._className=this.domNode.className}setDisplay(y){this._display!==y&&(this._display=y,this.domNode.style.display=this._display)}setPosition(y){this._position!==y&&(this._position=y,this.domNode.style.position=this._position)}setVisibility(y){this._visibility!==y&&(this._visibility=y,this.domNode.style.visibility=this._visibility)}setColor(y){this._color!==y&&(this._color=y,this.domNode.style.color=this._color)}setBackgroundColor(y){this._backgroundColor!==y&&(this._backgroundColor=y,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(y){this._layerHint!==y&&(this._layerHint=y,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(y){this._boxShadow!==y&&(this._boxShadow=y,this.domNode.style.boxShadow=y)}setContain(y){this._contain!==y&&(this._contain=y,this.domNode.style.contain=this._contain)}setAttribute(y,m){this.domNode.setAttribute(y,m)}removeAttribute(y){this.domNode.removeAttribute(y)}appendChild(y){this.domNode.appendChild(y.domNode)}removeChild(y){this.domNode.removeChild(y.domNode)}}e.FastDomNode=d;function k(E){return typeof E=="number"?`${E}px`:E}function I(E){return new d(E)}}),define(ne[441],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IframeUtils=void 0;const d=new WeakMap;function k(E){if(!E.parent||E.parent===E)return null;try{const y=E.location,m=E.parent.location;if(y.origin!=="null"&&m.origin!=="null"&&y.origin!==m.origin)return null}catch{return null}return E.parent}class I{static getSameOriginWindowChain(y){let m=d.get(y);if(!m){m=[],d.set(y,m);let _=y,b;do b=k(_),b?m.push({window:new WeakRef(_),iframeElement:_.frameElement||null}):m.push({window:new WeakRef(_),iframeElement:null}),_=b;while(_)}return m.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(y,m){if(!m||y===m)return{top:0,left:0};let _=0,b=0;const p=this.getSameOriginWindowChain(y);for(const n of p){const o=n.window.deref();if(_+=o?.scrollY??0,b+=o?.scrollX??0,o===m||!n.iframeElement)break;const t=n.iframeElement.getBoundingClientRect();_+=t.top,b+=t.left}return{top:_,left:b}}}e.IframeUtils=I}),define(ne[296],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inputLatency=void 0;var d;(function(k){const I={total:0,min:Number.MAX_VALUE,max:0},E={...I},y={...I},m={...I};let _=0;const b={keydown:0,input:0,render:0};function p(){r(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),b.keydown=1,queueMicrotask(n)}k.onKeyDown=p;function n(){b.keydown===1&&(performance.mark("keydown/end"),b.keydown=2)}function o(){performance.mark("input/start"),b.input=1,a()}k.onBeforeInput=o;function t(){b.input===0&&o(),queueMicrotask(i)}k.onInput=t;function i(){b.input===1&&(performance.mark("input/end"),b.input=2)}function s(){r()}k.onKeyUp=s;function g(){r()}k.onSelectionChange=g;function c(){b.keydown===2&&b.input===2&&b.render===0&&(performance.mark("render/start"),b.render=1,queueMicrotask(l),a())}k.onRenderStart=c;function l(){b.render===1&&(performance.mark("render/end"),b.render=2)}function a(){setTimeout(r)}function r(){b.keydown===2&&b.input===2&&b.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),u("keydown",I),u("input",E),u("render",y),u("inputlatency",m),_++,C())}function u(w,S){const L=performance.getEntriesByName(w)[0].duration;S.total+=L,S.min=Math.min(S.min,L),S.max=Math.max(S.max,L)}function C(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),b.keydown=0,b.input=0,b.render=0}function f(){if(_===0)return;const w={keydown:h(I),input:h(E),render:h(y),total:h(m),sampleCount:_};return v(I),v(E),v(y),v(m),_=0,w}k.getAndClearMeasurements=f;function h(w){return{average:w.total/_,max:w.max,min:w.min}}function v(w){w.total=0,w.min=Number.MAX_VALUE,w.max=0}})(d||(e.inputLatency=d={}))}),define(ne[81],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setBaseLayerHoverDelegate=k,e.getBaseLayerHoverDelegate=I;let d={showHover:()=>{},hideHover:()=>{},showAndFocusLastHover:()=>{},setupManagedHover:()=>null,showManagedHover:()=>{}};function k(E){d=E}function I(){return d}}),define(ne[442],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListError=void 0;class d extends Error{constructor(I,E){super(`ListError [${I}] ${E}`)}}e.ListError=d}),define(ne[443],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CombinedSpliceable=void 0;class d{constructor(I){this.spliceables=I}splice(I,E,y){this.spliceables.forEach(m=>m.splice(I,E,y))}}e.CombinedSpliceable=d}),define(ne[223],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarState=void 0;const d=20;class k{constructor(E,y,m,_,b,p){this._scrollbarSize=Math.round(y),this._oppositeScrollbarSize=Math.round(m),this._arrowSize=Math.round(E),this._visibleSize=_,this._scrollSize=b,this._scrollPosition=p,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new k(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(E){const y=Math.round(E);return this._visibleSize!==y?(this._visibleSize=y,this._refreshComputedValues(),!0):!1}setScrollSize(E){const y=Math.round(E);return this._scrollSize!==y?(this._scrollSize=y,this._refreshComputedValues(),!0):!1}setScrollPosition(E){const y=Math.round(E);return this._scrollPosition!==y?(this._scrollPosition=y,this._refreshComputedValues(),!0):!1}setScrollbarSize(E){this._scrollbarSize=Math.round(E)}setOppositeScrollbarSize(E){this._oppositeScrollbarSize=Math.round(E)}static _computeValues(E,y,m,_,b){const p=Math.max(0,m-E),n=Math.max(0,p-2*y),o=_>0&&_>m;if(!o)return{computedAvailableSize:Math.round(p),computedIsNeeded:o,computedSliderSize:Math.round(n),computedSliderRatio:0,computedSliderPosition:0};const t=Math.round(Math.max(d,Math.floor(m*n/_))),i=(n-t)/(_-m),s=b*i;return{computedAvailableSize:Math.round(p),computedIsNeeded:o,computedSliderSize:Math.round(t),computedSliderRatio:i,computedSliderPosition:Math.round(s)}}_refreshComputedValues(){const E=k._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=E.computedAvailableSize,this._computedIsNeeded=E.computedIsNeeded,this._computedSliderSize=E.computedSliderSize,this._computedSliderRatio=E.computedSliderRatio,this._computedSliderPosition=E.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(E){if(!this._computedIsNeeded)return 0;const y=E-this._arrowSize-this._computedSliderSize/2;return Math.round(y/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(E){if(!this._computedIsNeeded)return 0;const y=E-this._arrowSize;let m=this._scrollPosition;return yI})}e.mainWindow=window}),define(ne[64],se([1,0,52]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isAndroid=e.isElectron=e.isWebkitWebView=e.isSafari=e.isChrome=e.isWebKit=e.isFirefox=void 0,e.addMatchMediaChangeListener=I,e.getZoomFactor=E,e.isStandalone=_;class k{constructor(){this.mapWindowIdToZoomFactor=new Map}static{this.INSTANCE=new k}getZoomFactor(p){return this.mapWindowIdToZoomFactor.get(this.getWindowId(p))??1}getWindowId(p){return p.vscodeWindowId}}function I(b,p,n){typeof p=="string"&&(p=b.matchMedia(p)),p.addEventListener("change",n)}function E(b){return k.INSTANCE.getZoomFactor(b)}const y=navigator.userAgent;e.isFirefox=y.indexOf("Firefox")>=0,e.isWebKit=y.indexOf("AppleWebKit")>=0,e.isChrome=y.indexOf("Chrome")>=0,e.isSafari=!e.isChrome&&y.indexOf("Safari")>=0,e.isWebkitWebView=!e.isChrome&&!e.isSafari&&e.isWebKit,e.isElectron=y.indexOf("Electron/")>=0,e.isAndroid=y.indexOf("Android")>=0;let m=!1;if(typeof d.mainWindow.matchMedia=="function"){const b=d.mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),p=d.mainWindow.matchMedia("(display-mode: fullscreen)");m=b.matches,I(d.mainWindow,b,({matches:n})=>{m&&p.matches||(m=n)})}function _(){return m}}),define(ne[13],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Permutation=e.CallbackIterable=e.ArrayQueue=e.booleanComparator=e.numberComparator=e.CompareResult=void 0,e.tail=d,e.tail2=k,e.equals=I,e.removeFastWithoutKeepingOrder=E,e.binarySearch=y,e.binarySearch2=m,e.quickSelect=_,e.groupBy=b,e.groupAdjacentBy=p,e.forEachAdjacent=n,e.forEachWithNeighbors=o,e.coalesce=t,e.coalesceInPlace=i,e.isFalsyOrEmpty=s,e.isNonEmptyArray=g,e.distinct=c,e.firstOrDefault=l,e.range=a,e.arrayInsert=r,e.pushToStart=u,e.pushToEnd=C,e.pushMany=f,e.asArray=h,e.insertInto=v,e.splice=w,e.compareBy=D,e.tieBreakComparators=T,e.reverseOrder=P;function d(x,W=0){return x[x.length-(1+W)]}function k(x){if(x.length===0)throw new Error("Invalid tail call");return[x.slice(0,x.length-1),x[x.length-1]]}function I(x,W,V=(q,H)=>q===H){if(x===W)return!0;if(!x||!W||x.length!==W.length)return!1;for(let q=0,H=x.length;qV(x[q],W))}function m(x,W){let V=0,q=x-1;for(;V<=q;){const H=(V+q)/2|0,z=W(H);if(z<0)V=H+1;else if(z>0)q=H-1;else return H}return-(V+1)}function _(x,W,V){if(x=x|0,x>=W.length)throw new TypeError("invalid index");const q=W[Math.floor(W.length*Math.random())],H=[],z=[],U=[];for(const j of W){const Y=V(j,q);Y<0?H.push(j):Y>0?z.push(j):U.push(j)}return x!!W)}function i(x){let W=0;for(let V=0;V0}function c(x,W=V=>V){const V=new Set;return x.filter(q=>{const H=W(q);return V.has(H)?!1:(V.add(H),!0)})}function l(x,W){return x.length>0?x[0]:W}function a(x,W){let V=typeof W=="number"?x:0;typeof W=="number"?V=x:(V=0,W=x);const q=[];if(V<=W)for(let H=V;HW;H--)q.push(H);return q}function r(x,W,V){const q=x.slice(0,W),H=x.slice(W);return q.concat(V,H)}function u(x,W){const V=x.indexOf(W);V>-1&&(x.splice(V,1),x.unshift(W))}function C(x,W){const V=x.indexOf(W);V>-1&&(x.splice(V,1),x.push(W))}function f(x,W){for(const V of W)x.push(V)}function h(x){return Array.isArray(x)?x:[x]}function v(x,W,V){const q=S(x,W),H=x.length,z=V.length;x.length=H+z;for(let U=H-1;U>=q;U--)x[U+z]=x[U];for(let U=0;U0}x.isGreaterThan=q;function H(z){return z===0}x.isNeitherLessOrGreaterThan=H,x.greaterThan=1,x.lessThan=-1,x.neitherLessOrGreaterThan=0})(L||(e.CompareResult=L={}));function D(x,W){return(V,q)=>W(x(V),x(q))}function T(...x){return(W,V)=>{for(const q of x){const H=q(W,V);if(!L.isNeitherLessOrGreaterThan(H))return H}return L.neitherLessOrGreaterThan}}const M=(x,W)=>x-W;e.numberComparator=M;const A=(x,W)=>(0,e.numberComparator)(x?1:0,W?1:0);e.booleanComparator=A;function P(x){return(W,V)=>-x(W,V)}class N{constructor(W){this.items=W,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(W){let V=this.firstIdx;for(;V=0&&W(this.items[V]);)V--;const q=V===this.lastIdx?null:this.items.slice(V+1,this.lastIdx+1);return this.lastIdx=V,q}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const W=this.items[this.firstIdx];return this.firstIdx++,W}takeCount(W){const V=this.items.slice(this.firstIdx,this.firstIdx+W);return this.firstIdx+=W,V}}e.ArrayQueue=N;class O{static{this.empty=new O(W=>{})}constructor(W){this.iterate=W}toArray(){const W=[];return this.iterate(V=>(W.push(V),!0)),W}filter(W){return new O(V=>this.iterate(q=>W(q)?V(q):!0))}map(W){return new O(V=>this.iterate(q=>V(W(q))))}findLast(W){let V;return this.iterate(q=>(W(q)&&(V=q),!0)),V}findLastMaxBy(W){let V,q=!0;return this.iterate(H=>((q||L.isGreaterThan(W(H,V)))&&(q=!1,V=H),!0)),V}}e.CallbackIterable=O;class F{constructor(W){this._indexMap=W}static createSortPermutation(W,V){const q=Array.from(W.keys()).sort((H,z)=>V(W[H],W[z]));return new F(q)}apply(W){return W.map((V,q)=>W[this._indexMap[q]])}inverse(){const W=this._indexMap.slice();for(let V=0;V=0;c--){const l=i[c];if(s(l))return c}return-1}function I(i,s){const g=E(i,s);return g===-1?void 0:i[g]}function E(i,s,g=0,c=i.length){let l=g,a=c;for(;l0&&(g=l)}return g}function p(i,s){if(i.length===0)return;let g=i[0];for(let c=1;c=0&&(g=l)}return g}function n(i,s){return b(i,(g,c)=>-s(g,c))}function o(i,s){if(i.length===0)return-1;let g=0;for(let c=1;c0&&(g=c)}return g}function t(i,s){for(const g of i){const c=s(g);if(c!==void 0)return c}}}),define(ne[297],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CachedFunction=e.LRUCachedFunction=void 0,e.identity=d;function d(E){return E}class k{constructor(y,m){this.lastCache=void 0,this.lastArgKey=void 0,typeof y=="function"?(this._fn=y,this._computeKey=d):(this._fn=m,this._computeKey=y.getCacheKey)}get(y){const m=this._computeKey(y);return this.lastArgKey!==m&&(this.lastArgKey=m,this.lastCache=this._fn(y)),this.lastCache}}e.LRUCachedFunction=k;class I{get cachedValues(){return this._map}constructor(y,m){this._map=new Map,this._map2=new Map,typeof y=="function"?(this._fn=y,this._computeKey=d):(this._fn=m,this._computeKey=y.getCacheKey)}get(y){const m=this._computeKey(y);if(this._map2.has(m))return this._map2.get(m);const _=this._fn(y);return this._map.set(y,_),this._map2.set(m,_),_}}e.CachedFunction=I}),define(ne[298],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffSets=d,e.intersection=k;function d(I,E){const y=[],m=[];for(const _ of I)E.has(_)||y.push(_);for(const _ of E)I.has(_)||m.push(_);return{removed:y,added:m}}function k(I,E){const y=new Set;for(const m of E)I.has(m)&&y.add(m);return y}}),define(ne[33],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Color=e.HSVA=e.HSLA=e.RGBA=void 0;function d(m,_){const b=Math.pow(10,_);return Math.round(m*b)/b}class k{constructor(_,b,p,n=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,_))|0,this.g=Math.min(255,Math.max(0,b))|0,this.b=Math.min(255,Math.max(0,p))|0,this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.r===b.r&&_.g===b.g&&_.b===b.b&&_.a===b.a}}e.RGBA=k;class I{constructor(_,b,p,n){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,_),0)|0,this.s=d(Math.max(Math.min(1,b),0),3),this.l=d(Math.max(Math.min(1,p),0),3),this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.h===b.h&&_.s===b.s&&_.l===b.l&&_.a===b.a}static fromRGBA(_){const b=_.r/255,p=_.g/255,n=_.b/255,o=_.a,t=Math.max(b,p,n),i=Math.min(b,p,n);let s=0,g=0;const c=(i+t)/2,l=t-i;if(l>0){switch(g=Math.min(c<=.5?l/(2*c):l/(2-2*c),1),t){case b:s=(p-n)/l+(p1&&(p-=1),p<1/6?_+(b-_)*6*p:p<1/2?b:p<2/3?_+(b-_)*(2/3-p)*6:_}static toRGBA(_){const b=_.h/360,{s:p,l:n,a:o}=_;let t,i,s;if(p===0)t=i=s=n;else{const g=n<.5?n*(1+p):n+p-n*p,c=2*n-g;t=I._hue2rgb(c,g,b+1/3),i=I._hue2rgb(c,g,b),s=I._hue2rgb(c,g,b-1/3)}return new k(Math.round(t*255),Math.round(i*255),Math.round(s*255),o)}}e.HSLA=I;class E{constructor(_,b,p,n){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,_),0)|0,this.s=d(Math.max(Math.min(1,b),0),3),this.v=d(Math.max(Math.min(1,p),0),3),this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.h===b.h&&_.s===b.s&&_.v===b.v&&_.a===b.a}static fromRGBA(_){const b=_.r/255,p=_.g/255,n=_.b/255,o=Math.max(b,p,n),t=Math.min(b,p,n),i=o-t,s=o===0?0:i/o;let g;return i===0?g=0:o===b?g=((p-n)/i%6+6)%6:o===p?g=(n-b)/i+2:g=(b-p)/i+4,new E(Math.round(g*60),s,o,_.a)}static toRGBA(_){const{h:b,s:p,v:n,a:o}=_,t=n*p,i=t*(1-Math.abs(b/60%2-1)),s=n-t;let[g,c,l]=[0,0,0];return b<60?(g=t,c=i):b<120?(g=i,c=t):b<180?(c=t,l=i):b<240?(c=i,l=t):b<300?(g=i,l=t):b<=360&&(g=t,l=i),g=Math.round((g+s)*255),c=Math.round((c+s)*255),l=Math.round((l+s)*255),new k(g,c,l,o)}}e.HSVA=E;class y{static fromHex(_){return y.Format.CSS.parseHex(_)||y.red}static equals(_,b){return!_&&!b?!0:!_||!b?!1:_.equals(b)}get hsla(){return this._hsla?this._hsla:I.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:E.fromRGBA(this.rgba)}constructor(_){if(_)if(_ instanceof k)this.rgba=_;else if(_ instanceof I)this._hsla=_,this.rgba=I.toRGBA(_);else if(_ instanceof E)this._hsva=_,this.rgba=E.toRGBA(_);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(_){return!!_&&k.equals(this.rgba,_.rgba)&&I.equals(this.hsla,_.hsla)&&E.equals(this.hsva,_.hsva)}getRelativeLuminance(){const _=y._relativeLuminanceForComponent(this.rgba.r),b=y._relativeLuminanceForComponent(this.rgba.g),p=y._relativeLuminanceForComponent(this.rgba.b),n=.2126*_+.7152*b+.0722*p;return d(n,4)}static _relativeLuminanceForComponent(_){const b=_/255;return b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(_){const b=this.getRelativeLuminance(),p=_.getRelativeLuminance();return b>p}isDarkerThan(_){const b=this.getRelativeLuminance(),p=_.getRelativeLuminance();return bb===p;e.strictEquals=k;function I(b=e.strictEquals){return(p,n)=>d.equals(p,n,b)}function E(){return(b,p)=>b.equals(p)}function y(b,p,n){if(n!==void 0){const o=b;return o==null||p===void 0||p===null?p===o:n(o,p)}else{const o=b;return(t,i)=>t==null||i===void 0||i===null?i===t:o(t,i)}}function m(b,p){if(b===p)return!0;if(Array.isArray(b)&&Array.isArray(p)){if(b.length!==p.length)return!1;for(let n=0;n{throw g.stack?t.isErrorNoTelemetry(g)?new t(g.message+` - -`+g.stack):new Error(g.message+` - -`+g.stack):g},0)}}emit(g){this.listeners.forEach(c=>{c(g)})}onUnexpectedError(g){this.unexpectedErrorHandler(g),this.emit(g)}onUnexpectedExternalError(g){this.unexpectedErrorHandler(g)}}e.ErrorHandler=d,e.errorHandler=new d;function k(s){m(s)||e.errorHandler.onUnexpectedError(s)}function I(s){m(s)||e.errorHandler.onUnexpectedExternalError(s)}function E(s){if(s instanceof Error){const{name:g,message:c}=s,l=s.stacktrace||s.stack;return{$isError:!0,name:g,message:c,stack:l,noTelemetry:t.isErrorNoTelemetry(s)}}return s}const y="Canceled";function m(s){return s instanceof _?!0:s instanceof Error&&s.name===y&&s.message===y}class _ extends Error{constructor(){super(y),this.name=this.message}}e.CancellationError=_;function b(){const s=new Error(y);return s.name=s.message,s}function p(s){return s?new Error(`Illegal argument: ${s}`):new Error("Illegal argument")}function n(s){return s?new Error(`Illegal state: ${s}`):new Error("Illegal state")}class o extends Error{constructor(g){super("NotSupported"),g&&(this.message=g)}}e.NotSupportedError=o;class t extends Error{constructor(g){super(g),this.name="CodeExpectedError"}static fromError(g){if(g instanceof t)return g;const c=new t;return c.message=g.message,c.stack=g.stack,c}static isErrorNoTelemetry(g){return g.name==="CodeExpectedError"}}e.ErrorNoTelemetry=t;class i extends Error{constructor(g){super(g||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}}e.BugIndicatingError=i}),define(ne[103],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTrustedTypesPolicy=k;function k(I,E){const y=globalThis.MonacoEnvironment;if(y?.createTrustedTypesPolicy)try{return y.createTrustedTypesPolicy(I,E)}catch(m){(0,d.onUnexpectedError)(m);return}try{return globalThis.trustedTypes?.createPolicy(I,E)}catch(m){(0,d.onUnexpectedError)(m);return}}}),define(ne[90],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ok=k,e.assertNever=I,e.softAssert=E,e.assertFn=y,e.checkAdjacentItems=m;function k(_,b){if(!_)throw new Error(b?`Assertion failed (${b})`:"Assertion Failed")}function I(_,b="Unreachable"){throw new Error(b)}function E(_){_||(0,d.onUnexpectedError)(new d.BugIndicatingError("Soft Assertion Failed"))}function y(_){if(!_()){debugger;_(),(0,d.onUnexpectedError)(new d.BugIndicatingError("Assertion Failed"))}}function m(_,b){let p=0;for(;p<_.length-1;){const n=_[p],o=_[p+1];if(!b(n,o))return!1;p++}return!0}}),define(ne[127],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createSingleCallFunction=d;function d(k,I){const E=this;let y=!1,m;return function(){if(y)return m;if(y=!0,I)try{m=k.apply(E,arguments)}finally{I()}else m=k.apply(E,arguments);return m}}}),define(ne[91],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HierarchicalKind=void 0;class d{static{this.sep="."}static{this.None=new d("@@none@@")}static{this.Empty=new d("")}constructor(I){this.value=I}equals(I){return this.value===I.value}contains(I){return this.equals(I)||this.value===""||I.value.startsWith(this.value+d.sep)}intersects(I){return this.contains(I)||I.contains(this)}append(...I){return new d((this.value?[this.value,...I]:I).join(d.sep))}}e.HierarchicalKind=d}),define(ne[187],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultGenerator=e.IdGenerator=void 0;class d{constructor(I){this._prefix=I,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}e.IdGenerator=d,e.defaultGenerator=new d("id#")}),define(ne[53],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Iterable=void 0;var d;(function(k){function I(f){return f&&typeof f=="object"&&typeof f[Symbol.iterator]=="function"}k.is=I;const E=Object.freeze([]);function y(){return E}k.empty=y;function*m(f){yield f}k.single=m;function _(f){return I(f)?f:m(f)}k.wrap=_;function b(f){return f||E}k.from=b;function*p(f){for(let h=f.length-1;h>=0;h--)yield f[h]}k.reverse=p;function n(f){return!f||f[Symbol.iterator]().next().done===!0}k.isEmpty=n;function o(f){return f[Symbol.iterator]().next().value}k.first=o;function t(f,h){let v=0;for(const w of f)if(h(w,v++))return!0;return!1}k.some=t;function i(f,h){for(const v of f)if(h(v))return v}k.find=i;function*s(f,h){for(const v of f)h(v)&&(yield v)}k.filter=s;function*g(f,h){let v=0;for(const w of f)yield h(w,v++)}k.map=g;function*c(f,h){let v=0;for(const w of f)yield*h(w,v++)}k.flatMap=c;function*l(...f){for(const h of f)yield*h}k.concat=l;function a(f,h,v){let w=v;for(const S of f)w=h(w,S);return w}k.reduce=a;function*r(f,h,v=f.length){for(h<0&&(h+=f.length),v<0?v+=f.length:v>f.length&&(v=f.length);h=98&&l<=113)return null;switch(l){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return k.keyCodeToStr(l)}n.toElectronAccelerator=c})(b||(e.KeyCodeUtils=b={}));function p(n,o){const t=(o&65535)<<16>>>0;return(n|t)>>>0}}),define(ne[140],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedKeybinding=e.ResolvedChord=e.Keybinding=e.ScanCodeChord=e.KeyCodeChord=void 0,e.decodeKeybinding=k,e.createSimpleKeybinding=I;function k(p,n){if(typeof p=="number"){if(p===0)return null;const o=(p&65535)>>>0,t=(p&4294901760)>>>16;return t!==0?new m([I(o,n),I(t,n)]):new m([I(o,n)])}else{const o=[];for(let t=0;t({get delay(){return-1},dispose:()=>{},showHover:()=>{}});const E=new d.Lazy(()=>I("mouse",!1)),y=new d.Lazy(()=>I("element",!1));function m(p){I=p}function _(p){return p==="element"?y.value:E.value}function b(){return I("element",!0)}}),define(ne[160],se([1,0,98]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VSBuffer=void 0,e.readUInt16LE=m,e.writeUInt16LE=_,e.readUInt32BE=b,e.writeUInt32BE=p,e.readUInt8=n,e.writeUInt8=o;const k=typeof Buffer<"u",I=new d.Lazy(()=>new Uint8Array(256));let E;class y{static wrap(i){return k&&!Buffer.isBuffer(i)&&(i=Buffer.from(i.buffer,i.byteOffset,i.byteLength)),new y(i)}constructor(i){this.buffer=i,this.byteLength=this.buffer.byteLength}toString(){return k?this.buffer.toString():(E||(E=new TextDecoder),E.decode(this.buffer))}}e.VSBuffer=y;function m(t,i){return t[i+0]<<0>>>0|t[i+1]<<8>>>0}function _(t,i,s){t[s+0]=i&255,i=i>>>8,t[s+1]=i&255}function b(t,i){return t[i]*2**24+t[i+1]*2**16+t[i+2]*2**8+t[i+3]}function p(t,i,s){t[s+3]=i,i=i>>>8,t[s+2]=i,i=i>>>8,t[s+1]=i,i=i>>>8,t[s]=i}function n(t,i){return t[i]}function o(t,i,s){t[s]=i}}),define(ne[445],se([1,0,98]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compareFileNames=y,e.compareAnything=m,e.compareByPrefix=_;const k=new d.Lazy(()=>{const b=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:b,collatorIsNumeric:b.resolvedOptions().numeric}}),I=new d.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0})})),E=new d.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})}));function y(b,p,n=!1){const o=b||"",t=p||"",i=k.value.collator.compare(o,t);return k.value.collatorIsNumeric&&i===0&&o!==t?ot.length)return 1}return 0}}),define(ne[2],se([1,0,127,53]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableMap=e.ImmortalReference=e.RefCountedDisposable=e.MutableDisposable=e.Disposable=e.DisposableStore=void 0,e.setDisposableTracker=y,e.trackDisposable=m,e.markAsDisposed=_,e.markAsSingleton=n,e.isDisposable=o,e.dispose=t,e.combinedDisposable=i,e.toDisposable=s;const I=!1;let E=null;function y(C){E=C}if(I){const C="__is_disposable_tracked__";y(new class{trackDisposable(f){const h=new Error("Potentially leaked disposable").stack;setTimeout(()=>{f[C]||console.log(h)},3e3)}setParent(f,h){if(f&&f!==c.None)try{f[C]=!0}catch{}}markAsDisposed(f){if(f&&f!==c.None)try{f[C]=!0}catch{}}markAsSingleton(f){}})}function m(C){return E?.trackDisposable(C),C}function _(C){E?.markAsDisposed(C)}function b(C,f){E?.setParent(C,f)}function p(C,f){if(E)for(const h of C)E.setParent(h,f)}function n(C){return E?.markAsSingleton(C),C}function o(C){return typeof C=="object"&&C!==null&&typeof C.dispose=="function"&&C.dispose.length===0}function t(C){if(k.Iterable.is(C)){const f=[];for(const h of C)if(h)try{h.dispose()}catch(v){f.push(v)}if(f.length===1)throw f[0];if(f.length>1)throw new AggregateError(f,"Encountered errors while disposing of store");return Array.isArray(C)?[]:C}else if(C)return C.dispose(),C}function i(...C){const f=s(()=>t(C));return p(C,f),f}function s(C){const f=m({dispose:(0,d.createSingleCallFunction)(()=>{_(f),C()})});return f}class g{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,m(this)}dispose(){this._isDisposed||(_(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{t(this._toDispose)}finally{this._toDispose.clear()}}add(f){if(!f)return f;if(f===this)throw new Error("Cannot register a disposable on itself!");return b(f,this),this._isDisposed?g.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(f),f}deleteAndLeak(f){f&&this._toDispose.has(f)&&(this._toDispose.delete(f),b(f,null))}}e.DisposableStore=g;class c{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new g,m(this),b(this._store,this)}dispose(){_(this),this._store.dispose()}_register(f){if(f===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(f)}}e.Disposable=c;class l{constructor(){this._isDisposed=!1,m(this)}get value(){return this._isDisposed?void 0:this._value}set value(f){this._isDisposed||f===this._value||(this._value?.dispose(),f&&b(f,this),this._value=f)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,_(this),this._value?.dispose(),this._value=void 0}}e.MutableDisposable=l;class a{constructor(f){this._disposable=f,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}e.RefCountedDisposable=a;class r{constructor(f){this.object=f}dispose(){}}e.ImmortalReference=r;class u{constructor(){this._store=new Map,this._isDisposed=!1,m(this)}dispose(){_(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{t(this._store.values())}finally{this._store.clear()}}get(f){return this._store.get(f)}set(f,h,v=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),v||this._store.get(f)?.dispose(),this._store.set(f,h)}deleteAndDispose(f){this._store.get(f)?.dispose(),this._store.delete(f)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}e.DisposableMap=u}),define(ne[73],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedList=void 0;class d{static{this.Undefined=new d(void 0)}constructor(E){this.element=E,this.next=d.Undefined,this.prev=d.Undefined}}class k{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let E=this._first;for(;E!==d.Undefined;){const y=E.next;E.prev=d.Undefined,E.next=d.Undefined,E=y}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(E){return this._insert(E,!1)}push(E){return this._insert(E,!0)}_insert(E,y){const m=new d(E);if(this._first===d.Undefined)this._first=m,this._last=m;else if(y){const b=this._last;this._last=m,m.prev=b,b.next=m}else{const b=this._first;this._first=m,m.next=b,b.prev=m}this._size+=1;let _=!1;return()=>{_||(_=!0,this._remove(m))}}shift(){if(this._first!==d.Undefined){const E=this._first.element;return this._remove(this._first),E}}pop(){if(this._last!==d.Undefined){const E=this._last.element;return this._remove(this._last),E}}_remove(E){if(E.prev!==d.Undefined&&E.next!==d.Undefined){const y=E.prev;y.next=E.next,E.next.prev=y}else E.prev===d.Undefined&&E.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):E.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):E.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let E=this._first;for(;E!==d.Undefined;)yield E.element,E=E.next}}e.LinkedList=k});var ke=this&&this.__decorate||function(oe,e,d,k){var I=arguments.length,E=I<3?e:k===null?k=Object.getOwnPropertyDescriptor(e,d):k,y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(oe,e,d,k);else for(var m=oe.length-1;m>=0;m--)(y=oe[m])&&(E=(I<3?y(E):I>3?y(e,d,E):y(e,d))||E);return I>3&&E&&Object.defineProperty(e,d,E),E};define(ne[446],se([1,0,126]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedText=void 0,e.parseLinkedText=E;class k{constructor(m){this.nodes=m}toString(){return this.nodes.map(m=>typeof m=="string"?m:m.label).join("")}}e.LinkedText=k,ke([d.memoize],k.prototype,"toString",null);const I=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function E(y){const m=[];let _=0,b;for(;b=I.exec(y);){b.index-_>0&&m.push(y.substring(_,b.index));const[,p,n,,o]=b;o?m.push({label:p,href:n,title:o}):m.push({label:p,href:n}),_=b.index+b[0].length}return _t.toString()}constructor(t,i){if(this[d]="ResourceMap",t instanceof y)this.map=new Map(t.map),this.toKey=i??y.defaultToKey;else if(E(t)){this.map=new Map,this.toKey=i??y.defaultToKey;for(const[s,g]of t)this.set(s,g)}else this.map=new Map,this.toKey=t??y.defaultToKey}set(t,i){return this.map.set(this.toKey(t),new I(t,i)),this}get(t){return this.map.get(this.toKey(t))?.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,i){typeof i<"u"&&(t=t.bind(i));for(const[s,g]of this.map)t(g.value,g.uri,this)}*values(){for(const t of this.map.values())yield t.value}*keys(){for(const t of this.map.values())yield t.uri}*entries(){for(const t of this.map.values())yield[t.uri,t.value]}*[(d=Symbol.toStringTag,Symbol.iterator)](){for(const[,t]of this.map)yield[t.uri,t.value]}}e.ResourceMap=y;class m{constructor(){this[k]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,i=0){const s=this._map.get(t);if(s)return i!==0&&this.touch(s,i),s.value}set(t,i,s=0){let g=this._map.get(t);if(g)g.value=i,s!==0&&this.touch(g,s);else{switch(g={key:t,value:i,next:void 0,previous:void 0},s){case 0:this.addItemLast(g);break;case 1:this.addItemFirst(g);break;case 2:this.addItemLast(g);break;default:this.addItemLast(g);break}this._map.set(t,g),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){const i=this._map.get(t);if(i)return this._map.delete(t),this.removeItem(i),this._size--,i.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,i){const s=this._state;let g=this._head;for(;g;){if(i?t.bind(i)(g.value,g.key,this):t(g.value,g.key,this),this._state!==s)throw new Error("LinkedMap got modified during iteration.");g=g.next}}keys(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:s.key,done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}values(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:s.value,done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}entries(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:[s.key,s.value],done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}[(k=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let i=this._head,s=this.size;for(;i&&s>t;)this._map.delete(i.key),i=i.next,s--;this._head=i,this._size=s,i&&(i.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let i=this._tail,s=this.size;for(;i&&s>t;)this._map.delete(i.key),i=i.previous,s--;this._tail=i,this._size=s,i&&(i.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{const i=t.next,s=t.previous;if(!i||!s)throw new Error("Invalid list");i.previous=s,s.next=i}t.next=void 0,t.previous=void 0,this._state++}touch(t,i){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(i!==1&&i!==2)){if(i===1){if(t===this._head)return;const s=t.next,g=t.previous;t===this._tail?(g.next=void 0,this._tail=g):(s.previous=g,g.next=s),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(i===2){if(t===this._tail)return;const s=t.next,g=t.previous;t===this._head?(s.previous=void 0,this._head=s):(s.previous=g,g.next=s),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){const t=[];return this.forEach((i,s)=>{t.push([s,i])}),t}fromJSON(t){this.clear();for(const[i,s]of t)this.set(i,s)}}e.LinkedMap=m;class _ extends m{constructor(t,i=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,i),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get(t,i=2){return super.get(t,i)}peek(t){return super.get(t,0)}set(t,i){return super.set(t,i,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class b extends _{constructor(t,i=1){super(t,i)}trim(t){this.trimOld(t)}set(t,i){return super.set(t,i),this.checkTrim(),this}}e.LRUCache=b;class p{constructor(t){if(this._m1=new Map,this._m2=new Map,t)for(const[i,s]of t)this.set(i,s)}clear(){this._m1.clear(),this._m2.clear()}set(t,i){this._m1.set(t,i),this._m2.set(i,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){const i=this._m1.get(t);return i===void 0?!1:(this._m1.delete(t),this._m2.delete(i),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}e.BidirectionalMap=p;class n{constructor(){this.map=new Map}add(t,i){let s=this.map.get(t);s||(s=new Set,this.map.set(t,s)),s.add(i)}delete(t,i){const s=this.map.get(t);s&&(s.delete(i),s.size===0&&this.map.delete(t))}forEach(t,i){const s=this.map.get(t);s&&s.forEach(i)}get(t){const i=this.map.get(t);return i||new Set}}e.SetMap=n}),function(oe,e){typeof define=="function"&&define.amd?define(ne[447],se([0]),e):typeof exports=="object"&&typeof module<"u"?e(exports):(oe=typeof globalThis<"u"?globalThis:oe||self,e(oe.marked={}))}(this,function(oe){"use strict";function e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}oe.defaults=e();function d(xe){oe.defaults=xe}const k=/[&<>"']/,I=new RegExp(k.source,"g"),E=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,y=new RegExp(E.source,"g"),m={"&":"&","<":"<",">":">",'"':""","'":"'"},_=xe=>m[xe];function b(xe,be){if(be){if(k.test(xe))return xe.replace(I,_)}else if(E.test(xe))return xe.replace(y,_);return xe}const p=/(^|[^\[])\^/g;function n(xe,be){let ve=typeof xe=="string"?xe:xe.source;be=be||"";const we={replace:(Te,Pe)=>{let Be=typeof Pe=="string"?Pe:Pe.source;return Be=Be.replace(p,"$1"),ve=ve.replace(Te,Be),we},getRegex:()=>new RegExp(ve,be)};return we}function o(xe){try{xe=encodeURI(xe).replace(/%25/g,"%")}catch{return null}return xe}const t={exec:()=>null};function i(xe,be){const ve=xe.replace(/\|/g,(Pe,Be,He)=>{let $e=!1,je=Be;for(;--je>=0&&He[je]==="\\";)$e=!$e;return $e?"|":" |"}),we=ve.split(/ \|/);let Te=0;if(we[0].trim()||we.shift(),we.length>0&&!we[we.length-1].trim()&&we.pop(),be)if(we.length>be)we.splice(be);else for(;we.length{const Pe=Te.match(/^\s+/);if(Pe===null)return Te;const[Be]=Pe;return Be.length>=we.length?Te.slice(we.length):Te}).join(` -`)}class a{options;rules;lexer;constructor(be){this.options=be||oe.defaults}space(be){const ve=this.rules.block.newline.exec(be);if(ve&&ve[0].length>0)return{type:"space",raw:ve[0]}}code(be){const ve=this.rules.block.code.exec(be);if(ve){const we=ve[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:ve[0],codeBlockStyle:"indented",text:this.options.pedantic?we:s(we,` -`)}}}fences(be){const ve=this.rules.block.fences.exec(be);if(ve){const we=ve[0],Te=l(we,ve[3]||"");return{type:"code",raw:we,lang:ve[2]?ve[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):ve[2],text:Te}}}heading(be){const ve=this.rules.block.heading.exec(be);if(ve){let we=ve[2].trim();if(/#$/.test(we)){const Te=s(we,"#");(this.options.pedantic||!Te||/ $/.test(Te))&&(we=Te.trim())}return{type:"heading",raw:ve[0],depth:ve[1].length,text:we,tokens:this.lexer.inline(we)}}}hr(be){const ve=this.rules.block.hr.exec(be);if(ve)return{type:"hr",raw:s(ve[0],` -`)}}blockquote(be){const ve=this.rules.block.blockquote.exec(be);if(ve){let we=s(ve[0],` -`).split(` -`),Te="",Pe="";const Be=[];for(;we.length>0;){let He=!1;const $e=[];let je;for(je=0;je/.test(we[je]))$e.push(we[je]),He=!0;else if(!He)$e.push(we[je]);else break;we=we.slice(je);const Xe=$e.join(` -`),et=Xe.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` - $1`).replace(/^ {0,3}>[ \t]?/gm,"");Te=Te?`${Te} -${Xe}`:Xe,Pe=Pe?`${Pe} -${et}`:et;const dt=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(et,Be,!0),this.lexer.state.top=dt,we.length===0)break;const at=Be[Be.length-1];if(at?.type==="code")break;if(at?.type==="blockquote"){const st=at,pt=st.raw+` -`+we.join(` -`),bt=this.blockquote(pt);Be[Be.length-1]=bt,Te=Te.substring(0,Te.length-st.raw.length)+bt.raw,Pe=Pe.substring(0,Pe.length-st.text.length)+bt.text;break}else if(at?.type==="list"){const st=at,pt=st.raw+` -`+we.join(` -`),bt=this.list(pt);Be[Be.length-1]=bt,Te=Te.substring(0,Te.length-at.raw.length)+bt.raw,Pe=Pe.substring(0,Pe.length-st.raw.length)+bt.raw,we=pt.substring(Be[Be.length-1].raw.length).split(` -`);continue}}return{type:"blockquote",raw:Te,tokens:Be,text:Pe}}}list(be){let ve=this.rules.block.list.exec(be);if(ve){let we=ve[1].trim();const Te=we.length>1,Pe={type:"list",raw:"",ordered:Te,start:Te?+we.slice(0,-1):"",loose:!1,items:[]};we=Te?`\\d{1,9}\\${we.slice(-1)}`:`\\${we}`,this.options.pedantic&&(we=Te?we:"[*+-]");const Be=new RegExp(`^( {0,3}${we})((?:[ ][^\\n]*)?(?:\\n|$))`);let He=!1;for(;be;){let $e=!1,je="",Xe="";if(!(ve=Be.exec(be))||this.rules.block.hr.test(be))break;je=ve[0],be=be.substring(je.length);let et=ve[2].split(` -`,1)[0].replace(/^\t+/,De=>" ".repeat(3*De.length)),dt=be.split(` -`,1)[0],at=!et.trim(),st=0;if(this.options.pedantic?(st=2,Xe=et.trimStart()):at?st=ve[1].length+1:(st=ve[2].search(/[^ ]/),st=st>4?1:st,Xe=et.slice(st),st+=ve[1].length),at&&/^ *$/.test(dt)&&(je+=dt+` -`,be=be.substring(dt.length+1),$e=!0),!$e){const De=new RegExp(`^ {0,${Math.min(3,st-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),Ie=new RegExp(`^ {0,${Math.min(3,st-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),Re=new RegExp(`^ {0,${Math.min(3,st-1)}}(?:\`\`\`|~~~)`),Se=new RegExp(`^ {0,${Math.min(3,st-1)}}#`);for(;be;){const We=be.split(` -`,1)[0];if(dt=We,this.options.pedantic&&(dt=dt.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),Re.test(dt)||Se.test(dt)||De.test(dt)||Ie.test(be))break;if(dt.search(/[^ ]/)>=st||!dt.trim())Xe+=` -`+dt.slice(st);else{if(at||et.search(/[^ ]/)>=4||Re.test(et)||Se.test(et)||Ie.test(et))break;Xe+=` -`+dt}!at&&!dt.trim()&&(at=!0),je+=We+` -`,be=be.substring(We.length+1),et=dt.slice(st)}}Pe.loose||(He?Pe.loose=!0:/\n *\n *$/.test(je)&&(He=!0));let pt=null,bt;this.options.gfm&&(pt=/^\[[ xX]\] /.exec(Xe),pt&&(bt=pt[0]!=="[ ] ",Xe=Xe.replace(/^\[[ xX]\] +/,""))),Pe.items.push({type:"list_item",raw:je,task:!!pt,checked:bt,loose:!1,text:Xe,tokens:[]}),Pe.raw+=je}Pe.items[Pe.items.length-1].raw=Pe.items[Pe.items.length-1].raw.trimEnd(),Pe.items[Pe.items.length-1].text=Pe.items[Pe.items.length-1].text.trimEnd(),Pe.raw=Pe.raw.trimEnd();for(let $e=0;$eet.type==="space"),Xe=je.length>0&&je.some(et=>/\n.*\n/.test(et.raw));Pe.loose=Xe}if(Pe.loose)for(let $e=0;$e$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",Pe=ve[3]?ve[3].substring(1,ve[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):ve[3];return{type:"def",tag:we,raw:ve[0],href:Te,title:Pe}}}table(be){const ve=this.rules.block.table.exec(be);if(!ve||!/[:|]/.test(ve[2]))return;const we=i(ve[1]),Te=ve[2].replace(/^\||\| *$/g,"").split("|"),Pe=ve[3]&&ve[3].trim()?ve[3].replace(/\n[ \t]*$/,"").split(` -`):[],Be={type:"table",raw:ve[0],header:[],align:[],rows:[]};if(we.length===Te.length){for(const He of Te)/^ *-+: *$/.test(He)?Be.align.push("right"):/^ *:-+: *$/.test(He)?Be.align.push("center"):/^ *:-+ *$/.test(He)?Be.align.push("left"):Be.align.push(null);for(let He=0;He({text:$e,tokens:this.lexer.inline($e),header:!1,align:Be.align[je]})));return Be}}lheading(be){const ve=this.rules.block.lheading.exec(be);if(ve)return{type:"heading",raw:ve[0],depth:ve[2].charAt(0)==="="?1:2,text:ve[1],tokens:this.lexer.inline(ve[1])}}paragraph(be){const ve=this.rules.block.paragraph.exec(be);if(ve){const we=ve[1].charAt(ve[1].length-1)===` -`?ve[1].slice(0,-1):ve[1];return{type:"paragraph",raw:ve[0],text:we,tokens:this.lexer.inline(we)}}}text(be){const ve=this.rules.block.text.exec(be);if(ve)return{type:"text",raw:ve[0],text:ve[0],tokens:this.lexer.inline(ve[0])}}escape(be){const ve=this.rules.inline.escape.exec(be);if(ve)return{type:"escape",raw:ve[0],text:b(ve[1])}}tag(be){const ve=this.rules.inline.tag.exec(be);if(ve)return!this.lexer.state.inLink&&/^/i.test(ve[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(ve[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(ve[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:ve[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:ve[0]}}link(be){const ve=this.rules.inline.link.exec(be);if(ve){const we=ve[2].trim();if(!this.options.pedantic&&/^$/.test(we))return;const Be=s(we.slice(0,-1),"\\");if((we.length-Be.length)%2===0)return}else{const Be=g(ve[2],"()");if(Be>-1){const $e=(ve[0].indexOf("!")===0?5:4)+ve[1].length+Be;ve[2]=ve[2].substring(0,Be),ve[0]=ve[0].substring(0,$e).trim(),ve[3]=""}}let Te=ve[2],Pe="";if(this.options.pedantic){const Be=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(Te);Be&&(Te=Be[1],Pe=Be[3])}else Pe=ve[3]?ve[3].slice(1,-1):"";return Te=Te.trim(),/^$/.test(we)?Te=Te.slice(1):Te=Te.slice(1,-1)),c(ve,{href:Te&&Te.replace(this.rules.inline.anyPunctuation,"$1"),title:Pe&&Pe.replace(this.rules.inline.anyPunctuation,"$1")},ve[0],this.lexer)}}reflink(be,ve){let we;if((we=this.rules.inline.reflink.exec(be))||(we=this.rules.inline.nolink.exec(be))){const Te=(we[2]||we[1]).replace(/\s+/g," "),Pe=ve[Te.toLowerCase()];if(!Pe){const Be=we[0].charAt(0);return{type:"text",raw:Be,text:Be}}return c(we,Pe,we[0],this.lexer)}}emStrong(be,ve,we=""){let Te=this.rules.inline.emStrongLDelim.exec(be);if(!Te||Te[3]&&we.match(/[\p{L}\p{N}]/u))return;if(!(Te[1]||Te[2]||"")||!we||this.rules.inline.punctuation.exec(we)){const Be=[...Te[0]].length-1;let He,$e,je=Be,Xe=0;const et=Te[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(et.lastIndex=0,ve=ve.slice(-1*be.length+Be);(Te=et.exec(ve))!=null;){if(He=Te[1]||Te[2]||Te[3]||Te[4]||Te[5]||Te[6],!He)continue;if($e=[...He].length,Te[3]||Te[4]){je+=$e;continue}else if((Te[5]||Te[6])&&Be%3&&!((Be+$e)%3)){Xe+=$e;continue}if(je-=$e,je>0)continue;$e=Math.min($e,$e+je+Xe);const dt=[...Te[0]][0].length,at=be.slice(0,Be+Te.index+dt+$e);if(Math.min(Be,$e)%2){const pt=at.slice(1,-1);return{type:"em",raw:at,text:pt,tokens:this.lexer.inlineTokens(pt)}}const st=at.slice(2,-2);return{type:"strong",raw:at,text:st,tokens:this.lexer.inlineTokens(st)}}}}codespan(be){const ve=this.rules.inline.code.exec(be);if(ve){let we=ve[2].replace(/\n/g," ");const Te=/[^ ]/.test(we),Pe=/^ /.test(we)&&/ $/.test(we);return Te&&Pe&&(we=we.substring(1,we.length-1)),we=b(we,!0),{type:"codespan",raw:ve[0],text:we}}}br(be){const ve=this.rules.inline.br.exec(be);if(ve)return{type:"br",raw:ve[0]}}del(be){const ve=this.rules.inline.del.exec(be);if(ve)return{type:"del",raw:ve[0],text:ve[2],tokens:this.lexer.inlineTokens(ve[2])}}autolink(be){const ve=this.rules.inline.autolink.exec(be);if(ve){let we,Te;return ve[2]==="@"?(we=b(ve[1]),Te="mailto:"+we):(we=b(ve[1]),Te=we),{type:"link",raw:ve[0],text:we,href:Te,tokens:[{type:"text",raw:we,text:we}]}}}url(be){let ve;if(ve=this.rules.inline.url.exec(be)){let we,Te;if(ve[2]==="@")we=b(ve[0]),Te="mailto:"+we;else{let Pe;do Pe=ve[0],ve[0]=this.rules.inline._backpedal.exec(ve[0])?.[0]??"";while(Pe!==ve[0]);we=b(ve[0]),ve[1]==="www."?Te="http://"+ve[0]:Te=ve[0]}return{type:"link",raw:ve[0],text:we,href:Te,tokens:[{type:"text",raw:we,text:we}]}}}inlineText(be){const ve=this.rules.inline.text.exec(be);if(ve){let we;return this.lexer.state.inRawBlock?we=ve[0]:we=b(ve[0]),{type:"text",raw:ve[0],text:we}}}}const r=/^(?: *(?:\n|$))+/,u=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,C=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,f=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,h=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,v=/(?:[*+-]|\d{1,9}[.)])/,w=n(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,v).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),S=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,L=/^[^\n]+/,D=/(?!\s*\])(?:\\.|[^\[\]\\])+/,T=n(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",D).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),M=n(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,v).getRegex(),A="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",P=/|$))/,N=n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",P).replace("tag",A).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O=n(S).replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex(),x={blockquote:n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",O).getRegex(),code:u,def:T,fences:C,heading:h,hr:f,html:N,lheading:w,list:M,newline:r,paragraph:O,table:t,text:L},W=n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex(),V={...x,table:W,paragraph:n(S).replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",W).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex()},q={...x,html:n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",P).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:t,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:n(S).replace("hr",f).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",w).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},H=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,z=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,U=/^( {2,}|\\)\n(?!\s*$)/,j=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,R=n(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Y).getRegex(),J=n("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Y).getRegex(),ie=n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Y).getRegex(),ue=n(/\\([punct])/,"gu").replace(/punct/g,Y).getRegex(),he=n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),pe=n(P).replace("(?:-->|$)","-->").getRegex(),ae=n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",pe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ee=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,de=n(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",ee).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ge=n(/^!?\[(label)\]\[(ref)\]/).replace("label",ee).replace("ref",D).getRegex(),X=n(/^!?\[(ref)\](?:\[\])?/).replace("ref",D).getRegex(),B=n("reflink|nolink(?!\\()","g").replace("reflink",ge).replace("nolink",X).getRegex(),$={_backpedal:t,anyPunctuation:ue,autolink:he,blockSkip:K,br:U,code:z,del:t,emStrongLDelim:R,emStrongRDelimAst:J,emStrongRDelimUnd:ie,escape:H,link:de,nolink:X,punctuation:G,reflink:ge,reflinkSearch:B,tag:ae,text:j,url:t},Q={...$,link:n(/^!?\[(label)\]\((.*?)\)/).replace("label",ee).getRegex(),reflink:n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ee).getRegex()},Z={...$,escape:n(H).replace("])","~|])").getRegex(),url:n(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\$e+" ".repeat(je.length));let Te,Pe,Be;for(;be;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(He=>(Te=He.call({lexer:this},be,ve))?(be=be.substring(Te.raw.length),ve.push(Te),!0):!1))){if(Te=this.tokenizer.space(be)){be=be.substring(Te.raw.length),Te.raw.length===1&&ve.length>0?ve[ve.length-1].raw+=` -`:ve.push(Te);continue}if(Te=this.tokenizer.code(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&(Pe.type==="paragraph"||Pe.type==="text")?(Pe.raw+=` -`+Te.raw,Pe.text+=` -`+Te.text,this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te);continue}if(Te=this.tokenizer.fences(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.heading(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.hr(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.blockquote(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.list(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.html(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.def(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&(Pe.type==="paragraph"||Pe.type==="text")?(Pe.raw+=` -`+Te.raw,Pe.text+=` -`+Te.raw,this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):this.tokens.links[Te.tag]||(this.tokens.links[Te.tag]={href:Te.href,title:Te.title});continue}if(Te=this.tokenizer.table(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.lheading(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Be=be,this.options.extensions&&this.options.extensions.startBlock){let He=1/0;const $e=be.slice(1);let je;this.options.extensions.startBlock.forEach(Xe=>{je=Xe.call({lexer:this},$e),typeof je=="number"&&je>=0&&(He=Math.min(He,je))}),He<1/0&&He>=0&&(Be=be.substring(0,He+1))}if(this.state.top&&(Te=this.tokenizer.paragraph(Be))){Pe=ve[ve.length-1],we&&Pe?.type==="paragraph"?(Pe.raw+=` -`+Te.raw,Pe.text+=` -`+Te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te),we=Be.length!==be.length,be=be.substring(Te.raw.length);continue}if(Te=this.tokenizer.text(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&Pe.type==="text"?(Pe.raw+=` -`+Te.raw,Pe.text+=` -`+Te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te);continue}if(be){const He="Infinite loop on byte: "+be.charCodeAt(0);if(this.options.silent){console.error(He);break}else throw new Error(He)}}return this.state.top=!0,ve}inline(be,ve=[]){return this.inlineQueue.push({src:be,tokens:ve}),ve}inlineTokens(be,ve=[]){let we,Te,Pe,Be=be,He,$e,je;if(this.tokens.links){const Xe=Object.keys(this.tokens.links);if(Xe.length>0)for(;(He=this.tokenizer.rules.inline.reflinkSearch.exec(Be))!=null;)Xe.includes(He[0].slice(He[0].lastIndexOf("[")+1,-1))&&(Be=Be.slice(0,He.index)+"["+"a".repeat(He[0].length-2)+"]"+Be.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(He=this.tokenizer.rules.inline.blockSkip.exec(Be))!=null;)Be=Be.slice(0,He.index)+"["+"a".repeat(He[0].length-2)+"]"+Be.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(He=this.tokenizer.rules.inline.anyPunctuation.exec(Be))!=null;)Be=Be.slice(0,He.index)+"++"+Be.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;be;)if($e||(je=""),$e=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(Xe=>(we=Xe.call({lexer:this},be,ve))?(be=be.substring(we.raw.length),ve.push(we),!0):!1))){if(we=this.tokenizer.escape(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.tag(be)){be=be.substring(we.raw.length),Te=ve[ve.length-1],Te&&we.type==="text"&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(we=this.tokenizer.link(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.reflink(be,this.tokens.links)){be=be.substring(we.raw.length),Te=ve[ve.length-1],Te&&we.type==="text"&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(we=this.tokenizer.emStrong(be,Be,je)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.codespan(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.br(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.del(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.autolink(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(!this.state.inLink&&(we=this.tokenizer.url(be))){be=be.substring(we.raw.length),ve.push(we);continue}if(Pe=be,this.options.extensions&&this.options.extensions.startInline){let Xe=1/0;const et=be.slice(1);let dt;this.options.extensions.startInline.forEach(at=>{dt=at.call({lexer:this},et),typeof dt=="number"&&dt>=0&&(Xe=Math.min(Xe,dt))}),Xe<1/0&&Xe>=0&&(Pe=be.substring(0,Xe+1))}if(we=this.tokenizer.inlineText(Pe)){be=be.substring(we.raw.length),we.raw.slice(-1)!=="_"&&(je=we.raw.slice(-1)),$e=!0,Te=ve[ve.length-1],Te&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(be){const Xe="Infinite loop on byte: "+be.charCodeAt(0);if(this.options.silent){console.error(Xe);break}else throw new Error(Xe)}}return ve}}class Ce{options;parser;constructor(be){this.options=be||oe.defaults}space(be){return""}code({text:be,lang:ve,escaped:we}){const Te=(ve||"").match(/^\S*/)?.[0],Pe=be.replace(/\n$/,"")+` -`;return Te?'
    '+(we?Pe:b(Pe,!0))+`
    -`:"
    "+(we?Pe:b(Pe,!0))+`
    -`}blockquote({tokens:be}){return`
    -${this.parser.parse(be)}
    -`}html({text:be}){return be}heading({tokens:be,depth:ve}){return`${this.parser.parseInline(be)} -`}hr(be){return`
    -`}list(be){const ve=be.ordered,we=be.start;let Te="";for(let He=0;He -`+Te+" -`}listitem(be){let ve="";if(be.task){const we=this.checkbox({checked:!!be.checked});be.loose?be.tokens.length>0&&be.tokens[0].type==="paragraph"?(be.tokens[0].text=we+" "+be.tokens[0].text,be.tokens[0].tokens&&be.tokens[0].tokens.length>0&&be.tokens[0].tokens[0].type==="text"&&(be.tokens[0].tokens[0].text=we+" "+be.tokens[0].tokens[0].text)):be.tokens.unshift({type:"text",raw:we+" ",text:we+" "}):ve+=we+" "}return ve+=this.parser.parse(be.tokens,!!be.loose),`
  • ${ve}
  • -`}checkbox({checked:be}){return"'}paragraph({tokens:be}){return`

    ${this.parser.parseInline(be)}

    -`}table(be){let ve="",we="";for(let Pe=0;Pe${Te}`),` - -`+ve+` -`+Te+`
    -`}tablerow({text:be}){return` -${be} -`}tablecell(be){const ve=this.parser.parseInline(be.tokens),we=be.header?"th":"td";return(be.align?`<${we} align="${be.align}">`:`<${we}>`)+ve+` -`}strong({tokens:be}){return`${this.parser.parseInline(be)}`}em({tokens:be}){return`${this.parser.parseInline(be)}`}codespan({text:be}){return`${be}`}br(be){return"
    "}del({tokens:be}){return`${this.parser.parseInline(be)}`}link({href:be,title:ve,tokens:we}){const Te=this.parser.parseInline(we),Pe=o(be);if(Pe===null)return Te;be=Pe;let Be='
    ",Be}image({href:be,title:ve,text:we}){const Te=o(be);if(Te===null)return we;be=Te;let Pe=`${we}{const He=Pe[Be].flat(1/0);we=we.concat(this.walkTokens(He,ve))}):Pe.tokens&&(we=we.concat(this.walkTokens(Pe.tokens,ve)))}}return we}use(...be){const ve=this.defaults.extensions||{renderers:{},childTokens:{}};return be.forEach(we=>{const Te={...we};if(Te.async=this.defaults.async||Te.async||!1,we.extensions&&(we.extensions.forEach(Pe=>{if(!Pe.name)throw new Error("extension name required");if("renderer"in Pe){const Be=ve.renderers[Pe.name];Be?ve.renderers[Pe.name]=function(...He){let $e=Pe.renderer.apply(this,He);return $e===!1&&($e=Be.apply(this,He)),$e}:ve.renderers[Pe.name]=Pe.renderer}if("tokenizer"in Pe){if(!Pe.level||Pe.level!=="block"&&Pe.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const Be=ve[Pe.level];Be?Be.unshift(Pe.tokenizer):ve[Pe.level]=[Pe.tokenizer],Pe.start&&(Pe.level==="block"?ve.startBlock?ve.startBlock.push(Pe.start):ve.startBlock=[Pe.start]:Pe.level==="inline"&&(ve.startInline?ve.startInline.push(Pe.start):ve.startInline=[Pe.start]))}"childTokens"in Pe&&Pe.childTokens&&(ve.childTokens[Pe.name]=Pe.childTokens)}),Te.extensions=ve),we.renderer){const Pe=this.defaults.renderer||new Ce(this.defaults);for(const Be in we.renderer){if(!(Be in Pe))throw new Error(`renderer '${Be}' does not exist`);if(["options","parser"].includes(Be))continue;const He=Be,$e=we.renderer[He],je=Pe[He];Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et||""}}Te.renderer=Pe}if(we.tokenizer){const Pe=this.defaults.tokenizer||new a(this.defaults);for(const Be in we.tokenizer){if(!(Be in Pe))throw new Error(`tokenizer '${Be}' does not exist`);if(["options","rules","lexer"].includes(Be))continue;const He=Be,$e=we.tokenizer[He],je=Pe[He];Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et}}Te.tokenizer=Pe}if(we.hooks){const Pe=this.defaults.hooks||new Ee;for(const Be in we.hooks){if(!(Be in Pe))throw new Error(`hook '${Be}' does not exist`);if(Be==="options")continue;const He=Be,$e=we.hooks[He],je=Pe[He];Ee.passThroughHooks.has(Be)?Pe[He]=Xe=>{if(this.defaults.async)return Promise.resolve($e.call(Pe,Xe)).then(dt=>je.call(Pe,dt));const et=$e.call(Pe,Xe);return je.call(Pe,et)}:Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et}}Te.hooks=Pe}if(we.walkTokens){const Pe=this.defaults.walkTokens,Be=we.walkTokens;Te.walkTokens=function(He){let $e=[];return $e.push(Be.call(this,He)),Pe&&($e=$e.concat(Pe.call(this,He))),$e}}this.defaults={...this.defaults,...Te}}),this}setOptions(be){return this.defaults={...this.defaults,...be},this}lexer(be,ve){return me.lex(be,ve??this.defaults)}parser(be,ve){return Le.parse(be,ve??this.defaults)}parseMarkdown(be,ve){return(Te,Pe)=>{const Be={...Pe},He={...this.defaults,...Be},$e=this.onError(!!He.silent,!!He.async);if(this.defaults.async===!0&&Be.async===!1)return $e(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof Te>"u"||Te===null)return $e(new Error("marked(): input parameter is undefined or null"));if(typeof Te!="string")return $e(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(Te)+", string expected"));if(He.hooks&&(He.hooks.options=He),He.async)return Promise.resolve(He.hooks?He.hooks.preprocess(Te):Te).then(je=>be(je,He)).then(je=>He.hooks?He.hooks.processAllTokens(je):je).then(je=>He.walkTokens?Promise.all(this.walkTokens(je,He.walkTokens)).then(()=>je):je).then(je=>ve(je,He)).then(je=>He.hooks?He.hooks.postprocess(je):je).catch($e);try{He.hooks&&(Te=He.hooks.preprocess(Te));let je=be(Te,He);He.hooks&&(je=He.hooks.processAllTokens(je)),He.walkTokens&&this.walkTokens(je,He.walkTokens);let Xe=ve(je,He);return He.hooks&&(Xe=He.hooks.postprocess(Xe)),Xe}catch(je){return $e(je)}}}onError(be,ve){return we=>{if(we.message+=` -Please report this to https://github.com/markedjs/marked.`,be){const Te="

    An error occurred:

    "+b(we.message+"",!0)+"
    ";return ve?Promise.resolve(Te):Te}if(ve)return Promise.reject(we);throw we}}}const Ae=new Me;function Ne(xe,be){return Ae.parse(xe,be)}Ne.options=Ne.setOptions=function(xe){return Ae.setOptions(xe),Ne.defaults=Ae.defaults,d(Ne.defaults),Ne},Ne.getDefaults=e,Ne.defaults=oe.defaults,Ne.use=function(...xe){return Ae.use(...xe),Ne.defaults=Ae.defaults,d(Ne.defaults),Ne},Ne.walkTokens=function(xe,be){return Ae.walkTokens(xe,be)},Ne.parseInline=Ae.parseInline,Ne.Parser=Le,Ne.parser=Le.parse,Ne.Renderer=Ce,Ne.TextRenderer=ye,Ne.Lexer=me,Ne.lexer=me.lex,Ne.Tokenizer=a,Ne.Hooks=Ee,Ne.parse=Ne;const Ke=Ne.options,ze=Ne.setOptions,Ge=Ne.use,it=Ne.walkTokens,Oe=Ne.parseInline,Fe=Ne,fe=Le.parse,_e=me.lex;oe.Hooks=Ee,oe.Lexer=me,oe.Marked=Me,oe.Parser=Le,oe.Renderer=Ce,oe.TextRenderer=ye,oe.Tokenizer=a,oe.getDefaults=e,oe.lexer=_e,oe.marked=Ne,oe.options=Ke,oe.parse=Fe,oe.parseInline=Oe,oe.parser=fe,oe.setOptions=ze,oe.use=Ge,oe.walkTokens=it}),define(ne[128],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Mimes=void 0,e.Mimes=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"})}),define(ne[224],se([1,0,128]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTransfers=void 0,e.DataTransfers={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:d.Mimes.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"}}),define(ne[448],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getKoreanAltChars=d;function d(o){const t=E(o);if(t&&t.length>0)return new Uint32Array(t)}let k=0;const I=new Uint32Array(10);function E(o){if(k=0,y(o,_,4352),k>0||(y(o,b,4449),k>0)||(y(o,p,4520),k>0)||(y(o,n,12593),k))return I.subarray(0,k);if(o>=44032&&o<=55203){const t=o-44032,i=t%588,s=Math.floor(t/588),g=Math.floor(i/28),c=i%28-1;if(s<_.length?y(s,_,0):4352+s-12593=0&&(c0)return I.subarray(0,k)}}function y(o,t,i){o>=i&&o>8&&(I[k++]=o>>8&255),o>>16&&(I[k++]=o>>16&255))}const _=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),b=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),p=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),n=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108])}),define(ne[449],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ArrayNavigator=void 0;class d{constructor(I,E=0,y=I.length,m=E-1){this.items=I,this.start=E,this.end=y,this.index=m}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}e.ArrayNavigator=d}),define(ne[450],se([1,0,449]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryNavigator=void 0;class k{constructor(E=[],y=10){this._initialize(E),this._limit=y,this._onChange()}getHistory(){return this._elements}add(E){this._history.delete(E),this._history.add(E),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(E){return this._history.has(E)}_onChange(){this._reduceToLimit();const E=this._elements;this._navigator=new d.ArrayNavigator(E,0,E.length,E.length)}_reduceToLimit(){const E=this._elements;E.length>this._limit&&this._initialize(E.slice(E.length-this._limit))}_currentPosition(){const E=this._navigator.current();return E?this._elements.indexOf(E):-1}_initialize(E){this._history=new Set;for(const y of E)this._history.add(y)}get _elements(){const E=[];return this._history.forEach(y=>E.push(y)),E}}e.HistoryNavigator=k}),define(ne[141],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SlidingWindowAverage=e.MovingAverage=void 0,e.clamp=d;function d(E,y,m){return Math.min(Math.max(E,y),m)}class k{constructor(){this._n=1,this._val=0}update(y){return this._val=this._val+(y-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}e.MovingAverage=k;class I{constructor(y){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(y),this._values.fill(0,0,y)}update(y){const m=this._values[this._index];return this._values[this._index]=y,this._index=(this._index+1)%this._values.length,this._sum-=m,this._sum+=y,this._nc.debugName).join(", ")+")",{color:"gray"})}handleDerivedCreated(g){const c=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(l,a)=>(this.changedObservablesSets.get(g).add(l),c.apply(g,[l,a]))}handleDerivedRecomputed(g,c){const l=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([_("derived recomputed"),b(g.debugName,{color:"BlueViolet"}),...this.formatInfo(c),this.formatChanges(l),{data:[{fn:g._debugNameData.referenceFn??g._computeFn}]}])),l.clear()}handleFromEventObservableTriggered(g,c){console.log(...this.textToConsoleArgs([_("observable from event triggered"),b(g.debugName,{color:"BlueViolet"}),...this.formatInfo(c),{data:[{fn:g._getValue}]}]))}handleAutorunCreated(g){const c=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(l,a)=>(this.changedObservablesSets.get(g).add(l),c.apply(g,[l,a]))}handleAutorunTriggered(g){const c=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([_("autorun"),b(g.debugName,{color:"BlueViolet"}),this.formatChanges(c),{data:[{fn:g._debugNameData.referenceFn??g._runFn}]}])),c.clear(),this.indentation++}handleAutorunFinished(g){this.indentation--}handleBeginTransaction(g){let c=g.getDebugName();c===void 0&&(c=""),console.log(...this.textToConsoleArgs([_("transaction"),b(c,{color:"BlueViolet"}),{data:[{fn:g._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}}e.ConsoleObservableLogger=E;function y(s){const g=new Array,c=[];let l="";function a(u){if("length"in u)for(const C of u)C&&a(C);else"text"in u?(l+=`%c${u.text}`,g.push(u.style),u.data&&c.push(...u.data)):"data"in u&&c.push(...u.data)}a(s);const r=[l,...g];return r.push(...c),r}function m(s){return b(s,{color:"black"})}function _(s){return b(i(`${s}: `,10),{color:"black",bold:!0})}function b(s,g={color:"black"}){function c(a){return Object.entries(a).reduce((r,[u,C])=>`${r}${u}:${C};`,"")}const l={color:g.color};return g.strikeThrough&&(l["text-decoration"]="line-through"),g.bold&&(l["font-weight"]="bold"),{text:s,style:c(l)}}function p(s,g){switch(typeof s){case"number":return""+s;case"string":return s.length+2<=g?`"${s}"`:`"${s.substr(0,g-7)}"+...`;case"boolean":return s?"true":"false";case"undefined":return"undefined";case"object":return s===null?"null":Array.isArray(s)?n(s,g):o(s,g);case"symbol":return s.toString();case"function":return`[[Function${s.name?" "+s.name:""}]]`;default:return""+s}}function n(s,g){let c="[ ",l=!0;for(const a of s){if(l||(c+=", "),c.length-5>g){c+="...";break}l=!1,c+=`${p(a,g-c.length)}`}return c+=" ]",c}function o(s,g){let c="{ ",l=!0;for(const[a,r]of Object.entries(s)){if(l||(c+=", "),c.length-5>g){c+="...";break}l=!1,c+=`${a}: ${p(r,g-c.length)}`}return c+=" }",c}function t(s,g){let c="";for(let l=1;l<=g;l++)c+=s;return c}function i(s,g){for(;s.length{i.clear(),t(g,c,i)});return(0,k.toDisposable)(()=>{s.dispose(),i.dispose()})}function p(o){const t=new k.DisposableStore,i=m({owner:void 0,debugName:void 0,debugReferenceFn:o},s=>{t.clear(),o(s,t)});return(0,k.toDisposable)(()=>{i.dispose(),t.dispose()})}class n{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,i,s,g){this._debugNameData=t,this._runFn=i,this.createChangeSummary=s,this._handleChange=g,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=this.createChangeSummary?.(),(0,E.getLogger)()?.handleAutorunCreated(this),this._runIfNeeded(),(0,k.trackDisposable)(this)}dispose(){this.disposed=!0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(0,k.markAsDisposed)(this)}_runIfNeeded(){if(this.state===3)return;const t=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=t,this.state=3;const i=this.disposed;try{if(!i){(0,E.getLogger)()?.handleAutorunTriggered(this);const s=this.changeSummary;this.changeSummary=this.createChangeSummary?.(),this._runFn(this,s)}}finally{i||(0,E.getLogger)()?.handleAutorunFinished(this);for(const s of this.dependenciesToBeRemoved)s.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,(0,d.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(t){this.state===3&&this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(this.state=1)}handleChange(t,i){this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(!this._handleChange||this._handleChange({changedObservable:t,change:i,didChange:g=>g===t},this.changeSummary))&&(this.state=2)}readObservable(t){if(this.disposed)return t.get();t.addObserver(this);const i=t.get();return this.dependencies.add(t),this.dependenciesToBeRemoved.delete(t),i}}e.AutorunObserver=n,function(o){o.Observer=n}(y||(e.autorun=y={}))}),define(ne[92],se([1,0,102,161,162]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableObservableValue=e.ObservableValue=e.TransactionImpl=e.BaseObservable=e.ConvenientObservable=void 0,e._setRecomputeInitiallyAndOnChange=y,e._setKeepObserved=_,e._setDerivedOpts=p,e.transaction=t,e.globalTransaction=s,e.asyncTransaction=g,e.subtransaction=c,e.observableValue=a,e.disposableObservableValue=u;let E;function y(f){E=f}let m;function _(f){m=f}let b;function p(f){b=f}class n{get TChange(){return null}reportChanges(){this.get()}read(h){return h?h.readObservable(this):this.get()}map(h,v){const w=v===void 0?void 0:h,S=v===void 0?h:v;return b({owner:w,debugName:()=>{const L=(0,k.getFunctionName)(S);if(L!==void 0)return L;const T=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(S.toString());if(T)return`${this.debugName}.${T[2]}`;if(!w)return`${this.debugName} (mapped)`},debugReferenceFn:S},L=>S(this.read(L),L))}flatten(){return b({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},h=>this.read(h).read(h))}recomputeInitiallyAndOnChange(h,v){return h.add(E(this,v)),this}keepObserved(h){return h.add(m(this)),this}}e.ConvenientObservable=n;class o extends n{constructor(){super(...arguments),this.observers=new Set}addObserver(h){const v=this.observers.size;this.observers.add(h),v===0&&this.onFirstObserverAdded()}removeObserver(h){this.observers.delete(h)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}e.BaseObservable=o;function t(f,h){const v=new l(f,h);try{f(v)}finally{v.finish()}}let i;function s(f){if(i)f(i);else{const h=new l(f,void 0);i=h;try{f(h)}finally{h.finish(),i=void 0}}}async function g(f,h){const v=new l(f,h);try{await f(v)}finally{v.finish()}}function c(f,h,v){f?h(f):t(h,v)}class l{constructor(h,v){this._fn=h,this._getDebugName=v,this.updatingObservers=[],(0,I.getLogger)()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():(0,k.getFunctionName)(this._fn)}updateObserver(h,v){this.updatingObservers.push({observer:h,observable:v}),h.beginUpdate(v)}finish(){const h=this.updatingObservers;for(let v=0;v{},()=>`Setting ${this.debugName}`));try{const L=this._value;this._setValue(h),(0,I.getLogger)()?.handleObservableChanged(this,{oldValue:L,newValue:h,change:w,didChange:!0,hadValue:!0});for(const D of this.observers)v.updateObserver(D,this),D.handleChange(this,w)}finally{S&&S.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(h){this._value=h}}e.ObservableValue=r;function u(f,h){let v;return typeof f=="string"?v=new k.DebugNameData(void 0,f,void 0):v=new k.DebugNameData(f,void 0,void 0),new C(v,h,d.strictEquals)}class C extends r{_setValue(h){this._value!==h&&(this._value&&this._value.dispose(),this._value=h)}dispose(){this._value?.dispose()}}e.DisposableObservableValue=C}),define(ne[65],se([1,0,90,102,2,92,161,162]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DerivedWithSetter=e.Derived=void 0,e.derived=_,e.derivedWithSetter=b,e.derivedOpts=p,e.derivedHandleChanges=n,e.derivedWithStore=o,e.derivedDisposable=t;function _(g,c){return c!==void 0?new i(new y.DebugNameData(g,void 0,c),c,void 0,void 0,void 0,k.strictEquals):new i(new y.DebugNameData(void 0,void 0,g),g,void 0,void 0,void 0,k.strictEquals)}function b(g,c,l){return new s(new y.DebugNameData(g,void 0,c),c,void 0,void 0,void 0,k.strictEquals,l)}function p(g,c){return new i(new y.DebugNameData(g.owner,g.debugName,g.debugReferenceFn),c,void 0,void 0,g.onLastObserverRemoved,g.equalsFn??k.strictEquals)}(0,E._setDerivedOpts)(p);function n(g,c){return new i(new y.DebugNameData(g.owner,g.debugName,void 0),c,g.createEmptyChangeSummary,g.handleChange,void 0,g.equalityComparer??k.strictEquals)}function o(g,c){let l,a;c===void 0?(l=g,a=void 0):(a=g,l=c);const r=new I.DisposableStore;return new i(new y.DebugNameData(a,void 0,l),u=>(r.clear(),l(u,r)),void 0,void 0,()=>r.dispose(),k.strictEquals)}function t(g,c){let l,a;c===void 0?(l=g,a=void 0):(a=g,l=c);let r;return new i(new y.DebugNameData(a,void 0,l),u=>{r?r.clear():r=new I.DisposableStore;const C=l(u);return C&&r.add(C),C},void 0,void 0,()=>{r&&(r.dispose(),r=void 0)},k.strictEquals)}class i extends E.BaseObservable{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(c,l,a,r,u=void 0,C){super(),this._debugNameData=c,this._computeFn=l,this.createChangeSummary=a,this._handleChange=r,this._handleLastObserverRemoved=u,this._equalityComparator=C,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=this.createChangeSummary?.(),(0,m.getLogger)()?.handleDerivedCreated(this)}onLastObserverRemoved(){this.state=0,this.value=void 0;for(const c of this.dependencies)c.removeObserver(this);this.dependencies.clear(),this._handleLastObserverRemoved?.()}get(){if(this.observers.size===0){const c=this._computeFn(this,this.createChangeSummary?.());return this.onLastObserverRemoved(),c}else{do{if(this.state===1){for(const c of this.dependencies)if(c.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){if(this.state===3)return;const c=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=c;const l=this.state!==0,a=this.value;this.state=3;const r=this.changeSummary;this.changeSummary=this.createChangeSummary?.();try{this.value=this._computeFn(this,r)}finally{for(const C of this.dependenciesToBeRemoved)C.removeObserver(this);this.dependenciesToBeRemoved.clear()}const u=l&&!this._equalityComparator(a,this.value);if((0,m.getLogger)()?.handleDerivedRecomputed(this,{oldValue:a,newValue:this.value,change:void 0,didChange:u,hadValue:l}),u)for(const C of this.observers)C.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(c){this.updateCount++;const l=this.updateCount===1;if(this.state===3&&(this.state=1,!l))for(const a of this.observers)a.handlePossibleChange(this);if(l)for(const a of this.observers)a.beginUpdate(this)}endUpdate(c){if(this.updateCount--,this.updateCount===0){const l=[...this.observers];for(const a of l)a.endUpdate(this)}(0,d.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(c){if(this.state===3&&this.dependencies.has(c)&&!this.dependenciesToBeRemoved.has(c)){this.state=1;for(const l of this.observers)l.handlePossibleChange(this)}}handleChange(c,l){if(this.dependencies.has(c)&&!this.dependenciesToBeRemoved.has(c)){const a=this._handleChange?this._handleChange({changedObservable:c,change:l,didChange:u=>u===c},this.changeSummary):!0,r=this.state===3;if(a&&(this.state===1||r)&&(this.state=2,r))for(const u of this.observers)u.handlePossibleChange(this)}}readObservable(c){c.addObserver(this);const l=c.get();return this.dependencies.add(c),this.dependenciesToBeRemoved.delete(c),l}addObserver(c){const l=!this.observers.has(c)&&this.updateCount>0;super.addObserver(c),l&&c.beginUpdate(this)}removeObserver(c){const l=this.observers.has(c)&&this.updateCount>0;super.removeObserver(c),l&&c.endUpdate(this)}}e.Derived=i;class s extends i{constructor(c,l,a,r,u=void 0,C,f){super(c,l,a,r,u,C),this.set=f}}e.DerivedWithSetter=s}),define(ne[451],se([1,0,92]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LazyObservableValue=void 0;class k extends d.BaseObservable{get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}constructor(E,y,m){super(),this._debugNameData=E,this._equalityComparator=m,this._isUpToDate=!0,this._deltas=[],this._updateCounter=0,this._value=y}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(const E of this.observers)for(const y of this._deltas)E.handleChange(this,y);this._deltas.length=0}else for(const E of this.observers)E.handleChange(this,void 0)}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(const E of this.observers)E.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();const E=[...this.observers];for(const y of E)y.endUpdate(this)}}addObserver(E){const y=!this.observers.has(E)&&this._updateCounter>0;super.addObserver(E),y&&E.beginUpdate(this)}removeObserver(E){const y=this.observers.has(E)&&this._updateCounter>0;super.removeObserver(E),y&&E.endUpdate(this)}set(E,y,m){if(m===void 0&&this._equalityComparator(this._value,E))return;let _;y||(y=_=new d.TransactionImpl(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(E),m!==void 0&&this._deltas.push(m),y.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(b,p)=>{},handlePossibleChange:b=>{}},this),this._updateCounter>1)for(const b of this.observers)b.handlePossibleChange(this)}finally{_&&_.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(E){this._value=E}}e.LazyObservableValue=k}),define(ne[452],se([1,0,102,92,161,451]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableValueOpts=y;function y(m,_){return m.lazy?new E.LazyObservableValue(new I.DebugNameData(m.owner,m.debugName,void 0),_,m.equalsFn??d.strictEquals):new k.ObservableValue(new I.DebugNameData(m.owner,m.debugName,void 0),_,m.equalsFn??d.strictEquals)}}),define(ne[453],se([1,0,299,92,8]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PromiseResult=e.ObservablePromise=void 0,e.waitForState=m;class E{static fromFn(b){return new E(b())}constructor(b){this._value=(0,k.observableValue)(this,void 0),this.promiseResult=this._value,this.promise=b.then(p=>((0,k.transaction)(n=>{this._value.set(new y(p,void 0),n)}),p),p=>{throw(0,k.transaction)(n=>{this._value.set(new y(void 0,p),n)}),p})}}e.ObservablePromise=E;class y{constructor(b,p){this.data=b,this.error=p}}e.PromiseResult=y;function m(_,b,p,n){return b||(b=o=>o!=null),new Promise((o,t)=>{let i=!0,s=!1;const g=_.map(l=>({isFinished:b(l),error:p?p(l):!1,state:l})),c=(0,d.autorun)(l=>{const{isFinished:a,error:r,state:u}=g.read(l);(a||r)&&(i?s=!0:c.dispose(),r?t(r===!0?u:r):o(u))});if(n){const l=n.onCancellationRequested(()=>{c.dispose(),l.dispose(),t(new I.CancellationError)});if(n.isCancellationRequested){c.dispose(),l.dispose(),t(new I.CancellationError);return}}i=!1,s&&c.dispose()})}}),define(ne[188],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Range=void 0;var d;(function(k){function I(_,b){if(_.start>=b.end||b.start>=_.end)return{start:0,end:0};const p=Math.max(_.start,b.start),n=Math.min(_.end,b.end);return n-p<=0?{start:0,end:0}:{start:p,end:n}}k.intersect=I;function E(_){return _.end-_.start<=0}k.isEmpty=E;function y(_,b){return!E(I(_,b))}k.intersects=y;function m(_,b){const p=[],n={start:_.start,end:Math.min(b.start,_.end)},o={start:Math.max(b.end,_.start),end:_.end};return E(n)||p.push(n),E(o)||p.push(o),p}k.relativeComplement=m})(d||(e.Range=d={}))}),define(ne[454],se([1,0,188]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMap=void 0,e.groupIntersect=k,e.shift=I,e.consolidate=E;function k(_,b){const p=[];for(const n of b){if(_.start>=n.range.end)continue;if(_.endb.concat(p),[]))}class m{get paddingTop(){return this._paddingTop}set paddingTop(b){this._size=this._size+b-this._paddingTop,this._paddingTop=b}constructor(b){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=b??0,this._size=this._paddingTop}splice(b,p,n=[]){const o=n.length-p,t=k({start:0,end:b},this.groups),i=k({start:b+p,end:Number.POSITIVE_INFINITY},this.groups).map(g=>({range:I(g.range,o),size:g.size})),s=n.map((g,c)=>({range:{start:b+c,end:b+c+1},size:g.size}));this.groups=y(t,s,i),this._size=this._paddingTop+this.groups.reduce((g,c)=>g+c.size*(c.range.end-c.range.start),0)}get count(){const b=this.groups.length;return b?this.groups[b-1].range.end:0}get size(){return this._size}indexAt(b){if(b<0)return-1;if(bI.Disposable.None;function M($){if(b){const{onDidAddListener:Q}=$,Z=i.create();let te=0;$.onDidAddListener=()=>{++te===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),Z.print()),Q?.()}}}function A($,Q){return U($,()=>{},0,void 0,!0,void 0,Q)}T.defer=A;function P($){return(Q,Z=null,te)=>{let re=!1,le;return le=$(me=>{if(!re)return le?le.dispose():re=!0,Q.call(Z,me)},null,te),re&&le.dispose(),le}}T.once=P;function N($,Q){return T.once(T.filter($,Q))}T.onceIf=N;function O($,Q,Z){return H((te,re=null,le)=>$(me=>te.call(re,Q(me)),null,le),Z)}T.map=O;function F($,Q,Z){return H((te,re=null,le)=>$(me=>{Q(me),te.call(re,me)},null,le),Z)}T.forEach=F;function x($,Q,Z){return H((te,re=null,le)=>$(me=>Q(me)&&te.call(re,me),null,le),Z)}T.filter=x;function W($){return $}T.signal=W;function V(...$){return(Q,Z=null,te)=>{const re=(0,I.combinedDisposable)(...$.map(le=>le(me=>Q.call(Z,me))));return z(re,te)}}T.any=V;function q($,Q,Z,te){let re=Z;return O($,le=>(re=Q(re,le),re),te)}T.reduce=q;function H($,Q){let Z;const te={onWillAddFirstListener(){Z=$(re.fire,re)},onDidRemoveLastListener(){Z?.dispose()}};Q||M(te);const re=new u(te);return Q?.add(re),re.event}function z($,Q){return Q instanceof Array?Q.push($):Q&&Q.add($),$}function U($,Q,Z=100,te=!1,re=!1,le,me){let Ce,ye,Le,Ee=0,Me;const Ae={leakWarningThreshold:le,onWillAddFirstListener(){Ce=$(Ke=>{Ee++,ye=Q(ye,Ke),te&&!Le&&(Ne.fire(ye),ye=void 0),Me=()=>{const ze=ye;ye=void 0,Le=void 0,(!te||Ee>1)&&Ne.fire(ze),Ee=0},typeof Z=="number"?(clearTimeout(Le),Le=setTimeout(Me,Z)):Le===void 0&&(Le=0,queueMicrotask(Me))})},onWillRemoveListener(){re&&Ee>0&&Me?.()},onDidRemoveLastListener(){Me=void 0,Ce.dispose()}};me||M(Ae);const Ne=new u(Ae);return me?.add(Ne),Ne.event}T.debounce=U;function j($,Q=0,Z){return T.debounce($,(te,re)=>te?(te.push(re),te):[re],Q,void 0,!0,void 0,Z)}T.accumulate=j;function Y($,Q=(te,re)=>te===re,Z){let te=!0,re;return x($,le=>{const me=te||!Q(le,re);return te=!1,re=le,me},Z)}T.latch=Y;function G($,Q,Z){return[T.filter($,Q,Z),T.filter($,te=>!Q(te),Z)]}T.split=G;function K($,Q=!1,Z=[],te){let re=Z.slice(),le=$(ye=>{re?re.push(ye):Ce.fire(ye)});te&&te.add(le);const me=()=>{re?.forEach(ye=>Ce.fire(ye)),re=null},Ce=new u({onWillAddFirstListener(){le||(le=$(ye=>Ce.fire(ye)),te&&te.add(le))},onDidAddFirstListener(){re&&(Q?setTimeout(me):me())},onDidRemoveLastListener(){le&&le.dispose(),le=null}});return te&&te.add(Ce),Ce.event}T.buffer=K;function R($,Q){return(te,re,le)=>{const me=Q(new ie);return $(function(Ce){const ye=me.evaluate(Ce);ye!==J&&te.call(re,ye)},void 0,le)}}T.chain=R;const J=Symbol("HaltChainable");class ie{constructor(){this.steps=[]}map(Q){return this.steps.push(Q),this}forEach(Q){return this.steps.push(Z=>(Q(Z),Z)),this}filter(Q){return this.steps.push(Z=>Q(Z)?Z:J),this}reduce(Q,Z){let te=Z;return this.steps.push(re=>(te=Q(te,re),te)),this}latch(Q=(Z,te)=>Z===te){let Z=!0,te;return this.steps.push(re=>{const le=Z||!Q(re,te);return Z=!1,te=re,le?re:J}),this}evaluate(Q){for(const Z of this.steps)if(Q=Z(Q),Q===J)break;return Q}}function ue($,Q,Z=te=>te){const te=(...Ce)=>me.fire(Z(...Ce)),re=()=>$.on(Q,te),le=()=>$.removeListener(Q,te),me=new u({onWillAddFirstListener:re,onDidRemoveLastListener:le});return me.event}T.fromNodeEventEmitter=ue;function he($,Q,Z=te=>te){const te=(...Ce)=>me.fire(Z(...Ce)),re=()=>$.addEventListener(Q,te),le=()=>$.removeEventListener(Q,te),me=new u({onWillAddFirstListener:re,onDidRemoveLastListener:le});return me.event}T.fromDOMEventEmitter=he;function pe($){return new Promise(Q=>P($)(Q))}T.toPromise=pe;function ae($){const Q=new u;return $.then(Z=>{Q.fire(Z)},()=>{Q.fire(void 0)}).finally(()=>{Q.dispose()}),Q.event}T.fromPromise=ae;function ee($,Q){return $(Z=>Q.fire(Z))}T.forward=ee;function de($,Q,Z){return Q(Z),$(te=>Q(te))}T.runAndSubscribe=de;class ge{constructor(Q,Z){this._observable=Q,this._counter=0,this._hasChanged=!1;const te={onWillAddFirstListener:()=>{Q.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Q.removeObserver(this)}};Z||M(te),this.emitter=new u(te),Z&&Z.add(this.emitter)}beginUpdate(Q){this._counter++}handlePossibleChange(Q){}handleChange(Q,Z){this._hasChanged=!0}endUpdate(Q){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function X($,Q){return new ge($,Q).emitter.event}T.fromObservable=X;function B($){return(Q,Z,te)=>{let re=0,le=!1;const me={beginUpdate(){re++},endUpdate(){re--,re===0&&($.reportChanges(),le&&(le=!1,Q.call(Z)))},handlePossibleChange(){},handleChange(){le=!0}};$.addObserver(me),$.reportChanges();const Ce={dispose(){$.removeObserver(me)}};return te instanceof I.DisposableStore?te.add(Ce):Array.isArray(te)&&te.push(Ce),Ce}}T.fromObservableLight=B})(p||(e.Event=p={}));class n{static{this.all=new Set}static{this._idPool=0}constructor(M){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${M}_${n._idPool++}`,n.all.add(this)}start(M){this._stopWatch=new y.StopWatch,this.listenerCount=M}stop(){if(this._stopWatch){const M=this._stopWatch.elapsed();this.durations.push(M),this.elapsedOverall+=M,this.invocationCount+=1,this._stopWatch=void 0}}}e.EventProfiling=n;let o=-1;class t{static{this._idPool=1}constructor(M,A,P=(t._idPool++).toString(16).padStart(3,"0")){this._errorHandler=M,this.threshold=A,this.name=P,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(M,A){const P=this.threshold;if(P<=0||A{const O=this._stacks.get(M.value)||0;this._stacks.set(M.value,O-1)}}getMostFrequentStack(){if(!this._stacks)return;let M,A=0;for(const[P,N]of this._stacks)(!M||A{if(T instanceof c)M(T);else for(let A=0;A{T.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(T.join(` -`)),T.length=0)},3e3),r=new FinalizationRegistry(M=>{typeof M=="string"&&T.push(M)})}class u{constructor(M){this._size=0,this._options=M,this._leakageMon=o>0||this._options?.leakWarningThreshold?new t(M?.onListenerError??d.onUnexpectedError,this._options?.leakWarningThreshold??o):void 0,this._perfMon=this._options?._profName?new n(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(_){const M=this._listeners;queueMicrotask(()=>{a(M,A=>A.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(M,A,P)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const W=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(W);const V=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],q=new g(`${W}. HINT: Stack shows most frequent listener (${V[1]}-times)`,V[0]);return(this._options?.onListenerError||d.onUnexpectedError)(q),I.Disposable.None}if(this._disposed)return I.Disposable.None;A&&(M=M.bind(A));const N=new c(M);let O,F;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(N.stack=i.create(),O=this._leakageMon.check(N.stack,this._size+1)),_&&(N.stack=F??i.create()),this._listeners?this._listeners instanceof c?(this._deliveryQueue??=new f,this._listeners=[this._listeners,N]):this._listeners.push(N):(this._options?.onWillAddFirstListener?.(this),this._listeners=N,this._options?.onDidAddFirstListener?.(this)),this._size++;const x=(0,I.toDisposable)(()=>{r?.unregister(x),O?.(),this._removeListener(N)});if(P instanceof I.DisposableStore?P.add(x):Array.isArray(P)&&P.push(x),r){const W=new Error().stack.split(` -`).slice(2,3).join(` -`).trim(),V=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(W);r.register(x,V?.[2]??W,x)}return x},this._event}_removeListener(M){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}const A=this._listeners,P=A.indexOf(M);if(P===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,A[P]=void 0;const N=this._deliveryQueue.current===this;if(this._size*l<=A.length){let O=0;for(let F=0;F0}}e.Emitter=u;const C=()=>new f;e.createEventDeliveryQueue=C;class f{constructor(){this.i=-1,this.end=0}enqueue(M,A,P){this.i=0,this.end=P,this.current=M,this.value=A}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class h extends u{constructor(M){super(M),this._isPaused=0,this._eventQueue=new E.LinkedList,this._mergeFn=M?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const M=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(M))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(M){this._size&&(this._isPaused!==0?this._eventQueue.push(M):super.fire(M))}}e.PauseableEmitter=h;class v extends h{constructor(M){super(M),this._delay=M.delay??100}fire(M){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(M)}}e.DebounceEmitter=v;class w extends u{constructor(M){super(M),this._queuedEvents=[],this._mergeFn=M?.merge}fire(M){this.hasListeners()&&(this._queuedEvents.push(M),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(A=>super.fire(A)),this._queuedEvents=[]}))}}e.MicrotaskEmitter=w;class S{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new u({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(M){const A={event:M,listener:null};this.events.push(A),this.hasListeners&&this.hook(A);const P=()=>{this.hasListeners&&this.unhook(A);const N=this.events.indexOf(A);this.events.splice(N,1)};return(0,I.toDisposable)((0,k.createSingleCallFunction)(P))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(M=>this.hook(M))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(M=>this.unhook(M))}hook(M){M.listener=M.event(A=>this.emitter.fire(A))}unhook(M){M.listener?.dispose(),M.listener=null}dispose(){this.emitter.dispose();for(const M of this.events)M.listener?.dispose();this.events=[]}}e.EventMultiplexer=S;class L{constructor(){this.data=[]}wrapEvent(M,A,P){return(N,O,F)=>M(x=>{const W=this.data[this.data.length-1];if(!A){W?W.buffers.push(()=>N.call(O,x)):N.call(O,x);return}const V=W;if(!V){N.call(O,A(P,x));return}V.items??=[],V.items.push(x),V.buffers.length===0&&W.buffers.push(()=>{V.reducedResult??=P?V.items.reduce(A,P):V.items.reduce(A),N.call(O,V.reducedResult)})},void 0,F)}bufferEvents(M){const A={buffers:new Array};this.data.push(A);const P=M();return this.data.pop(),A.buffers.forEach(N=>N()),P}}e.EventBufferer=L;class D{constructor(){this.listening=!1,this.inputEvent=p.None,this.inputEventListener=I.Disposable.None,this.emitter=new u({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(M){this.inputEvent=M,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=M(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}e.Relay=D}),define(ne[93],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomEmitter=void 0;class k{get event(){return this.emitter.event}constructor(E,y,m){const _=b=>this.emitter.fire(b);this.emitter=new d.Emitter({onWillAddFirstListener:()=>E.addEventListener(y,_,m),onDidRemoveLastListener:()=>E.removeEventListener(y,_,m)})}dispose(){this.emitter.dispose()}}e.DomEmitter=k}),define(ne[18],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0,e.cancelOnDispose=m;const k=Object.freeze(function(_,b){const p=setTimeout(_.bind(b),0);return{dispose(){clearTimeout(p)}}});var I;(function(_){function b(p){return p===_.None||p===_.Cancelled||p instanceof E?!0:!p||typeof p!="object"?!1:typeof p.isCancellationRequested=="boolean"&&typeof p.onCancellationRequested=="function"}_.isCancellationToken=b,_.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:d.Event.None}),_.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:k})})(I||(e.CancellationToken=I={}));class E{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?k:(this._emitter||(this._emitter=new d.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class y{constructor(b){this._token=void 0,this._parentListener=void 0,this._parentListener=b&&b.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new E),this._token}cancel(){this._token?this._token instanceof E&&this._token.cancel():this._token=I.Cancelled}dispose(b=!1){b&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof E&&this._token.dispose():this._token=I.None}}e.CancellationTokenSource=y;function m(_){const b=new y;return _.add({dispose(){b.cancel()}}),b.token}}),define(ne[300],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IME=e.IMEImpl=void 0;class k{constructor(){this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}e.IMEImpl=k,e.IME=new k}),define(ne[189],se([1,0,6,2,92,161,65,162,102]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ValueWithChangeEventFromObservable=e.KeepAliveObserver=e.FromEventObservable=void 0,e.constObservable=b,e.observableFromEvent=n,e.observableFromEventOpts=o,e.observableSignalFromEvent=i,e.observableSignal=g,e.keepObserved=l,e.recomputeInitiallyAndOnChange=a,e.derivedObservableWithCache=u,e.derivedObservableWithWritableCache=C,e.mapObservableArrayCached=f,e.observableFromValueWithChangeEvent=w,e.derivedConstOnceDefined=S;function b(L){return new p(L)}class p extends I.ConvenientObservable{constructor(D){super(),this.value=D}get debugName(){return this.toString()}get(){return this.value}addObserver(D){}removeObserver(D){}toString(){return`Const: ${this.value}`}}function n(...L){let D,T,M;return L.length===3?[D,T,M]=L:[T,M]=L,new t(new E.DebugNameData(D,void 0,M),T,M,()=>t.globalTransaction,_.strictEquals)}function o(L,D,T){return new t(new E.DebugNameData(L.owner,L.debugName,L.debugReferenceFn??T),D,T,()=>t.globalTransaction,L.equalsFn??_.strictEquals)}class t extends I.BaseObservable{constructor(D,T,M,A,P){super(),this._debugNameData=D,this.event=T,this._getValue=M,this._getTransaction=A,this._equalityComparator=P,this.hasValue=!1,this.handleEvent=N=>{const O=this._getValue(N),F=this.value,x=!this.hasValue||!this._equalityComparator(F,O);let W=!1;x&&(this.value=O,this.hasValue&&(W=!0,(0,I.subtransaction)(this._getTransaction(),V=>{(0,m.getLogger)()?.handleFromEventObservableTriggered(this,{oldValue:F,newValue:O,change:void 0,didChange:x,hadValue:this.hasValue});for(const q of this.observers)V.updateObserver(q,this),q.handleChange(this,void 0)},()=>{const V=this.getDebugName();return"Event fired"+(V?`: ${V}`:"")})),this.hasValue=!0),W||(0,m.getLogger)()?.handleFromEventObservableTriggered(this,{oldValue:F,newValue:O,change:void 0,didChange:x,hadValue:this.hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const D=this.getDebugName();return"From Event"+(D?`: ${D}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}e.FromEventObservable=t,function(L){L.Observer=t;function D(T,M){let A=!1;t.globalTransaction===void 0&&(t.globalTransaction=T,A=!0);try{M()}finally{A&&(t.globalTransaction=void 0)}}L.batchEventsGlobally=D}(n||(e.observableFromEvent=n={}));function i(L,D){return new s(L,D)}class s extends I.BaseObservable{constructor(D,T){super(),this.debugName=D,this.event=T,this.handleEvent=()=>{(0,I.transaction)(M=>{for(const A of this.observers)M.updateObserver(A,this),A.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function g(L){return typeof L=="string"?new c(L):new c(void 0,L)}class c extends I.BaseObservable{get debugName(){return new E.DebugNameData(this._owner,this._debugName,void 0).getDebugName(this)??"Observable Signal"}toString(){return this.debugName}constructor(D,T){super(),this._debugName=D,this._owner=T}trigger(D,T){if(!D){(0,I.transaction)(M=>{this.trigger(M,T)},()=>`Trigger signal ${this.debugName}`);return}for(const M of this.observers)D.updateObserver(M,this),M.handleChange(this,T)}get(){}}function l(L){const D=new r(!1,void 0);return L.addObserver(D),(0,k.toDisposable)(()=>{L.removeObserver(D)})}(0,I._setKeepObserved)(l);function a(L,D){const T=new r(!0,D);return L.addObserver(T),D?D(L.get()):L.reportChanges(),(0,k.toDisposable)(()=>{L.removeObserver(T)})}(0,I._setRecomputeInitiallyAndOnChange)(a);class r{constructor(D,T){this._forceRecompute=D,this._handleValue=T,this._counter=0}beginUpdate(D){this._counter++}endUpdate(D){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(D.get()):D.reportChanges())}handlePossibleChange(D){}handleChange(D,T){}}e.KeepAliveObserver=r;function u(L,D){let T;return(0,y.derivedOpts)({owner:L,debugReferenceFn:D},A=>(T=D(A,T),T))}function C(L,D){let T;const M=g("derivedObservableWithWritableCache"),A=(0,y.derived)(L,P=>(M.read(P),T=D(P,T),T));return Object.assign(A,{clearCache:P=>{T=void 0,M.trigger(P)},setCache:(P,N)=>{T=P,M.trigger(N)}})}function f(L,D,T,M){let A=new h(T,M);return(0,y.derivedOpts)({debugReferenceFn:T,owner:L,onLastObserverRemoved:()=>{A.dispose(),A=new h(T)}},N=>(A.setItems(D.read(N)),A.getItems()))}class h{constructor(D,T){this._map=D,this._keySelector=T,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(D=>D.store.dispose()),this._cache.clear()}setItems(D){const T=[],M=new Set(this._cache.keys());for(const A of D){const P=this._keySelector?this._keySelector(A):A;let N=this._cache.get(P);if(N)M.delete(P);else{const O=new k.DisposableStore;N={out:this._map(A,O),store:O},this._cache.set(P,N)}T.push(N.out)}for(const A of M)this._cache.get(A).store.dispose(),this._cache.delete(A);this._items=T}getItems(){return this._items}}class v{constructor(D){this.observable=D}get onDidChange(){return d.Event.fromObservableLight(this.observable)}get value(){return this.observable.get()}}e.ValueWithChangeEventFromObservable=v;function w(L,D){return D instanceof v?D.observable:n(L,D.onDidChange,()=>D.value)}function S(L,D){return u(L,(T,M)=>M??D(T))}}),define(ne[21],se([1,0,92,65,299,189,453,452,162]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableValueOpts=e.waitForState=e.PromiseResult=e.ObservablePromise=e.observableSignalFromEvent=e.observableSignal=e.observableFromEvent=e.recomputeInitiallyAndOnChange=e.keepObserved=e.derivedObservableWithWritableCache=e.derivedObservableWithCache=e.constObservable=e.autorunWithStoreHandleChanges=e.autorunOpts=e.autorunWithStore=e.autorunHandleChanges=e.autorun=e.derivedWithStore=e.derivedHandleChanges=e.derivedOpts=e.derived=e.subtransaction=e.transaction=e.disposableObservableValue=e.observableValue=void 0,Object.defineProperty(e,"observableValue",{enumerable:!0,get:function(){return d.observableValue}}),Object.defineProperty(e,"disposableObservableValue",{enumerable:!0,get:function(){return d.disposableObservableValue}}),Object.defineProperty(e,"transaction",{enumerable:!0,get:function(){return d.transaction}}),Object.defineProperty(e,"subtransaction",{enumerable:!0,get:function(){return d.subtransaction}}),Object.defineProperty(e,"derived",{enumerable:!0,get:function(){return k.derived}}),Object.defineProperty(e,"derivedOpts",{enumerable:!0,get:function(){return k.derivedOpts}}),Object.defineProperty(e,"derivedHandleChanges",{enumerable:!0,get:function(){return k.derivedHandleChanges}}),Object.defineProperty(e,"derivedWithStore",{enumerable:!0,get:function(){return k.derivedWithStore}}),Object.defineProperty(e,"autorun",{enumerable:!0,get:function(){return I.autorun}}),Object.defineProperty(e,"autorunHandleChanges",{enumerable:!0,get:function(){return I.autorunHandleChanges}}),Object.defineProperty(e,"autorunWithStore",{enumerable:!0,get:function(){return I.autorunWithStore}}),Object.defineProperty(e,"autorunOpts",{enumerable:!0,get:function(){return I.autorunOpts}}),Object.defineProperty(e,"autorunWithStoreHandleChanges",{enumerable:!0,get:function(){return I.autorunWithStoreHandleChanges}}),Object.defineProperty(e,"constObservable",{enumerable:!0,get:function(){return E.constObservable}}),Object.defineProperty(e,"derivedObservableWithCache",{enumerable:!0,get:function(){return E.derivedObservableWithCache}}),Object.defineProperty(e,"derivedObservableWithWritableCache",{enumerable:!0,get:function(){return E.derivedObservableWithWritableCache}}),Object.defineProperty(e,"keepObserved",{enumerable:!0,get:function(){return E.keepObserved}}),Object.defineProperty(e,"recomputeInitiallyAndOnChange",{enumerable:!0,get:function(){return E.recomputeInitiallyAndOnChange}}),Object.defineProperty(e,"observableFromEvent",{enumerable:!0,get:function(){return E.observableFromEvent}}),Object.defineProperty(e,"observableSignal",{enumerable:!0,get:function(){return E.observableSignal}}),Object.defineProperty(e,"observableSignalFromEvent",{enumerable:!0,get:function(){return E.observableSignalFromEvent}}),Object.defineProperty(e,"ObservablePromise",{enumerable:!0,get:function(){return y.ObservablePromise}}),Object.defineProperty(e,"PromiseResult",{enumerable:!0,get:function(){return y.PromiseResult}}),Object.defineProperty(e,"waitForState",{enumerable:!0,get:function(){return y.waitForState}}),Object.defineProperty(e,"observableValueOpts",{enumerable:!0,get:function(){return m.observableValueOpts}}),!1&&(0,_.setLogger)(new _.ConsoleObservableLogger)}),define(ne[163],se([1,0,6,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SmoothScrollingOperation=e.SmoothScrollingUpdate=e.Scrollable=e.ScrollState=void 0;class I{constructor(t,i,s,g,c,l,a){this._forceIntegerValues=t,this._scrollStateBrand=void 0,this._forceIntegerValues&&(i=i|0,s=s|0,g=g|0,c=c|0,l=l|0,a=a|0),this.rawScrollLeft=g,this.rawScrollTop=a,i<0&&(i=0),g+i>s&&(g=s-i),g<0&&(g=0),c<0&&(c=0),a+c>l&&(a=l-c),a<0&&(a=0),this.width=i,this.scrollWidth=s,this.scrollLeft=g,this.height=c,this.scrollHeight=l,this.scrollTop=a}equals(t){return this.rawScrollLeft===t.rawScrollLeft&&this.rawScrollTop===t.rawScrollTop&&this.width===t.width&&this.scrollWidth===t.scrollWidth&&this.scrollLeft===t.scrollLeft&&this.height===t.height&&this.scrollHeight===t.scrollHeight&&this.scrollTop===t.scrollTop}withScrollDimensions(t,i){return new I(this._forceIntegerValues,typeof t.width<"u"?t.width:this.width,typeof t.scrollWidth<"u"?t.scrollWidth:this.scrollWidth,i?this.rawScrollLeft:this.scrollLeft,typeof t.height<"u"?t.height:this.height,typeof t.scrollHeight<"u"?t.scrollHeight:this.scrollHeight,i?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new I(this._forceIntegerValues,this.width,this.scrollWidth,typeof t.scrollLeft<"u"?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof t.scrollTop<"u"?t.scrollTop:this.rawScrollTop)}createScrollEvent(t,i){const s=this.width!==t.width,g=this.scrollWidth!==t.scrollWidth,c=this.scrollLeft!==t.scrollLeft,l=this.height!==t.height,a=this.scrollHeight!==t.scrollHeight,r=this.scrollTop!==t.scrollTop;return{inSmoothScrolling:i,oldWidth:t.width,oldScrollWidth:t.scrollWidth,oldScrollLeft:t.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:t.height,oldScrollHeight:t.scrollHeight,oldScrollTop:t.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:s,scrollWidthChanged:g,scrollLeftChanged:c,heightChanged:l,scrollHeightChanged:a,scrollTopChanged:r}}}e.ScrollState=I;class E extends k.Disposable{constructor(t){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new d.Emitter),this.onScroll=this._onScroll.event,this._smoothScrollDuration=t.smoothScrollDuration,this._scheduleAtNextAnimationFrame=t.scheduleAtNextAnimationFrame,this._state=new I(t.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(t){this._smoothScrollDuration=t}validateScrollPosition(t){return this._state.withScrollPosition(t)}getScrollDimensions(){return this._state}setScrollDimensions(t,i){const s=this._state.withScrollDimensions(t,i);this._setState(s,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(t){const i=this._state.withScrollPosition(t);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(i,!1)}setScrollPositionSmooth(t,i){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(t);if(this._smoothScrolling){t={scrollLeft:typeof t.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:t.scrollLeft,scrollTop:typeof t.scrollTop>"u"?this._smoothScrolling.to.scrollTop:t.scrollTop};const s=this._state.withScrollPosition(t);if(this._smoothScrolling.to.scrollLeft===s.scrollLeft&&this._smoothScrolling.to.scrollTop===s.scrollTop)return;let g;i?g=new b(this._smoothScrolling.from,s,this._smoothScrolling.startTime,this._smoothScrolling.duration):g=this._smoothScrolling.combine(this._state,s,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=g}else{const s=this._state.withScrollPosition(t);this._smoothScrolling=b.start(this._state,s,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const t=this._smoothScrolling.tick(),i=this._state.withScrollPosition(t);if(this._setState(i,!0),!!this._smoothScrolling){if(t.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(t,i){const s=this._state;s.equals(t)||(this._state=t,this._onScroll.fire(this._state.createScrollEvent(s,i)))}}e.Scrollable=E;class y{constructor(t,i,s){this.scrollLeft=t,this.scrollTop=i,this.isDone=s}}e.SmoothScrollingUpdate=y;function m(o,t){const i=t-o;return function(s){return o+i*n(s)}}function _(o,t,i){return function(s){return s2.5*s){let c,l;return t=te.length?re:te[me]})}function m(Z){return Z.replace(/[<>"'&]/g,te=>{switch(te){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return te})}function _(Z){return Z.replace(/[<>&]/g,function(te){switch(te){case"<":return"<";case">":return">";case"&":return"&";default:return te}})}function b(Z){return Z.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function p(Z,te=" "){const re=n(Z,te);return o(re,te)}function n(Z,te){if(!Z||!te)return Z;const re=te.length;if(re===0||Z.length===0)return Z;let le=0;for(;Z.indexOf(te,le)===le;)le=le+re;return Z.substring(le)}function o(Z,te){if(!Z||!te)return Z;const re=te.length,le=Z.length;if(re===0||le===0)return Z;let me=le,Ce=-1;for(;Ce=Z.lastIndexOf(te,me-1),!(Ce===-1||Ce+re!==me);){if(Ce===0)return"";me=Ce}return Z.substring(0,me)}function t(Z){return Z.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function i(Z){return Z.replace(/\*/g,"")}function s(Z,te,re={}){if(!Z)throw new Error("Cannot create regex from empty string");te||(Z=b(Z)),re.wholeWord&&(/\B/.test(Z.charAt(0))||(Z="\\b"+Z),/\B/.test(Z.charAt(Z.length-1))||(Z=Z+"\\b"));let le="";return re.global&&(le+="g"),re.matchCase||(le+="i"),re.multiline&&(le+="m"),re.unicode&&(le+="u"),new RegExp(Z,le)}function g(Z){return Z.source==="^"||Z.source==="^$"||Z.source==="$"||Z.source==="^\\s*$"?!1:!!(Z.exec("")&&Z.lastIndex===0)}function c(Z){return Z.split(/\r\n|\r|\n/)}function l(Z){const te=[],re=Z.split(/(\r\n|\r|\n)/);for(let le=0;le=0;re--){const le=Z.charCodeAt(re);if(le!==32&&le!==9)return re}return-1}function C(Z,te){return Zte?1:0}function f(Z,te,re=0,le=Z.length,me=0,Ce=te.length){for(;reMe)return 1}const ye=le-re,Le=Ce-me;return yeLe?1:0}function h(Z,te){return v(Z,te,0,Z.length,0,te.length)}function v(Z,te,re=0,le=Z.length,me=0,Ce=te.length){for(;re=128||Me>=128)return f(Z.toLowerCase(),te.toLowerCase(),re,le,me,Ce);S(Ee)&&(Ee-=32),S(Me)&&(Me-=32);const Ae=Ee-Me;if(Ae!==0)return Ae}const ye=le-re,Le=Ce-me;return yeLe?1:0}function w(Z){return Z>=48&&Z<=57}function S(Z){return Z>=97&&Z<=122}function L(Z){return Z>=65&&Z<=90}function D(Z,te){return Z.length===te.length&&v(Z,te)===0}function T(Z,te){const re=te.length;return te.length>Z.length?!1:v(Z,te,0,re)===0}function M(Z,te){const re=Math.min(Z.length,te.length);let le;for(le=0;le1){const le=Z.charCodeAt(te-2);if(P(le))return O(le,re)}return re}class W{get offset(){return this._offset}constructor(te,re=0){this._str=te,this._len=te.length,this._offset=re}setOffset(te){this._offset=te}prevCodePoint(){const te=x(this._str,this._offset);return this._offset-=te>=65536?2:1,te}nextCodePoint(){const te=F(this._str,this._len,this._offset);return this._offset+=te>=65536?2:1,te}eol(){return this._offset>=this._len}}e.CodePointIterator=W;class V{get offset(){return this._iterator.offset}constructor(te,re=0){this._iterator=new W(te,re)}nextGraphemeLength(){const te=ee.getInstance(),re=this._iterator,le=re.offset;let me=te.getGraphemeBreakType(re.nextCodePoint());for(;!re.eol();){const Ce=re.offset,ye=te.getGraphemeBreakType(re.nextCodePoint());if(ae(me,ye)){re.setOffset(Ce);break}me=ye}return re.offset-le}prevGraphemeLength(){const te=ee.getInstance(),re=this._iterator,le=re.offset;let me=te.getGraphemeBreakType(re.prevCodePoint());for(;re.offset>0;){const Ce=re.offset,ye=te.getGraphemeBreakType(re.prevCodePoint());if(ae(ye,me)){re.setOffset(Ce);break}me=ye}return le-re.offset}eol(){return this._iterator.eol()}}e.GraphemeIterator=V;function q(Z,te){return new V(Z,te).nextGraphemeLength()}function H(Z,te){return new V(Z,te).prevGraphemeLength()}function z(Z,te){te>0&&N(Z.charCodeAt(te))&&te--;const re=te+q(Z,te);return[re-H(Z,re),re]}let U;function j(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function Y(Z){return U||(U=j()),U.test(Z)}const G=/^[\t\n\r\x20-\x7E]*$/;function K(Z){return G.test(Z)}e.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function R(Z){return e.UNUSUAL_LINE_TERMINATORS.test(Z)}function J(Z){return Z>=11904&&Z<=55215||Z>=63744&&Z<=64255||Z>=65281&&Z<=65374}function ie(Z){return Z>=127462&&Z<=127487||Z===8986||Z===8987||Z===9200||Z===9203||Z>=9728&&Z<=10175||Z===11088||Z===11093||Z>=127744&&Z<=128591||Z>=128640&&Z<=128764||Z>=128992&&Z<=129008||Z>=129280&&Z<=129535||Z>=129648&&Z<=129782}e.UTF8_BOM_CHARACTER="\uFEFF";function ue(Z){return!!(Z&&Z.length>0&&Z.charCodeAt(0)===65279)}function he(Z,te=!1){return Z?(te&&(Z=Z.replace(/\\./g,"")),Z.toLowerCase()!==Z):!1}function pe(Z){return Z=Z%(2*26),Z<26?String.fromCharCode(97+Z):String.fromCharCode(65+Z-26)}function ae(Z,te){return Z===0?te!==5&&te!==7:Z===2&&te===3?!1:Z===4||Z===2||Z===3||te===4||te===2||te===3?!0:!(Z===8&&(te===8||te===9||te===11||te===12)||(Z===11||Z===9)&&(te===9||te===10)||(Z===12||Z===10)&&te===10||te===5||te===13||te===7||Z===1||Z===13&&te===14||Z===6&&te===6)}class ee{static{this._INSTANCE=null}static getInstance(){return ee._INSTANCE||(ee._INSTANCE=new ee),ee._INSTANCE}constructor(){this._data=de()}getGraphemeBreakType(te){if(te<32)return te===10?3:te===13?2:4;if(te<127)return 0;const re=this._data,le=re.length/3;let me=1;for(;me<=le;)if(tere[3*me+1])me=2*me+1;else return re[3*me+2];return 0}}function de(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function ge(Z,te){if(Z===0)return 0;const re=X(Z,te);if(re!==void 0)return re;const le=new W(te,Z);return le.prevCodePoint(),le.offset}function X(Z,te){const re=new W(te,Z);let le=re.prevCodePoint();for(;B(le)||le===65039||le===8419;){if(re.offset===0)return;le=re.prevCodePoint()}if(!ie(le))return;let me=re.offset;return me>0&&re.prevCodePoint()===8205&&(me=re.offset),me}function B(Z){return 127995<=Z&&Z<=127999}e.noBreakWhitespace="\xA0";class ${static{this.ambiguousCharacterData=new k.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new d.LRUCachedFunction({getCacheKey:JSON.stringify},te=>{function re(Ae){const Ne=new Map;for(let Ke=0;Ke!Ae.startsWith("_")&&Ae in Ce);ye.length===0&&(ye=["_default"]);let Le;for(const Ae of ye){const Ne=re(Ce[Ae]);Le=me(Le,Ne)}const Ee=re(Ce._common),Me=le(Ee,Le);return new $(Me)})}static getInstance(te){return $.cache.get(Array.from(te))}static{this._locales=new k.Lazy(()=>Object.keys($.ambiguousCharacterData.value).filter(te=>!te.startsWith("_")))}static getLocales(){return $._locales.value}constructor(te){this.confusableDictionary=te}isAmbiguous(te){return this.confusableDictionary.has(te)}getPrimaryConfusable(te){return this.confusableDictionary.get(te)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}e.AmbiguousCharacters=$;class Q{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static{this._data=void 0}static getData(){return this._data||(this._data=new Set(Q.getRawData())),this._data}static isInvisibleCharacter(te){return Q.getData().has(te)}static get codePoints(){return Q.getData()}}e.InvisibleCharacters=Q}),define(ne[82],se([1,0,45,448,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FuzzyScoreOptions=e.FuzzyScore=e.matchesPrefix=e.matchesStrictPrefix=void 0,e.or=E,e.matchesContiguousSubString=m,e.matchesSubString=_,e.isUpper=n,e.matchesCamelCase=S,e.matchesWords=L,e.matchesFuzzy=N,e.matchesFuzzy2=O,e.anyScore=F,e.createMatches=x,e.isPatternInWord=he,e.fuzzyScore=ee,e.fuzzyScoreGracefulAggressive=X;function E(...Q){return function(Z,te){for(let re=0,le=Q.length;re0?[{start:0,end:Z.length}]:[]:null}function m(Q,Z){const te=Z.toLowerCase().indexOf(Q.toLowerCase());return te===-1?null:[{start:te,end:te+Q.length}]}function _(Q,Z){return b(Q.toLowerCase(),Z.toLowerCase(),0,0)}function b(Q,Z,te,re){if(te===Q.length)return[];if(re===Z.length)return null;if(Q[te]===Z[re]){let le=null;return(le=b(Q,Z,te+1,re+1))?r({start:re,end:re+1},le):null}return b(Q,Z,te,re+1)}function p(Q){return 97<=Q&&Q<=122}function n(Q){return 65<=Q&&Q<=90}function o(Q){return 48<=Q&&Q<=57}function t(Q){return Q===32||Q===9||Q===10||Q===13}const i=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(Q=>i.add(Q.charCodeAt(0)));function s(Q){return t(Q)||i.has(Q)}function g(Q,Z){return Q===Z||s(Q)&&s(Z)}const c=new Map;function l(Q){if(c.has(Q))return c.get(Q);let Z;const te=(0,k.getKoreanAltChars)(Q);return te&&(Z=te),c.set(Q,Z),Z}function a(Q){return p(Q)||n(Q)||o(Q)}function r(Q,Z){return Z.length===0?Z=[Q]:Q.end===Z[0].start?Z[0].start=Q.start:Z.unshift(Q),Z}function u(Q,Z){for(let te=Z;te0&&!a(Q.charCodeAt(te-1)))return te}return Q.length}function C(Q,Z,te,re){if(te===Q.length)return[];if(re===Z.length)return null;if(Q[te]!==Z[re].toLowerCase())return null;{let le=null,me=re+1;for(le=C(Q,Z,te+1,re+1);!le&&(me=u(Z,me)).6}function v(Q){const{upperPercent:Z,lowerPercent:te,alphaPercent:re,numericPercent:le}=Q;return te>.2&&Z<.8&&re>.6&&le<.2}function w(Q){let Z=0,te=0,re=0,le=0;for(let me=0;me60&&(Z=Z.substring(0,60));const te=f(Z);if(!v(te)){if(!h(te))return null;Z=Z.toLowerCase()}let re=null,le=0;for(Q=Q.toLowerCase();le0&&s(Q.charCodeAt(te-1)))return te;return Q.length}const M=E(e.matchesPrefix,S,m),A=E(e.matchesPrefix,S,_),P=new d.LRUCache(1e4);function N(Q,Z,te=!1){if(typeof Q!="string"||typeof Z!="string")return null;let re=P.get(Q);re||(re=new RegExp(I.convertSimple2RegExpPattern(Q),"i"),P.set(Q,re));const le=re.exec(Z);return le?[{start:le.index,end:le.index+le[0].length}]:te?A(Q,Z):M(Q,Z)}function O(Q,Z){const te=ee(Q,Q.toLowerCase(),0,Z,Z.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return te?x(te):null}function F(Q,Z,te,re,le,me){const Ce=Math.min(13,Q.length);for(;te"u")return[];const Z=[],te=Q[1];for(let re=Q.length-1;re>1;re--){const le=Q[re]+te,me=Z[Z.length-1];me&&me.end===le?me.end=le+1:Z.push({start:le,end:le+1})}return Z}const W=128;function V(){const Q=[],Z=[];for(let te=0;te<=W;te++)Z[te]=0;for(let te=0;te<=W;te++)Q.push(Z.slice(0));return Q}function q(Q){const Z=[];for(let te=0;te<=Q;te++)Z[te]=0;return Z}const H=q(2*W),z=q(2*W),U=V(),j=V(),Y=V(),G=!1;function K(Q,Z,te,re,le){function me(ye,Le,Ee=" "){for(;ye.lengthme(ye,3)).join("|")} -`;for(let ye=0;ye<=te;ye++)ye===0?Ce+=" |":Ce+=`${Z[ye-1]}|`,Ce+=Q[ye].slice(0,le+1).map(Le=>me(Le.toString(),3)).join("|")+` -`;return Ce}function R(Q,Z,te,re){Q=Q.substr(Z),te=te.substr(re),console.log(K(j,Q,Q.length,te,te.length)),console.log(K(Y,Q,Q.length,te,te.length)),console.log(K(U,Q,Q.length,te,te.length))}function J(Q,Z){if(Z<0||Z>=Q.length)return!1;const te=Q.codePointAt(Z);switch(te){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!I.isEmojiImprecise(te)}}function ie(Q,Z){if(Z<0||Z>=Q.length)return!1;switch(Q.charCodeAt(Z)){case 32:case 9:return!0;default:return!1}}function ue(Q,Z,te){return Z[Q]!==te[Q]}function he(Q,Z,te,re,le,me,Ce=!1){for(;ZW?W:Q.length,Le=re.length>W?W:re.length;if(te>=ye||me>=Le||ye-te>Le-me||!he(Z,te,ye,le,me,Le,!0))return;de(ye,Le,te,me,Z,le);let Ee=1,Me=1,Ae=te,Ne=me;const Ke=[!1];for(Ee=1,Ae=te;AeFe,Te=we?j[Ee][Me-1]+(U[Ee][Me-1]>0?-5:0):0,Pe=Ne>Fe+1&&U[Ee][Me-1]>0,Be=Pe?j[Ee][Me-2]+(U[Ee][Me-2]>0?-5:0):0;if(Pe&&(!we||Be>=Te)&&(!be||Be>=ve))j[Ee][Me]=Be,Y[Ee][Me]=3,U[Ee][Me]=0;else if(we&&(!be||Te>=ve))j[Ee][Me]=Te,Y[Ee][Me]=2,U[Ee][Me]=0;else if(be)j[Ee][Me]=ve,Y[Ee][Me]=1,U[Ee][Me]=U[Ee-1][Me-1]+1;else throw new Error("not possible")}}if(G&&R(Q,te,re,me),!Ke[0]&&!Ce.firstMatchCanBeWeak)return;Ee--,Me--;const ze=[j[Ee][Me],me];let Ge=0,it=0;for(;Ee>=1;){let Fe=Me;do{const fe=Y[Ee][Fe];if(fe===3)Fe=Fe-2;else if(fe===2)Fe=Fe-1;else break}while(Fe>=1);Ge>1&&Z[te+Ee-1]===le[me+Me-1]&&!ue(Fe+me-1,re,le)&&Ge+1>U[Ee][Fe]&&(Fe=Me),Fe===Me?Ge++:Ge=1,it||(it=Fe),Ee--,Me=Fe-1,ze.push(Me)}Le-me===ye&&Ce.boostFullMatch&&(ze[0]+=2);const Oe=it-ye;return ze[0]-=Oe,ze}function de(Q,Z,te,re,le,me){let Ce=Q-1,ye=Z-1;for(;Ce>=te&&ye>=re;)le[Ce]===me[ye]&&(z[Ce]=ye,Ce--),ye--}function ge(Q,Z,te,re,le,me,Ce,ye,Le,Ee,Me){if(Z[te]!==me[Ce])return Number.MIN_SAFE_INTEGER;let Ae=1,Ne=!1;return Ce===te-re?Ae=Q[te]===le[Ce]?7:5:ue(Ce,le,me)&&(Ce===0||!ue(Ce-1,le,me))?(Ae=Q[te]===le[Ce]?7:5,Ne=!0):J(me,Ce)&&(Ce===0||!J(me,Ce-1))?Ae=5:(J(me,Ce-1)||ie(me,Ce-1))&&(Ae=5,Ne=!0),Ae>1&&te===re&&(Me[0]=!0),Ne||(Ne=ue(Ce,le,me)||J(me,Ce-1)||ie(me,Ce-1)),te===re?Ce>Le&&(Ae-=Ne?3:5):Ee?Ae+=Ne?2:0:Ae+=Ne?0:1,Ce+1===ye&&(Ae-=Ne?3:5),Ae}function X(Q,Z,te,re,le,me,Ce){return B(Q,Z,te,re,le,me,!0,Ce)}function B(Q,Z,te,re,le,me,Ce,ye){let Le=ee(Q,Z,te,re,le,me,ye);if(Le&&!Ce)return Le;if(Q.length>=3){const Ee=Math.min(7,Q.length-1);for(let Me=te+1;MeLe[0])&&(Le=Ne))}}}return Le}function $(Q,Z){if(Z+1>=Q.length)return;const te=Q[Z],re=Q[Z+1];if(te!==re)return Q.slice(0,Z)+re+te+Q.slice(Z+2)}}),define(ne[129],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringSHA1=void 0,e.hash=k,e.doHash=I,e.numberHash=E,e.stringHash=m,e.toHexString=t;function k(s){return I(s,0)}function I(s,g){switch(typeof s){case"object":return s===null?E(349,g):Array.isArray(s)?_(s,g):b(s,g);case"string":return m(s,g);case"boolean":return y(s,g);case"number":return E(s,g);case"undefined":return E(937,g);default:return E(617,g)}}function E(s,g){return(g<<5)-g+s|0}function y(s,g){return E(s?433:863,g)}function m(s,g){g=E(149417,g);for(let c=0,l=s.length;cI(l,c),g)}function b(s,g){return g=E(181387,g),Object.keys(s).sort().reduce((c,l)=>(c=m(l,c),I(s[l],c)),g)}function p(s,g,c=32){const l=c-g,a=~((1<>>l)>>>0}function n(s,g=0,c=s.byteLength,l=0){for(let a=0;ac.toString(16).padStart(2,"0")).join(""):o((s>>>0).toString(16),g/4)}class i{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(g){const c=g.length;if(c===0)return;const l=this._buff;let a=this._buffLen,r=this._leftoverHighSurrogate,u,C;for(r!==0?(u=r,C=-1,r=0):(u=g.charCodeAt(0),C=0);;){let f=u;if(d.isHighSurrogate(u))if(C+1>>6,g[c++]=128|(l&63)>>>0):l<65536?(g[c++]=224|(l&61440)>>>12,g[c++]=128|(l&4032)>>>6,g[c++]=128|(l&63)>>>0):(g[c++]=240|(l&1835008)>>>18,g[c++]=128|(l&258048)>>>12,g[c++]=128|(l&4032)>>>6,g[c++]=128|(l&63)>>>0),c>=64&&(this._step(),c-=64,this._totalLen+=64,g[0]=g[64],g[1]=g[65],g[2]=g[66]),c}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),t(this._h0)+t(this._h1)+t(this._h2)+t(this._h3)+t(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,n(this._buff,this._buffLen),this._buffLen>56&&(this._step(),n(this._buff));const g=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(g/4294967296),!1),this._buffDV.setUint32(60,g%4294967296,!1),this._step()}_step(){const g=i._bigBlock32,c=this._buffDV;for(let w=0;w<64;w+=4)g.setUint32(w,c.getUint32(w,!1),!1);for(let w=64;w<320;w+=4)g.setUint32(w,p(g.getUint32(w-12,!1)^g.getUint32(w-32,!1)^g.getUint32(w-56,!1)^g.getUint32(w-64,!1),1),!1);let l=this._h0,a=this._h1,r=this._h2,u=this._h3,C=this._h4,f,h,v;for(let w=0;w<80;w++)w<20?(f=a&r|~a&u,h=1518500249):w<40?(f=a^r^u,h=1859775393):w<60?(f=a&r|a&u|r&u,h=2400959708):(f=a^r^u,h=3395469782),v=p(l,5)+f+C+h+g.getUint32(w*4,!1)&4294967295,C=u,u=r,r=p(a,30),a=l,l=v;this._h0=this._h0+l&4294967295,this._h1=this._h1+a&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+u&4294967295,this._h4=this._h4+C&4294967295}}e.StringSHA1=i}),define(ne[190],se([1,0,444,129]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LcsDiff=e.StringDiffSequence=void 0,e.stringDiff=E;class I{constructor(n){this.source=n}getElements(){const n=this.source,o=new Int32Array(n.length);for(let t=0,i=n.length;t0||this.m_modifiedCount>0)&&this.m_changes.push(new d.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(n,o){this.m_originalStart=Math.min(this.m_originalStart,n),this.m_modifiedStart=Math.min(this.m_modifiedStart,o),this.m_originalCount++}AddModifiedElement(n,o){this.m_originalStart=Math.min(this.m_originalStart,n),this.m_modifiedStart=Math.min(this.m_modifiedStart,o),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class b{constructor(n,o,t=null){this.ContinueProcessingPredicate=t,this._originalSequence=n,this._modifiedSequence=o;const[i,s,g]=b._getElements(n),[c,l,a]=b._getElements(o);this._hasStrings=g&&a,this._originalStringElements=i,this._originalElementsOrHash=s,this._modifiedStringElements=c,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(n){return n.length>0&&typeof n[0]=="string"}static _getElements(n){const o=n.getElements();if(b._isStringArray(o)){const t=new Int32Array(o.length);for(let i=0,s=o.length;i=n&&i>=t&&this.ElementsAreEqual(o,i);)o--,i--;if(n>o||t>i){let u;return t<=i?(y.Assert(n===o+1,"originalStart should only be one more than originalEnd"),u=[new d.DiffChange(n,0,t,i-t+1)]):n<=o?(y.Assert(t===i+1,"modifiedStart should only be one more than modifiedEnd"),u=[new d.DiffChange(n,o-n+1,t,0)]):(y.Assert(n===o+1,"originalStart should only be one more than originalEnd"),y.Assert(t===i+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}const g=[0],c=[0],l=this.ComputeRecursionPoint(n,o,t,i,g,c,s),a=g[0],r=c[0];if(l!==null)return l;if(!s[0]){const u=this.ComputeDiffRecursive(n,a,t,r,s);let C=[];return s[0]?C=[new d.DiffChange(a+1,o-(a+1)+1,r+1,i-(r+1)+1)]:C=this.ComputeDiffRecursive(a+1,o,r+1,i,s),this.ConcatenateChanges(u,C)}return[new d.DiffChange(n,o-n+1,t,i-t+1)]}WALKTRACE(n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L){let D=null,T=null,M=new _,A=o,P=t,N=f[0]-w[0]-i,O=-1073741824,F=this.m_forwardHistory.length-1;do{const x=N+n;x===A||x=0&&(a=this.m_forwardHistory[F],n=a[0],A=1,P=a.length-1)}while(--F>=-1);if(D=M.getReverseChanges(),L[0]){let x=f[0]+1,W=w[0]+1;if(D!==null&&D.length>0){const V=D[D.length-1];x=Math.max(x,V.getOriginalEnd()),W=Math.max(W,V.getModifiedEnd())}T=[new d.DiffChange(x,C-x+1,W,v-W+1)]}else{M=new _,A=g,P=c,N=f[0]-w[0]-l,O=1073741824,F=S?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const x=N+s;x===A||x=r[x+1]?(u=r[x+1]-1,h=u-N-l,u>O&&M.MarkNextChange(),O=u+1,M.AddOriginalElement(u+1,h+1),N=x+1-s):(u=r[x-1],h=u-N-l,u>O&&M.MarkNextChange(),O=u,M.AddModifiedElement(u+1,h+1),N=x-1-s),F>=0&&(r=this.m_reverseHistory[F],s=r[0],A=1,P=r.length-1)}while(--F>=-1);T=M.getChanges()}return this.ConcatenateChanges(D,T)}ComputeRecursionPoint(n,o,t,i,s,g,c){let l=0,a=0,r=0,u=0,C=0,f=0;n--,t--,s[0]=0,g[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const h=o-n+(i-t),v=h+1,w=new Int32Array(v),S=new Int32Array(v),L=i-t,D=o-n,T=n-t,M=o-i,P=(D-L)%2===0;w[L]=n,S[D]=o,c[0]=!1;for(let N=1;N<=h/2+1;N++){let O=0,F=0;r=this.ClipDiagonalBound(L-N,N,L,v),u=this.ClipDiagonalBound(L+N,N,L,v);for(let W=r;W<=u;W+=2){W===r||WO+F&&(O=l,F=a),!P&&Math.abs(W-D)<=N-1&&l>=S[W])return s[0]=l,g[0]=a,V<=S[W]&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):null}const x=(O-n+(F-t)-N)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(O,x))return c[0]=!0,s[0]=O,g[0]=F,x>0&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):(n++,t++,[new d.DiffChange(n,o-n+1,t,i-t+1)]);C=this.ClipDiagonalBound(D-N,N,D,v),f=this.ClipDiagonalBound(D+N,N,D,v);for(let W=C;W<=f;W+=2){W===C||W=S[W+1]?l=S[W+1]-1:l=S[W-1],a=l-(W-D)-M;const V=l;for(;l>n&&a>t&&this.ElementsAreEqual(l,a);)l--,a--;if(S[W]=l,P&&Math.abs(W-L)<=N&&l<=w[W])return s[0]=l,g[0]=a,V>=w[W]&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):null}if(N<=1447){let W=new Int32Array(u-r+2);W[0]=L-r+1,m.Copy2(w,r,W,1,u-r+1),this.m_forwardHistory.push(W),W=new Int32Array(f-C+2),W[0]=D-C+1,m.Copy2(S,C,W,1,f-C+1),this.m_reverseHistory.push(W)}}return this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c)}PrettifyChanges(n){for(let o=0;o0,c=t.modifiedLength>0;for(;t.originalStart+t.originalLength=0;o--){const t=n[o];let i=0,s=0;if(o>0){const u=n[o-1];i=u.originalStart+u.originalLength,s=u.modifiedStart+u.modifiedLength}const g=t.originalLength>0,c=t.modifiedLength>0;let l=0,a=this._boundaryScore(t.originalStart,t.originalLength,t.modifiedStart,t.modifiedLength);for(let u=1;;u++){const C=t.originalStart-u,f=t.modifiedStart-u;if(Ca&&(a=v,l=u)}t.originalStart-=l,t.modifiedStart-=l;const r=[null];if(o>0&&this.ChangesOverlap(n[o-1],n[o],r)){n[o-1]=r[0],n.splice(o,1),o++;continue}}if(this._hasStrings)for(let o=1,t=n.length;o0&&f>l&&(l=f,a=u,r=C)}return l>0?[a,r]:null}_contiguousSequenceScore(n,o,t){let i=0;for(let s=0;s=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[n])}_OriginalRegionIsBoundary(n,o){if(this._OriginalIsBoundary(n)||this._OriginalIsBoundary(n-1))return!0;if(o>0){const t=n+o;if(this._OriginalIsBoundary(t-1)||this._OriginalIsBoundary(t))return!0}return!1}_ModifiedIsBoundary(n){return n<=0||n>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[n])}_ModifiedRegionIsBoundary(n,o){if(this._ModifiedIsBoundary(n)||this._ModifiedIsBoundary(n-1))return!0;if(o>0){const t=n+o;if(this._ModifiedIsBoundary(t-1)||this._ModifiedIsBoundary(t))return!0}return!1}_boundaryScore(n,o,t,i){const s=this._OriginalRegionIsBoundary(n,o)?1:0,g=this._ModifiedRegionIsBoundary(t,i)?1:0;return s+g}ConcatenateChanges(n,o){const t=[];if(n.length===0||o.length===0)return o.length>0?o:n;if(this.ChangesOverlap(n[n.length-1],o[0],t)){const i=new Array(n.length+o.length-1);return m.Copy(n,0,i,0,n.length-1),i[n.length-1]=t[0],m.Copy(o,1,i,n.length,o.length-1),i}else{const i=new Array(n.length+o.length);return m.Copy(n,0,i,0,n.length),m.Copy(o,0,i,n.length,o.length),i}}ChangesOverlap(n,o,t){if(y.Assert(n.originalStart<=o.originalStart,"Left change is not less than or equal to right change"),y.Assert(n.modifiedStart<=o.modifiedStart,"Left change is not less than or equal to right change"),n.originalStart+n.originalLength>=o.originalStart||n.modifiedStart+n.modifiedLength>=o.modifiedStart){const i=n.originalStart;let s=n.originalLength;const g=n.modifiedStart;let c=n.modifiedLength;return n.originalStart+n.originalLength>=o.originalStart&&(s=o.originalStart+o.originalLength-n.originalStart),n.modifiedStart+n.modifiedLength>=o.modifiedStart&&(c=o.modifiedStart+o.modifiedLength-n.modifiedStart),t[0]=new d.DiffChange(i,s,g,c),!0}else return t[0]=null,!1}ClipDiagonalBound(n,o,t,i){if(n>=0&&n0?m[0].toUpperCase()+m.substr(1):y[0][0].toUpperCase()!==y[0][0]&&m.length>0?m[0].toLowerCase()+m.substr(1):m}else return m}function I(y,m,_){return y[0].indexOf(_)!==-1&&m.indexOf(_)!==-1&&y[0].split(_).length===m.split(_).length}function E(y,m,_){const b=m.split(_),p=y[0].split(_);let n="";return b.forEach((o,t)=>{n+=k([p[t]],o)+_}),n.slice(0,-1)}}),define(ne[111],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var k;(function(I){I[I.Ignore=0]="Ignore",I[I.Info=1]="Info",I[I.Warning=2]="Warning",I[I.Error=3]="Error"})(k||(k={})),function(I){const E="error",y="warning",m="warn",_="info",b="ignore";function p(o){return o?d.equalsIgnoreCase(E,o)?I.Error:d.equalsIgnoreCase(y,o)||d.equalsIgnoreCase(m,o)?I.Warning:d.equalsIgnoreCase(_,o)?I.Info:I.Ignore:I.Ignore}I.fromValue=p;function n(o){switch(o){case I.Error:return E;case I.Warning:return y;case I.Info:return _;default:return b}}I.toString=n}(k||(k={})),e.default=k}),define(ne[301],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MicrotaskDelay=void 0,e.MicrotaskDelay=Symbol("MicrotaskDelay")}),define(ne[225],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TernarySearchTree=e.UriIterator=e.PathIterator=e.ConfigKeysIterator=e.StringIterator=void 0;class k{constructor(){this._value="",this._pos=0}reset(p){return this._value=p,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;n--,this._valueLen--){const o=this._value.charCodeAt(n);if(!(o===47||this._splitOnBackslash&&o===92))break}return this.next()}hasNext(){return this._to!1,n=()=>!1){return new _(new y(p,n))}static forStrings(){return new _(new k)}static forConfigKeys(){return new _(new I)}constructor(p){this._iter=p}clear(){this._root=void 0}set(p,n){const o=this._iter.reset(p);let t;this._root||(this._root=new m,this._root.segment=o.value());const i=[];for(t=this._root;;){const g=o.cmp(t.segment);if(g>0)t.left||(t.left=new m,t.left.segment=o.value()),i.push([-1,t]),t=t.left;else if(g<0)t.right||(t.right=new m,t.right.segment=o.value()),i.push([1,t]),t=t.right;else if(o.hasNext())o.next(),t.mid||(t.mid=new m,t.mid.segment=o.value()),i.push([0,t]),t=t.mid;else break}const s=t.value;t.value=n,t.key=p;for(let g=i.length-1;g>=0;g--){const c=i[g][1];c.updateHeight();const l=c.balanceFactor();if(l<-1||l>1){const a=i[g][0],r=i[g+1][0];if(a===1&&r===1)i[g][1]=c.rotateLeft();else if(a===-1&&r===-1)i[g][1]=c.rotateRight();else if(a===1&&r===-1)c.right=i[g+1][1]=i[g+1][1].rotateRight(),i[g][1]=c.rotateLeft();else if(a===-1&&r===1)c.left=i[g+1][1]=i[g+1][1].rotateLeft(),i[g][1]=c.rotateRight();else throw new Error;if(g>0)switch(i[g-1][0]){case-1:i[g-1][1].left=i[g][1];break;case 1:i[g-1][1].right=i[g][1];break;case 0:i[g-1][1].mid=i[g][1];break}else this._root=i[0][1]}}return s}get(p){return this._getNode(p)?.value}_getNode(p){const n=this._iter.reset(p);let o=this._root;for(;o;){const t=n.cmp(o.segment);if(t>0)o=o.left;else if(t<0)o=o.right;else if(n.hasNext())n.next(),o=o.mid;else break}return o}has(p){const n=this._getNode(p);return!(n?.value===void 0&&n?.mid===void 0)}delete(p){return this._delete(p,!1)}deleteSuperstr(p){return this._delete(p,!0)}_delete(p,n){const o=this._iter.reset(p),t=[];let i=this._root;for(;i;){const s=o.cmp(i.segment);if(s>0)t.push([-1,i]),i=i.left;else if(s<0)t.push([1,i]),i=i.right;else if(o.hasNext())o.next(),t.push([0,i]),i=i.mid;else break}if(i){if(n?(i.left=void 0,i.mid=void 0,i.right=void 0,i.height=1):(i.key=void 0,i.value=void 0),!i.mid&&!i.value)if(i.left&&i.right){const s=this._min(i.right);if(s.key){const{key:g,value:c,segment:l}=s;this._delete(s.key,!1),i.key=g,i.value=c,i.segment=l}}else{const s=i.left??i.right;if(t.length>0){const[g,c]=t[t.length-1];switch(g){case-1:c.left=s;break;case 0:c.mid=s;break;case 1:c.right=s;break}}else this._root=s}for(let s=t.length-1;s>=0;s--){const g=t[s][1];g.updateHeight();const c=g.balanceFactor();if(c>1?(g.right.balanceFactor()>=0||(g.right=g.right.rotateRight()),t[s][1]=g.rotateLeft()):c<-1&&(g.left.balanceFactor()<=0||(g.left=g.left.rotateLeft()),t[s][1]=g.rotateRight()),s>0)switch(t[s-1][0]){case-1:t[s-1][1].left=t[s][1];break;case 1:t[s-1][1].right=t[s][1];break;case 0:t[s-1][1].mid=t[s][1];break}else this._root=t[0][1]}}}_min(p){for(;p.left;)p=p.left;return p}findSubstr(p){const n=this._iter.reset(p);let o=this._root,t;for(;o;){const i=n.cmp(o.segment);if(i>0)o=o.left;else if(i<0)o=o.right;else if(n.hasNext())n.next(),t=o.value||t,o=o.mid;else break}return o&&o.value||t}findSuperstr(p){return this._findSuperstrOrElement(p,!1)}_findSuperstrOrElement(p,n){const o=this._iter.reset(p);let t=this._root;for(;t;){const i=o.cmp(t.segment);if(i>0)t=t.left;else if(i<0)t=t.right;else if(o.hasNext())o.next(),t=t.mid;else return t.mid?this._entries(t.mid):n?t.value:void 0}}forEach(p){for(const[n,o]of this)p(o,n)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(p){const n=[];return this._dfsEntries(p,n),n[Symbol.iterator]()}_dfsEntries(p,n){p&&(p.left&&this._dfsEntries(p.left,n),p.value&&n.push([p.key,p.value]),p.mid&&this._dfsEntries(p.mid,n),p.right&&this._dfsEntries(p.right,n))}}e.TernarySearchTree=_}),define(ne[456],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TfIdfCalculator=void 0,e.normalizeTfIdfScores=I;function d(E){const y=new Map;for(const m of E)y.set(m,(y.get(m)??0)+1);return y}class k{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(y,m){const _=this.computeEmbedding(y),b=new Map,p=[];for(const[n,o]of this.documents){if(m.isCancellationRequested)return[];for(const t of o.chunks){const i=this.computeSimilarityScore(t,_,b);i>0&&p.push({key:n,score:i})}}return p}static termFrequencies(y){return d(k.splitTerms(y))}static*splitTerms(y){const m=_=>_.toLowerCase();for(const[_]of y.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield m(_);const b=_.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(b.length>1)for(const p of b)p.length>2&&/\p{Letter}{3,}/gu.test(p)&&(yield m(p))}}updateDocuments(y){for(const{key:m}of y)this.deleteDocument(m);for(const m of y){const _=[];for(const b of m.textChunks){const p=k.termFrequencies(b);for(const n of p.keys())this.chunkOccurrences.set(n,(this.chunkOccurrences.get(n)??0)+1);_.push({text:b,tf:p})}this.chunkCount+=_.length,this.documents.set(m.key,{chunks:_})}return this}deleteDocument(y){const m=this.documents.get(y);if(m){this.documents.delete(y),this.chunkCount-=m.chunks.length;for(const _ of m.chunks)for(const b of _.tf.keys()){const p=this.chunkOccurrences.get(b);if(typeof p=="number"){const n=p-1;n<=0?this.chunkOccurrences.delete(b):this.chunkOccurrences.set(b,n)}}}}computeSimilarityScore(y,m,_){let b=0;for(const[p,n]of Object.entries(m)){const o=y.tf.get(p);if(!o)continue;let t=_.get(p);typeof t!="number"&&(t=this.computeIdf(p),_.set(p,t));const i=o*t;b+=i*n}return b}computeEmbedding(y){const m=k.termFrequencies(y);return this.computeTfidf(m)}computeIdf(y){const m=this.chunkOccurrences.get(y)??0;return m>0?Math.log((this.chunkCount+1)/m):0}computeTfidf(y){const m=Object.create(null);for(const[_,b]of y){const p=this.computeIdf(_);p>0&&(m[_]=b*p)}return m}}e.TfIdfCalculator=k;function I(E){const y=E.slice(0);y.sort((_,b)=>b.score-_.score);const m=y[0]?.score??0;if(m>0)for(const _ of y)_.score/=m;return y}}),define(ne[19],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isString=d,e.isObject=k,e.isTypedArray=I,e.isNumber=E,e.isIterable=y,e.isBoolean=m,e.isUndefined=_,e.isDefined=b,e.isUndefinedOrNull=p,e.assertType=n,e.assertIsDefined=o,e.isFunction=t,e.validateConstraints=i,e.validateConstraint=s;function d(g){return typeof g=="string"}function k(g){return typeof g=="object"&&g!==null&&!Array.isArray(g)&&!(g instanceof RegExp)&&!(g instanceof Date)}function I(g){const c=Object.getPrototypeOf(Uint8Array);return typeof g=="object"&&g instanceof c}function E(g){return typeof g=="number"&&!isNaN(g)}function y(g){return!!g&&typeof g[Symbol.iterator]=="function"}function m(g){return g===!0||g===!1}function _(g){return typeof g>"u"}function b(g){return!p(g)}function p(g){return _(g)||g===null}function n(g,c){if(!g)throw new Error(c?`Unexpected type, expected '${c}'`:"Unexpected type")}function o(g){if(p(g))throw new Error("Assertion Failed: argument is undefined or null");return g}function t(g){return typeof g=="function"}function i(g,c){const l=Math.min(g.length,c.length);for(let a=0;a{i[s]=g&&typeof g=="object"?k(g):g}),i}function I(t){if(!t||typeof t!="object")return t;const i=[t];for(;i.length>0;){const s=i.shift();Object.freeze(s);for(const g in s)if(E.call(s,g)){const c=s[g];typeof c=="object"&&!Object.isFrozen(c)&&!(0,d.isTypedArray)(c)&&i.push(c)}}return t}const E=Object.prototype.hasOwnProperty;function y(t,i){return m(t,i,new Set)}function m(t,i,s){if((0,d.isUndefinedOrNull)(t))return t;const g=i(t);if(typeof g<"u")return g;if(Array.isArray(t)){const c=[];for(const l of t)c.push(m(l,i,s));return c}if((0,d.isObject)(t)){if(s.has(t))throw new Error("Cannot clone recursive data-structure");s.add(t);const c={};for(const l in t)E.call(t,l)&&(c[l]=m(t[l],i,s));return s.delete(t),c}return t}function _(t,i,s=!0){return(0,d.isObject)(t)?((0,d.isObject)(i)&&Object.keys(i).forEach(g=>{g in t?s&&((0,d.isObject)(t[g])&&(0,d.isObject)(i[g])?_(t[g],i[g],s):t[g]=i[g]):t[g]=i[g]}),t):i}function b(t,i){if(t===i)return!0;if(t==null||i===null||i===void 0||typeof t!=typeof i||typeof t!="object"||Array.isArray(t)!==Array.isArray(i))return!1;let s,g;if(Array.isArray(t)){if(t.length!==i.length)return!1;for(s=0;sfunction(){const l=Array.prototype.slice.call(arguments,0);return i(c,l)},g={};for(const c of t)g[c]=s(c);return g}}),define(ne[30],se([1,0,26]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ThemeIcon=e.ThemeColor=void 0;var k;(function(E){function y(m){return m&&typeof m=="object"&&typeof m.id=="string"}E.isThemeColor=y})(k||(e.ThemeColor=k={}));var I;(function(E){E.iconNameSegment="[A-Za-z0-9]+",E.iconNameExpression="[A-Za-z0-9-]+",E.iconModifierExpression="~[A-Za-z]+",E.iconNameCharacter="[A-Za-z0-9~-]";const y=new RegExp(`^(${E.iconNameExpression})(${E.iconModifierExpression})?$`);function m(c){const l=y.exec(c.id);if(!l)return m(d.Codicon.error);const[,a,r]=l,u=["codicon","codicon-"+a];return r&&u.push("codicon-modifier-"+r.substring(1)),u}E.asClassNameArray=m;function _(c){return m(c).join(" ")}E.asClassName=_;function b(c){return"."+m(c).join(".")}E.asCSSSelector=b;function p(c){return c&&typeof c=="object"&&typeof c.id=="string"&&(typeof c.color>"u"||k.isThemeColor(c.color))}E.isThemeIcon=p;const n=new RegExp(`^\\$\\((${E.iconNameExpression}(?:${E.iconModifierExpression})?)\\)$`);function o(c){const l=n.exec(c);if(!l)return;const[,a]=l;return{id:a}}E.fromString=o;function t(c){return{id:c}}E.fromId=t;function i(c,l){let a=c.id;const r=a.lastIndexOf("~");return r!==-1&&(a=a.substring(0,r)),l&&(a=`${a}~${l}`),{id:a}}E.modify=i;function s(c){const l=c.id.lastIndexOf("~");if(l!==-1)return c.id.substring(l+1)}E.getModifier=s;function g(c,l){return c.id===l.id&&c.color?.id===l.color?.id}E.isEqual=g})(I||(e.ThemeIcon=I={}))}),define(ne[142],se([1,0,82,11,30]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.escapeIcons=_,e.markdownEscapeEscapedIcons=p,e.stripIcons=o,e.getCodiconAriaLabel=t,e.parseLabelWithIcons=s,e.matchesFuzzyIconAware=g;const E="$(",y=new RegExp(`\\$\\(${I.ThemeIcon.iconNameExpression}(?:${I.ThemeIcon.iconModifierExpression})?\\)`,"g"),m=new RegExp(`(\\\\)?${y.source}`,"g");function _(c){return c.replace(m,(l,a)=>a?l:`\\${l}`)}const b=new RegExp(`\\\\${y.source}`,"g");function p(c){return c.replace(b,l=>`\\${l}`)}const n=new RegExp(`(\\s)?(\\\\)?${y.source}(\\s)?`,"g");function o(c){return c.indexOf(E)===-1?c:c.replace(n,(l,a,r,u)=>r?l:a||u||"")}function t(c){return c?c.replace(/\$\((.*?)\)/g,(l,a)=>` ${a} `).trim():""}const i=new RegExp(`\\$\\(${I.ThemeIcon.iconNameCharacter}+\\)`,"g");function s(c){i.lastIndex=0;let l="";const a=[];let r=0;for(;;){const u=i.lastIndex,C=i.exec(c),f=c.substring(u,C?.index);if(f.length>0){l+=f;for(let h=0;h255?255:I|0}function k(I){return I<0?0:I>4294967295?4294967295:I|0}}),define(ne[193],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.generateUuid=void 0,e.generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let d;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?d=crypto.getRandomValues.bind(crypto):d=function(E){for(let y=0;yn,asFile:()=>{},value:typeof n=="string"?n:void 0}}function y(n,o,t){const i={id:(0,I.generateUuid)(),name:n,uri:o,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class m{constructor(){this._entries=new Map}get size(){let o=0;for(const t of this._entries)o++;return o}has(o){return this._entries.has(this.toKey(o))}matches(o){const t=[...this._entries.keys()];return k.Iterable.some(this,([i,s])=>s.asFile())&&t.push("files"),p(_(o),t)}get(o){return this._entries.get(this.toKey(o))?.[0]}append(o,t){const i=this._entries.get(o);i?i.push(t):this._entries.set(this.toKey(o),[t])}replace(o,t){this._entries.set(this.toKey(o),[t])}delete(o){this._entries.delete(this.toKey(o))}*[Symbol.iterator](){for(const[o,t]of this._entries)for(const i of t)yield[o,i]}toKey(o){return _(o)}}e.VSDataTransfer=m;function _(n){return n.toLowerCase()}function b(n,o){return p(_(n),o.map(_))}function p(n,o){if(n==="*/*")return o.length>0;if(o.includes(n))return!0;const t=n.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,s,g]=t;return g==="*"?o.some(c=>c.startsWith(s+"/")):!1}e.UriList=Object.freeze({create:n=>(0,d.distinct)(n.map(o=>o.toString())).join(`\r -`),split:n=>n.split(`\r -`),parse:n=>e.UriList.split(n).filter(o=>!o.startsWith("#"))})}),define(ne[302],se([10]),{}),define(ne[458],se([10]),{}),define(ne[459],se([10]),{}),define(ne[460],se([10]),{}),define(ne[461],se([10]),{}),define(ne[195],se([1,0,460,461]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[462],se([10]),{}),define(ne[463],se([10]),{}),define(ne[303],se([10]),{}),define(ne[304],se([10]),{}),define(ne[464],se([10]),{}),define(ne[465],se([10]),{}),define(ne[466],se([10]),{}),define(ne[467],se([10]),{}),define(ne[305],se([10]),{}),define(ne[468],se([10]),{}),define(ne[226],se([1,0,468]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME=void 0,e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME="monaco-mouse-cursor-text"}),define(ne[469],se([10]),{}),define(ne[470],se([10]),{}),define(ne[471],se([10]),{}),define(ne[472],se([10]),{}),define(ne[473],se([10]),{}),define(ne[474],se([10]),{}),define(ne[475],se([10]),{}),define(ne[476],se([10]),{}),define(ne[477],se([10]),{}),define(ne[478],se([10]),{}),define(ne[479],se([10]),{}),define(ne[480],se([10]),{}),define(ne[481],se([10]),{}),define(ne[482],se([10]),{}),define(ne[483],se([10]),{}),define(ne[484],se([10]),{}),define(ne[485],se([10]),{}),define(ne[486],se([10]),{}),define(ne[487],se([10]),{}),define(ne[488],se([10]),{}),define(ne[489],se([10]),{}),define(ne[490],se([10]),{}),define(ne[491],se([10]),{}),define(ne[492],se([10]),{}),define(ne[493],se([10]),{}),define(ne[494],se([10]),{}),define(ne[495],se([10]),{}),define(ne[496],se([10]),{}),define(ne[497],se([10]),{}),define(ne[498],se([10]),{}),define(ne[499],se([10]),{}),define(ne[500],se([10]),{}),define(ne[501],se([10]),{}),define(ne[502],se([10]),{}),define(ne[503],se([10]),{}),define(ne[504],se([10]),{}),define(ne[505],se([10]),{}),define(ne[506],se([10]),{}),define(ne[227],se([10]),{}),define(ne[507],se([10]),{}),define(ne[508],se([10]),{}),define(ne[509],se([10]),{}),define(ne[510],se([10]),{}),define(ne[511],se([10]),{}),define(ne[512],se([10]),{}),define(ne[513],se([10]),{}),define(ne[514],se([10]),{}),define(ne[196],se([10]),{}),define(ne[515],se([10]),{}),define(ne[516],se([10]),{}),define(ne[517],se([10]),{}),define(ne[518],se([10]),{}),define(ne[519],se([10]),{}),define(ne[520],se([10]),{}),define(ne[521],se([10]),{}),define(ne[522],se([10]),{}),define(ne[523],se([10]),{}),define(ne[524],se([10]),{}),define(ne[525],se([10]),{}),define(ne[526],se([10]),{}),define(ne[527],se([10]),{}),define(ne[528],se([10]),{}),define(ne[529],se([10]),{}),define(ne[530],se([10]),{}),define(ne[531],se([10]),{}),define(ne[532],se([10]),{}),define(ne[533],se([10]),{}),define(ne[534],se([10]),{}),define(ne[535],se([10]),{}),define(ne[536],se([10]),{}),define(ne[537],se([10]),{}),define(ne[538],se([10]),{}),define(ne[539],se([10]),{}),define(ne[540],se([10]),{}),define(ne[541],se([10]),{}),define(ne[306],se([10]),{}),define(ne[542],se([10]),{}),define(ne[543],se([10]),{}),define(ne[228],se([10]),{}),define(ne[544],se([10]),{}),define(ne[74],se([1,0,39]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.applyFontInfo=k;function k(I,E){I instanceof d.FastDomNode?(I.setFontFamily(E.getMassagedFontFamily()),I.setFontWeight(E.fontWeight),I.setFontSize(E.fontSize),I.setFontFeatureSettings(E.fontFeatureSettings),I.setFontVariationSettings(E.fontVariationSettings),I.setLineHeight(E.lineHeight),I.setLetterSpacing(E.letterSpacing)):(I.style.fontFamily=E.getMassagedFontFamily(),I.style.fontWeight=E.fontWeight,I.style.fontSize=E.fontSize+"px",I.style.fontFeatureSettings=E.fontFeatureSettings,I.style.fontVariationSettings=E.fontVariationSettings,I.style.lineHeight=E.lineHeight+"px",I.style.letterSpacing=E.letterSpacing+"px")}}),define(ne[545],se([1,0,74]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharWidthRequest=void 0,e.readCharWidths=E;class k{constructor(m,_){this.chr=m,this.type=_,this.width=0}fulfill(m){this.width=m}}e.CharWidthRequest=k;class I{constructor(m,_){this._bareFontInfo=m,this._requests=_,this._container=null,this._testElements=null}read(m){this._createDomElements(),m.document.body.appendChild(this._container),this._readFromDomElements(),this._container?.remove(),this._container=null,this._testElements=null}_createDomElements(){const m=document.createElement("div");m.style.position="absolute",m.style.top="-50000px",m.style.width="50000px";const _=document.createElement("div");(0,d.applyFontInfo)(_,this._bareFontInfo),m.appendChild(_);const b=document.createElement("div");(0,d.applyFontInfo)(b,this._bareFontInfo),b.style.fontWeight="bold",m.appendChild(b);const p=document.createElement("div");(0,d.applyFontInfo)(p,this._bareFontInfo),p.style.fontStyle="italic",m.appendChild(p);const n=[];for(const o of this._requests){let t;o.type===0&&(t=_),o.type===2&&(t=b),o.type===1&&(t=p),t.appendChild(document.createElement("br"));const i=document.createElement("span");I._render(i,o),t.appendChild(i),n.push(i)}this._container=m,this._testElements=n}static _render(m,_){if(_.chr===" "){let b="\xA0";for(let p=0;p<8;p++)b+=b;m.innerText=b}else{let b=_.chr;for(let p=0;p<8;p++)b+=b;m.textContent=b}}_readFromDomElements(){for(let m=0,_=this._requests.length;m<_;m++){const b=this._requests[m],p=this._testElements[m];b.fulfill(p.offsetWidth/256)}}}function E(y,m,_){new I(m,_).read(y)}}),define(ne[546],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorSettingMigration=void 0,e.migrateOptions=E;class d{static{this.items=[]}constructor(_,b){this.key=_,this.migrate=b}apply(_){const b=d._read(_,this.key),p=o=>d._read(_,o),n=(o,t)=>d._write(_,o,t);this.migrate(b,p,n)}static _read(_,b){if(typeof _>"u")return;const p=b.indexOf(".");if(p>=0){const n=b.substring(0,p);return this._read(_[n],b.substring(p+1))}return _[b]}static _write(_,b,p){const n=b.indexOf(".");if(n>=0){const o=b.substring(0,n);_[o]=_[o]||{},this._write(_[o],b.substring(n+1),p);return}_[b]=p}}e.EditorSettingMigration=d;function k(m,_){d.items.push(new d(m,_))}function I(m,_){k(m,(b,p,n)=>{if(typeof b<"u"){for(const[o,t]of _)if(b===o){n(m,t);return}}})}function E(m){d.items.forEach(_=>_.apply(m))}I("wordWrap",[[!0,"on"],[!1,"off"]]),I("lineNumbers",[[!0,"on"],[!1,"off"]]),I("cursorBlinking",[["visible","solid"]]),I("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),I("renderLineHighlight",[[!0,"line"],[!1,"none"]]),I("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),I("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),I("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),I("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),I("autoIndent",[[!1,"advanced"],[!0,"full"]]),I("matchBrackets",[[!0,"always"],[!1,"never"]]),I("renderFinalNewline",[[!0,"on"],[!1,"off"]]),I("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),I("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),I("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),k("autoClosingBrackets",(m,_,b)=>{m===!1&&(b("autoClosingBrackets","never"),typeof _("autoClosingQuotes")>"u"&&b("autoClosingQuotes","never"),typeof _("autoSurround")>"u"&&b("autoSurround","never"))}),k("renderIndentGuides",(m,_,b)=>{typeof m<"u"&&(b("renderIndentGuides",void 0),typeof _("guides.indentation")>"u"&&b("guides.indentation",!!m))}),k("highlightActiveIndentGuide",(m,_,b)=>{typeof m<"u"&&(b("highlightActiveIndentGuide",void 0),typeof _("guides.highlightActiveIndentation")>"u"&&b("guides.highlightActiveIndentation",!!m))});const y={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};k("suggest.filteredTypes",(m,_,b)=>{if(m&&typeof m=="object"){for(const p of Object.entries(y))m[p[0]]===!1&&typeof _(`suggest.${p[1]}`)>"u"&&b(`suggest.${p[1]}`,!1);b("suggest.filteredTypes",void 0)}}),k("quickSuggestions",(m,_,b)=>{if(typeof m=="boolean"){const p=m?"on":"off";b("quickSuggestions",{comments:p,strings:p,other:p})}}),k("experimental.stickyScroll.enabled",(m,_,b)=>{typeof m=="boolean"&&(b("experimental.stickyScroll.enabled",void 0),typeof _("stickyScroll.enabled")>"u"&&b("stickyScroll.enabled",m))}),k("experimental.stickyScroll.maxLineCount",(m,_,b)=>{typeof m=="number"&&(b("experimental.stickyScroll.maxLineCount",void 0),typeof _("stickyScroll.maxLineCount")>"u"&&b("stickyScroll.maxLineCount",m))}),k("codeActionsOnSave",(m,_,b)=>{if(m&&typeof m=="object"){let p=!1;const n={};for(const o of Object.entries(m))typeof o[1]=="boolean"?(p=!0,n[o[0]]=o[1]?"explicit":"never"):n[o[0]]=o[1];p&&b("codeActionsOnSave",n)}}),k("codeActionWidget.includeNearbyQuickfixes",(m,_,b)=>{typeof m=="boolean"&&(b("codeActionWidget.includeNearbyQuickfixes",void 0),typeof _("codeActionWidget.includeNearbyQuickFixes")>"u"&&b("codeActionWidget.includeNearbyQuickFixes",m))}),k("lightbulb.enabled",(m,_,b)=>{typeof m=="boolean"&&b("lightbulb.enabled",m?void 0:"off")})}),define(ne[229],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TabFocus=void 0;class k{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new d.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(E){this._tabFocus=E,this._onDidChangeTabFocus.fire(this._tabFocus)}}e.TabFocus=new k}),define(ne[143],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StableEditorScrollState=void 0;class d{static capture(I){if(I.getScrollTop()===0||I.hasPendingScrollAnimation())return new d(I.getScrollTop(),I.getContentHeight(),null,0,null);let E=null,y=0;const m=I.getVisibleRanges();if(m.length>0){E=m[0].getStartPosition();const _=I.getTopForPosition(E.lineNumber,E.column);y=I.getScrollTop()-_}return new d(I.getScrollTop(),I.getContentHeight(),E,y,I.getPosition())}constructor(I,E,y,m,_){this._initialScrollTop=I,this._initialContentHeight=E,this._visiblePosition=y,this._visiblePositionScrollDelta=m,this._cursorPosition=_}restore(I){if(!(this._initialContentHeight===I.getContentHeight()&&this._initialScrollTop===I.getScrollTop())&&this._visiblePosition){const E=I.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);I.setScrollTop(E+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(I){if(this._initialContentHeight===I.getContentHeight()&&this._initialScrollTop===I.getScrollTop())return;const E=I.getPosition();if(!this._cursorPosition||!E)return;const y=I.getTopForLineNumber(E.lineNumber)-I.getTopForLineNumber(this._cursorPosition.lineNumber);I.setScrollTop(I.getScrollTop()+y,1)}}e.StableEditorScrollState=d}),define(ne[164],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleRanges=e.HorizontalPosition=e.FloatHorizontalRange=e.HorizontalRange=e.LineVisibleRanges=e.RenderingContext=e.RestrictedRenderingContext=void 0;class d{constructor(p,n){this._restrictedRenderingContextBrand=void 0,this._viewLayout=p,this.viewportData=n,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const o=this._viewLayout.getCurrentViewport();this.scrollTop=o.top,this.scrollLeft=o.left,this.viewportWidth=o.width,this.viewportHeight=o.height}getScrolledTopFromAbsoluteTop(p){return p-this.scrollTop}getVerticalOffsetForLineNumber(p,n){return this._viewLayout.getVerticalOffsetForLineNumber(p,n)}getVerticalOffsetAfterLineNumber(p,n){return this._viewLayout.getVerticalOffsetAfterLineNumber(p,n)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}e.RestrictedRenderingContext=d;class k extends d{constructor(p,n,o){super(p,n),this._renderingContextBrand=void 0,this._viewLines=o}linesVisibleRangesForRange(p,n){return this._viewLines.linesVisibleRangesForRange(p,n)}visibleRangeForPosition(p){return this._viewLines.visibleRangeForPosition(p)}}e.RenderingContext=k;class I{constructor(p,n,o,t){this.outsideRenderedLine=p,this.lineNumber=n,this.ranges=o,this.continuesOnNextLine=t}}e.LineVisibleRanges=I;class E{static from(p){const n=new Array(p.length);for(let o=0,t=p.length;o=n.left?_.width=Math.max(_.width,n.left+n.width-_.left):(y[m++]=_,_=n)}return y[m++]=_,y}static _createHorizontalRangesFromClientRects(E,y,m){if(!E||E.length===0)return null;const _=[];for(let b=0,p=E.length;bo)return null;if(y=Math.min(o,Math.max(0,y)),_=Math.min(o,Math.max(0,_)),y===_&&m===b&&m===0&&!E.children[y].firstChild){const g=E.children[y].getClientRects();return p.markDidDomLayout(),this._createHorizontalRangesFromClientRects(g,p.clientRectDeltaLeft,p.clientRectScale)}y!==_&&_>0&&b===0&&(_--,b=1073741824);let t=E.children[y].firstChild,i=E.children[_].firstChild;if((!t||!i)&&(!t&&m===0&&y>0&&(t=E.children[y-1].firstChild,m=1073741824),!i&&b===0&&_>0&&(i=E.children[_-1].firstChild,b=1073741824)),!t||!i)return null;m=Math.min(t.textContent.length,Math.max(0,m)),b=Math.min(i.textContent.length,Math.max(0,b));const s=this._readClientRects(t,m,i,b,p.endNode);return p.markDidDomLayout(),this._createHorizontalRangesFromClientRects(s,p.clientRectDeltaLeft,p.clientRectScale)}}e.RangeUtil=k}),define(ne[307],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCharIndex=e.allCharCodes=void 0,e.allCharCodes=(()=>{const k=[];for(let I=32;I<=126;I++)k.push(I);return k.push(65533),k})();const d=(k,I)=>(k-=32,k<0||k>96?I<=2?(k+96)%96:95:k);e.getCharIndex=d}),define(ne[549],se([1,0,307,192]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRenderer=void 0;class I{constructor(y,m){this.scale=m,this._minimapCharRendererBrand=void 0,this.charDataNormal=I.soften(y,12/15),this.charDataLight=I.soften(y,50/60)}static soften(y,m){const _=new Uint8ClampedArray(y.length);for(let b=0,p=y.length;by.width||_+a>y.height){console.warn("bad render request outside image data");return}const r=s?this.charDataLight:this.charDataNormal,u=(0,d.getCharIndex)(b,i),C=y.width*4,f=o.r,h=o.g,v=o.b,w=p.r-f,S=p.g-h,L=p.b-v,D=Math.max(n,t),T=y.data;let M=u*c*l,A=_*C+m*4;for(let P=0;Py.width||_+g>y.height){console.warn("bad render request outside image data");return}const c=y.width*4,l=.5*(p/255),a=n.r,r=n.g,u=n.b,C=b.r-a,f=b.g-r,h=b.b-u,v=a+C*l,w=r+f*l,S=u+h*l,L=Math.max(p,o),D=y.data;let T=_*c+m*4;for(let M=0;M{const y=new Uint8ClampedArray(E.length/2);for(let m=0;m>1]=k[E[m]]<<4|k[E[m+1]]&15;return y};e.prebakedMiniMaps={1:(0,d.createSingleCallFunction)(()=>I("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:(0,d.createSingleCallFunction)(()=>I("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))}}),define(ne[551],se([1,0,549,307,550,192]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRendererFactory=void 0;class y{static create(_,b){if(this.lastCreated&&_===this.lastCreated.scale&&b===this.lastFontFamily)return this.lastCreated;let p;return I.prebakedMiniMaps[_]?p=new d.MinimapCharRenderer(I.prebakedMiniMaps[_](),_):p=y.createFromSampleData(y.createSampleData(b).data,_),this.lastFontFamily=b,this.lastCreated=p,p}static createSampleData(_){const b=document.createElement("canvas"),p=b.getContext("2d");b.style.height="16px",b.height=16,b.width=96*10,b.style.width=96*10+"px",p.fillStyle="#ffffff",p.font=`bold 16px ${_}`,p.textBaseline="middle";let n=0;for(const o of k.allCharCodes)p.fillText(String.fromCharCode(o),n,16/2),n+=10;return p.getImageData(0,0,96*10,16)}static createFromSampleData(_,b){if(_.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const n=y._downsample(_,b);return new d.MinimapCharRenderer(n,b)}static _downsampleChar(_,b,p,n,o){const t=1*o,i=2*o;let s=n,g=0;for(let c=0;c0){const g=255/s;for(let c=0;cthis._itemData.get(m).getId()===I.getId())??y[0],this._unused.delete(E),this._itemData.set(E,I),E.setData(I)}return this._used.add(E),{object:E,dispose:()=>{this._used.delete(E),this._unused.size>5?E.dispose():this._unused.add(E)}}}dispose(){for(const I of this._used)I.dispose();for(const I of this._unused)I.dispose();this._used.clear(),this._unused.clear()}}e.ObjectPool=d}),define(ne[308],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffEditorDefaultOptions=void 0,e.diffEditorDefaultOptions={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0,useTrueInlineView:!1},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0,compactMode:!1}}),define(ne[165],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorZoom=void 0,e.EditorZoom=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new d.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(k){k=Math.min(Math.max(-5,k),20),this._zoomLevel!==k&&(this._zoomLevel=k,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}}),define(ne[144],se([1,0,192]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterSet=e.CharacterClassifier=void 0;class k{constructor(y){const m=(0,d.toUint8)(y);this._defaultValue=m,this._asciiMap=k._createAsciiMap(m),this._map=new Map}static _createAsciiMap(y){const m=new Uint8Array(256);return m.fill(y),m}set(y,m){const _=(0,d.toUint8)(m);y>=0&&y<256?this._asciiMap[y]=_:this._map.set(y,_)}get(y){return y>=0&&y<256?this._asciiMap[y]:this._map.get(y)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}e.CharacterClassifier=k;class I{constructor(){this._actual=new k(0)}add(y){this._actual.set(y,1)}has(y){return this._actual.get(y)===1}clear(){return this._actual.clear()}}e.CharacterSet=I}),define(ne[94],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorColumns=void 0;class k{static _nextVisibleColumn(E,y,m){return E===9?k.nextRenderTabStop(y,m):d.isFullWidthCharacter(E)||d.isEmojiImprecise(E)?y+2:y+1}static visibleColumnFromColumn(E,y,m){const _=Math.min(y-1,E.length),b=E.substring(0,_),p=new d.GraphemeIterator(b);let n=0;for(;!p.eol();){const o=d.getNextCodePoint(b,_,p.offset);p.nextGraphemeLength(),n=this._nextVisibleColumn(o,n,m)}return n}static columnFromVisibleColumn(E,y,m){if(y<=0)return 1;const _=E.length,b=new d.GraphemeIterator(E);let p=0,n=1;for(;!b.eol();){const o=d.getNextCodePoint(E,_,b.offset);b.nextGraphemeLength();const t=this._nextVisibleColumn(o,p,m),i=b.offset+1;if(t>=y){const s=y-p;return t-ym))return new k(y,m)}static ofLength(y){return new k(0,y)}static ofStartAndLength(y,m){return new k(y,y+m)}constructor(y,m){if(this.start=y,this.endExclusive=m,y>m)throw new d.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(y){return new k(this.start+y,this.endExclusive+y)}deltaStart(y){return new k(this.start+y,this.endExclusive)}deltaEnd(y){return new k(this.start,this.endExclusive+y)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(y){return this.start<=y&&y=y.endExclusive}slice(y){return y.slice(this.start,this.endExclusive)}substring(y){return y.substring(this.start,this.endExclusive)}clip(y){if(this.isEmpty)throw new d.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,y))}clipCyclic(y){if(this.isEmpty)throw new d.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return y=this.endExclusive?this.start+(y-this.start)%this.length:y}forEach(y){for(let m=this.start;my.toString()).join(", ")}intersectsStrict(y){let m=0;for(;my+m.length,0)}}e.OffsetRangeSet=I}),define(ne[9],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Position=void 0;class d{constructor(I,E){this.lineNumber=I,this.column=E}with(I=this.lineNumber,E=this.column){return I===this.lineNumber&&E===this.column?this:new d(I,E)}delta(I=0,E=0){return this.with(this.lineNumber+I,this.column+E)}equals(I){return d.equals(this,I)}static equals(I,E){return!I&&!E?!0:!!I&&!!E&&I.lineNumber===E.lineNumber&&I.column===E.column}isBefore(I){return d.isBefore(this,I)}static isBefore(I,E){return I.lineNumberm||E===m&&y>_?(this.startLineNumber=m,this.startColumn=_,this.endLineNumber=E,this.endColumn=y):(this.startLineNumber=E,this.startColumn=y,this.endLineNumber=m,this.endColumn=_)}isEmpty(){return k.isEmpty(this)}static isEmpty(E){return E.startLineNumber===E.endLineNumber&&E.startColumn===E.endColumn}containsPosition(E){return k.containsPosition(this,E)}static containsPosition(E,y){return!(y.lineNumberE.endLineNumber||y.lineNumber===E.startLineNumber&&y.columnE.endColumn)}static strictContainsPosition(E,y){return!(y.lineNumberE.endLineNumber||y.lineNumber===E.startLineNumber&&y.column<=E.startColumn||y.lineNumber===E.endLineNumber&&y.column>=E.endColumn)}containsRange(E){return k.containsRange(this,E)}static containsRange(E,y){return!(y.startLineNumberE.endLineNumber||y.endLineNumber>E.endLineNumber||y.startLineNumber===E.startLineNumber&&y.startColumnE.endColumn)}strictContainsRange(E){return k.strictContainsRange(this,E)}static strictContainsRange(E,y){return!(y.startLineNumberE.endLineNumber||y.endLineNumber>E.endLineNumber||y.startLineNumber===E.startLineNumber&&y.startColumn<=E.startColumn||y.endLineNumber===E.endLineNumber&&y.endColumn>=E.endColumn)}plusRange(E){return k.plusRange(this,E)}static plusRange(E,y){let m,_,b,p;return y.startLineNumberE.endLineNumber?(b=y.endLineNumber,p=y.endColumn):y.endLineNumber===E.endLineNumber?(b=y.endLineNumber,p=Math.max(y.endColumn,E.endColumn)):(b=E.endLineNumber,p=E.endColumn),new k(m,_,b,p)}intersectRanges(E){return k.intersectRanges(this,E)}static intersectRanges(E,y){let m=E.startLineNumber,_=E.startColumn,b=E.endLineNumber,p=E.endColumn;const n=y.startLineNumber,o=y.startColumn,t=y.endLineNumber,i=y.endColumn;return mt?(b=t,p=i):b===t&&(p=Math.min(p,i)),m>b||m===b&&_>p?null:new k(m,_,b,p)}equalsRange(E){return k.equalsRange(this,E)}static equalsRange(E,y){return!E&&!y?!0:!!E&&!!y&&E.startLineNumber===y.startLineNumber&&E.startColumn===y.startColumn&&E.endLineNumber===y.endLineNumber&&E.endColumn===y.endColumn}getEndPosition(){return k.getEndPosition(this)}static getEndPosition(E){return new d.Position(E.endLineNumber,E.endColumn)}getStartPosition(){return k.getStartPosition(this)}static getStartPosition(E){return new d.Position(E.startLineNumber,E.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(E,y){return new k(this.startLineNumber,this.startColumn,E,y)}setStartPosition(E,y){return new k(E,y,this.endLineNumber,this.endColumn)}collapseToStart(){return k.collapseToStart(this)}static collapseToStart(E){return new k(E.startLineNumber,E.startColumn,E.startLineNumber,E.startColumn)}collapseToEnd(){return k.collapseToEnd(this)}static collapseToEnd(E){return new k(E.endLineNumber,E.endColumn,E.endLineNumber,E.endColumn)}delta(E){return new k(this.startLineNumber+E,this.startColumn,this.endLineNumber+E,this.endColumn)}static fromPositions(E,y=E){return new k(E.lineNumber,E.column,y.lineNumber,y.column)}static lift(E){return E?new k(E.startLineNumber,E.startColumn,E.endLineNumber,E.endColumn):null}static isIRange(E){return E&&typeof E.startLineNumber=="number"&&typeof E.startColumn=="number"&&typeof E.endLineNumber=="number"&&typeof E.endColumn=="number"}static areIntersectingOrTouching(E,y){return!(E.endLineNumberE.startLineNumber}toJSON(){return this}}e.Range=k}),define(ne[310],se([1,0,11,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedScreenReaderStrategy=e.TextAreaState=e._debugComposition=void 0,e._debugComposition=!1;class I{static{this.EMPTY=new I("",0,0,null,void 0)}constructor(m,_,b,p,n){this.value=m,this.selectionStart=_,this.selectionEnd=b,this.selection=p,this.newlineCountBeforeSelection=n}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(m,_){const b=m.getValue(),p=m.getSelectionStart(),n=m.getSelectionEnd();let o;if(_){const t=b.substring(0,p),i=_.value.substring(0,_.selectionStart);t===i&&(o=_.newlineCountBeforeSelection)}return new I(b,p,n,null,o)}collapseSelection(){return this.selectionStart===this.value.length?this:new I(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(m,_,b){e._debugComposition&&console.log(`writeToTextArea ${m}: ${this.toString()}`),_.setValue(m,this.value),b&&_.setSelectionRange(m,this.selectionStart,this.selectionEnd)}deduceEditorPosition(m){if(m<=this.selectionStart){const p=this.value.substring(m,this.selectionStart);return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,p,-1)}if(m>=this.selectionEnd){const p=this.value.substring(this.selectionEnd,m);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,p,1)}const _=this.value.substring(this.selectionStart,m);if(_.indexOf("\u2026")===-1)return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,_,1);const b=this.value.substring(m,this.selectionEnd);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,b,-1)}_finishDeduceEditorPosition(m,_,b){let p=0,n=-1;for(;(n=_.indexOf(` -`,n+1))!==-1;)p++;return[m,b*_.length,p]}static deduceInput(m,_,b){if(!m)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};e._debugComposition&&(console.log("------------------------deduceInput"),console.log(`PREVIOUS STATE: ${m.toString()}`),console.log(`CURRENT STATE: ${_.toString()}`));const p=Math.min(d.commonPrefixLength(m.value,_.value),m.selectionStart,_.selectionStart),n=Math.min(d.commonSuffixLength(m.value,_.value),m.value.length-m.selectionEnd,_.value.length-_.selectionEnd),o=m.value.substring(p,m.value.length-n),t=_.value.substring(p,_.value.length-n),i=m.selectionStart-p,s=m.selectionEnd-p,g=_.selectionStart-p,c=_.selectionEnd-p;if(e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${o}>, selectionStart: ${i}, selectionEnd: ${s}`),console.log(`AFTER DIFFING CURRENT STATE: <${t}>, selectionStart: ${g}, selectionEnd: ${c}`)),g===c){const a=m.selectionStart-p;return e._debugComposition&&console.log(`REMOVE PREVIOUS: ${a} chars`),{text:t,replacePrevCharCnt:a,replaceNextCharCnt:0,positionDelta:0}}const l=s-i;return{text:t,replacePrevCharCnt:l,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(m,_){if(!m)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e._debugComposition&&(console.log("------------------------deduceAndroidCompositionInput"),console.log(`PREVIOUS STATE: ${m.toString()}`),console.log(`CURRENT STATE: ${_.toString()}`)),m.value===_.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:_.selectionEnd-m.selectionEnd};const b=Math.min(d.commonPrefixLength(m.value,_.value),m.selectionEnd),p=Math.min(d.commonSuffixLength(m.value,_.value),m.value.length-m.selectionEnd),n=m.value.substring(b,m.value.length-p),o=_.value.substring(b,_.value.length-p),t=m.selectionStart-b,i=m.selectionEnd-b,s=_.selectionStart-b,g=_.selectionEnd-b;return e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${n}>, selectionStart: ${t}, selectionEnd: ${i}`),console.log(`AFTER DIFFING CURRENT STATE: <${o}>, selectionStart: ${s}, selectionEnd: ${g}`)),{text:o,replacePrevCharCnt:i,replaceNextCharCnt:n.length-i,positionDelta:g-o.length}}}e.TextAreaState=I;class E{static _getPageOfLine(m,_){return Math.floor((m-1)/_)}static _getRangeForPage(m,_){const b=m*_,p=b+1,n=b+_;return new k.Range(p,1,n+1,1)}static fromEditorSelection(m,_,b,p){const o=E._getPageOfLine(_.startLineNumber,b),t=E._getRangeForPage(o,b),i=E._getPageOfLine(_.endLineNumber,b),s=E._getRangeForPage(i,b);let g=t.intersectRanges(new k.Range(1,1,_.startLineNumber,_.startColumn));if(p&&m.getValueLengthInRange(g,1)>500){const f=m.modifyPosition(g.getEndPosition(),-500);g=k.Range.fromPositions(f,g.getEndPosition())}const c=m.getValueInRange(g,1),l=m.getLineCount(),a=m.getLineMaxColumn(l);let r=s.intersectRanges(new k.Range(_.endLineNumber,_.endColumn,l,a));if(p&&m.getValueLengthInRange(r,1)>500){const f=m.modifyPosition(r.getStartPosition(),500);r=k.Range.fromPositions(r.getStartPosition(),f)}const u=m.getValueInRange(r,1);let C;if(o===i||o+1===i)C=m.getValueInRange(_,1);else{const f=t.intersectRanges(_),h=s.intersectRanges(_);C=m.getValueInRange(f,1)+"\u2026"+m.getValueInRange(h,1)}return p&&C.length>2*500&&(C=C.substring(0,500)+"\u2026"+C.substring(C.length-500,C.length)),new I(c+C+u,c.length,c.length+C.length,_,g.endLineNumber-g.startLineNumber)}}e.PagedScreenReaderStrategy=E}),define(ne[75],se([1,0,4]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditOperation=void 0;class k{static insert(E,y){return{range:new d.Range(E.lineNumber,E.column,E.lineNumber,E.column),text:y,forceMoveMarkers:!0}}static delete(E){return{range:E,text:null}}static replace(E,y){return{range:E,text:y}}static replaceMove(E,y){return{range:E,text:y,forceMoveMarkers:!0}}}e.EditOperation=k}),define(ne[554],se([1,0,11,75,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TrimTrailingWhitespaceCommand=void 0,e.trimTrailingWhitespace=y;class E{constructor(_,b,p){this._selection=_,this._cursors=b,this._selectionId=null,this._trimInRegexesAndStrings=p}getEditOperations(_,b){const p=y(_,this._cursors,this._trimInRegexesAndStrings);for(let n=0,o=p.length;ni.lineNumber===s.lineNumber?i.column-s.column:i.lineNumber-s.lineNumber);for(let i=_.length-2;i>=0;i--)_[i].lineNumber===_[i+1].lineNumber&&_.splice(i,1);const p=[];let n=0,o=0;const t=_.length;for(let i=1,s=m.getLineCount();i<=s;i++){const g=m.getLineContent(i),c=g.length+1;let l=0;if(op)throw new d.BugIndicatingError(`startLineNumber ${b} cannot be after endLineNumberExclusive ${p}`);this.startLineNumber=b,this.endLineNumberExclusive=p}contains(b){return this.startLineNumber<=b&&bo.endLineNumberExclusive>=b.startLineNumber),n=(0,E.findLastIdxMonotonous)(this._normalizedRanges,o=>o.startLineNumber<=b.endLineNumberExclusive)+1;if(p===n)this._normalizedRanges.splice(p,0,b);else if(p===n-1){const o=this._normalizedRanges[p];this._normalizedRanges[p]=o.join(b)}else{const o=this._normalizedRanges[p].join(this._normalizedRanges[n-1]).join(b);this._normalizedRanges.splice(p,n-p,o)}}contains(b){const p=(0,E.findLastMonotonous)(this._normalizedRanges,n=>n.startLineNumber<=b);return!!p&&p.endLineNumberExclusive>b}intersects(b){const p=(0,E.findLastMonotonous)(this._normalizedRanges,n=>n.startLineNumberb.startLineNumber}getUnion(b){if(this._normalizedRanges.length===0)return b;if(b._normalizedRanges.length===0)return this;const p=[];let n=0,o=0,t=null;for(;n=i.startLineNumber?t=new y(t.startLineNumber,Math.max(t.endLineNumberExclusive,i.endLineNumberExclusive)):(p.push(t),t=i)}return t!==null&&p.push(t),new m(p)}subtractFrom(b){const p=(0,E.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,i=>i.endLineNumberExclusive>=b.startLineNumber),n=(0,E.findLastIdxMonotonous)(this._normalizedRanges,i=>i.startLineNumber<=b.endLineNumberExclusive)+1;if(p===n)return new m([b]);const o=[];let t=b.startLineNumber;for(let i=p;it&&o.push(new y(t,s.startLineNumber)),t=s.endLineNumberExclusive}return tb.toString()).join(", ")}getIntersection(b){const p=[];let n=0,o=0;for(;np.delta(b)))}}e.LineRangeSet=m}),define(ne[311],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RGBA8=void 0;class d{static{this.Empty=new d(0,0,0,0)}constructor(I,E,y,m){this._rgba8Brand=void 0,this.r=d._clamp(I),this.g=d._clamp(E),this.b=d._clamp(y),this.a=d._clamp(m)}equals(I){return this.r===I.r&&this.g===I.g&&this.b===I.b&&this.a===I.a}static _clamp(I){return I<0?0:I>255?255:I|0}}e.RGBA8=d}),define(ne[23],se([1,0,9,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Selection=void 0;class I extends k.Range{constructor(y,m,_,b){super(y,m,_,b),this.selectionStartLineNumber=y,this.selectionStartColumn=m,this.positionLineNumber=_,this.positionColumn=b}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(y){return I.selectionsEqual(this,y)}static selectionsEqual(y,m){return y.selectionStartLineNumber===m.selectionStartLineNumber&&y.selectionStartColumn===m.selectionStartColumn&&y.positionLineNumber===m.positionLineNumber&&y.positionColumn===m.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(y,m){return this.getDirection()===0?new I(this.startLineNumber,this.startColumn,y,m):new I(y,m,this.startLineNumber,this.startColumn)}getPosition(){return new d.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new d.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(y,m){return this.getDirection()===0?new I(y,m,this.endLineNumber,this.endColumn):new I(this.endLineNumber,this.endColumn,y,m)}static fromPositions(y,m=y){return new I(y.lineNumber,y.column,m.lineNumber,m.column)}static fromRange(y,m){return m===0?new I(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn):new I(y.endLineNumber,y.endColumn,y.startLineNumber,y.startColumn)}static liftSelection(y){return new I(y.selectionStartLineNumber,y.selectionStartColumn,y.positionLineNumber,y.positionColumn)}static selectionsArrEqual(y,m){if(y&&!m||!y&&m)return!1;if(!y&&!m)return!0;if(y.length!==m.length)return!1;for(let _=0,b=y.length;_{const g=b._map.get(t);g&&(b._map.delete(t),g.dispose(),s.dispose())})}return i}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new E.TransactionImpl(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const t=this._currentTransaction;this._currentTransaction=void 0,t.finish()}}constructor(t){super(),this.editor=t,this._updateCounter=0,this._currentTransaction=void 0,this._model=(0,I.observableValue)(this,this.editor.getModel()),this.model=this._model,this.isReadonly=(0,I.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(92)),this._versionId=(0,I.observableValueOpts)({owner:this,lazy:!0},this.editor.getModel()?.getVersionId()??null),this.versionId=this._versionId,this._selections=(0,I.observableValueOpts)({owner:this,equalsFn:(0,d.equalsIfDefined)((0,d.itemsEquals)(m.Selection.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.isFocused=(0,I.observableFromEvent)(this,i=>{const s=this.editor.onDidFocusEditorWidget(i),g=this.editor.onDidBlurEditorWidget(i);return{dispose(){s.dispose(),g.dispose()}}},()=>this.editor.hasWidgetFocus()),this.value=(0,y.derivedWithSetter)(this,i=>(this.versionId.read(i),this.model.read(i)?.getValue()??""),(i,s)=>{const g=this.model.get();g!==null&&i!==g.getValue()&&g.setValue(i)}),this.valueIsEmpty=(0,I.derived)(this,i=>(this.versionId.read(i),this.editor.getModel()?.getValueLength()===0)),this.cursorSelection=(0,I.derivedOpts)({owner:this,equalsFn:(0,d.equalsIfDefined)(m.Selection.selectionsEqual)},i=>this.selections.read(i)?.[0]??null),this.onDidType=(0,I.observableSignal)(this),this.scrollTop=(0,I.observableFromEvent)(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=(0,I.observableFromEvent)(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=(0,I.observableFromEvent)(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(i=>i.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(i=>i.decorationsLeft),this.contentWidth=(0,I.observableFromEvent)(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this._overlayWidgetCounter=0,this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(i=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,i)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(i=>{this._beginUpdate();try{this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(i=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}}))}forceUpdate(t){this._beginUpdate();try{return this._forceUpdate(),t?t(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(t){return(0,I.observableFromEvent)(this,i=>this.editor.onDidChangeConfiguration(s=>{s.hasChanged(t)&&i(void 0)}),()=>this.editor.getOption(t))}setDecorations(t){const i=new k.DisposableStore,s=this.editor.createDecorationsCollection();return i.add((0,I.autorunOpts)({owner:this,debugName:()=>`Apply decorations from ${t.debugName}`},g=>{const c=t.read(g);s.set(c)})),i.add({dispose:()=>{s.clear()}}),i}createOverlayWidget(t){const i="observableOverlayWidget"+this._overlayWidgetCounter++,s={getDomNode:()=>t.domNode,getPosition:()=>t.position.get(),getId:()=>i,allowEditorOverflow:t.allowEditorOverflow,getMinContentWidthInPx:()=>t.minContentWidthInPx.get()};this.editor.addOverlayWidget(s);const g=(0,I.autorun)(c=>{t.position.read(c),t.minContentWidthInPx.read(c),this.editor.layoutOverlayWidget(s)});return(0,k.toDisposable)(()=>{g.dispose(),this.editor.removeOverlayWidget(s)})}}e.ObservableCodeEditor=b;function p(o,t){return(0,I.autorunWithStoreHandleChanges)({createEmptyChangeSummary:()=>({deltas:[],didChange:!1}),handleChange:(i,s)=>{if(i.didChange(o)){const g=i.change;g!==void 0&&s.deltas.push(g),s.didChange=!0}return!0}},(i,s)=>{const g=o.read(i);s.didChange&&t(g,s.deltas)})}function n(o,t){const i=new k.DisposableStore,s=p(o,(g,c)=>{i.clear(),t(g,c,i)});return{dispose(){s.dispose(),i.dispose()}}}}),define(ne[146],se([1,0,23]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReplaceCommandThatPreservesSelection=e.ReplaceCommandWithOffsetCursorState=e.ReplaceCommandWithoutChangingPosition=e.ReplaceCommandThatSelectsText=e.ReplaceCommand=void 0;class k{constructor(b,p,n=!1){this._range=b,this._text=p,this.insertsAutoWhitespace=n}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getEndPosition())}}e.ReplaceCommand=k;class I{constructor(b,p){this._range=b,this._text=p}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromRange(o,0)}}e.ReplaceCommandThatSelectsText=I;class E{constructor(b,p,n=!1){this._range=b,this._text=p,this.insertsAutoWhitespace=n}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getStartPosition())}}e.ReplaceCommandWithoutChangingPosition=E;class y{constructor(b,p,n,o,t=!1){this._range=b,this._text=p,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=n,this.insertsAutoWhitespace=t}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}e.ReplaceCommandWithOffsetCursorState=y;class m{constructor(b,p,n,o=!1){this._range=b,this._text=p,this._initialSelection=n,this._forceMoveMarkers=o,this._selectionId=null}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=p.trackSelection(this._initialSelection)}computeCursorState(b,p){return p.getTrackedSelection(this._selectionId)}}e.ReplaceCommandThatPreservesSelection=m}),define(ne[312],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompositionSurroundSelectionCommand=e.SurroundSelectionCommand=void 0;class I{constructor(m,_,b){this._range=m,this._charBeforeSelection=_,this._charAfterSelection=b}getEditOperations(m,_){_.addTrackedEditOperation(new d.Range(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),_.addTrackedEditOperation(new d.Range(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(m,_){const b=_.getInverseEditOperations(),p=b[0].range,n=b[1].range;return new k.Selection(p.endLineNumber,p.endColumn,n.endLineNumber,n.endColumn-this._charAfterSelection.length)}}e.SurroundSelectionCommand=I;class E{constructor(m,_,b){this._position=m,this._text=_,this._charAfter=b}getEditOperations(m,_){_.addTrackedEditOperation(new d.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(m,_){const p=_.getInverseEditOperations()[0].range;return new k.Selection(p.endLineNumber,p.startColumn,p.endLineNumber,p.endColumn-this._charAfter.length)}}e.CompositionSurroundSelectionCommand=E}),define(ne[113],se([1,0,9,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextLength=void 0;class I{static{this.zero=new I(0,0)}static betweenPositions(y,m){return y.lineNumber===m.lineNumber?new I(0,m.column-y.column):new I(m.lineNumber-y.lineNumber,m.column-1)}static ofRange(y){return I.betweenPositions(y.getStartPosition(),y.getEndPosition())}static ofText(y){let m=0,_=0;for(const b of y)b===` -`?(m++,_=0):_++;return new I(m,_)}constructor(y,m){this.lineCount=y,this.columnCount=m}isGreaterThanOrEqualTo(y){return this.lineCount!==y.lineCount?this.lineCount>y.lineCount:this.columnCount>=y.columnCount}createRange(y){return this.lineCount===0?new k.Range(y.lineNumber,y.column,y.lineNumber,y.column+this.columnCount):new k.Range(y.lineNumber,y.column,y.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(y){return this.lineCount===0?new d.Position(y.lineNumber,y.column+this.columnCount):new d.Position(y.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}e.TextLength=I}),define(ne[555],se([1,0,68,113]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PositionOffsetTransformer=void 0;class I{constructor(y){this.text=y,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let m=0;m(0,d.checkAdjacentItems)(i,(s,g)=>s.range.getEndPosition().isBeforeOrEqual(g.range.getStartPosition())))}apply(i){let s="",g=new I.Position(1,1);for(const l of this.edits){const a=l.range,r=a.getStartPosition(),u=a.getEndPosition(),C=p(g,r);C.isEmpty()||(s+=i.getValueOfRange(C)),s+=l.text,g=u}const c=p(g,i.endPositionExclusive);return c.isEmpty()||(s+=i.getValueOfRange(c)),s}applyToString(i){const s=new o(i);return this.apply(s)}getNewRanges(){const i=[];let s=0,g=0,c=0;for(const l of this.edits){const a=m.TextLength.ofText(l.text),r=I.Position.lift({lineNumber:l.range.startLineNumber+g,column:l.range.startColumn+(l.range.startLineNumber===s?c:0)}),u=a.createRange(r);i.push(u),g=u.endLineNumber-l.range.endLineNumber,c=u.endColumn-l.range.endColumn,s=l.range.endLineNumber}return i}}e.TextEdit=_;class b{constructor(i,s){this.range=i,this.text=s}toSingleEditOperation(){return{range:this.range,text:this.text}}}e.SingleTextEdit=b;function p(t,i){if(t.lineNumber===i.lineNumber&&t.column===Number.MAX_SAFE_INTEGER)return y.Range.fromPositions(i,i);if(!t.isBeforeOrEqual(i))throw new k.BugIndicatingError("start must be before end");return new y.Range(t.lineNumber,t.column,i.lineNumber,i.column)}class n{get endPositionExclusive(){return this.length.addToPosition(new I.Position(1,1))}}e.AbstractText=n;class o extends n{constructor(i){super(),this.value=i,this._t=new E.PositionOffsetTransformer(this.value)}getValueOfRange(i){return this._t.getOffsetRange(i).substring(this.value)}get length(){return this._t.textLength}}e.StringText=o}),define(ne[197],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EDITOR_MODEL_DEFAULTS=void 0,e.EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}}),define(ne[166],se([1,0,45,144]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordCharacterClassifier=void 0,e.getMapForWordSeparators=y;class I extends k.CharacterClassifier{constructor(_,b){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=b,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let p=0,n=_.length;pb)break;p=n}return p}findNextIntlWordAtOrAfterOffset(_,b){for(const p of this._getIntlSegmenterWordsOnLine(_))if(!(p.index/?";function I(b=""){let p="(-?\\d*\\.\\d\\w*)|([^";for(const n of e.USUAL_WORD_SEPARATORS)b.indexOf(n)>=0||(p+="\\"+n);return p+="\\s]+)",new RegExp(p,"g")}e.DEFAULT_WORD_REGEXP=I();function E(b){let p=e.DEFAULT_WORD_REGEXP;if(b&&b instanceof RegExp)if(b.global)p=b;else{let n="g";b.ignoreCase&&(n+="i"),b.multiline&&(n+="m"),b.unicode&&(n+="u"),p=new RegExp(b.source,n)}return p.lastIndex=0,p}const y=new k.LinkedList;y.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function m(b,p,n,o,t){if(p=E(p),t||(t=d.Iterable.first(y)),n.length>t.maxLen){let l=b-t.maxLen/2;return l<0?l=0:o+=l,n=n.substring(l,b+t.maxLen/2),m(b,p,n,o,t)}const i=Date.now(),s=b-1-o;let g=-1,c=null;for(let l=1;!(Date.now()-i>=t.timeBudget);l++){const a=s-t.windowSize*l;p.lastIndex=Math.max(0,a);const r=_(p,n,s,g);if(!r&&c||(c=r,a<=0))break;g=a}if(c){const l={word:c[0],startColumn:o+1+c.index,endColumn:o+1+c.index+c[0].length};return p.lastIndex=0,l}return null}function _(b,p,n,o){let t;for(;t=b.exec(p);){const i=t.index||0;if(i<=n&&b.lastIndex>=n)return t;if(o>0&&i>o)return null}return null}}),define(ne[313],se([1,0,94]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AtomicTabMoveOperations=void 0;class k{static whitespaceVisibleColumn(E,y,m){const _=E.length;let b=0,p=-1,n=-1;for(let o=0;o<_;o++){if(o===y)return[p,n,b];switch(b%m===0&&(p=o,n=b),E.charCodeAt(o)){case 32:b+=1;break;case 9:b=d.CursorColumns.nextRenderTabStop(b,m);break;default:return[-1,-1,-1]}}return y===_?[p,n,b]:[-1,-1,-1]}static atomicPosition(E,y,m,_){const b=E.length,[p,n,o]=k.whitespaceVisibleColumn(E,y,m);if(o===-1)return-1;let t;switch(_){case 0:t=!0;break;case 1:t=!1;break;case 2:if(o%m===0)return y;t=o%m<=m/2;break}if(t){if(p===-1)return-1;let g=n;for(let c=p;c{t.push(y.fromOffsetPairs(i?i.getEndExclusives():m.zero,s?s.getStarts():new m(o,(i?i.seq2Range.endExclusive-i.seq1Range.endExclusive:0)+o)))}),t}static fromOffsetPairs(n,o){return new y(new I.OffsetRange(n.offset1,o.offset1),new I.OffsetRange(n.offset2,o.offset2))}static assertSorted(n){let o;for(const t of n){if(o&&!(o.seq1Range.endExclusive<=t.seq1Range.start&&o.seq2Range.endExclusive<=t.seq2Range.start))throw new k.BugIndicatingError("Sequence diffs must be sorted");o=t}}constructor(n,o){this.seq1Range=n,this.seq2Range=o}swap(){return new y(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(n){return new y(this.seq1Range.join(n.seq1Range),this.seq2Range.join(n.seq2Range))}delta(n){return n===0?this:new y(this.seq1Range.delta(n),this.seq2Range.delta(n))}deltaStart(n){return n===0?this:new y(this.seq1Range.deltaStart(n),this.seq2Range.deltaStart(n))}deltaEnd(n){return n===0?this:new y(this.seq1Range.deltaEnd(n),this.seq2Range.deltaEnd(n))}intersect(n){const o=this.seq1Range.intersect(n.seq1Range),t=this.seq2Range.intersect(n.seq2Range);if(!(!o||!t))return new y(o,t)}getStarts(){return new m(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new m(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}e.SequenceDiff=y;class m{static{this.zero=new m(0,0)}static{this.max=new m(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}constructor(n,o){this.offset1=n,this.offset2=o}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(n){return n===0?this:new m(this.offset1+n,this.offset2+n)}equals(n){return this.offset1===n.offset1&&this.offset2===n.offset2}}e.OffsetPair=m;class _{static{this.instance=new _}isValid(){return!0}}e.InfiniteTimeout=_;class b{constructor(n){if(this.timeout=n,this.startTime=Date.now(),this.valid=!0,n<=0)throw new k.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimeo.length||D>t.length)continue;const T=i(L,D);g.set(l,T);const M=L===w?c.get(l+1):c.get(l-1);if(c.set(l,T!==L?new E(M,L,D,T-L):M),g.get(l)===o.length&&g.get(l)-l===t.length)break e}}let a=c.get(l);const r=[];let u=o.length,C=t.length;for(;;){const f=a?a.x+a.length:0,h=a?a.y+a.length:0;if((f!==u||h!==C)&&r.push(new k.SequenceDiff(new d.OffsetRange(f,u),new d.OffsetRange(h,C))),!a)break;u=a.x,C=a.y,a=a.prev}return r.reverse(),new k.DiffAlgorithmResult(r,!1)}}e.MyersDiffAlgorithm=I;class E{constructor(b,p,n,o){this.prev=b,this.x=p,this.y=n,this.length=o}}class y{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(b){return b<0?(b=-b-1,this.negativeArr[b]):this.positiveArr[b]}set(b,p){if(b<0){if(b=-b-1,b>=this.negativeArr.length){const n=this.negativeArr;this.negativeArr=new Int32Array(n.length*2),this.negativeArr.set(n)}this.negativeArr[b]=p}else{if(b>=this.positiveArr.length){const n=this.positiveArr;this.positiveArr=new Int32Array(n.length*2),this.positiveArr.set(n)}this.positiveArr[b]=p}}}class m{constructor(){this.positiveArr=[],this.negativeArr=[]}get(b){return b<0?(b=-b-1,this.negativeArr[b]):this.positiveArr[b]}set(b,p){b<0?(b=-b-1,this.negativeArr[b]=p):this.positiveArr[b]=p}}}),define(ne[315],se([1,0,13,68,167]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.optimizeSequenceDiffs=E,e.removeShortMatches=b,e.extendDiffsToEntireWordIfAppropriate=p,e.removeVeryShortMatchingLinesBetweenDiffs=o,e.removeVeryShortMatchingTextBetweenLongDiffs=t;function E(i,s,g){let c=g;return c=y(i,s,c),c=y(i,s,c),c=m(i,s,c),c}function y(i,s,g){if(g.length===0)return g;const c=[];c.push(g[0]);for(let a=1;a0&&(u=u.delta(f))}l.push(u)}return c.length>0&&l.push(c[c.length-1]),l}function m(i,s,g){if(!i.getBoundaryScore||!s.getBoundaryScore)return g;for(let c=0;c0?g[c-1]:void 0,a=g[c],r=c+1=c.start&&i.seq2Range.start-r>=l.start&&g.isStronglyEqual(i.seq2Range.start-r,i.seq2Range.endExclusive-r)&&r<100;)r++;r--;let u=0;for(;i.seq1Range.start+uf&&(f=L,C=h)}return i.delta(C)}function b(i,s,g){const c=[];for(const l of g){const a=c[c.length-1];if(!a){c.push(l);continue}l.seq1Range.start-a.seq1Range.endExclusive<=2||l.seq2Range.start-a.seq2Range.endExclusive<=2?c[c.length-1]=new I.SequenceDiff(a.seq1Range.join(l.seq1Range),a.seq2Range.join(l.seq2Range)):c.push(l)}return c}function p(i,s,g){const c=I.SequenceDiff.invert(g,i.length),l=[];let a=new I.OffsetPair(0,0);function r(C,f){if(C.offset10;){const T=c[0];if(!(T.seq1Range.intersects(w.seq1Range)||T.seq2Range.intersects(w.seq2Range)))break;const A=i.findWordContaining(T.seq1Range.start),P=s.findWordContaining(T.seq2Range.start),N=new I.SequenceDiff(A,P),O=N.intersect(T);if(L+=O.seq1Range.length,D+=O.seq2Range.length,w=w.join(N),w.seq1Range.endExclusive>=T.seq1Range.endExclusive)c.shift();else break}L+D<(w.seq1Range.length+w.seq2Range.length)*2/3&&l.push(w),a=w.getEndExclusives()}for(;c.length>0;){const C=c.shift();C.seq1Range.isEmpty||(r(C.getStarts(),C),r(C.getEndExclusives().delta(-1),C))}return n(g,l)}function n(i,s){const g=[];for(;i.length>0||s.length>0;){const c=i[0],l=s[0];let a;c&&(!l||c.seq1Range.start0&&g[g.length-1].seq1Range.endExclusive>=a.seq1Range.start?g[g.length-1]=g[g.length-1].join(a):g.push(a)}return g}function o(i,s,g){let c=g;if(c.length===0)return c;let l=0,a;do{a=!1;const r=[c[0]];for(let u=1;u5||S.seq1Range.length+S.seq2Range.length>5)};const C=c[u],f=r[r.length-1];h(f,C)?(a=!0,r[r.length-1]=r[r.length-1].join(C)):r.push(C)}c=r}while(l++<10&&a);return c}function t(i,s,g){let c=g;if(c.length===0)return c;let l=0,a;do{a=!1;const u=[c[0]];for(let C=1;C5||D.length>500)return!1;const M=i.getText(D).trim();if(M.length>20||M.split(/\r\n|\r|\n/).length>1)return!1;const A=i.countLinesIn(S.seq1Range),P=S.seq1Range.length,N=s.countLinesIn(S.seq2Range),O=S.seq2Range.length,F=i.countLinesIn(L.seq1Range),x=L.seq1Range.length,W=s.countLinesIn(L.seq2Range),V=L.seq2Range.length,q=2*40+50;function H(z){return Math.min(z,q)}return Math.pow(Math.pow(H(A*40+P),1.5)+Math.pow(H(N*40+O),1.5),1.5)+Math.pow(Math.pow(H(F*40+x),1.5)+Math.pow(H(W*40+V),1.5),1.5)>(q**1.5)**1.5*1.3};const f=c[C],h=u[u.length-1];v(h,f)?(a=!0,u[u.length-1]=u[u.length-1].join(f)):u.push(f)}c=u}while(l++<10&&a);const r=[];return(0,d.forEachWithNeighbors)(c,(u,C,f)=>{let h=C;function v(M){return M.length>0&&M.trim().length<=3&&C.seq1Range.length+C.seq2Range.length>100}const w=i.extendToFullLines(C.seq1Range),S=i.getText(new k.OffsetRange(w.start,C.seq1Range.start));v(S)&&(h=h.deltaStart(-S.length));const L=i.getText(new k.OffsetRange(C.seq1Range.endExclusive,w.endExclusive));v(L)&&(h=h.deltaEnd(L.length));const D=I.SequenceDiff.fromOffsetPairs(u?u.getEndExclusives():I.OffsetPair.zero,f?f.getStarts():I.OffsetPair.max),T=h.intersect(D);r.length>0&&T.getStarts().equals(r[r.length-1].getEndExclusives())?r[r.length-1]=r[r.length-1].join(T):r.push(T)}),r}}),define(ne[557],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineSequence=void 0;class d{constructor(E,y){this.trimmedHash=E,this.lines=y}getElement(E){return this.trimmedHash[E]}get length(){return this.trimmedHash.length}getBoundaryScore(E){const y=E===0?0:k(this.lines[E-1]),m=E===this.lines.length?0:k(this.lines[E]);return 1e3-(y+m)}getText(E){return this.lines.slice(E.start,E.endExclusive).join(` -`)}isStronglyEqual(E,y){return this.lines[E]===this.lines[y]}}e.LineSequence=d;function k(I){let E=0;for(;E0&&u>0&&o.get(r-1,u-1)===3&&(h+=t.get(r-1,u-1)),h+=p?p(r,u):1):h=-1;const v=Math.max(C,f,h);if(v===h){const w=r>0&&u>0?t.get(r-1,u-1):0;t.set(r,u,w+1),o.set(r,u,3)}else v===C?(t.set(r,u,0),o.set(r,u,1)):v===f&&(t.set(r,u,0),o.set(r,u,2));n.set(r,u,v)}const i=[];let s=m.length,g=_.length;function c(r,u){(r+1!==s||u+1!==g)&&i.push(new k.SequenceDiff(new d.OffsetRange(r+1,s),new d.OffsetRange(u+1,g))),s=r,g=u}let l=m.length-1,a=_.length-1;for(;l>=0&&a>=0;)o.get(l,a)===3?(c(l,a),l--,a--):o.get(l,a)===1?l--:a--;return c(-1,-1),i.reverse(),new k.DiffAlgorithmResult(i,!1)}}e.DynamicProgrammingDiffing=E}),define(ne[316],se([1,0,67,68,9,4,231]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesSliceCharSequence=void 0;class m{constructor(t,i,s){this.lines=t,this.range=i,this.considerWhitespaceChanges=s,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let g=this.range.startLineNumber;g<=this.range.endLineNumber;g++){let c=t[g-1],l=0;g===this.range.startLineNumber&&this.range.startColumn>1&&(l=this.range.startColumn-1,c=c.substring(l)),this.lineStartOffsets.push(l);let a=0;if(!s){const u=c.trimStart();a=c.length-u.length,c=u.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);const r=g===this.range.endLineNumber?Math.min(this.range.endColumn-1-l-a,c.length):c.length;for(let u=0;uString.fromCharCode(i)).join("")}getElement(t){return this.elements[t]}get length(){return this.elements.length}getBoundaryScore(t){const i=n(t>0?this.elements[t-1]:-1),s=n(tc<=t),g=t-this.firstElementOffsetByLineIdx[s];return new I.Position(this.range.startLineNumber+s,1+this.lineStartOffsets[s]+g+(g===0&&i==="left"?0:this.trimmedWsLengthsByLineIdx[s]))}translateRange(t){const i=this.translateOffset(t.start,"right"),s=this.translateOffset(t.endExclusive,"left");return s.isBefore(i)?E.Range.fromPositions(s,s):E.Range.fromPositions(i,s)}findWordContaining(t){if(t<0||t>=this.elements.length||!_(this.elements[t]))return;let i=t;for(;i>0&&_(this.elements[i-1]);)i--;let s=t;for(;sg<=t.start)??0,s=(0,d.findFirstMonotonous)(this.firstElementOffsetByLineIdx,g=>t.endExclusive<=g)??this.elements.length;return new k.OffsetRange(i,s)}}e.LinesSliceCharSequence=m;function _(o){return o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57}const b={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function p(o){return b[o]}function n(o){return o===10?8:o===13?7:(0,y.isSpace)(o)?6:o>=97&&o<=122?0:o>=65&&o<=90?1:o>=48&&o<=57?2:o===-1?3:o===44||o===59?5:4}}),define(ne[232],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MovedText=e.LinesDiff=void 0;class d{constructor(E,y,m){this.changes=E,this.moves=y,this.hitTimeout=m}}e.LinesDiff=d;class k{constructor(E,y){this.lineRangeMapping=E,this.changes=y}}e.MovedText=k}),define(ne[105],se([1,0,8,55,9,4,104]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMapping=e.DetailedLineRangeMapping=e.LineRangeMapping=void 0;class m{static inverse(t,i,s){const g=[];let c=1,l=1;for(const r of t){const u=new m(new k.LineRange(c,r.original.startLineNumber),new k.LineRange(l,r.modified.startLineNumber));u.modified.isEmpty||g.push(u),c=r.original.endLineNumberExclusive,l=r.modified.endLineNumberExclusive}const a=new m(new k.LineRange(c,i+1),new k.LineRange(l,s+1));return a.modified.isEmpty||g.push(a),g}static clip(t,i,s){const g=[];for(const c of t){const l=c.original.intersect(i),a=c.modified.intersect(s);l&&!l.isEmpty&&a&&!a.isEmpty&&g.push(new m(l,a))}return g}constructor(t,i){this.original=t,this.modified=i}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new m(this.modified,this.original)}join(t){return new m(this.original.join(t.original),this.modified.join(t.modified))}toRangeMapping(){const t=this.original.toInclusiveRange(),i=this.modified.toInclusiveRange();if(t&&i)return new n(t,i);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new d.BugIndicatingError("not a valid diff");return new n(new E.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new E.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new n(new E.Range(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new E.Range(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(t,i){if(b(this.original.endLineNumberExclusive,t)&&b(this.modified.endLineNumberExclusive,i))return new n(new E.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new E.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new n(E.Range.fromPositions(new I.Position(this.original.startLineNumber,1),_(new I.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)),E.Range.fromPositions(new I.Position(this.modified.startLineNumber,1),_(new I.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),i)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new n(E.Range.fromPositions(_(new I.Position(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),_(new I.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)),E.Range.fromPositions(_(new I.Position(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),i),_(new I.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),i)));throw new d.BugIndicatingError}}e.LineRangeMapping=m;function _(o,t){if(o.lineNumber<1)return new I.Position(1,1);if(o.lineNumber>t.length)return new I.Position(t.length,t[t.length-1].length+1);const i=t[o.lineNumber-1];return o.column>i.length+1?new I.Position(o.lineNumber,i.length+1):o}function b(o,t){return o>=1&&o<=t.length}class p extends m{static fromRangeMappings(t){const i=k.LineRange.join(t.map(g=>k.LineRange.fromRangeInclusive(g.originalRange))),s=k.LineRange.join(t.map(g=>k.LineRange.fromRangeInclusive(g.modifiedRange)));return new p(i,s,t)}constructor(t,i,s){super(t,i),this.innerChanges=s}flip(){return new p(this.modified,this.original,this.innerChanges?.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new p(this.original,this.modified,[this.toRangeMapping()])}}e.DetailedLineRangeMapping=p;class n{static assertSorted(t){for(let i=1;i${this.modifiedRange.toString()}}`}flip(){return new n(this.modifiedRange,this.originalRange)}toTextEdit(t){const i=t.getValueOfRange(this.modifiedRange);return new y.SingleTextEdit(this.originalRange,i)}}e.RangeMapping=n}),define(ne[559],se([1,0,167,105,13,67,45,55,316,231,314,4]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeMovedLines=o;function o(a,r,u,C,f,h){let{moves:v,excludedChanges:w}=i(a,r,u,h);if(!h.isValid())return[];const S=a.filter(D=>!w.has(D)),L=s(S,C,f,r,u,h);return(0,I.pushMany)(v,L),v=c(v),v=v.filter(D=>{const T=D.original.toOffsetRange().slice(r).map(A=>A.trim());return T.join(` -`).length>=15&&t(T,A=>A.length>=2)>=2}),v=l(a,v),v}function t(a,r){let u=0;for(const C of a)r(C)&&u++;return u}function i(a,r,u,C){const f=[],h=a.filter(S=>S.modified.isEmpty&&S.original.length>=3).map(S=>new b.LineRangeFragment(S.original,r,S)),v=new Set(a.filter(S=>S.original.isEmpty&&S.modified.length>=3).map(S=>new b.LineRangeFragment(S.modified,u,S))),w=new Set;for(const S of h){let L=-1,D;for(const T of v){const M=S.computeSimilarity(T);M>L&&(L=M,D=T)}if(L>.9&&D&&(v.delete(D),f.push(new k.LineRangeMapping(S.range,D.range)),w.add(S.source),w.add(D.source)),!C.isValid())return{moves:f,excludedChanges:w}}return{moves:f,excludedChanges:w}}function s(a,r,u,C,f,h){const v=[],w=new y.SetMap;for(const M of a)for(let A=M.original.startLineNumber;AM.modified.startLineNumber,I.numberComparator));for(const M of a){let A=[];for(let P=M.modified.startLineNumber;P{for(const V of A)if(V.originalLineRange.endLineNumberExclusive+1===x.endLineNumberExclusive&&V.modifiedLineRange.endLineNumberExclusive+1===O.endLineNumberExclusive){V.originalLineRange=new m.LineRange(V.originalLineRange.startLineNumber,x.endLineNumberExclusive),V.modifiedLineRange=new m.LineRange(V.modifiedLineRange.startLineNumber,O.endLineNumberExclusive),F.push(V);return}const W={modifiedLineRange:O,originalLineRange:x};S.push(W),F.push(W)}),A=F}if(!h.isValid())return[]}S.sort((0,I.reverseOrder)((0,I.compareBy)(M=>M.modifiedLineRange.length,I.numberComparator)));const L=new m.LineRangeSet,D=new m.LineRangeSet;for(const M of S){const A=M.modifiedLineRange.startLineNumber-M.originalLineRange.startLineNumber,P=L.subtractFrom(M.modifiedLineRange),N=D.subtractFrom(M.originalLineRange).getWithDelta(A),O=P.getIntersection(N);for(const F of O.ranges){if(F.length<3)continue;const x=F,W=F.delta(-A);v.push(new k.LineRangeMapping(W,x)),L.addRange(x),D.addRange(W)}}v.sort((0,I.compareBy)(M=>M.original.startLineNumber,I.numberComparator));const T=new E.MonotonousArray(a);for(let M=0;MH.original.startLineNumber<=A.original.startLineNumber),N=(0,E.findLastMonotonous)(a,H=>H.modified.startLineNumber<=A.modified.startLineNumber),O=Math.max(A.original.startLineNumber-P.original.startLineNumber,A.modified.startLineNumber-N.modified.startLineNumber),F=T.findLastMonotonous(H=>H.original.startLineNumberH.modified.startLineNumberC.length||z>f.length||L.contains(z)||D.contains(H)||!g(C[H-1],f[z-1],h))break}V>0&&(D.addRange(new m.LineRange(A.original.startLineNumber-V,A.original.startLineNumber)),L.addRange(new m.LineRange(A.modified.startLineNumber-V,A.modified.startLineNumber)));let q;for(q=0;qC.length||z>f.length||L.contains(z)||D.contains(H)||!g(C[H-1],f[z-1],h))break}q>0&&(D.addRange(new m.LineRange(A.original.endLineNumberExclusive,A.original.endLineNumberExclusive+q)),L.addRange(new m.LineRange(A.modified.endLineNumberExclusive,A.modified.endLineNumberExclusive+q))),(V>0||q>0)&&(v[M]=new k.LineRangeMapping(new m.LineRange(A.original.startLineNumber-V,A.original.endLineNumberExclusive+q),new m.LineRange(A.modified.startLineNumber-V,A.modified.endLineNumberExclusive+q)))}return v}function g(a,r,u){if(a.trim()===r.trim())return!0;if(a.length>300&&r.length>300)return!1;const f=new p.MyersDiffAlgorithm().compute(new _.LinesSliceCharSequence([a],new n.Range(1,1,1,a.length),!1),new _.LinesSliceCharSequence([r],new n.Range(1,1,1,r.length),!1),u);let h=0;const v=d.SequenceDiff.invert(f.diffs,a.length);for(const D of v)D.seq1Range.forEach(T=>{(0,b.isSpace)(a.charCodeAt(T))||h++});function w(D){let T=0;for(let M=0;Mr.length?a:r);return h/S>.6&&S>10}function c(a){if(a.length===0)return a;a.sort((0,I.compareBy)(u=>u.original.startLineNumber,I.numberComparator));const r=[a[0]];for(let u=1;u=0&&v>=0&&h+v<=2){r[r.length-1]=C.join(f);continue}r.push(f)}return r}function l(a,r){const u=new E.MonotonousArray(a);return r=r.filter(C=>{const f=u.findLastMonotonous(w=>w.original.startLineNumberw.modified.startLineNumberH===z))return new i.LinesDiff([],[],!1);if(u.length===1&&u[0].length===0||C.length===1&&C[0].length===0)return new i.LinesDiff([new s.DetailedLineRangeMapping(new I.LineRange(1,u.length+1),new I.LineRange(1,C.length+1),[new s.RangeMapping(new y.Range(1,1,u.length,u[u.length-1].length+1),new y.Range(1,1,C.length,C[C.length-1].length+1))])],[],!1);const h=f.maxComputationTimeMs===0?m.InfiniteTimeout.instance:new m.DateTimeout(f.maxComputationTimeMs),v=!f.ignoreTrimWhitespace,w=new Map;function S(H){let z=w.get(H);return z===void 0&&(z=w.size,w.set(H,z)),z}const L=u.map(H=>S(H.trim())),D=C.map(H=>S(H.trim())),T=new o.LineSequence(L,u),M=new o.LineSequence(D,C),A=T.length+M.length<1700?this.dynamicProgrammingDiffing.compute(T,M,h,(H,z)=>u[H]===C[z]?C[z].length===0?.1:1+Math.log(1+C[z].length):.99):this.myersDiffingAlgorithm.compute(T,M,h);let P=A.diffs,N=A.hitTimeout;P=(0,n.optimizeSequenceDiffs)(T,M,P),P=(0,n.removeVeryShortMatchingLinesBetweenDiffs)(T,M,P);const O=[],F=H=>{if(v)for(let z=0;zH.seq1Range.start-x===H.seq2Range.start-W);const z=H.seq1Range.start-x;F(z),x=H.seq1Range.endExclusive,W=H.seq2Range.endExclusive;const U=this.refineDiff(u,C,H,h,v);U.hitTimeout&&(N=!0);for(const j of U.mappings)O.push(j)}F(u.length-x);const V=c(O,u,C);let q=[];return f.computeMoves&&(q=this.computeMoves(V,u,C,L,D,h,v)),(0,k.assertFn)(()=>{function H(U,j){if(U.lineNumber<1||U.lineNumber>j.length)return!1;const Y=j[U.lineNumber-1];return!(U.column<1||U.column>Y.length+1)}function z(U,j){return!(U.startLineNumber<1||U.startLineNumber>j.length+1||U.endLineNumberExclusive<1||U.endLineNumberExclusive>j.length+1)}for(const U of V){if(!U.innerChanges)return!1;for(const j of U.innerChanges)if(!(H(j.modifiedRange.getStartPosition(),C)&&H(j.modifiedRange.getEndPosition(),C)&&H(j.originalRange.getStartPosition(),u)&&H(j.originalRange.getEndPosition(),u)))return!1;if(!z(U.modified,C)||!z(U.original,u))return!1}return!0}),new i.LinesDiff(V,q,N)}computeMoves(u,C,f,h,v,w,S){return(0,p.computeMovedLines)(u,C,f,h,v,w).map(T=>{const M=this.refineDiff(C,f,new m.SequenceDiff(T.original.toOffsetRange(),T.modified.toOffsetRange()),w,S),A=c(M.mappings,C,f,!0);return new i.MovedText(T,A)})}refineDiff(u,C,f,h,v){const S=a(f).toRangeMapping2(u,C),L=new t.LinesSliceCharSequence(u,S.originalRange,v),D=new t.LinesSliceCharSequence(C,S.modifiedRange,v),T=L.length+D.length<500?this.dynamicProgrammingDiffing.compute(L,D,h):this.myersDiffingAlgorithm.compute(L,D,h),M=!1;let A=T.diffs;M&&m.SequenceDiff.assertSorted(A),A=(0,n.optimizeSequenceDiffs)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.extendDiffsToEntireWordIfAppropriate)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.removeShortMatches)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.removeVeryShortMatchingTextBetweenLongDiffs)(L,D,A),M&&m.SequenceDiff.assertSorted(A);const P=A.map(N=>new s.RangeMapping(L.translateRange(N.seq1Range),D.translateRange(N.seq2Range)));return M&&s.RangeMapping.assertSorted(P),{mappings:P,hitTimeout:T.hitTimeout}}}e.DefaultLinesDiffComputer=g;function c(r,u,C,f=!1){const h=[];for(const v of(0,d.groupAdjacentBy)(r.map(w=>l(w,u,C)),(w,S)=>w.original.overlapOrTouch(S.original)||w.modified.overlapOrTouch(S.modified))){const w=v[0],S=v[v.length-1];h.push(new s.DetailedLineRangeMapping(w.original.join(S.original),w.modified.join(S.modified),v.map(L=>L.innerChanges[0])))}return(0,k.assertFn)(()=>!f&&h.length>0&&(h[0].modified.startLineNumber!==h[0].original.startLineNumber||C.length-h[h.length-1].modified.endLineNumberExclusive!==u.length-h[h.length-1].original.endLineNumberExclusive)?!1:(0,k.checkAdjacentItems)(h,(v,w)=>w.original.startLineNumber-v.original.endLineNumberExclusive===w.modified.startLineNumber-v.modified.endLineNumberExclusive&&v.original.endLineNumberExclusive=C[r.modifiedRange.startLineNumber-1].length&&r.originalRange.startColumn-1>=u[r.originalRange.startLineNumber-1].length&&r.originalRange.startLineNumber<=r.originalRange.endLineNumber+h&&r.modifiedRange.startLineNumber<=r.modifiedRange.endLineNumber+h&&(f=1);const v=new I.LineRange(r.originalRange.startLineNumber+f,r.originalRange.endLineNumber+1+h),w=new I.LineRange(r.modifiedRange.startLineNumber+f,r.modifiedRange.endLineNumber+1+h);return new s.DetailedLineRangeMapping(v,w,[r])}function a(r){return new s.LineRangeMapping(new I.LineRange(r.seq1Range.start+1,r.seq1Range.endExclusive+1),new I.LineRange(r.seq2Range.start+1,r.seq2Range.endExclusive+1))}}),define(ne[560],se([1,0,190,232,105,11,4,90,55]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffComputer=e.LegacyLinesDiffComputer=void 0;const b=3;class p{computeDiff(C,f,h){const w=new c(C,f,{maxComputationTime:h.maxComputationTimeMs,shouldIgnoreTrimWhitespace:h.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),S=[];let L=null;for(const D of w.changes){let T;D.originalEndLineNumber===0?T=new _.LineRange(D.originalStartLineNumber+1,D.originalStartLineNumber+1):T=new _.LineRange(D.originalStartLineNumber,D.originalEndLineNumber+1);let M;D.modifiedEndLineNumber===0?M=new _.LineRange(D.modifiedStartLineNumber+1,D.modifiedStartLineNumber+1):M=new _.LineRange(D.modifiedStartLineNumber,D.modifiedEndLineNumber+1);let A=new I.DetailedLineRangeMapping(T,M,D.charChanges?.map(P=>new I.RangeMapping(new y.Range(P.originalStartLineNumber,P.originalStartColumn,P.originalEndLineNumber,P.originalEndColumn),new y.Range(P.modifiedStartLineNumber,P.modifiedStartColumn,P.modifiedEndLineNumber,P.modifiedEndColumn))));L&&(L.modified.endLineNumberExclusive===A.modified.startLineNumber||L.original.endLineNumberExclusive===A.original.startLineNumber)&&(A=new I.DetailedLineRangeMapping(L.original.join(A.original),L.modified.join(A.modified),L.innerChanges&&A.innerChanges?L.innerChanges.concat(A.innerChanges):void 0),S.pop()),S.push(A),L=A}return(0,m.assertFn)(()=>(0,m.checkAdjacentItems)(S,(D,T)=>T.original.startLineNumber-D.original.endLineNumberExclusive===T.modified.startLineNumber-D.modified.endLineNumberExclusive&&D.original.endLineNumberExclusive(C===10?"\\n":String.fromCharCode(C))+`-(${this._lineNumbers[f]},${this._columns[f]})`).join(", ")+"]"}_assertIndex(C,f){if(C<0||C>=f.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(C){return C>0&&C===this._lineNumbers.length?this.getEndLineNumber(C-1):(this._assertIndex(C,this._lineNumbers),this._lineNumbers[C])}getEndLineNumber(C){return C===-1?this.getStartLineNumber(C+1):(this._assertIndex(C,this._lineNumbers),this._charCodes[C]===10?this._lineNumbers[C]+1:this._lineNumbers[C])}getStartColumn(C){return C>0&&C===this._columns.length?this.getEndColumn(C-1):(this._assertIndex(C,this._columns),this._columns[C])}getEndColumn(C){return C===-1?this.getStartColumn(C+1):(this._assertIndex(C,this._columns),this._charCodes[C]===10?1:this._columns[C]+1)}}class i{constructor(C,f,h,v,w,S,L,D){this.originalStartLineNumber=C,this.originalStartColumn=f,this.originalEndLineNumber=h,this.originalEndColumn=v,this.modifiedStartLineNumber=w,this.modifiedStartColumn=S,this.modifiedEndLineNumber=L,this.modifiedEndColumn=D}static createFromDiffChange(C,f,h){const v=f.getStartLineNumber(C.originalStart),w=f.getStartColumn(C.originalStart),S=f.getEndLineNumber(C.originalStart+C.originalLength-1),L=f.getEndColumn(C.originalStart+C.originalLength-1),D=h.getStartLineNumber(C.modifiedStart),T=h.getStartColumn(C.modifiedStart),M=h.getEndLineNumber(C.modifiedStart+C.modifiedLength-1),A=h.getEndColumn(C.modifiedStart+C.modifiedLength-1);return new i(v,w,S,L,D,T,M,A)}}function s(u){if(u.length<=1)return u;const C=[u[0]];let f=C[0];for(let h=1,v=u.length;h0&&f.originalLength<20&&f.modifiedLength>0&&f.modifiedLength<20&&w()){const N=h.createCharSequence(C,f.originalStart,f.originalStart+f.originalLength-1),O=v.createCharSequence(C,f.modifiedStart,f.modifiedStart+f.modifiedLength-1);if(N.getElements().length>0&&O.getElements().length>0){let F=n(N,O,w,!0).changes;L&&(F=s(F)),P=[];for(let x=0,W=F.length;x1&&F>1;){const x=P.charCodeAt(O-2),W=N.charCodeAt(F-2);if(x!==W)break;O--,F--}(O>1||F>1)&&this._pushTrimWhitespaceCharChange(v,w+1,1,O,S+1,1,F)}{let O=a(P,1),F=a(N,1);const x=P.length+1,W=N.length+1;for(;O!0;const C=Date.now();return()=>Date.now()-Cnew d.LegacyLinesDiffComputer,getDefault:()=>new k.DefaultLinesDiffComputer}}),define(ne[318],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalEditorAction=void 0;class d{constructor(I,E,y,m,_,b,p){this.id=I,this.label=E,this.alias=y,this.metadata=m,this._precondition=_,this._run=b,this._contextKeyService=p}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(I){return this.isSupported()?this._run(I):Promise.resolve(void 0)}}e.InternalEditorAction=d}),define(ne[198],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorType=void 0,e.EditorType={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}}),define(ne[168],se([1,0,198]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isCodeEditor=k,e.isDiffEditor=I,e.isCompositeEditor=E,e.getCodeEditor=y;function k(m){return m&&typeof m.getEditorType=="function"?m.getEditorType()===d.EditorType.ICodeEditor:!1}function I(m){return m&&typeof m.getEditorType=="function"?m.getEditorType()===d.EditorType.IDiffEditor:!1}function E(m){return!!m&&typeof m=="object"&&typeof m.onDidChangeActiveEditor=="function"}function y(m){return k(m)?m:I(m)?m.getModifiedEditor():E(m)&&k(m.activeCodeEditor)?m.activeCodeEditor:null}}),define(ne[130],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.registerEditorFeature=k,e.getEditorFeatures=I;const d=[];function k(E){d.push(E)}function I(){return d.slice(0)}}),define(ne[562],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorTheme=void 0;class d{get type(){return this._theme.type}get value(){return this._theme}constructor(I){this._theme=I}update(I){this._theme=I}getColor(I){return this._theme.getColor(I)}}e.EditorTheme=d}),define(ne[148],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenMetadata=void 0;class d{static getLanguageId(I){return(I&255)>>>0}static getTokenType(I){return(I&768)>>>8}static containsBalancedBrackets(I){return(I&1024)!==0}static getFontStyle(I){return(I&30720)>>>11}static getForeground(I){return(I&16744448)>>>15}static getBackground(I){return(I&4278190080)>>>24}static getClassNameFromMetadata(I){let y="mtk"+this.getForeground(I);const m=this.getFontStyle(I);return m&1&&(y+=" mtki"),m&2&&(y+=" mtkb"),m&4&&(y+=" mtku"),m&8&&(y+=" mtks"),y}static getInlineStyleFromMetadata(I,E){const y=this.getForeground(I),m=this.getFontStyle(I);let _=`color: ${E[y]};`;m&1&&(_+="font-style: italic;"),m&2&&(_+="font-weight: bold;");let b="";return m&4&&(b+=" underline"),m&8&&(b+=" line-through"),b&&(_+=`text-decoration:${b};`),_}static getPresentationFromMetadata(I){const E=this.getForeground(I),y=this.getFontStyle(I);return{foreground:E,italic:!!(y&1),bold:!!(y&2),underline:!!(y&4),strikethrough:!!(y&8)}}}e.TokenMetadata=d}),define(ne[563],se([1,0,33]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeDefaultDocumentColors=n;function k(o){const t=[];for(const i of o){const s=Number(i);(s||s===0&&i.replace(/\s/g,"")!=="")&&t.push(s)}return t}function I(o,t,i,s){return{red:o/255,blue:i/255,green:t/255,alpha:s}}function E(o,t){const i=t.index,s=t[0].length;if(!i)return;const g=o.positionAt(i);return{startLineNumber:g.lineNumber,startColumn:g.column,endLineNumber:g.lineNumber,endColumn:g.column+s}}function y(o,t){if(!o)return;const i=d.Color.Format.CSS.parseHex(t);if(i)return{range:o,color:I(i.rgba.r,i.rgba.g,i.rgba.b,i.rgba.a)}}function m(o,t,i){if(!o||t.length!==1)return;const g=t[0].values(),c=k(g);return{range:o,color:I(c[0],c[1],c[2],i?c[3]:1)}}function _(o,t,i){if(!o||t.length!==1)return;const g=t[0].values(),c=k(g),l=new d.Color(new d.HSLA(c[0],c[1]/100,c[2]/100,i?c[3]:1));return{range:o,color:I(l.rgba.r,l.rgba.g,l.rgba.b,l.rgba.a)}}function b(o,t){return typeof o=="string"?[...o.matchAll(t)]:o.findMatches(t)}function p(o){const t=[],s=b(o,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(s.length>0)for(const g of s){const c=g.filter(u=>u!==void 0),l=c[1],a=c[2];if(!a)continue;let r;if(l==="rgb"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;r=m(E(o,g),b(a,u),!1)}else if(l==="rgba"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=m(E(o,g),b(a,u),!0)}else if(l==="hsl"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;r=_(E(o,g),b(a,u),!1)}else if(l==="hsla"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=_(E(o,g),b(a,u),!0)}else l==="#"&&(r=y(E(o,g),l+a));r&&t.push(r)}return t}function n(o){return!o||typeof o.getValue!="function"||typeof o.positionAt!="function"?[]:p(o)}}),define(ne[131],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoClosingPairs=e.StandardAutoClosingPairConditional=e.IndentAction=void 0;var d;(function(y){y[y.None=0]="None",y[y.Indent=1]="Indent",y[y.IndentOutdent=2]="IndentOutdent",y[y.Outdent=3]="Outdent"})(d||(e.IndentAction=d={}));class k{constructor(m){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=m.open,this.close=m.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(m.notIn))for(let _=0,b=m.notIn.length;_t&&(t=a),l>i&&(i=l),r>i&&(i=r)}t++,i++;const s=new k(i,t,0);for(let g=0,c=o.length;g=this._maxCharCode?0:this._states.get(o,t)}}e.StateMachine=I;let E=null;function y(){return E===null&&(E=new I([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),E}let m=null;function _(){if(m===null){m=new d.CharacterClassifier(0);const n=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let t=0;ts);if(s>0){const l=t.charCodeAt(s-1),a=t.charCodeAt(c);(l===40&&a===41||l===91&&a===93||l===123&&a===125)&&c--}return{range:{startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:c+2},url:t.substring(s,c+1)}}static computeLinks(o,t=y()){const i=_(),s=[];for(let g=1,c=o.getLineCount();g<=c;g++){const l=o.getLineContent(g),a=l.length;let r=0,u=0,C=0,f=1,h=!1,v=!1,w=!1,S=!1;for(;r0&&E.getLanguageId(n-1)===b;)n--;return new k(E,b,n,p+1,E.getStartOffset(n),E.getEndOffset(p))}class k{constructor(y,m,_,b,p,n){this._scopedLineTokensBrand=void 0,this._actual=y,this.languageId=m,this._firstTokenIndex=_,this._lastTokenIndex=b,this.firstCharOffset=p,this._lastCharOffset=n,this.languageIdCodec=y.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(y){return this._actual.getLineContent().substring(0,this.firstCharOffset+y)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(y){return this._actual.findTokenIndexAtOffset(y+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(y){return this._actual.getStandardTokenType(y+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}e.ScopedLineTokens=k;function I(E){return(E&3)!==0}}),define(ne[76],se([1,0,9,4,23,169,94,230]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditOperationResult=e.SingleCursorState=e.PartialViewCursorState=e.PartialModelCursorState=e.CursorState=e.CursorConfiguration=void 0,e.isQuote=c;const _=()=>!0,b=()=>!1,p=l=>l===" "||l===" ";class n{static shouldRecreate(a){return a.hasChanged(146)||a.hasChanged(132)||a.hasChanged(37)||a.hasChanged(77)||a.hasChanged(79)||a.hasChanged(80)||a.hasChanged(6)||a.hasChanged(7)||a.hasChanged(11)||a.hasChanged(9)||a.hasChanged(10)||a.hasChanged(14)||a.hasChanged(129)||a.hasChanged(50)||a.hasChanged(92)||a.hasChanged(131)}constructor(a,r,u,C){this.languageConfigurationService=C,this._cursorMoveConfigurationBrand=void 0,this._languageId=a;const f=u.options,h=f.get(146),v=f.get(50);this.readOnly=f.get(92),this.tabSize=r.tabSize,this.indentSize=r.indentSize,this.insertSpaces=r.insertSpaces,this.stickyTabStops=f.get(117),this.lineHeight=v.lineHeight,this.typicalHalfwidthCharacterWidth=v.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(h.height/this.lineHeight)-2),this.useTabStops=f.get(129),this.wordSeparators=f.get(132),this.emptySelectionClipboard=f.get(37),this.copyWithSyntaxHighlighting=f.get(25),this.multiCursorMergeOverlapping=f.get(77),this.multiCursorPaste=f.get(79),this.multiCursorLimit=f.get(80),this.autoClosingBrackets=f.get(6),this.autoClosingComments=f.get(7),this.autoClosingQuotes=f.get(11),this.autoClosingDelete=f.get(9),this.autoClosingOvertype=f.get(10),this.autoSurround=f.get(14),this.autoIndent=f.get(12),this.wordSegmenterLocales=f.get(131),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(a,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(a,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(a,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(a).getAutoClosingPairs();const w=this.languageConfigurationService.getLanguageConfiguration(a).getSurroundingPairs();if(w)for(const L of w)this.surroundingPairs[L.open]=L.close;const S=this.languageConfigurationService.getLanguageConfiguration(a).comments;this.blockCommentStartToken=S?.blockCommentStartToken??null}get electricChars(){if(!this._electricChars){this._electricChars={};const a=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();if(a)for(const r of a)this._electricChars[r]=!0}return this._electricChars}onElectricCharacter(a,r,u){const C=(0,E.createScopedLineTokens)(r,u-1),f=this.languageConfigurationService.getLanguageConfiguration(C.languageId).electricCharacter;return f?f.onElectricCharacter(a,C,u-C.firstCharOffset):null}normalizeIndentation(a){return(0,m.normalizeIndentation)(a,this.indentSize,this.insertSpaces)}_getShouldAutoClose(a,r,u){switch(r){case"beforeWhitespace":return p;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(a,u);case"always":return _;case"never":return b}}_getLanguageDefinedShouldAutoClose(a,r){const u=this.languageConfigurationService.getLanguageConfiguration(a).getAutoCloseBeforeSet(r);return C=>u.indexOf(C)!==-1}visibleColumnFromColumn(a,r){return y.CursorColumns.visibleColumnFromColumn(a.getLineContent(r.lineNumber),r.column,this.tabSize)}columnFromVisibleColumn(a,r,u){const C=y.CursorColumns.columnFromVisibleColumn(a.getLineContent(r),u,this.tabSize),f=a.getLineMinColumn(r);if(Ch?h:C}}e.CursorConfiguration=n;class o{static fromModelState(a){return new t(a)}static fromViewState(a){return new i(a)}static fromModelSelection(a){const r=I.Selection.liftSelection(a),u=new s(k.Range.fromPositions(r.getSelectionStart()),0,0,r.getPosition(),0);return o.fromModelState(u)}static fromModelSelections(a){const r=[];for(let u=0,C=a.length;un,s=p>o,g=po||fp||C0&&p--,E.columnSelect(m,_,b.fromViewLineNumber,b.fromViewVisualColumn,b.toViewLineNumber,p)}static columnSelectRight(m,_,b){let p=0;const n=Math.min(b.fromViewLineNumber,b.toViewLineNumber),o=Math.max(b.fromViewLineNumber,b.toViewLineNumber);for(let i=n;i<=o;i++){const s=_.getLineMaxColumn(i),g=m.visibleColumnFromColumn(_,new k.Position(i,s));p=Math.max(p,g)}let t=b.toViewVisualColumn;return tn.getLineMinColumn(o.lineNumber))return o.delta(void 0,-d.prevCharLength(n.getLineContent(o.lineNumber),o.column-1));if(o.lineNumber>1){const t=o.lineNumber-1;return new I.Position(t,n.getLineMaxColumn(t))}else return o}static leftPositionAtomicSoftTabs(n,o,t){if(o.column<=n.getLineIndentColumn(o.lineNumber)){const i=n.getLineMinColumn(o.lineNumber),s=n.getLineContent(o.lineNumber),g=y.AtomicTabMoveOperations.atomicPosition(s,o.column-1,t,0);if(g!==-1&&g+1>=i)return new I.Position(o.lineNumber,g+1)}return this.leftPosition(n,o)}static left(n,o,t){const i=n.stickyTabStops?b.leftPositionAtomicSoftTabs(o,t,n.tabSize):b.leftPosition(o,t);return new _(i.lineNumber,i.column,0)}static moveLeft(n,o,t,i,s){let g,c;if(t.hasSelection()&&!i)g=t.selection.startLineNumber,c=t.selection.startColumn;else{const l=t.position.delta(void 0,-(s-1)),a=o.normalizePosition(b.clipPositionColumn(l,o),0),r=b.left(n,o,a);g=r.lineNumber,c=r.column}return t.move(i,g,c,0)}static clipPositionColumn(n,o){return new I.Position(n.lineNumber,b.clipRange(n.column,o.getLineMinColumn(n.lineNumber),o.getLineMaxColumn(n.lineNumber)))}static clipRange(n,o,t){return nt?t:n}static rightPosition(n,o,t){return tr?(t=r,c?i=o.getLineMaxColumn(t):i=Math.min(o.getLineMaxColumn(t),i)):i=n.columnFromVisibleColumn(o,t,a),f?s=0:s=a-k.CursorColumns.visibleColumnFromColumn(o.getLineContent(t),i,n.tabSize),l!==void 0){const h=new I.Position(t,i),v=o.normalizePosition(h,l);s=s+(i-v.column),t=v.lineNumber,i=v.column}return new _(t,i,s)}static down(n,o,t,i,s,g,c){return this.vertical(n,o,t,i,s,t+g,c,4)}static moveDown(n,o,t,i,s){let g,c;t.hasSelection()&&!i?(g=t.selection.endLineNumber,c=t.selection.endColumn):(g=t.position.lineNumber,c=t.position.column);let l=0,a;do if(a=b.down(n,o,g+l,c,t.leftoverVisibleColumns,s,!0),o.normalizePosition(new I.Position(a.lineNumber,a.column),2).lineNumber>g)break;while(l++<10&&g+l1&&this._isBlankLine(o,s);)s--;for(;s>1&&!this._isBlankLine(o,s);)s--;return t.move(i,s,o.getLineMinColumn(s),0)}static moveToNextBlankLine(n,o,t,i){const s=o.getLineCount();let g=t.position.lineNumber;for(;g=C.length+1)return!1;const f=C.charAt(u.column-2),h=i.get(f);if(!h)return!1;if((0,I.isQuote)(f)){if(t==="never")return!1}else if(o==="never")return!1;const v=C.charAt(u.column-1);let w=!1;for(const S of h)S.open===f&&S.close===v&&(w=!0);if(!w)return!1;if(n==="auto"){let S=!1;for(let L=0,D=c.length;L1){const s=o.getLineContent(i.lineNumber),g=d.firstNonWhitespaceIndex(s),c=g===-1?s.length+1:g+1;if(i.column<=c){const l=t.visibleColumnFromColumn(o,i),a=E.CursorColumns.prevIndentTabStop(l,t.indentSize),r=t.columnFromVisibleColumn(o,i.lineNumber,a);return new m.Range(i.lineNumber,r,i.lineNumber,i.column)}}return m.Range.fromPositions(b.getPositionAfterDeleteLeft(i,o),i)}static getPositionAfterDeleteLeft(n,o){if(n.column>1){const t=d.getLeftDeleteOffset(n.column-1,o.getLineContent(n.lineNumber));return n.with(void 0,t+1)}else if(n.lineNumber>1){const t=n.lineNumber-1;return new _.Position(t,o.getLineMaxColumn(t))}else return n}static cut(n,o,t){const i=[];let s=null;t.sort((g,c)=>_.Position.compare(g.getStartPosition(),c.getEndPosition()));for(let g=0,c=t.length;g1&&s?.endLineNumber!==a.lineNumber?(r=a.lineNumber-1,u=o.getLineMaxColumn(a.lineNumber-1),C=a.lineNumber,f=o.getLineMaxColumn(a.lineNumber)):(r=a.lineNumber,u=1,C=a.lineNumber,f=o.getLineMaxColumn(a.lineNumber));const h=new m.Range(r,u,C,f);s=h,h.isEmpty()?i[g]=null:i[g]=new k.ReplaceCommand(h,"")}else i[g]=null;else i[g]=new k.ReplaceCommand(l,"")}return new I.EditOperationResult(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}e.DeleteOperations=b}),define(ne[199],se([1,0,11,76,234,166,9,4]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordPartOperations=e.WordOperations=void 0;class _{static _createWord(o,t,i,s,g){return{start:s,end:g,wordType:t,nextCharClass:i}}static _createIntlWord(o,t){return{start:o.index,end:o.index+o.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(o,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(s,o,i)}static _doFindPreviousWordOnLine(o,t,i){let s=0;const g=t.findPrevIntlWordBeforeOrAtOffset(o,i.column-2);for(let c=i.column-2;c>=0;c--){const l=o.charCodeAt(c),a=t.get(l);if(g&&c===g.index)return this._createIntlWord(g,a);if(a===0){if(s===2)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1));s=1}else if(a===2){if(s===1)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1));s=2}else if(a===1&&s!==0)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1))}return s!==0?this._createWord(o,s,1,0,this._findEndOfWord(o,t,s,0)):null}static _findEndOfWord(o,t,i,s){const g=t.findNextIntlWordAtOrAfterOffset(o,s),c=o.length;for(let l=s;l=0;c--){const l=o.charCodeAt(c),a=t.get(l);if(g&&c===g.index)return c;if(a===1||i===1&&a===2||i===2&&a===0)return c+1}return 0}static moveWordLeft(o,t,i,s,g){let c=i.lineNumber,l=i.column;l===1&&c>1&&(c=c-1,l=t.getLineMaxColumn(c));let a=_._findPreviousWordOnLine(o,t,new y.Position(c,l));if(s===0)return new y.Position(c,a?a.start+1:1);if(s===1)return!g&&a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1))),new y.Position(c,a?a.start+1:1);if(s===3){for(;a&&a.wordType===2;)a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1));return new y.Position(c,a?a.start+1:1)}return a&&l<=a.end+1&&(a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1))),new y.Position(c,a?a.end+1:1)}static _moveWordPartLeft(o,t){const i=t.lineNumber,s=o.getLineMaxColumn(i);if(t.column===1)return i>1?new y.Position(i-1,o.getLineMaxColumn(i-1)):t;const g=o.getLineContent(i);for(let c=t.column-1;c>1;c--){const l=g.charCodeAt(c-2),a=g.charCodeAt(c-1);if(l===95&&a!==95)return new y.Position(i,c);if(l===45&&a!==45)return new y.Position(i,c);if((d.isLowerAsciiLetter(l)||d.isAsciiDigit(l))&&d.isUpperAsciiLetter(a))return new y.Position(i,c);if(d.isUpperAsciiLetter(l)&&d.isUpperAsciiLetter(a)&&c+1=a.start+1&&(a=_._findNextWordOnLine(o,t,new y.Position(g,a.end+1))),a?c=a.start+1:c=t.getLineMaxColumn(g);return new y.Position(g,c)}static _moveWordPartRight(o,t){const i=t.lineNumber,s=o.getLineMaxColumn(i);if(t.column===s)return i1?r=1:(a--,r=s.getLineMaxColumn(a)):(u&&r<=u.end+1&&(u=_._findPreviousWordOnLine(i,s,new y.Position(a,u.start+1))),u?r=u.end+1:r>1?r=1:(a--,r=s.getLineMaxColumn(a))),new m.Range(a,r,l.lineNumber,l.column)}static deleteInsideWord(o,t,i){if(!i.isEmpty())return i;const s=new y.Position(i.positionLineNumber,i.positionColumn),g=this._deleteInsideWordWhitespace(t,s);return g||this._deleteInsideWordDetermineDeleteRange(o,t,s)}static _charAtIsWhitespace(o,t){const i=o.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(o,t){const i=o.getLineContent(t.lineNumber),s=i.length;if(s===0)return null;let g=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,g))return null;let c=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(i,c))return null;for(;g>0&&this._charAtIsWhitespace(i,g-1);)g--;for(;c+11?new m.Range(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberC.start+1<=i.column&&i.column<=C.end+1,l=(C,f)=>(C=Math.min(C,i.column),f=Math.max(f,i.column),new m.Range(i.lineNumber,C,i.lineNumber,f)),a=C=>{let f=C.start+1,h=C.end+1,v=!1;for(;h-11&&this._charAtIsWhitespace(s,f-2);)f--;return l(f,h)},r=_._findPreviousWordOnLine(o,t,i);if(r&&c(r))return a(r);const u=_._findNextWordOnLine(o,t,i);return u&&c(u)?a(u):r&&u?l(r.end+1,u.start+1):r?l(r.start+1,r.end+1):u?l(u.start+1,u.end+1):l(1,g+1)}static _deleteWordPartLeft(o,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=_._moveWordPartLeft(o,i);return new m.Range(i.lineNumber,i.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(o,t){const i=o.length;for(let s=t;s=f.start+1&&(f=_._findNextWordOnLine(i,s,new y.Position(a,f.end+1))),f?r=f.start+1:r!!o)}}),define(ne[235],se([1,0,19,76,233,199,9,4]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorMove=e.CursorMoveCommands=void 0;class _{static addCursorDown(n,o,t){const i=[];let s=0;for(let g=0,c=o.length;ga&&(r=a,u=n.model.getLineMaxColumn(r)),k.CursorState.fromModelState(new k.SingleCursorState(new m.Range(g.lineNumber,1,r,u),2,0,new y.Position(r,u),0))}const l=o.modelState.selectionStart.getStartPosition().lineNumber;if(g.lineNumberl){const a=n.getLineCount();let r=c.lineNumber+1,u=1;return r>a&&(r=a,u=n.getLineMaxColumn(r)),k.CursorState.fromViewState(o.viewState.move(!0,r,u,0))}else{const a=o.modelState.selectionStart.getEndPosition();return k.CursorState.fromModelState(o.modelState.move(!0,a.lineNumber,a.column,0))}}static word(n,o,t,i){const s=n.model.validatePosition(i);return k.CursorState.fromModelState(E.WordOperations.word(n.cursorConfig,n.model,o.modelState,t,s))}static cancelSelection(n,o){if(!o.modelState.hasSelection())return new k.CursorState(o.modelState,o.viewState);const t=o.viewState.position.lineNumber,i=o.viewState.position.column;return k.CursorState.fromViewState(new k.SingleCursorState(new m.Range(t,i,t,i),0,0,new y.Position(t,i),0))}static moveTo(n,o,t,i,s){if(t){if(o.modelState.selectionStartKind===1)return this.word(n,o,t,i);if(o.modelState.selectionStartKind===2)return this.line(n,o,t,i,s)}const g=n.model.validatePosition(i),c=s?n.coordinatesConverter.validateViewPosition(new y.Position(s.lineNumber,s.column),g):n.coordinatesConverter.convertModelPositionToViewPosition(g);return k.CursorState.fromViewState(o.viewState.move(t,c.lineNumber,c.column,0))}static simpleMove(n,o,t,i,s,g){switch(t){case 0:return g===4?this._moveHalfLineLeft(n,o,i):this._moveLeft(n,o,i,s);case 1:return g===4?this._moveHalfLineRight(n,o,i):this._moveRight(n,o,i,s);case 2:return g===2?this._moveUpByViewLines(n,o,i,s):this._moveUpByModelLines(n,o,i,s);case 3:return g===2?this._moveDownByViewLines(n,o,i,s):this._moveDownByModelLines(n,o,i,s);case 4:return g===2?o.map(c=>k.CursorState.fromViewState(I.MoveOperations.moveToPrevBlankLine(n.cursorConfig,n,c.viewState,i))):o.map(c=>k.CursorState.fromModelState(I.MoveOperations.moveToPrevBlankLine(n.cursorConfig,n.model,c.modelState,i)));case 5:return g===2?o.map(c=>k.CursorState.fromViewState(I.MoveOperations.moveToNextBlankLine(n.cursorConfig,n,c.viewState,i))):o.map(c=>k.CursorState.fromModelState(I.MoveOperations.moveToNextBlankLine(n.cursorConfig,n.model,c.modelState,i)));case 6:return this._moveToViewMinColumn(n,o,i);case 7:return this._moveToViewFirstNonWhitespaceColumn(n,o,i);case 8:return this._moveToViewCenterColumn(n,o,i);case 9:return this._moveToViewMaxColumn(n,o,i);case 10:return this._moveToViewLastNonWhitespaceColumn(n,o,i);default:return null}}static viewportMove(n,o,t,i,s){const g=n.getCompletelyVisibleViewRange(),c=n.coordinatesConverter.convertViewRangeToModelRange(g);switch(t){case 11:{const l=this._firstLineNumberInRange(n.model,c,s),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 13:{const l=this._lastLineNumberInRange(n.model,c,s),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 12:{const l=Math.round((c.startLineNumber+c.endLineNumber)/2),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 14:{const l=[];for(let a=0,r=o.length;at.endLineNumber-1?g=t.endLineNumber-1:sk.CursorState.fromViewState(I.MoveOperations.moveLeft(n.cursorConfig,n,s.viewState,t,i)))}static _moveHalfLineLeft(n,o,t){const i=[];for(let s=0,g=o.length;sk.CursorState.fromViewState(I.MoveOperations.moveRight(n.cursorConfig,n,s.viewState,t,i)))}static _moveHalfLineRight(n,o,t){const i=[];for(let s=0,g=o.length;sn.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(n=>n.asCursorState())}getViewPositions(){return this.cursors.map(n=>n.viewState.position)}getTopMostViewPosition(){return(0,k.findFirstMin)(this.cursors,(0,d.compareBy)(n=>n.viewState.position,y.Position.compare)).viewState.position}getBottomMostViewPosition(){return(0,k.findLastMax)(this.cursors,(0,d.compareBy)(n=>n.viewState.position,y.Position.compare)).viewState.position}getSelections(){return this.cursors.map(n=>n.modelState.selection)}getViewSelections(){return this.cursors.map(n=>n.viewState.selection)}setSelections(n){this.setStates(I.CursorState.fromModelSelections(n))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(n){n!==null&&(this.cursors[0].setState(this.context,n[0].modelState,n[0].viewState),this._setSecondaryStates(n.slice(1)))}_setSecondaryStates(n){const o=this.cursors.length-1,t=n.length;if(ot){const i=o-t;for(let s=0;s=n+1&&this.lastAddedCursorIndex--,this.cursors[n+1].dispose(this.context),this.cursors.splice(n+1,1)}normalize(){if(this.cursors.length===1)return;const n=this.cursors.slice(0),o=[];for(let t=0,i=n.length;tt.selection,m.Range.compareRangesUsingStarts));for(let t=0;tu&&v.index--;n.splice(u,1),o.splice(r,1),this._removeSecondaryCursor(u-1),t--}}}}e.CursorCollection=b}),define(ne[568],se([1,0,131]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterPairSupport=void 0;class k{static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> - `}static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> - `}constructor(E){if(E.autoClosingPairs?this._autoClosingPairs=E.autoClosingPairs.map(y=>new d.StandardAutoClosingPairConditional(y)):E.brackets?this._autoClosingPairs=E.brackets.map(y=>new d.StandardAutoClosingPairConditional({open:y[0],close:y[1]})):this._autoClosingPairs=[],E.__electricCharacterSupport&&E.__electricCharacterSupport.docComment){const y=E.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new d.StandardAutoClosingPairConditional({open:y.open,close:y.close||""}))}this._autoCloseBeforeForQuotes=typeof E.autoCloseBefore=="string"?E.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof E.autoCloseBefore=="string"?E.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=E.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(E){return E?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}e.CharacterPairSupport=k}),define(ne[569],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentRulesSupport=void 0;function d(I){return I.global&&(I.lastIndex=0),!0}class k{constructor(E){this._indentationRules=E}shouldIncrease(E){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&d(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(E))}shouldDecrease(E){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&d(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(E))}shouldIndentNextLine(E){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&d(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(E))}shouldIgnore(E){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&d(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(E))}getIndentMetadata(E){let y=0;return this.shouldIncrease(E)&&(y+=1),this.shouldDecrease(E)&&(y+=2),this.shouldIndentNextLine(E)&&(y+=4),this.shouldIgnore(E)&&(y+=8),y}}e.IndentRulesSupport=k}),define(ne[570],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BasicInplaceReplace=void 0;class d{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}static{this.INSTANCE=new d}navigateValueSet(I,E,y,m,_){if(I&&E){const b=this.doNavigateValueSet(E,_);if(b)return{range:I,value:b}}if(y&&m){const b=this.doNavigateValueSet(m,_);if(b)return{range:y,value:b}}return null}doNavigateValueSet(I,E){const y=this.numberReplace(I,E);return y!==null?y:this.textReplace(I,E)}numberReplace(I,E){const y=Math.pow(10,I.length-(I.lastIndexOf(".")+1));let m=Number(I);const _=parseFloat(I);return!isNaN(m)&&!isNaN(_)&&m===_?m===0&&!E?null:(m=Math.floor(m*y),m+=E?y:-y,String(m/y)):null}textReplace(I,E){return this.valueSetsReplace(this._defaultValueSet,I,E)}valueSetsReplace(I,E,y){let m=null;for(let _=0,b=I.length;m===null&&_=0?(m+=y?1:-1,m<0?m=I.length-1:m%=I.length,I[m]):null}}e.BasicInplaceReplace=d}),define(ne[571],se([1,0,8,11,131]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OnEnterSupport=void 0;class E{constructor(m){m=m||{},m.brackets=m.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],m.brackets.forEach(_=>{const b=E._createOpenBracketRegExp(_[0]),p=E._createCloseBracketRegExp(_[1]);b&&p&&this._brackets.push({open:_[0],openRegExp:b,close:_[1],closeRegExp:p})}),this._regExpRules=m.onEnterRules||[]}onEnter(m,_,b,p){if(m>=3)for(let n=0,o=this._regExpRules.length;ns.reg?(s.reg.lastIndex=0,s.reg.test(s.text)):!0))return t.action}if(m>=2&&b.length>0&&p.length>0)for(let n=0,o=this._brackets.length;n=2&&b.length>0){for(let n=0,o=this._brackets.length;n{const S=n(v.token,w.token);return S!==0?S:v.index-w.index});let c=0,l="000000",a="ffffff";for(;s.length>=1&&s[0].token==="";){const v=s.shift();v.fontStyle!==-1&&(c=v.fontStyle),v.foreground!==null&&(l=v.foreground),v.background!==null&&(a=v.background)}const r=new m;for(const v of g)r.getId(v);const u=r.getId(l),C=r.getId(a),f=new o(c,u,C),h=new t(f);for(let v=0,w=s.length;v"u"){const a=this._match(c),r=p(c);l=(a.metadata|r<<8)>>>0,this._cache.set(c,l)}return(l|g<<0)>>>0}}e.TokenTheme=_;const b=/\b(comment|string|regex|regexp)\b/;function p(s){const g=s.match(b);if(!g)return 0;switch(g[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function n(s,g){return sg?1:0}class o{constructor(g,c,l){this._themeTrieElementRuleBrand=void 0,this._fontStyle=g,this._foreground=c,this._background=l,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new o(this._fontStyle,this._foreground,this._background)}acceptOverwrite(g,c,l){g!==-1&&(this._fontStyle=g),c!==0&&(this._foreground=c),l!==0&&(this._background=l),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}e.ThemeTrieElementRule=o;class t{constructor(g){this._themeTrieElementBrand=void 0,this._mainRule=g,this._children=new Map}match(g){if(g==="")return this._mainRule;const c=g.indexOf(".");let l,a;c===-1?(l=g,a=""):(l=g.substring(0,c),a=g.substring(c+1));const r=this._children.get(l);return typeof r<"u"?r.match(a):this._mainRule}insert(g,c,l,a){if(g===""){this._mainRule.acceptOverwrite(c,l,a);return}const r=g.indexOf(".");let u,C;r===-1?(u=g,C=""):(u=g.substring(0,r),C=g.substring(r+1));let f=this._children.get(u);typeof f>"u"&&(f=new t(this._mainRule.clone()),this._children.set(u,f)),f.insert(C,c,l,a)}}e.ThemeTrieElement=t;function i(s){const g=[];for(let c=1,l=s.length;c=m&&(h=h-C%m),h}function t(C,f){return C.reduce((h,v)=>o(h,f(v)),e.lengthZero)}function i(C,f){return C===f}function s(C,f){const h=C,v=f;if(v-h<=0)return e.lengthZero;const S=Math.floor(h/m),L=Math.floor(v/m),D=v-L*m;if(S===L){const T=h-S*m;return _(0,D-T)}else return _(L-S,D)}function g(C,f){return C=f}function a(C){return _(C.lineNumber-1,C.column-1)}function r(C,f){const h=C,v=Math.floor(h/m),w=h-v*m,S=f,L=Math.floor(S/m),D=S-L*m;return new k.Range(v+1,w+1,L+1,D+1)}function u(C){const f=(0,d.splitLines)(C);return _(f.length-1,f[f.length-1].length)}}),define(ne[200],se([1,0,4,106]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BeforeEditPositionMapper=e.TextEditInfo=void 0;class I{static fromModelContentChanges(_){return _.map(p=>{const n=d.Range.lift(p.range);return new I((0,k.positionToLength)(n.getStartPosition()),(0,k.positionToLength)(n.getEndPosition()),(0,k.lengthOfString)(p.text))}).reverse()}constructor(_,b,p){this.startOffset=_,this.endOffset=b,this.newLength=p}toString(){return`[${(0,k.lengthToObj)(this.startOffset)}...${(0,k.lengthToObj)(this.endOffset)}) -> ${(0,k.lengthToObj)(this.newLength)}`}}e.TextEditInfo=I;class E{constructor(_){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=_.map(b=>y.from(b))}getOffsetBeforeChange(_){return this.adjustNextEdit(_),this.translateCurToOld(_)}getDistanceToNextChange(_){this.adjustNextEdit(_);const b=this.edits[this.nextEditIdx],p=b?this.translateOldToCur(b.offsetObj):null;return p===null?null:(0,k.lengthDiffNonNegative)(_,p)}translateOldToCur(_){return _.lineCount===this.deltaLineIdxInOld?(0,k.toLength)(_.lineCount+this.deltaOldToNewLineCount,_.columnCount+this.deltaOldToNewColumnCount):(0,k.toLength)(_.lineCount+this.deltaOldToNewLineCount,_.columnCount)}translateCurToOld(_){const b=(0,k.lengthToObj)(_);return b.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,k.toLength)(b.lineCount-this.deltaOldToNewLineCount,b.columnCount-this.deltaOldToNewColumnCount):(0,k.toLength)(b.lineCount-this.deltaOldToNewLineCount,b.columnCount)}adjustNextEdit(_){for(;this.nextEditIdx!0)||[];return o&&a.unshift(o),a}const l=[];for(;o&&!(0,I.lengthIsZero)(c);){const[a,r]=o.splitAt(c);l.push(a),c=(0,I.lengthDiffNonNegative)(a.lengthAfter,c),o=r??p.dequeue()}return(0,I.lengthIsZero)(c)||l.push(new y(!1,c,c)),l}const i=[];function s(c,l,a){if(i.length>0&&(0,I.lengthEquals)(i[i.length-1].endOffset,c)){const r=i[i.length-1];i[i.length-1]=new k.TextEditInfo(r.startOffset,l,(0,I.lengthAdd)(r.newLength,a))}else i.push({startOffset:c,endOffset:l,newLength:a})}let g=I.lengthZero;for(const c of n){const l=t(c.lengthBefore);if(c.modified){const a=(0,I.sumLengths)(l,u=>u.lengthBefore),r=(0,I.lengthAdd)(g,a);s(g,r,c.lengthAfter),g=r}else for(const a of l){const r=g;g=(0,I.lengthAdd)(g,a.lengthBefore),a.modified&&s(r,g,a.lengthAfter)}}return i}class y{constructor(b,p,n){this.modified=b,this.lengthBefore=p,this.lengthAfter=n}splitAt(b){const p=(0,I.lengthDiffNonNegative)(b,this.lengthAfter);return(0,I.lengthEquals)(p,I.lengthZero)?[this,void 0]:this.modified?[new y(this.modified,this.lengthBefore,b),new y(this.modified,I.lengthZero,p)]:[new y(this.modified,b,b),new y(this.modified,p,p)]}toString(){return`${this.modified?"M":"U"}:${(0,I.lengthToObj)(this.lengthBefore)} -> ${(0,I.lengthToObj)(this.lengthAfter)}`}}function m(_){const b=[];let p=I.lengthZero;for(const n of _){const o=(0,I.lengthDiffNonNegative)(p,n.startOffset);(0,I.lengthIsZero)(o)||b.push(new y(!1,o,o));const t=(0,I.lengthDiffNonNegative)(n.startOffset,n.endOffset);b.push(new y(!0,t,n.newLength)),p=n.endOffset}return b}}),define(ne[573],se([1,0,106]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeReader=void 0;class k{constructor(m){this.lastOffset=d.lengthZero,this.nextNodes=[m],this.offsets=[d.lengthZero],this.idxs=[]}readLongestNodeAt(m,_){if((0,d.lengthLessThan)(m,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=m;;){const b=E(this.nextNodes);if(!b)return;const p=E(this.offsets);if((0,d.lengthLessThan)(m,p))return;if((0,d.lengthLessThan)(p,m))if((0,d.lengthAdd)(p,b.length)<=m)this.nextNodeAfterCurrent();else{const n=I(b);n!==-1?(this.nextNodes.push(b.getChild(n)),this.offsets.push(p),this.idxs.push(n)):this.nextNodeAfterCurrent()}else{if(_(b))return this.nextNodeAfterCurrent(),b;{const n=I(b);if(n===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(b.getChild(n)),this.offsets.push(p),this.idxs.push(n)}}}}nextNodeAfterCurrent(){for(;;){const m=E(this.offsets),_=E(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const b=E(this.nextNodes),p=I(b,this.idxs[this.idxs.length-1]);if(p!==-1){this.nextNodes.push(b.getChild(p)),this.offsets.push((0,d.lengthAdd)(m,_.length)),this.idxs[this.idxs.length-1]=p;break}else this.idxs.pop()}}}e.NodeReader=k;function I(y,m=-1){for(;;){if(m++,m>=y.childrenLength)return-1;if(y.getChild(m))return m}}function E(y){return y.length>0?y[y.length-1]:void 0}}),define(ne[149],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DenseKeyProvider=e.identityKeyProvider=e.SmallImmutableSet=void 0;const d=[];class k{static{this.cache=new Array(129)}static create(y,m){if(y<=128&&m.length===0){let _=k.cache[y];return _||(_=new k(y,m),k.cache[y]=_),_}return new k(y,m)}static{this.empty=k.create(0,d)}static getEmpty(){return this.empty}constructor(y,m){this.items=y,this.additionalItems=m}add(y,m){const _=m.getKey(y);let b=_>>5;if(b===0){const n=1<<_|this.items;return n===this.items?this:k.create(n,this.additionalItems)}b--;const p=this.additionalItems.slice(0);for(;p.length=b.length)return null;const s=p,g=b[s].listHeight;for(p++;p=2?I(s===0&&p===b.length?b:b.slice(s,p),!1):b[s]}let o=n(),t=n();if(!t)return o;for(let s=n();s;s=n())E(o,t)<=E(t,s)?(o=y(o,t),t=s):t=y(t,s);return y(o,t)}function I(b,p=!1){if(b.length===0)return null;if(b.length===1)return b[0];let n=b.length;for(;n>3;){const o=n>>1;for(let t=0;t=3?b[2]:null,p)}function E(b,p){return Math.abs(b.listHeight-p.listHeight)}function y(b,p){return b.listHeight===p.listHeight?d.ListAstNode.create23(b,p,null,!1):b.listHeight>p.listHeight?m(b,p):_(p,b)}function m(b,p){b=b.toMutable();let n=b;const o=[];let t;for(;;){if(p.listHeight===n.listHeight){t=p;break}if(n.kind!==4)throw new Error("unexpected");o.push(n),n=n.makeLastElementMutable()}for(let i=o.length-1;i>=0;i--){const s=o[i];t?s.childrenLength>=3?t=d.ListAstNode.create23(s.unappendChild(),t,null,!1):(s.appendChildOfSameHeight(t),t=void 0):s.handleChildrenChanged()}return t?d.ListAstNode.create23(b,t,null,!1):b}function _(b,p){b=b.toMutable();let n=b;const o=[];for(;p.listHeight!==n.listHeight;){if(n.kind!==4)throw new Error("unexpected");o.push(n),n=n.makeFirstElementMutable()}let t=p;for(let i=o.length-1;i>=0;i--){const s=o[i];t?s.childrenLength>=3?t=d.ListAstNode.create23(t,s.unprependChild(),null,!1):(s.prependChildOfSameHeight(t),t=void 0):s.handleChildrenChanged()}return t?d.ListAstNode.create23(t,b,null,!1):b}}),define(ne[320],se([1,0,201,200,149,106,574,573]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseDocument=_;function _(p,n,o,t){return new b(p,n,o,t).parseDocument()}class b{constructor(n,o,t,i){if(this.tokenizer=n,this.createImmutableLists=i,this._itemsConstructed=0,this._itemsFromCache=0,t&&i)throw new Error("Not supported");this.oldNodeReader=t?new m.NodeReader(t):void 0,this.positionMapper=new k.BeforeEditPositionMapper(o)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let n=this.parseList(I.SmallImmutableSet.getEmpty(),0);return n||(n=d.ListAstNode.getEmpty()),n}parseList(n,o){const t=[];for(;;){let s=this.tryReadChildFromCache(n);if(!s){const g=this.tokenizer.peek();if(!g||g.kind===2&&g.bracketIds.intersects(n))break;s=this.parseChild(n,o+1)}s.kind===4&&s.childrenLength===0||t.push(s)}return this.oldNodeReader?(0,y.concat23Trees)(t):(0,y.concat23TreesOfSameHeight)(t,this.createImmutableLists)}tryReadChildFromCache(n){if(this.oldNodeReader){const o=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(o===null||!(0,E.lengthIsZero)(o)){const t=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),i=>o!==null&&!(0,E.lengthLessThan)(i.length,o)?!1:i.canBeReused(n));if(t)return this._itemsFromCache++,this.tokenizer.skip(t.length),t}}}parseChild(n,o){this._itemsConstructed++;const t=this.tokenizer.read();switch(t.kind){case 2:return new d.InvalidBracketAstNode(t.bracketIds,t.length);case 0:return t.astNode;case 1:{if(o>300)return new d.TextAstNode(t.length);const i=n.merge(t.bracketIds),s=this.parseList(i,o+1),g=this.tokenizer.peek();return g&&g.kind===2&&(g.bracketId===t.bracketId||g.bracketIds.intersects(t.bracketIds))?(this.tokenizer.read(),d.PairAstNode.create(t.astNode,s,g.astNode)):d.PairAstNode.create(t.astNode,s,null)}default:throw new Error("unexpected")}}}}),define(ne[236],se([1,0,8,148,201,106,149]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FastTokenizer=e.TextBufferTokenizer=e.Token=void 0;class m{constructor(o,t,i,s,g){this.length=o,this.kind=t,this.bracketId=i,this.bracketIds=s,this.astNode=g}}e.Token=m;class _{constructor(o,t){this.textModel=o,this.bracketTokens=t,this.reader=new b(this.textModel,this.bracketTokens),this._offset=E.lengthZero,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=o.getLineCount(),this.textBufferLastLineLength=o.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,E.toLength)(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(o){this.didPeek=!1,this._offset=(0,E.lengthAdd)(this._offset,o);const t=(0,E.lengthToObj)(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let o;return this.peeked?(this.didPeek=!1,o=this.peeked):o=this.reader.read(),o&&(this._offset=(0,E.lengthAdd)(this._offset,o.length)),o}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}e.TextBufferTokenizer=_;class b{constructor(o,t){this.textModel=o,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=o.getLineCount(),this.textBufferLastLineLength=o.getLineLength(this.textBufferLineCount)}setPosition(o,t){o===this.lineIdx?(this.lineCharOffset=t,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=o,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const g=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,E.lengthGetColumnCountIfZeroLineCount)(g.length),g}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const o=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const g=this.lineTokens,c=g.getCount();let l=null;if(this.lineTokenOffset1e3))break;if(i>1500)break}const s=(0,E.lengthDiff)(o,t,this.lineIdx,this.lineCharOffset);return new m(s,0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode(s))}}class p{constructor(o,t){this.text=o,this._offset=E.lengthZero,this.idx=0;const i=t.getRegExpStr(),s=i?new RegExp(i+`| -`,"gi"):null,g=[];let c,l=0,a=0,r=0,u=0;const C=[];for(let v=0;v<60;v++)C.push(new m((0,E.toLength)(0,v),0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode((0,E.toLength)(0,v))));const f=[];for(let v=0;v<60;v++)f.push(new m((0,E.toLength)(1,v),0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode((0,E.toLength)(1,v))));if(s)for(s.lastIndex=0;(c=s.exec(o))!==null;){const v=c.index,w=c[0];if(w===` -`)l++,a=v+1;else{if(r!==v){let S;if(u===l){const L=v-r;if(L_(o)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const n=this.getRegExpStr();this._regExpGlobal=n?new RegExp(n,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(n){return this.map.get(n.toLowerCase())}findClosingTokenText(n){for(const[o,t]of this.map)if(t.kind===2&&t.bracketIds.intersects(n))return o}get isEmpty(){return this.map.size===0}}e.BracketTokens=m;function _(p){let n=(0,d.escapeRegExpCharacters)(p);return/^[\w ]+/.test(p)&&(n=`\\b${n}`),/[\w ]+$/.test(p)&&(n=`${n}\\b`),n}class b{constructor(n,o){this.denseKeyProvider=n,this.getLanguageConfiguration=o,this.languageIdToBracketTokens=new Map}didLanguageChange(n){return this.languageIdToBracketTokens.has(n)}getSingleLanguageBracketTokens(n){let o=this.languageIdToBracketTokens.get(n);return o||(o=m.createFromLanguage(this.getLanguageConfiguration(n),this.denseKeyProvider),this.languageIdToBracketTokens.set(n,o)),o}}e.LanguageAgnosticBracketTokens=b}),define(ne[575],se([1,0,321,106,320,149,236]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fixBracketsInLine=m;function m(b,p){const n=new E.DenseKeyProvider,o=new d.LanguageAgnosticBracketTokens(n,l=>p.getLanguageConfiguration(l)),t=new y.TextBufferTokenizer(new _([b]),o),i=(0,I.parseDocument)(t,[],void 0,!0);let s="";const g=b.getLineContent();function c(l,a){if(l.kind===2)if(c(l.openingBracket,a),a=(0,k.lengthAdd)(a,l.openingBracket.length),l.child&&(c(l.child,a),a=(0,k.lengthAdd)(a,l.child.length)),l.closingBracket)c(l.closingBracket,a),a=(0,k.lengthAdd)(a,l.closingBracket.length);else{const u=o.getSingleLanguageBracketTokens(l.openingBracket.languageId).findClosingTokenText(l.openingBracket.bracketIds);s+=u}else if(l.kind!==3){if(l.kind===0||l.kind===1)s+=g.substring((0,k.lengthGetColumnCountIfZeroLineCount)(a),(0,k.lengthGetColumnCountIfZeroLineCount)((0,k.lengthAdd)(a,l.length)));else if(l.kind===4)for(const r of l.children)c(r,a),a=(0,k.lengthAdd)(a,r.length)}}return c(i,k.lengthZero),s}class _{constructor(p){this.lines=p,this.tokenization={getLineTokens:n=>this.lines[n-1]}}getLineCount(){return this.lines.length}getLineLength(p){return this.lines[p-1].getLineContent().length}}}),define(ne[576],se([1,0,13]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FixedArray=void 0;class k{constructor(y){this._default=y,this._store=[]}get(y){return y=this._store.length;)this._store[this._store.length]=this._default;this._store[y]=m}replace(y,m,_){if(y>=this._store.length)return;if(m===0){this.insert(y,_);return}else if(_===0){this.delete(y,m);return}const b=this._store.slice(0,y),p=this._store.slice(y+m),n=I(_,this._default);this._store=b.concat(n,p)}delete(y,m){m===0||y>=this._store.length||this._store.splice(y,m)}insert(y,m){if(m===0||y>=this._store.length)return;const _=[];for(let b=0;b0&&o>0||t>0&&i>0)return;const s=Math.abs(o-i),g=Math.abs(n-t);if(s===0){b.spacesDiff=g,g>0&&0<=t-1&&t-10?b++:v>1&&p++,k(n,o,u,h,g),g.looksLikeAlignment&&!(m&&y===g.spacesDiff)))continue;const S=g.spacesDiff;S<=i&&s[S]++,n=u,o=h}let c=m;b!==p&&(c=b{const u=s[r];u>a&&(a=u,l=r)}),l===4&&s[4]>0&&s[2]>0&&s[2]>=s[4]/2&&(l=2)}return{insertSpaces:c,tabSize:l}}}),define(ne[578],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IntervalTree=e.SENTINEL=e.IntervalNode=void 0,e.getNodeColor=d,e.nodeAcceptEdit=l,e.recomputeMaxEnd=P,e.intervalCompare=O;function d(F){return(F.metadata&1)>>>0}function k(F,x){F.metadata=F.metadata&254|x<<0}function I(F){return(F.metadata&2)>>>1===1}function E(F,x){F.metadata=F.metadata&253|(x?1:0)<<1}function y(F){return(F.metadata&4)>>>2===1}function m(F,x){F.metadata=F.metadata&251|(x?1:0)<<2}function _(F){return(F.metadata&64)>>>6===1}function b(F,x){F.metadata=F.metadata&191|(x?1:0)<<6}function p(F){return(F.metadata&24)>>>3}function n(F,x){F.metadata=F.metadata&231|x<<3}function o(F){return(F.metadata&32)>>>5===1}function t(F,x){F.metadata=F.metadata&223|(x?1:0)<<5}class i{constructor(x,W,V){this.metadata=0,this.parent=this,this.left=this,this.right=this,k(this,1),this.start=W,this.end=V,this.delta=0,this.maxEnd=V,this.id=x,this.ownerId=0,this.options=null,m(this,!1),b(this,!1),n(this,1),t(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=W,this.cachedAbsoluteEnd=V,this.range=null,E(this,!1)}reset(x,W,V,q){this.start=W,this.end=V,this.maxEnd=V,this.cachedVersionId=x,this.cachedAbsoluteStart=W,this.cachedAbsoluteEnd=V,this.range=q}setOptions(x){this.options=x;const W=this.options.className;m(this,W==="squiggly-error"||W==="squiggly-warning"||W==="squiggly-info"),b(this,this.options.glyphMarginClassName!==null),n(this,this.options.stickiness),t(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(x,W,V){this.cachedVersionId!==V&&(this.range=null),this.cachedVersionId=V,this.cachedAbsoluteStart=x,this.cachedAbsoluteEnd=W}detach(){this.parent=null,this.left=null,this.right=null}}e.IntervalNode=i,e.SENTINEL=new i(null,0,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,k(e.SENTINEL,0);class s{constructor(){this.root=e.SENTINEL,this.requestNormalizeDelta=!1}intervalSearch(x,W,V,q,H,z){return this.root===e.SENTINEL?[]:h(this,x,W,V,q,H,z)}search(x,W,V,q){return this.root===e.SENTINEL?[]:f(this,x,W,V,q)}collectNodesFromOwner(x){return u(this,x)}collectNodesPostOrder(){return C(this)}insert(x){v(this,x),this._normalizeDeltaIfNecessary()}delete(x){S(this,x),this._normalizeDeltaIfNecessary()}resolveNode(x,W){const V=x;let q=0;for(;x!==this.root;)x===x.parent.right&&(q+=x.parent.delta),x=x.parent;const H=V.start+q,z=V.end+q;V.setCachedOffsets(H,z,W)}acceptReplace(x,W,V,q){const H=a(this,x,x+W);for(let z=0,U=H.length;zW||V===1?!1:V===2?!0:x}function l(F,x,W,V,q){const H=p(F),z=H===0||H===2,U=H===1||H===2,j=W-x,Y=V,G=Math.min(j,Y),K=F.start;let R=!1;const J=F.end;let ie=!1;x<=K&&J<=W&&o(F)&&(F.start=x,R=!0,F.end=x,ie=!0);{const he=q?1:j>0?2:0;!R&&c(K,z,x,he)&&(R=!0),!ie&&c(J,U,x,he)&&(ie=!0)}if(G>0&&!q){const he=j>Y?2:0;!R&&c(K,z,x+G,he)&&(R=!0),!ie&&c(J,U,x+G,he)&&(ie=!0)}{const he=q?1:0;!R&&c(K,z,W,he)&&(F.start=x+Y,R=!0),!ie&&c(J,U,W,he)&&(F.end=x+Y,ie=!0)}const ue=Y-j;R||(F.start=Math.max(0,K+ue)),ie||(F.end=Math.max(0,J+ue)),F.start>F.end&&(F.end=F.start)}function a(F,x,W){let V=F.root,q=0,H=0,z=0,U=0;const j=[];let Y=0;for(;V!==e.SENTINEL;){if(I(V)){E(V.left,!1),E(V.right,!1),V===V.parent.right&&(q-=V.parent.delta),V=V.parent;continue}if(!I(V.left)){if(H=q+V.maxEnd,HW){E(V,!0);continue}if(U=q+V.end,U>=x&&(V.setCachedOffsets(z,U,0),j[Y++]=V),E(V,!0),V.right!==e.SENTINEL&&!I(V.right)){q+=V.delta,V=V.right;continue}}return E(F.root,!1),j}function r(F,x,W,V){let q=F.root,H=0,z=0,U=0;const j=V-(W-x);for(;q!==e.SENTINEL;){if(I(q)){E(q.left,!1),E(q.right,!1),q===q.parent.right&&(H-=q.parent.delta),P(q),q=q.parent;continue}if(!I(q.left)){if(z=H+q.maxEnd,zW){q.start+=j,q.end+=j,q.delta+=j,(q.delta<-1073741824||q.delta>1073741824)&&(F.requestNormalizeDelta=!0),E(q,!0);continue}if(E(q,!0),q.right!==e.SENTINEL&&!I(q.right)){H+=q.delta,q=q.right;continue}}E(F.root,!1)}function u(F,x){let W=F.root;const V=[];let q=0;for(;W!==e.SENTINEL;){if(I(W)){E(W.left,!1),E(W.right,!1),W=W.parent;continue}if(W.left!==e.SENTINEL&&!I(W.left)){W=W.left;continue}if(W.ownerId===x&&(V[q++]=W),E(W,!0),W.right!==e.SENTINEL&&!I(W.right)){W=W.right;continue}}return E(F.root,!1),V}function C(F){let x=F.root;const W=[];let V=0;for(;x!==e.SENTINEL;){if(I(x)){E(x.left,!1),E(x.right,!1),x=x.parent;continue}if(x.left!==e.SENTINEL&&!I(x.left)){x=x.left;continue}if(x.right!==e.SENTINEL&&!I(x.right)){x=x.right;continue}W[V++]=x,E(x,!0)}return E(F.root,!1),W}function f(F,x,W,V,q){let H=F.root,z=0,U=0,j=0;const Y=[];let G=0;for(;H!==e.SENTINEL;){if(I(H)){E(H.left,!1),E(H.right,!1),H===H.parent.right&&(z-=H.parent.delta),H=H.parent;continue}if(H.left!==e.SENTINEL&&!I(H.left)){H=H.left;continue}U=z+H.start,j=z+H.end,H.setCachedOffsets(U,j,V);let K=!0;if(x&&H.ownerId&&H.ownerId!==x&&(K=!1),W&&y(H)&&(K=!1),q&&!_(H)&&(K=!1),K&&(Y[G++]=H),E(H,!0),H.right!==e.SENTINEL&&!I(H.right)){z+=H.delta,H=H.right;continue}}return E(F.root,!1),Y}function h(F,x,W,V,q,H,z){let U=F.root,j=0,Y=0,G=0,K=0;const R=[];let J=0;for(;U!==e.SENTINEL;){if(I(U)){E(U.left,!1),E(U.right,!1),U===U.parent.right&&(j-=U.parent.delta),U=U.parent;continue}if(!I(U.left)){if(Y=j+U.maxEnd,YW){E(U,!0);continue}if(K=j+U.end,K>=x){U.setCachedOffsets(G,K,H);let ie=!0;V&&U.ownerId&&U.ownerId!==V&&(ie=!1),q&&y(U)&&(ie=!1),z&&!_(U)&&(ie=!1),ie&&(R[J++]=U)}if(E(U,!0),U.right!==e.SENTINEL&&!I(U.right)){j+=U.delta,U=U.right;continue}}return E(F.root,!1),R}function v(F,x){if(F.root===e.SENTINEL)return x.parent=e.SENTINEL,x.left=e.SENTINEL,x.right=e.SENTINEL,k(x,0),F.root=x,F.root;w(F,x),N(x.parent);let W=x;for(;W!==F.root&&d(W.parent)===1;)if(W.parent===W.parent.parent.left){const V=W.parent.parent.right;d(V)===1?(k(W.parent,0),k(V,0),k(W.parent.parent,1),W=W.parent.parent):(W===W.parent.right&&(W=W.parent,T(F,W)),k(W.parent,0),k(W.parent.parent,1),M(F,W.parent.parent))}else{const V=W.parent.parent.left;d(V)===1?(k(W.parent,0),k(V,0),k(W.parent.parent,1),W=W.parent.parent):(W===W.parent.left&&(W=W.parent,M(F,W)),k(W.parent,0),k(W.parent.parent,1),T(F,W.parent.parent))}return k(F.root,0),x}function w(F,x){let W=0,V=F.root;const q=x.start,H=x.end;for(;;)if(O(q,H,V.start+W,V.end+W)<0)if(V.left===e.SENTINEL){x.start-=W,x.end-=W,x.maxEnd-=W,V.left=x;break}else V=V.left;else if(V.right===e.SENTINEL){x.start-=W+V.delta,x.end-=W+V.delta,x.maxEnd-=W+V.delta,V.right=x;break}else W+=V.delta,V=V.right;x.parent=V,x.left=e.SENTINEL,x.right=e.SENTINEL,k(x,1)}function S(F,x){let W,V;if(x.left===e.SENTINEL?(W=x.right,V=x,W.delta+=x.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),W.start+=x.delta,W.end+=x.delta):x.right===e.SENTINEL?(W=x.left,V=x):(V=L(x.right),W=V.right,W.start+=V.delta,W.end+=V.delta,W.delta+=V.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),V.start+=x.delta,V.end+=x.delta,V.delta=x.delta,(V.delta<-1073741824||V.delta>1073741824)&&(F.requestNormalizeDelta=!0)),V===F.root){F.root=W,k(W,0),x.detach(),D(),P(W),F.root.parent=e.SENTINEL;return}const q=d(V)===1;if(V===V.parent.left?V.parent.left=W:V.parent.right=W,V===x?W.parent=V.parent:(V.parent===x?W.parent=V:W.parent=V.parent,V.left=x.left,V.right=x.right,V.parent=x.parent,k(V,d(x)),x===F.root?F.root=V:x===x.parent.left?x.parent.left=V:x.parent.right=V,V.left!==e.SENTINEL&&(V.left.parent=V),V.right!==e.SENTINEL&&(V.right.parent=V)),x.detach(),q){N(W.parent),V!==x&&(N(V),N(V.parent)),D();return}N(W),N(W.parent),V!==x&&(N(V),N(V.parent));let H;for(;W!==F.root&&d(W)===0;)W===W.parent.left?(H=W.parent.right,d(H)===1&&(k(H,0),k(W.parent,1),T(F,W.parent),H=W.parent.right),d(H.left)===0&&d(H.right)===0?(k(H,1),W=W.parent):(d(H.right)===0&&(k(H.left,0),k(H,1),M(F,H),H=W.parent.right),k(H,d(W.parent)),k(W.parent,0),k(H.right,0),T(F,W.parent),W=F.root)):(H=W.parent.left,d(H)===1&&(k(H,0),k(W.parent,1),M(F,W.parent),H=W.parent.left),d(H.left)===0&&d(H.right)===0?(k(H,1),W=W.parent):(d(H.left)===0&&(k(H.right,0),k(H,1),T(F,H),H=W.parent.left),k(H,d(W.parent)),k(W.parent,0),k(H.left,0),M(F,W.parent),W=F.root));k(W,0),D()}function L(F){for(;F.left!==e.SENTINEL;)F=F.left;return F}function D(){e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.delta=0,e.SENTINEL.start=0,e.SENTINEL.end=0}function T(F,x){const W=x.right;W.delta+=x.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),W.start+=x.delta,W.end+=x.delta,x.right=W.left,W.left!==e.SENTINEL&&(W.left.parent=x),W.parent=x.parent,x.parent===e.SENTINEL?F.root=W:x===x.parent.left?x.parent.left=W:x.parent.right=W,W.left=x,x.parent=W,P(x),P(W)}function M(F,x){const W=x.left;x.delta-=W.delta,(x.delta<-1073741824||x.delta>1073741824)&&(F.requestNormalizeDelta=!0),x.start-=W.delta,x.end-=W.delta,x.left=W.right,W.right!==e.SENTINEL&&(W.right.parent=x),W.parent=x.parent,x.parent===e.SENTINEL?F.root=W:x===x.parent.right?x.parent.right=W:x.parent.left=W,W.right=x,x.parent=W,P(x),P(W)}function A(F){let x=F.end;if(F.left!==e.SENTINEL){const W=F.left.maxEnd;W>x&&(x=W)}if(F.right!==e.SENTINEL){const W=F.right.maxEnd+F.delta;W>x&&(x=W)}return x}function P(F){F.maxEnd=A(F)}function N(F){for(;F!==e.SENTINEL;){const x=A(F);if(F.maxEnd===x)return;F.maxEnd=x,F=F.parent}}function O(F,x,W,V){return F===W?x-V:F-W}}),define(ne[579],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SENTINEL=e.TreeNode=void 0,e.leftest=k,e.righttest=I,e.leftRotate=_,e.rightRotate=b,e.rbDelete=p,e.fixInsert=n,e.updateTreeMetadata=o,e.recomputeTreeMetadata=t;class d{constructor(s,g){this.piece=s,this.color=g,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==e.SENTINEL)return k(this.right);let s=this;for(;s.parent!==e.SENTINEL&&s.parent.left!==s;)s=s.parent;return s.parent===e.SENTINEL?e.SENTINEL:s.parent}prev(){if(this.left!==e.SENTINEL)return I(this.left);let s=this;for(;s.parent!==e.SENTINEL&&s.parent.right!==s;)s=s.parent;return s.parent===e.SENTINEL?e.SENTINEL:s.parent}detach(){this.parent=null,this.left=null,this.right=null}}e.TreeNode=d,e.SENTINEL=new d(null,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,e.SENTINEL.color=0;function k(i){for(;i.left!==e.SENTINEL;)i=i.left;return i}function I(i){for(;i.right!==e.SENTINEL;)i=i.right;return i}function E(i){return i===e.SENTINEL?0:i.size_left+i.piece.length+E(i.right)}function y(i){return i===e.SENTINEL?0:i.lf_left+i.piece.lineFeedCnt+y(i.right)}function m(){e.SENTINEL.parent=e.SENTINEL}function _(i,s){const g=s.right;g.size_left+=s.size_left+(s.piece?s.piece.length:0),g.lf_left+=s.lf_left+(s.piece?s.piece.lineFeedCnt:0),s.right=g.left,g.left!==e.SENTINEL&&(g.left.parent=s),g.parent=s.parent,s.parent===e.SENTINEL?i.root=g:s.parent.left===s?s.parent.left=g:s.parent.right=g,g.left=s,s.parent=g}function b(i,s){const g=s.left;s.left=g.right,g.right!==e.SENTINEL&&(g.right.parent=s),g.parent=s.parent,s.size_left-=g.size_left+(g.piece?g.piece.length:0),s.lf_left-=g.lf_left+(g.piece?g.piece.lineFeedCnt:0),s.parent===e.SENTINEL?i.root=g:s===s.parent.right?s.parent.right=g:s.parent.left=g,g.right=s,s.parent=g}function p(i,s){let g,c;if(s.left===e.SENTINEL?(c=s,g=c.right):s.right===e.SENTINEL?(c=s,g=c.left):(c=k(s.right),g=c.right),c===i.root){i.root=g,g.color=0,s.detach(),m(),i.root.parent=e.SENTINEL;return}const l=c.color===1;if(c===c.parent.left?c.parent.left=g:c.parent.right=g,c===s?(g.parent=c.parent,t(i,g)):(c.parent===s?g.parent=c:g.parent=c.parent,t(i,g),c.left=s.left,c.right=s.right,c.parent=s.parent,c.color=s.color,s===i.root?i.root=c:s===s.parent.left?s.parent.left=c:s.parent.right=c,c.left!==e.SENTINEL&&(c.left.parent=c),c.right!==e.SENTINEL&&(c.right.parent=c),c.size_left=s.size_left,c.lf_left=s.lf_left,t(i,c)),s.detach(),g.parent.left===g){const r=E(g),u=y(g);if(r!==g.parent.size_left||u!==g.parent.lf_left){const C=r-g.parent.size_left,f=u-g.parent.lf_left;g.parent.size_left=r,g.parent.lf_left=u,o(i,g.parent,C,f)}}if(t(i,g.parent),l){m();return}let a;for(;g!==i.root&&g.color===0;)g===g.parent.left?(a=g.parent.right,a.color===1&&(a.color=0,g.parent.color=1,_(i,g.parent),a=g.parent.right),a.left.color===0&&a.right.color===0?(a.color=1,g=g.parent):(a.right.color===0&&(a.left.color=0,a.color=1,b(i,a),a=g.parent.right),a.color=g.parent.color,g.parent.color=0,a.right.color=0,_(i,g.parent),g=i.root)):(a=g.parent.left,a.color===1&&(a.color=0,g.parent.color=1,b(i,g.parent),a=g.parent.left),a.left.color===0&&a.right.color===0?(a.color=1,g=g.parent):(a.left.color===0&&(a.right.color=0,a.color=1,_(i,a),a=g.parent.left),a.color=g.parent.color,g.parent.color=0,a.left.color=0,b(i,g.parent),g=i.root));g.color=0,m()}function n(i,s){for(t(i,s);s!==i.root&&s.parent.color===1;)if(s.parent===s.parent.parent.left){const g=s.parent.parent.right;g.color===1?(s.parent.color=0,g.color=0,s.parent.parent.color=1,s=s.parent.parent):(s===s.parent.right&&(s=s.parent,_(i,s)),s.parent.color=0,s.parent.parent.color=1,b(i,s.parent.parent))}else{const g=s.parent.parent.left;g.color===1?(s.parent.color=0,g.color=0,s.parent.parent.color=1,s=s.parent.parent):(s===s.parent.left&&(s=s.parent,b(i,s)),s.parent.color=0,s.parent.parent.color=1,_(i,s.parent.parent))}i.root.color=0}function o(i,s,g,c){for(;s!==i.root&&s!==e.SENTINEL;)s.parent.left===s&&(s.parent.size_left+=g,s.parent.lf_left+=c),s=s.parent}function t(i,s){let g=0,c=0;if(s!==i.root){for(;s!==i.root&&s===s.parent.right;)s=s.parent;if(s!==i.root)for(s=s.parent,g=E(s.left)-s.size_left,c=y(s.left)-s.lf_left,s.size_left+=g,s.lf_left+=c;s!==i.root&&(g!==0||c!==0);)s.parent.left===s&&(s.parent.size_left+=g,s.parent.lf_left+=c),s=s.parent}}}),define(ne[322],se([1,0,13,192]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PrefixSumIndexOfResult=e.ConstantTimePrefixSumComputer=e.PrefixSumComputer=void 0;class I{constructor(_){this.values=_,this.prefixSum=new Uint32Array(_.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(_,b){_=(0,k.toUint32)(_);const p=this.values,n=this.prefixSum,o=b.length;return o===0?!1:(this.values=new Uint32Array(p.length+o),this.values.set(p.subarray(0,_),0),this.values.set(p.subarray(_),_+o),this.values.set(b,_),_-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(_,b){return _=(0,k.toUint32)(_),b=(0,k.toUint32)(b),this.values[_]===b?!1:(this.values[_]=b,_-1=p.length)return!1;const o=p.length-_;return b>=o&&(b=o),b===0?!1:(this.values=new Uint32Array(p.length-b),this.values.set(p.subarray(0,_),0),this.values.set(p.subarray(_+b),_),this.prefixSum=new Uint32Array(this.values.length),_-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(_){return _<0?0:(_=(0,k.toUint32)(_),this._getPrefixSum(_))}_getPrefixSum(_){if(_<=this.prefixSumValidIndex[0])return this.prefixSum[_];let b=this.prefixSumValidIndex[0]+1;b===0&&(this.prefixSum[0]=this.values[0],b++),_>=this.values.length&&(_=this.values.length-1);for(let p=b;p<=_;p++)this.prefixSum[p]=this.prefixSum[p-1]+this.values[p];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],_),this.prefixSum[_]}getIndexOf(_){_=Math.floor(_),this.getTotalSum();let b=0,p=this.values.length-1,n=0,o=0,t=0;for(;b<=p;)if(n=b+(p-b)/2|0,o=this.prefixSum[n],t=o-this.values[n],_=o)b=n+1;else break;return new y(n,_-t)}}e.PrefixSumComputer=I;class E{constructor(_){this._values=_,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(_){return this._ensureValid(),_===0?0:this._prefixSum[_-1]}getIndexOf(_){this._ensureValid();const b=this._indexBySum[_],p=b>0?this._prefixSum[b-1]:0;return new y(b,_-p)}removeValues(_,b){this._values.splice(_,b),this._invalidate(_)}insertValues(_,b){this._values=(0,d.arrayInsert)(this._values,_,b),this._invalidate(_)}_invalidate(_){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,_-1)}_ensureValid(){if(!this._isValid){for(let _=this._validEndIndex+1,b=this._values.length;_0?this._prefixSum[_-1]:0;this._prefixSum[_]=n+p;for(let o=0;o=0;let a=null;try{a=d.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:l,global:!0,unicode:!0})}catch{return null}if(!a)return null;let r=!this.isRegex&&!l;return r&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(r=this.matchCase),new y.SearchData(a,this.wordSeparators?(0,k.getMapForWordSeparators)(this.wordSeparators,[]):null,r?this.searchString:null)}}e.SearchParams=_;function b(c){if(!c||c.length===0)return!1;for(let l=0,a=c.length;l=a)break;const u=c.charCodeAt(l);if(u===110||u===114||u===87)return!0}}return!1}function p(c,l,a){if(!a)return new y.FindMatch(c,null);const r=[];for(let u=0,C=l.length;u>0);a[C]>=l?u=C-1:a[C+1]>=l?(r=C,u=C):r=C+1}return r+1}}class o{static findMatches(l,a,r,u,C){const f=a.parseSearchRequest();return f?f.regex.multiline?this._doFindMatchesMultiline(l,r,new g(f.wordSeparators,f.regex),u,C):this._doFindMatchesLineByLine(l,r,f,u,C):[]}static _getMultilineMatchRange(l,a,r,u,C,f){let h,v=0;u?(v=u.findLineFeedCountBeforeOffset(C),h=a+C+v):h=a+C;let w;if(u){const T=u.findLineFeedCountBeforeOffset(C+f.length)-v;w=h+f.length+T}else w=h+f.length;const S=l.getPositionAt(h),L=l.getPositionAt(w);return new E.Range(S.lineNumber,S.column,L.lineNumber,L.column)}static _doFindMatchesMultiline(l,a,r,u,C){const f=l.getOffsetAt(a.getStartPosition()),h=l.getValueInRange(a,1),v=l.getEOL()===`\r -`?new n(h):null,w=[];let S=0,L;for(r.reset(0);L=r.next(h);)if(w[S++]=p(this._getMultilineMatchRange(l,f,h,v,L.index,L[0]),L,u),S>=C)return w;return w}static _doFindMatchesLineByLine(l,a,r,u,C){const f=[];let h=0;if(a.startLineNumber===a.endLineNumber){const w=l.getLineContent(a.startLineNumber).substring(a.startColumn-1,a.endColumn-1);return h=this._findMatchesInLine(r,w,a.startLineNumber,a.startColumn-1,h,f,u,C),f}const v=l.getLineContent(a.startLineNumber).substring(a.startColumn-1);h=this._findMatchesInLine(r,v,a.startLineNumber,a.startColumn-1,h,f,u,C);for(let w=a.startLineNumber+1;w=v))return C;return C}const S=new g(l.wordSeparators,l.regex);let L;S.reset(0);do if(L=S.next(a),L&&(f[C++]=p(new E.Range(r,L.index+1+u,r,L.index+1+L[0].length+u),L,h),C>=v))return C;while(L);return C}static findNextMatch(l,a,r,u){const C=a.parseSearchRequest();if(!C)return null;const f=new g(C.wordSeparators,C.regex);return C.regex.multiline?this._doFindNextMatchMultiline(l,r,f,u):this._doFindNextMatchLineByLine(l,r,f,u)}static _doFindNextMatchMultiline(l,a,r,u){const C=new I.Position(a.lineNumber,1),f=l.getOffsetAt(C),h=l.getLineCount(),v=l.getValueInRange(new E.Range(C.lineNumber,C.column,h,l.getLineMaxColumn(h)),1),w=l.getEOL()===`\r -`?new n(v):null;r.reset(a.column-1);const S=r.next(v);return S?p(this._getMultilineMatchRange(l,f,v,w,S.index,S[0]),S,u):a.lineNumber!==1||a.column!==1?this._doFindNextMatchMultiline(l,new I.Position(1,1),r,u):null}static _doFindNextMatchLineByLine(l,a,r,u){const C=l.getLineCount(),f=a.lineNumber,h=l.getLineContent(f),v=this._findFirstMatchInLine(r,h,f,a.column,u);if(v)return v;for(let w=1;w<=C;w++){const S=(f+w-1)%C,L=l.getLineContent(S+1),D=this._findFirstMatchInLine(r,L,S+1,1,u);if(D)return D}return null}static _findFirstMatchInLine(l,a,r,u,C){l.reset(u-1);const f=l.next(a);return f?p(new E.Range(r,f.index+1,r,f.index+1+f[0].length),f,C):null}static findPreviousMatch(l,a,r,u){const C=a.parseSearchRequest();if(!C)return null;const f=new g(C.wordSeparators,C.regex);return C.regex.multiline?this._doFindPreviousMatchMultiline(l,r,f,u):this._doFindPreviousMatchLineByLine(l,r,f,u)}static _doFindPreviousMatchMultiline(l,a,r,u){const C=this._doFindMatchesMultiline(l,new E.Range(1,1,a.lineNumber,a.column),r,u,10*m);if(C.length>0)return C[C.length-1];const f=l.getLineCount();return a.lineNumber!==f||a.column!==l.getLineMaxColumn(f)?this._doFindPreviousMatchMultiline(l,new I.Position(f,l.getLineMaxColumn(f)),r,u):null}static _doFindPreviousMatchLineByLine(l,a,r,u){const C=l.getLineCount(),f=a.lineNumber,h=l.getLineContent(f).substring(0,a.column-1),v=this._findLastMatchInLine(r,h,f,u);if(v)return v;for(let w=1;w<=C;w++){const S=(C+f-w-1)%C,L=l.getLineContent(S+1),D=this._findLastMatchInLine(r,L,S+1,u);if(D)return D}return null}static _findLastMatchInLine(l,a,r,u){let C=null,f;for(l.reset(0);f=l.next(a);)C=p(new E.Range(r,f.index+1,r,f.index+1+f[0].length),f,u);return C}}e.TextModelSearch=o;function t(c,l,a,r,u){if(r===0)return!0;const C=l.charCodeAt(r-1);if(c.get(C)!==0||C===13||C===10)return!0;if(u>0){const f=l.charCodeAt(r);if(c.get(f)!==0)return!0}return!1}function i(c,l,a,r,u){if(r+u===a)return!0;const C=l.charCodeAt(r+u);if(c.get(C)!==0||C===13||C===10)return!0;if(u>0){const f=l.charCodeAt(r+u-1);if(c.get(f)!==0)return!0}return!1}function s(c,l,a,r,u){return t(c,l,a,r,u)&&i(c,l,a,r,u)}class g{constructor(l,a){this._wordSeparators=l,this._searchRegex=a,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(l){this._searchRegex.lastIndex=l,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(l){const a=l.length;let r;do{if(this._prevMatchStartIndex+this._prevMatchLength===a||(r=this._searchRegex.exec(l),!r))return null;const u=r.index,C=r[0].length;if(u===this._prevMatchStartIndex&&C===this._prevMatchLength){if(C===0){d.getNextCodePoint(l,a,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=u,this._prevMatchLength=C,!this._wordSeparators||s(this._wordSeparators,l,a,u,C))return r}while(r);return null}}e.Searcher=g}),define(ne[324],se([1,0,9,4,40,579,202]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeBase=e.StringBuffer=e.Piece=void 0,e.createLineStartsFast=p,e.createLineStarts=n;const m=65535;function _(c){let l;return c[c.length-1]<65536?l=new Uint16Array(c.length):l=new Uint32Array(c.length),l.set(c,0),l}class b{constructor(l,a,r,u,C){this.lineStarts=l,this.cr=a,this.lf=r,this.crlf=u,this.isBasicASCII=C}}function p(c,l=!0){const a=[0];let r=1;for(let u=0,C=c.length;u126)&&(f=!1)}const h=new b(_(c),r,u,C,f);return c.length=0,h}class o{constructor(l,a,r,u,C){this.bufferIndex=l,this.start=a,this.end=r,this.lineFeedCnt=u,this.length=C}}e.Piece=o;class t{constructor(l,a){this.buffer=l,this.lineStarts=a}}e.StringBuffer=t;class i{constructor(l,a){this._pieces=[],this._tree=l,this._BOM=a,this._index=0,l.root!==E.SENTINEL&&l.iterate(l.root,r=>(r!==E.SENTINEL&&this._pieces.push(r.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class s{constructor(l){this._limit=l,this._cache=[]}get(l){for(let a=this._cache.length-1;a>=0;a--){const r=this._cache[a];if(r.nodeStartOffset<=l&&r.nodeStartOffset+r.node.piece.length>=l)return r}return null}get2(l){for(let a=this._cache.length-1;a>=0;a--){const r=this._cache[a];if(r.nodeStartLineNumber&&r.nodeStartLineNumber=l)return r}return null}set(l){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(l)}validate(l){let a=!1;const r=this._cache;for(let u=0;u=l){r[u]=null,a=!0;continue}}if(a){const u=[];for(const C of r)C!==null&&u.push(C);this._cache=u}}}class g{constructor(l,a,r){this.create(l,a,r)}create(l,a,r){this._buffers=[new t("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=E.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=a,this._EOLLength=a.length,this._EOLNormalized=r;let u=null;for(let C=0,f=l.length;C0){l[C].lineStarts||(l[C].lineStarts=p(l[C].buffer));const h=new o(C+1,{line:0,column:0},{line:l[C].lineStarts.length-1,column:l[C].buffer.length-l[C].lineStarts[l[C].lineStarts.length-1]},l[C].lineStarts.length-1,l[C].buffer.length);this._buffers.push(l[C]),u=this.rbInsertRight(u,h)}this._searchCache=new s(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(l){const a=m,r=a-Math.floor(a/3),u=r*2;let C="",f=0;const h=[];if(this.iterate(this.root,v=>{const w=this.getNodeContent(v),S=w.length;if(f<=r||f+S0){const v=C.replace(/\r\n|\r|\n/g,l);h.push(new t(v,p(v)))}this.create(h,l,!0)}getEOL(){return this._EOL}setEOL(l){this._EOL=l,this._EOLLength=this._EOL.length,this.normalizeEOL(l)}createSnapshot(l){return new i(this,l)}getOffsetAt(l,a){let r=0,u=this.root;for(;u!==E.SENTINEL;)if(u.left!==E.SENTINEL&&u.lf_left+1>=l)u=u.left;else if(u.lf_left+u.piece.lineFeedCnt+1>=l){r+=u.size_left;const C=this.getAccumulatedValue(u,l-u.lf_left-2);return r+=C+a-1}else l-=u.lf_left+u.piece.lineFeedCnt,r+=u.size_left+u.piece.length,u=u.right;return r}getPositionAt(l){l=Math.floor(l),l=Math.max(0,l);let a=this.root,r=0;const u=l;for(;a!==E.SENTINEL;)if(a.size_left!==0&&a.size_left>=l)a=a.left;else if(a.size_left+a.piece.length>=l){const C=this.getIndexOf(a,l-a.size_left);if(r+=a.lf_left+C.index,C.index===0){const f=this.getOffsetAt(r+1,1),h=u-f;return new d.Position(r+1,h+1)}return new d.Position(r+1,C.remainder+1)}else if(l-=a.size_left+a.piece.length,r+=a.lf_left+a.piece.lineFeedCnt,a.right===E.SENTINEL){const C=this.getOffsetAt(r+1,1),f=u-l-C;return new d.Position(r+1,f+1)}else a=a.right;return new d.Position(1,1)}getValueInRange(l,a){if(l.startLineNumber===l.endLineNumber&&l.startColumn===l.endColumn)return"";const r=this.nodeAt2(l.startLineNumber,l.startColumn),u=this.nodeAt2(l.endLineNumber,l.endColumn),C=this.getValueInRange2(r,u);return a?a!==this._EOL||!this._EOLNormalized?C.replace(/\r\n|\r|\n/g,a):a===this.getEOL()&&this._EOLNormalized?C:C.replace(/\r\n|\r|\n/g,a):C}getValueInRange2(l,a){if(l.node===a.node){const h=l.node,v=this._buffers[h.piece.bufferIndex].buffer,w=this.offsetInBuffer(h.piece.bufferIndex,h.piece.start);return v.substring(w+l.remainder,w+a.remainder)}let r=l.node;const u=this._buffers[r.piece.bufferIndex].buffer,C=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);let f=u.substring(C+l.remainder,C+r.piece.length);for(r=r.next();r!==E.SENTINEL;){const h=this._buffers[r.piece.bufferIndex].buffer,v=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);if(r===a.node){f+=h.substring(v,v+a.remainder);break}else f+=h.substr(v,r.piece.length);r=r.next()}return f}getLinesContent(){const l=[];let a=0,r="",u=!1;return this.iterate(this.root,C=>{if(C===E.SENTINEL)return!0;const f=C.piece;let h=f.length;if(h===0)return!0;const v=this._buffers[f.bufferIndex].buffer,w=this._buffers[f.bufferIndex].lineStarts,S=f.start.line,L=f.end.line;let D=w[S]+f.start.column;if(u&&(v.charCodeAt(D)===10&&(D++,h--),l[a++]=r,r="",u=!1,h===0))return!0;if(S===L)return!this._EOLNormalized&&v.charCodeAt(D+h-1)===13?(u=!0,r+=v.substr(D,h-1)):r+=v.substr(D,h),!0;r+=this._EOLNormalized?v.substring(D,Math.max(D,w[S+1]-this._EOLLength)):v.substring(D,w[S+1]).replace(/(\r\n|\r|\n)$/,""),l[a++]=r;for(let T=S+1;Tx+M,a.reset(0)):(O=D.buffer,F=x=>x,a.reset(M));do if(P=a.next(O),P){if(F(P.index)>=A)return S;this.positionInBuffer(l,F(P.index)-T,N);const x=this.getLineFeedCnt(l.piece.bufferIndex,C,N),W=N.line===C.line?N.column-C.column+u:N.column+1,V=W+P[0].length;if(L[S++]=(0,y.createFindMatch)(new k.Range(r+x,W,r+x,V),P,v),F(P.index)+P[0].length>=A||S>=w)return S}while(P);return S}findMatchesLineByLine(l,a,r,u){const C=[];let f=0;const h=new y.Searcher(a.wordSeparators,a.regex);let v=this.nodeAt2(l.startLineNumber,l.startColumn);if(v===null)return[];const w=this.nodeAt2(l.endLineNumber,l.endColumn);if(w===null)return[];let S=this.positionInBuffer(v.node,v.remainder);const L=this.positionInBuffer(w.node,w.remainder);if(v.node===w.node)return this.findMatchesInNode(v.node,h,l.startLineNumber,l.startColumn,S,L,a,r,u,f,C),C;let D=l.startLineNumber,T=v.node;for(;T!==w.node;){const A=this.getLineFeedCnt(T.piece.bufferIndex,S,T.piece.end);if(A>=1){const N=this._buffers[T.piece.bufferIndex].lineStarts,O=this.offsetInBuffer(T.piece.bufferIndex,T.piece.start),F=N[S.line+A],x=D===l.startLineNumber?l.startColumn:1;if(f=this.findMatchesInNode(T,h,D,x,S,this.positionInBuffer(T,F-O),a,r,u,f,C),f>=u)return C;D+=A}const P=D===l.startLineNumber?l.startColumn-1:0;if(D===l.endLineNumber){const N=this.getLineContent(D).substring(P,l.endColumn-1);return f=this._findMatchesInLine(a,h,N,l.endLineNumber,P,f,C,r,u),C}if(f=this._findMatchesInLine(a,h,this.getLineContent(D).substr(P),D,P,f,C,r,u),f>=u)return C;D++,v=this.nodeAt2(D,1),T=v.node,S=this.positionInBuffer(v.node,v.remainder)}if(D===l.endLineNumber){const A=D===l.startLineNumber?l.startColumn-1:0,P=this.getLineContent(D).substring(A,l.endColumn-1);return f=this._findMatchesInLine(a,h,P,l.endLineNumber,A,f,C,r,u),C}const M=D===l.startLineNumber?l.startColumn:1;return f=this.findMatchesInNode(w.node,h,D,M,S,L,a,r,u,f,C),C}_findMatchesInLine(l,a,r,u,C,f,h,v,w){const S=l.wordSeparators;if(!v&&l.simpleSearch){const D=l.simpleSearch,T=D.length,M=r.length;let A=-T;for(;(A=r.indexOf(D,A+T))!==-1;)if((!S||(0,y.isValidMatch)(S,r,M,A,T))&&(h[f++]=new I.FindMatch(new k.Range(u,A+1+C,u,A+1+T+C),null),f>=w))return f;return f}let L;a.reset(0);do if(L=a.next(r),L&&(h[f++]=(0,y.createFindMatch)(new k.Range(u,L.index+1+C,u,L.index+1+L[0].length+C),L,v),f>=w))return f;while(L);return f}insert(l,a,r=!1){if(this._EOLNormalized=this._EOLNormalized&&r,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==E.SENTINEL){const{node:u,remainder:C,nodeStartOffset:f}=this.nodeAt(l),h=u.piece,v=h.bufferIndex,w=this.positionInBuffer(u,C);if(u.piece.bufferIndex===0&&h.end.line===this._lastChangeBufferPos.line&&h.end.column===this._lastChangeBufferPos.column&&f+h.length===l&&a.lengthl){const S=[];let L=new o(h.bufferIndex,w,h.end,this.getLineFeedCnt(h.bufferIndex,w,h.end),this.offsetInBuffer(v,h.end)-this.offsetInBuffer(v,w));if(this.shouldCheckCRLF()&&this.endWithCR(a)&&this.nodeCharCodeAt(u,C)===10){const A={line:L.start.line+1,column:0};L=new o(L.bufferIndex,A,L.end,this.getLineFeedCnt(L.bufferIndex,A,L.end),L.length-1),a+=` -`}if(this.shouldCheckCRLF()&&this.startWithLF(a))if(this.nodeCharCodeAt(u,C-1)===13){const A=this.positionInBuffer(u,C-1);this.deleteNodeTail(u,A),a="\r"+a,u.piece.length===0&&S.push(u)}else this.deleteNodeTail(u,w);else this.deleteNodeTail(u,w);const D=this.createNewPieces(a);L.length>0&&this.rbInsertRight(u,L);let T=u;for(let M=0;M=0;f--)C=this.rbInsertLeft(C,u[f]);this.validateCRLFWithPrevNode(C),this.deleteNodes(r)}insertContentToNodeRight(l,a){this.adjustCarriageReturnFromNext(l,a)&&(l+=` -`);const r=this.createNewPieces(l),u=this.rbInsertRight(a,r[0]);let C=u;for(let f=1;f=D)w=L+1;else break;return r?(r.line=L,r.column=v-T,null):{line:L,column:v-T}}getLineFeedCnt(l,a,r){if(r.column===0)return r.line-a.line;const u=this._buffers[l].lineStarts;if(r.line===u.length-1)return r.line-a.line;const C=u[r.line+1],f=u[r.line]+r.column;if(C>f+1)return r.line-a.line;const h=f-1;return this._buffers[l].buffer.charCodeAt(h)===13?r.line-a.line+1:r.line-a.line}offsetInBuffer(l,a){return this._buffers[l].lineStarts[a.line]+a.column}deleteNodes(l){for(let a=0;am){const S=[];for(;l.length>m;){const D=l.charCodeAt(m-1);let T;D===13||D>=55296&&D<=56319?(T=l.substring(0,m-1),l=l.substring(m-1)):(T=l.substring(0,m),l=l.substring(m));const M=p(T);S.push(new o(this._buffers.length,{line:0,column:0},{line:M.length-1,column:T.length-M[M.length-1]},M.length-1,T.length)),this._buffers.push(new t(T,M))}const L=p(l);return S.push(new o(this._buffers.length,{line:0,column:0},{line:L.length-1,column:l.length-L[L.length-1]},L.length-1,l.length)),this._buffers.push(new t(l,L)),S}let a=this._buffers[0].buffer.length;const r=p(l,!1);let u=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&a!==0&&this.startWithLF(l)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},u=this._lastChangeBufferPos;for(let S=0;S=l-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>l-1){const v=this.getAccumulatedValue(r,l-r.lf_left-2),w=this.getAccumulatedValue(r,l-r.lf_left-1),S=this._buffers[r.piece.bufferIndex].buffer,L=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return f+=r.size_left,this._searchCache.set({node:r,nodeStartOffset:f,nodeStartLineNumber:h-(l-1-r.lf_left)}),S.substring(L+v,L+w-a)}else if(r.lf_left+r.piece.lineFeedCnt===l-1){const v=this.getAccumulatedValue(r,l-r.lf_left-2),w=this._buffers[r.piece.bufferIndex].buffer,S=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);u=w.substring(S+v,S+r.piece.length);break}else l-=r.lf_left+r.piece.lineFeedCnt,f+=r.size_left+r.piece.length,r=r.right}for(r=r.next();r!==E.SENTINEL;){const f=this._buffers[r.piece.bufferIndex].buffer;if(r.piece.lineFeedCnt>0){const h=this.getAccumulatedValue(r,0),v=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return u+=f.substring(v,v+h-a),u}else{const h=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);u+=f.substr(h,r.piece.length)}r=r.next()}return u}computeBufferMetadata(){let l=this.root,a=1,r=0;for(;l!==E.SENTINEL;)a+=l.lf_left+l.piece.lineFeedCnt,r+=l.size_left+l.piece.length,l=l.right;this._lineCnt=a,this._length=r,this._searchCache.validate(this._length)}getIndexOf(l,a){const r=l.piece,u=this.positionInBuffer(l,a),C=u.line-r.start.line;if(this.offsetInBuffer(r.bufferIndex,r.end)-this.offsetInBuffer(r.bufferIndex,r.start)===a){const f=this.getLineFeedCnt(l.piece.bufferIndex,r.start,u);if(f!==C)return{index:f,remainder:0}}return{index:C,remainder:u.column}}getAccumulatedValue(l,a){if(a<0)return 0;const r=l.piece,u=this._buffers[r.bufferIndex].lineStarts,C=r.start.line+a+1;return C>r.end.line?u[r.end.line]+r.end.column-u[r.start.line]-r.start.column:u[C]-u[r.start.line]-r.start.column}deleteNodeTail(l,a){const r=l.piece,u=r.lineFeedCnt,C=this.offsetInBuffer(r.bufferIndex,r.end),f=a,h=this.offsetInBuffer(r.bufferIndex,f),v=this.getLineFeedCnt(r.bufferIndex,r.start,f),w=v-u,S=h-C,L=r.length+S;l.piece=new o(r.bufferIndex,r.start,f,v,L),(0,E.updateTreeMetadata)(this,l,S,w)}deleteNodeHead(l,a){const r=l.piece,u=r.lineFeedCnt,C=this.offsetInBuffer(r.bufferIndex,r.start),f=a,h=this.getLineFeedCnt(r.bufferIndex,f,r.end),v=this.offsetInBuffer(r.bufferIndex,f),w=h-u,S=C-v,L=r.length+S;l.piece=new o(r.bufferIndex,f,r.end,h,L),(0,E.updateTreeMetadata)(this,l,S,w)}shrinkNode(l,a,r){const u=l.piece,C=u.start,f=u.end,h=u.length,v=u.lineFeedCnt,w=a,S=this.getLineFeedCnt(u.bufferIndex,u.start,w),L=this.offsetInBuffer(u.bufferIndex,a)-this.offsetInBuffer(u.bufferIndex,C);l.piece=new o(u.bufferIndex,u.start,w,S,L),(0,E.updateTreeMetadata)(this,l,L-h,S-v);const D=new o(u.bufferIndex,r,f,this.getLineFeedCnt(u.bufferIndex,r,f),this.offsetInBuffer(u.bufferIndex,f)-this.offsetInBuffer(u.bufferIndex,r)),T=this.rbInsertRight(l,D);this.validateCRLFWithPrevNode(T)}appendToNode(l,a){this.adjustCarriageReturnFromNext(a,l)&&(a+=` -`);const r=this.shouldCheckCRLF()&&this.startWithLF(a)&&this.endWithCR(l),u=this._buffers[0].buffer.length;this._buffers[0].buffer+=a;const C=p(a,!1);for(let T=0;Tl)a=a.left;else if(a.size_left+a.piece.length>=l){u+=a.size_left;const C={node:a,remainder:l-a.size_left,nodeStartOffset:u};return this._searchCache.set(C),C}else l-=a.size_left+a.piece.length,u+=a.size_left+a.piece.length,a=a.right;return null}nodeAt2(l,a){let r=this.root,u=0;for(;r!==E.SENTINEL;)if(r.left!==E.SENTINEL&&r.lf_left>=l-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>l-1){const C=this.getAccumulatedValue(r,l-r.lf_left-2),f=this.getAccumulatedValue(r,l-r.lf_left-1);return u+=r.size_left,{node:r,remainder:Math.min(C+a-1,f),nodeStartOffset:u}}else if(r.lf_left+r.piece.lineFeedCnt===l-1){const C=this.getAccumulatedValue(r,l-r.lf_left-2);if(C+a-1<=r.piece.length)return{node:r,remainder:C+a-1,nodeStartOffset:u};a-=r.piece.length-C;break}else l-=r.lf_left+r.piece.lineFeedCnt,u+=r.size_left+r.piece.length,r=r.right;for(r=r.next();r!==E.SENTINEL;){if(r.piece.lineFeedCnt>0){const C=this.getAccumulatedValue(r,0),f=this.offsetOfNode(r);return{node:r,remainder:Math.min(a-1,C),nodeStartOffset:f}}else if(r.piece.length>=a-1){const C=this.offsetOfNode(r);return{node:r,remainder:a-1,nodeStartOffset:C}}else a-=r.piece.length;r=r.next()}return null}nodeCharCodeAt(l,a){if(l.piece.lineFeedCnt<1)return-1;const r=this._buffers[l.piece.bufferIndex],u=this.offsetInBuffer(l.piece.bufferIndex,l.piece.start)+a;return r.buffer.charCodeAt(u)}offsetOfNode(l){if(!l)return 0;let a=l.size_left;for(;l!==this.root;)l.parent.right===l&&(a+=l.parent.size_left+l.parent.piece.length),l=l.parent;return a}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` -`)}startWithLF(l){if(typeof l=="string")return l.charCodeAt(0)===10;if(l===E.SENTINEL||l.piece.lineFeedCnt===0)return!1;const a=l.piece,r=this._buffers[a.bufferIndex].lineStarts,u=a.start.line,C=r[u]+a.start.column;return u===r.length-1||r[u+1]>C+1?!1:this._buffers[a.bufferIndex].buffer.charCodeAt(C)===10}endWithCR(l){return typeof l=="string"?l.charCodeAt(l.length-1)===13:l===E.SENTINEL||l.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(l,l.piece.length-1)===13}validateCRLFWithPrevNode(l){if(this.shouldCheckCRLF()&&this.startWithLF(l)){const a=l.prev();this.endWithCR(a)&&this.fixCRLF(a,l)}}validateCRLFWithNextNode(l){if(this.shouldCheckCRLF()&&this.endWithCR(l)){const a=l.next();this.startWithLF(a)&&this.fixCRLF(l,a)}}fixCRLF(l,a){const r=[],u=this._buffers[l.piece.bufferIndex].lineStarts;let C;l.piece.end.column===0?C={line:l.piece.end.line-1,column:u[l.piece.end.line]-u[l.piece.end.line-1]-1}:C={line:l.piece.end.line,column:l.piece.end.column-1};const f=l.piece.length-1,h=l.piece.lineFeedCnt-1;l.piece=new o(l.piece.bufferIndex,l.piece.start,C,h,f),(0,E.updateTreeMetadata)(this,l,-1,-1),l.piece.length===0&&r.push(l);const v={line:a.piece.start.line+1,column:0},w=a.piece.length-1,S=this.getLineFeedCnt(a.piece.bufferIndex,v,a.piece.end);a.piece=new o(a.piece.bufferIndex,v,a.piece.end,S,w),(0,E.updateTreeMetadata)(this,a,-1,-1),a.piece.length===0&&r.push(a);const L=this.createNewPieces(`\r -`);this.rbInsertRight(l,L[0]);for(let D=0;D0?this.wrappedTextIndentLength:0}getLineLength(n){const o=n>0?this.breakOffsets[n-1]:0;let i=this.breakOffsets[n]-o;return n>0&&(i+=this.wrappedTextIndentLength),i}getMaxOutputOffset(n){return this.getLineLength(n)}translateToInputOffset(n,o){n>0&&(o=Math.max(0,o-this.wrappedTextIndentLength));let i=n===0?o:this.breakOffsets[n-1]+o;if(this.injectionOffsets!==null)for(let s=0;sthis.injectionOffsets[s];s++)i0?this.breakOffsets[s-1]:0,o===0)if(n<=g)i=s-1;else if(n>l)t=s+1;else break;else if(n=l)t=s+1;else break}let c=n-g;return s>0&&(c+=this.wrappedTextIndentLength),new b(s,c)}normalizeOutputPosition(n,o,t){if(this.injectionOffsets!==null){const i=this.outputPositionToOffsetInInputWithInjections(n,o),s=this.normalizeOffsetInInputWithInjectionsAroundInjections(i,t);if(s!==i)return this.offsetInInputWithInjectionsToOutputPosition(s,t)}if(t===0){if(n>0&&o===this.getMinOutputOffset(n))return new b(n-1,this.getMaxOutputOffset(n-1))}else if(t===1){const i=this.getOutputLineCount()-1;if(n0&&(o=Math.max(0,o-this.wrappedTextIndentLength)),(n>0?this.breakOffsets[n-1]:0)+o}normalizeOffsetInInputWithInjectionsAroundInjections(n,o){const t=this.getInjectedTextAtOffset(n);if(!t)return n;if(o===2){if(n===t.offsetInInputWithInjections+t.length&&y(this.injectionOptions[t.injectedTextIndex].cursorStops))return t.offsetInInputWithInjections+t.length;{let i=t.offsetInInputWithInjections;if(m(this.injectionOptions[t.injectedTextIndex].cursorStops))return i;let s=t.injectedTextIndex-1;for(;s>=0&&this.injectionOffsets[s]===this.injectionOffsets[t.injectedTextIndex]&&!(y(this.injectionOptions[s].cursorStops)||(i-=this.injectionOptions[s].content.length,m(this.injectionOptions[s].cursorStops)));)s--;return i}}else if(o===1||o===4){let i=t.offsetInInputWithInjections+t.length,s=t.injectedTextIndex;for(;s+1=0&&this.injectionOffsets[s-1]===this.injectionOffsets[s];)i-=this.injectionOptions[s-1].content.length,s--;return i}(0,d.assertNever)(o)}getInjectedText(n,o){const t=this.outputPositionToOffsetInInputWithInjections(n,o),i=this.getInjectedTextAtOffset(t);return i?{options:this.injectionOptions[i.injectedTextIndex]}:null}getInjectedTextAtOffset(n){const o=this.injectionOffsets,t=this.injectionOptions;if(o!==null){let i=0;for(let s=0;sn)break;if(n<=l)return{injectedTextIndex:s,offsetInInputWithInjections:c,length:g};i+=g}}}}e.ModelLineProjectionData=E;function y(p){return p==null?!0:p===I.InjectedTextCursorStops.Right||p===I.InjectedTextCursorStops.Both}function m(p){return p==null?!0:p===I.InjectedTextCursorStops.Left||p===I.InjectedTextCursorStops.Both}class _{constructor(n){this.options=n}}e.InjectedText=_;class b{constructor(n,o){this.outputLineIndex=n,this.outputOffset=o}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(n){return new k.Position(n+this.outputLineIndex,this.outputOffset+1)}}e.OutputPosition=b}),define(ne[326],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorWorkerHost=void 0;class d{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(I){return I.getChannel(d.CHANNEL_NAME)}static setChannel(I,E){I.setChannel(d.CHANNEL_NAME,E)}}e.EditorWorkerHost=d}),define(ne[582],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.findSectionHeaders=I;const d=new RegExp("\\bMARK:\\s*(.*)$","d"),k=/^-+|-+$/g;function I(b,p){let n=[];if(p.findRegionSectionHeaders&&p.foldingRules?.markers){const o=E(b,p);n=n.concat(o)}if(p.findMarkSectionHeaders){const o=y(b);n=n.concat(o)}return n}function E(b,p){const n=[],o=b.getLineCount();for(let t=1;t<=o;t++){const i=b.getLineContent(t),s=i.match(p.foldingRules.markers.start);if(s){const g={startLineNumber:t,startColumn:s[0].length+1,endLineNumber:t,endColumn:i.length+1};if(g.endColumn>g.startColumn){const c={range:g,..._(i.substring(s[0].length)),shouldBeInComments:!1};(c.text||c.hasSeparatorLine)&&n.push(c)}}}return n}function y(b){const p=[],n=b.getLineCount();for(let o=1;o<=n;o++){const t=b.getLineContent(o);m(t,o,p)}return p}function m(b,p,n){d.lastIndex=0;const o=d.exec(b);if(o){const t=o.indices[1][0]+1,i=o.indices[1][1]+1,s={startLineNumber:p,startColumn:t,endLineNumber:p,endColumn:i};if(s.endColumn>s.startColumn){const g={range:s,..._(o[1]),shouldBeInComments:!0};(g.text||g.hasSeparatorLine)&&n.push(g)}}}function _(b){b=b.trim();const p=b.startsWith("-");return b=b.replace(k,""),{text:b,hasSeparatorLine:p}}}),define(ne[327],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DraggedTreeItemsIdentifier=e.TreeViewsDnDService=void 0;class d{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(E){if(E&&this._dragOperations.has(E)){const y=this._dragOperations.get(E);return this._dragOperations.delete(E),y}}}e.TreeViewsDnDService=d;class k{constructor(E){this.identifier=E}}e.DraggedTreeItemsIdentifier=k}),define(ne[328],se([1,0,4,202,11,90,147]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeTextModelHighlighter=void 0;class m{static computeUnicodeHighlights(o,t,i){const s=i?i.startLineNumber:1,g=i?i.endLineNumber:o.getLineCount(),c=new b(t),l=c.getCandidateCodePoints();let a;l==="allNonBasicAscii"?a=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):a=new RegExp(`${_(Array.from(l))}`,"g");const r=new k.Searcher(null,a),u=[];let C=!1,f,h=0,v=0,w=0;e:for(let S=s,L=g;S<=L;S++){const D=o.getLineContent(S),T=D.length;r.reset(0);do if(f=r.next(D),f){let M=f.index,A=f.index+f[0].length;if(M>0){const F=D.charCodeAt(M-1);I.isHighSurrogate(F)&&M--}if(A+1=1e3){C=!0;break e}u.push(new d.Range(S,M+1,S,A+1))}}while(f)}return{ranges:u,hasMore:C,ambiguousCharacterCount:h,invisibleCharacterCount:v,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(o,t){const i=new b(t);switch(i.shouldHighlightNonBasicASCII(o,null)){case 0:return null;case 2:return{kind:1};case 3:{const g=o.codePointAt(0),c=i.ambiguousCharacters.getPrimaryConfusable(g),l=I.AmbiguousCharacters.getLocales().filter(a=>!I.AmbiguousCharacters.getInstance(new Set([...t.allowedLocales,a])).isAmbiguous(g));return{kind:0,confusableWith:String.fromCodePoint(c),notAmbiguousInLocales:l}}case 1:return{kind:2}}}}e.UnicodeTextModelHighlighter=m;function _(n,o){return`[${I.escapeRegExpCharacters(n.map(i=>String.fromCodePoint(i)).join(""))}]`}class b{constructor(o){this.options=o,this.allowedCodePoints=new Set(o.allowedCodePoints),this.ambiguousCharacters=I.AmbiguousCharacters.getInstance(new Set(o.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const o=new Set;if(this.options.invisibleCharacters)for(const t of I.InvisibleCharacters.codePoints)p(String.fromCodePoint(t))||o.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())o.add(t);for(const t of this.allowedCodePoints)o.delete(t);return o}shouldHighlightNonBasicASCII(o,t){const i=o.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,g=!1;if(t)for(const c of t){const l=c.codePointAt(0),a=I.isBasicASCII(c);s=s||a,!a&&!this.ambiguousCharacters.isAmbiguous(l)&&!I.InvisibleCharacters.isInvisibleCharacter(l)&&(g=!0)}return!s&&g?0:this.options.invisibleCharacters&&!p(o)&&I.InvisibleCharacters.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function p(n){return n===" "||n===` -`||n===" "}}),define(ne[238],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WrappingIndent=e.TrackedRangeStickiness=e.TextEditorCursorStyle=e.TextEditorCursorBlinkingStyle=e.SymbolTag=e.SymbolKind=e.SignatureHelpTriggerKind=e.ShowLightbulbIconMode=e.SelectionDirection=e.ScrollbarVisibility=e.ScrollType=e.RenderMinimap=e.RenderLineNumbersType=e.PositionAffinity=e.PartialAcceptTriggerKind=e.OverviewRulerLane=e.OverlayWidgetPositionPreference=e.NewSymbolNameTriggerKind=e.NewSymbolNameTag=e.MouseTargetType=e.MinimapSectionHeaderStyle=e.MinimapPosition=e.MarkerTag=e.MarkerSeverity=e.KeyCode=e.InlineEditTriggerKind=e.InlineCompletionTriggerKind=e.InlayHintKind=e.InjectedTextCursorStops=e.IndentAction=e.HoverVerbosityAction=e.GlyphMarginLane=e.EndOfLineSequence=e.EndOfLinePreference=e.EditorOption=e.EditorAutoIndentStrategy=e.DocumentHighlightKind=e.DefaultEndOfLine=e.CursorChangeReason=e.ContentWidgetPositionPreference=e.CompletionTriggerKind=e.CompletionItemTag=e.CompletionItemKind=e.CompletionItemInsertTextRule=e.CodeActionTriggerType=e.AccessibilitySupport=void 0;var d;(function(R){R[R.Unknown=0]="Unknown",R[R.Disabled=1]="Disabled",R[R.Enabled=2]="Enabled"})(d||(e.AccessibilitySupport=d={}));var k;(function(R){R[R.Invoke=1]="Invoke",R[R.Auto=2]="Auto"})(k||(e.CodeActionTriggerType=k={}));var I;(function(R){R[R.None=0]="None",R[R.KeepWhitespace=1]="KeepWhitespace",R[R.InsertAsSnippet=4]="InsertAsSnippet"})(I||(e.CompletionItemInsertTextRule=I={}));var E;(function(R){R[R.Method=0]="Method",R[R.Function=1]="Function",R[R.Constructor=2]="Constructor",R[R.Field=3]="Field",R[R.Variable=4]="Variable",R[R.Class=5]="Class",R[R.Struct=6]="Struct",R[R.Interface=7]="Interface",R[R.Module=8]="Module",R[R.Property=9]="Property",R[R.Event=10]="Event",R[R.Operator=11]="Operator",R[R.Unit=12]="Unit",R[R.Value=13]="Value",R[R.Constant=14]="Constant",R[R.Enum=15]="Enum",R[R.EnumMember=16]="EnumMember",R[R.Keyword=17]="Keyword",R[R.Text=18]="Text",R[R.Color=19]="Color",R[R.File=20]="File",R[R.Reference=21]="Reference",R[R.Customcolor=22]="Customcolor",R[R.Folder=23]="Folder",R[R.TypeParameter=24]="TypeParameter",R[R.User=25]="User",R[R.Issue=26]="Issue",R[R.Snippet=27]="Snippet"})(E||(e.CompletionItemKind=E={}));var y;(function(R){R[R.Deprecated=1]="Deprecated"})(y||(e.CompletionItemTag=y={}));var m;(function(R){R[R.Invoke=0]="Invoke",R[R.TriggerCharacter=1]="TriggerCharacter",R[R.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(m||(e.CompletionTriggerKind=m={}));var _;(function(R){R[R.EXACT=0]="EXACT",R[R.ABOVE=1]="ABOVE",R[R.BELOW=2]="BELOW"})(_||(e.ContentWidgetPositionPreference=_={}));var b;(function(R){R[R.NotSet=0]="NotSet",R[R.ContentFlush=1]="ContentFlush",R[R.RecoverFromMarkers=2]="RecoverFromMarkers",R[R.Explicit=3]="Explicit",R[R.Paste=4]="Paste",R[R.Undo=5]="Undo",R[R.Redo=6]="Redo"})(b||(e.CursorChangeReason=b={}));var p;(function(R){R[R.LF=1]="LF",R[R.CRLF=2]="CRLF"})(p||(e.DefaultEndOfLine=p={}));var n;(function(R){R[R.Text=0]="Text",R[R.Read=1]="Read",R[R.Write=2]="Write"})(n||(e.DocumentHighlightKind=n={}));var o;(function(R){R[R.None=0]="None",R[R.Keep=1]="Keep",R[R.Brackets=2]="Brackets",R[R.Advanced=3]="Advanced",R[R.Full=4]="Full"})(o||(e.EditorAutoIndentStrategy=o={}));var t;(function(R){R[R.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",R[R.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",R[R.accessibilitySupport=2]="accessibilitySupport",R[R.accessibilityPageSize=3]="accessibilityPageSize",R[R.ariaLabel=4]="ariaLabel",R[R.ariaRequired=5]="ariaRequired",R[R.autoClosingBrackets=6]="autoClosingBrackets",R[R.autoClosingComments=7]="autoClosingComments",R[R.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",R[R.autoClosingDelete=9]="autoClosingDelete",R[R.autoClosingOvertype=10]="autoClosingOvertype",R[R.autoClosingQuotes=11]="autoClosingQuotes",R[R.autoIndent=12]="autoIndent",R[R.automaticLayout=13]="automaticLayout",R[R.autoSurround=14]="autoSurround",R[R.bracketPairColorization=15]="bracketPairColorization",R[R.guides=16]="guides",R[R.codeLens=17]="codeLens",R[R.codeLensFontFamily=18]="codeLensFontFamily",R[R.codeLensFontSize=19]="codeLensFontSize",R[R.colorDecorators=20]="colorDecorators",R[R.colorDecoratorsLimit=21]="colorDecoratorsLimit",R[R.columnSelection=22]="columnSelection",R[R.comments=23]="comments",R[R.contextmenu=24]="contextmenu",R[R.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",R[R.cursorBlinking=26]="cursorBlinking",R[R.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",R[R.cursorStyle=28]="cursorStyle",R[R.cursorSurroundingLines=29]="cursorSurroundingLines",R[R.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",R[R.cursorWidth=31]="cursorWidth",R[R.disableLayerHinting=32]="disableLayerHinting",R[R.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",R[R.domReadOnly=34]="domReadOnly",R[R.dragAndDrop=35]="dragAndDrop",R[R.dropIntoEditor=36]="dropIntoEditor",R[R.emptySelectionClipboard=37]="emptySelectionClipboard",R[R.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",R[R.extraEditorClassName=39]="extraEditorClassName",R[R.fastScrollSensitivity=40]="fastScrollSensitivity",R[R.find=41]="find",R[R.fixedOverflowWidgets=42]="fixedOverflowWidgets",R[R.folding=43]="folding",R[R.foldingStrategy=44]="foldingStrategy",R[R.foldingHighlight=45]="foldingHighlight",R[R.foldingImportsByDefault=46]="foldingImportsByDefault",R[R.foldingMaximumRegions=47]="foldingMaximumRegions",R[R.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",R[R.fontFamily=49]="fontFamily",R[R.fontInfo=50]="fontInfo",R[R.fontLigatures=51]="fontLigatures",R[R.fontSize=52]="fontSize",R[R.fontWeight=53]="fontWeight",R[R.fontVariations=54]="fontVariations",R[R.formatOnPaste=55]="formatOnPaste",R[R.formatOnType=56]="formatOnType",R[R.glyphMargin=57]="glyphMargin",R[R.gotoLocation=58]="gotoLocation",R[R.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",R[R.hover=60]="hover",R[R.inDiffEditor=61]="inDiffEditor",R[R.inlineSuggest=62]="inlineSuggest",R[R.inlineEdit=63]="inlineEdit",R[R.letterSpacing=64]="letterSpacing",R[R.lightbulb=65]="lightbulb",R[R.lineDecorationsWidth=66]="lineDecorationsWidth",R[R.lineHeight=67]="lineHeight",R[R.lineNumbers=68]="lineNumbers",R[R.lineNumbersMinChars=69]="lineNumbersMinChars",R[R.linkedEditing=70]="linkedEditing",R[R.links=71]="links",R[R.matchBrackets=72]="matchBrackets",R[R.minimap=73]="minimap",R[R.mouseStyle=74]="mouseStyle",R[R.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",R[R.mouseWheelZoom=76]="mouseWheelZoom",R[R.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",R[R.multiCursorModifier=78]="multiCursorModifier",R[R.multiCursorPaste=79]="multiCursorPaste",R[R.multiCursorLimit=80]="multiCursorLimit",R[R.occurrencesHighlight=81]="occurrencesHighlight",R[R.overviewRulerBorder=82]="overviewRulerBorder",R[R.overviewRulerLanes=83]="overviewRulerLanes",R[R.padding=84]="padding",R[R.pasteAs=85]="pasteAs",R[R.parameterHints=86]="parameterHints",R[R.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",R[R.placeholder=88]="placeholder",R[R.definitionLinkOpensInPeek=89]="definitionLinkOpensInPeek",R[R.quickSuggestions=90]="quickSuggestions",R[R.quickSuggestionsDelay=91]="quickSuggestionsDelay",R[R.readOnly=92]="readOnly",R[R.readOnlyMessage=93]="readOnlyMessage",R[R.renameOnType=94]="renameOnType",R[R.renderControlCharacters=95]="renderControlCharacters",R[R.renderFinalNewline=96]="renderFinalNewline",R[R.renderLineHighlight=97]="renderLineHighlight",R[R.renderLineHighlightOnlyWhenFocus=98]="renderLineHighlightOnlyWhenFocus",R[R.renderValidationDecorations=99]="renderValidationDecorations",R[R.renderWhitespace=100]="renderWhitespace",R[R.revealHorizontalRightPadding=101]="revealHorizontalRightPadding",R[R.roundedSelection=102]="roundedSelection",R[R.rulers=103]="rulers",R[R.scrollbar=104]="scrollbar",R[R.scrollBeyondLastColumn=105]="scrollBeyondLastColumn",R[R.scrollBeyondLastLine=106]="scrollBeyondLastLine",R[R.scrollPredominantAxis=107]="scrollPredominantAxis",R[R.selectionClipboard=108]="selectionClipboard",R[R.selectionHighlight=109]="selectionHighlight",R[R.selectOnLineNumbers=110]="selectOnLineNumbers",R[R.showFoldingControls=111]="showFoldingControls",R[R.showUnused=112]="showUnused",R[R.snippetSuggestions=113]="snippetSuggestions",R[R.smartSelect=114]="smartSelect",R[R.smoothScrolling=115]="smoothScrolling",R[R.stickyScroll=116]="stickyScroll",R[R.stickyTabStops=117]="stickyTabStops",R[R.stopRenderingLineAfter=118]="stopRenderingLineAfter",R[R.suggest=119]="suggest",R[R.suggestFontSize=120]="suggestFontSize",R[R.suggestLineHeight=121]="suggestLineHeight",R[R.suggestOnTriggerCharacters=122]="suggestOnTriggerCharacters",R[R.suggestSelection=123]="suggestSelection",R[R.tabCompletion=124]="tabCompletion",R[R.tabIndex=125]="tabIndex",R[R.unicodeHighlighting=126]="unicodeHighlighting",R[R.unusualLineTerminators=127]="unusualLineTerminators",R[R.useShadowDOM=128]="useShadowDOM",R[R.useTabStops=129]="useTabStops",R[R.wordBreak=130]="wordBreak",R[R.wordSegmenterLocales=131]="wordSegmenterLocales",R[R.wordSeparators=132]="wordSeparators",R[R.wordWrap=133]="wordWrap",R[R.wordWrapBreakAfterCharacters=134]="wordWrapBreakAfterCharacters",R[R.wordWrapBreakBeforeCharacters=135]="wordWrapBreakBeforeCharacters",R[R.wordWrapColumn=136]="wordWrapColumn",R[R.wordWrapOverride1=137]="wordWrapOverride1",R[R.wordWrapOverride2=138]="wordWrapOverride2",R[R.wrappingIndent=139]="wrappingIndent",R[R.wrappingStrategy=140]="wrappingStrategy",R[R.showDeprecated=141]="showDeprecated",R[R.inlayHints=142]="inlayHints",R[R.editorClassName=143]="editorClassName",R[R.pixelRatio=144]="pixelRatio",R[R.tabFocusMode=145]="tabFocusMode",R[R.layoutInfo=146]="layoutInfo",R[R.wrappingInfo=147]="wrappingInfo",R[R.defaultColorDecorators=148]="defaultColorDecorators",R[R.colorDecoratorsActivatedOn=149]="colorDecoratorsActivatedOn",R[R.inlineCompletionsAccessibilityVerbose=150]="inlineCompletionsAccessibilityVerbose"})(t||(e.EditorOption=t={}));var i;(function(R){R[R.TextDefined=0]="TextDefined",R[R.LF=1]="LF",R[R.CRLF=2]="CRLF"})(i||(e.EndOfLinePreference=i={}));var s;(function(R){R[R.LF=0]="LF",R[R.CRLF=1]="CRLF"})(s||(e.EndOfLineSequence=s={}));var g;(function(R){R[R.Left=1]="Left",R[R.Center=2]="Center",R[R.Right=3]="Right"})(g||(e.GlyphMarginLane=g={}));var c;(function(R){R[R.Increase=0]="Increase",R[R.Decrease=1]="Decrease"})(c||(e.HoverVerbosityAction=c={}));var l;(function(R){R[R.None=0]="None",R[R.Indent=1]="Indent",R[R.IndentOutdent=2]="IndentOutdent",R[R.Outdent=3]="Outdent"})(l||(e.IndentAction=l={}));var a;(function(R){R[R.Both=0]="Both",R[R.Right=1]="Right",R[R.Left=2]="Left",R[R.None=3]="None"})(a||(e.InjectedTextCursorStops=a={}));var r;(function(R){R[R.Type=1]="Type",R[R.Parameter=2]="Parameter"})(r||(e.InlayHintKind=r={}));var u;(function(R){R[R.Automatic=0]="Automatic",R[R.Explicit=1]="Explicit"})(u||(e.InlineCompletionTriggerKind=u={}));var C;(function(R){R[R.Invoke=0]="Invoke",R[R.Automatic=1]="Automatic"})(C||(e.InlineEditTriggerKind=C={}));var f;(function(R){R[R.DependsOnKbLayout=-1]="DependsOnKbLayout",R[R.Unknown=0]="Unknown",R[R.Backspace=1]="Backspace",R[R.Tab=2]="Tab",R[R.Enter=3]="Enter",R[R.Shift=4]="Shift",R[R.Ctrl=5]="Ctrl",R[R.Alt=6]="Alt",R[R.PauseBreak=7]="PauseBreak",R[R.CapsLock=8]="CapsLock",R[R.Escape=9]="Escape",R[R.Space=10]="Space",R[R.PageUp=11]="PageUp",R[R.PageDown=12]="PageDown",R[R.End=13]="End",R[R.Home=14]="Home",R[R.LeftArrow=15]="LeftArrow",R[R.UpArrow=16]="UpArrow",R[R.RightArrow=17]="RightArrow",R[R.DownArrow=18]="DownArrow",R[R.Insert=19]="Insert",R[R.Delete=20]="Delete",R[R.Digit0=21]="Digit0",R[R.Digit1=22]="Digit1",R[R.Digit2=23]="Digit2",R[R.Digit3=24]="Digit3",R[R.Digit4=25]="Digit4",R[R.Digit5=26]="Digit5",R[R.Digit6=27]="Digit6",R[R.Digit7=28]="Digit7",R[R.Digit8=29]="Digit8",R[R.Digit9=30]="Digit9",R[R.KeyA=31]="KeyA",R[R.KeyB=32]="KeyB",R[R.KeyC=33]="KeyC",R[R.KeyD=34]="KeyD",R[R.KeyE=35]="KeyE",R[R.KeyF=36]="KeyF",R[R.KeyG=37]="KeyG",R[R.KeyH=38]="KeyH",R[R.KeyI=39]="KeyI",R[R.KeyJ=40]="KeyJ",R[R.KeyK=41]="KeyK",R[R.KeyL=42]="KeyL",R[R.KeyM=43]="KeyM",R[R.KeyN=44]="KeyN",R[R.KeyO=45]="KeyO",R[R.KeyP=46]="KeyP",R[R.KeyQ=47]="KeyQ",R[R.KeyR=48]="KeyR",R[R.KeyS=49]="KeyS",R[R.KeyT=50]="KeyT",R[R.KeyU=51]="KeyU",R[R.KeyV=52]="KeyV",R[R.KeyW=53]="KeyW",R[R.KeyX=54]="KeyX",R[R.KeyY=55]="KeyY",R[R.KeyZ=56]="KeyZ",R[R.Meta=57]="Meta",R[R.ContextMenu=58]="ContextMenu",R[R.F1=59]="F1",R[R.F2=60]="F2",R[R.F3=61]="F3",R[R.F4=62]="F4",R[R.F5=63]="F5",R[R.F6=64]="F6",R[R.F7=65]="F7",R[R.F8=66]="F8",R[R.F9=67]="F9",R[R.F10=68]="F10",R[R.F11=69]="F11",R[R.F12=70]="F12",R[R.F13=71]="F13",R[R.F14=72]="F14",R[R.F15=73]="F15",R[R.F16=74]="F16",R[R.F17=75]="F17",R[R.F18=76]="F18",R[R.F19=77]="F19",R[R.F20=78]="F20",R[R.F21=79]="F21",R[R.F22=80]="F22",R[R.F23=81]="F23",R[R.F24=82]="F24",R[R.NumLock=83]="NumLock",R[R.ScrollLock=84]="ScrollLock",R[R.Semicolon=85]="Semicolon",R[R.Equal=86]="Equal",R[R.Comma=87]="Comma",R[R.Minus=88]="Minus",R[R.Period=89]="Period",R[R.Slash=90]="Slash",R[R.Backquote=91]="Backquote",R[R.BracketLeft=92]="BracketLeft",R[R.Backslash=93]="Backslash",R[R.BracketRight=94]="BracketRight",R[R.Quote=95]="Quote",R[R.OEM_8=96]="OEM_8",R[R.IntlBackslash=97]="IntlBackslash",R[R.Numpad0=98]="Numpad0",R[R.Numpad1=99]="Numpad1",R[R.Numpad2=100]="Numpad2",R[R.Numpad3=101]="Numpad3",R[R.Numpad4=102]="Numpad4",R[R.Numpad5=103]="Numpad5",R[R.Numpad6=104]="Numpad6",R[R.Numpad7=105]="Numpad7",R[R.Numpad8=106]="Numpad8",R[R.Numpad9=107]="Numpad9",R[R.NumpadMultiply=108]="NumpadMultiply",R[R.NumpadAdd=109]="NumpadAdd",R[R.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",R[R.NumpadSubtract=111]="NumpadSubtract",R[R.NumpadDecimal=112]="NumpadDecimal",R[R.NumpadDivide=113]="NumpadDivide",R[R.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",R[R.ABNT_C1=115]="ABNT_C1",R[R.ABNT_C2=116]="ABNT_C2",R[R.AudioVolumeMute=117]="AudioVolumeMute",R[R.AudioVolumeUp=118]="AudioVolumeUp",R[R.AudioVolumeDown=119]="AudioVolumeDown",R[R.BrowserSearch=120]="BrowserSearch",R[R.BrowserHome=121]="BrowserHome",R[R.BrowserBack=122]="BrowserBack",R[R.BrowserForward=123]="BrowserForward",R[R.MediaTrackNext=124]="MediaTrackNext",R[R.MediaTrackPrevious=125]="MediaTrackPrevious",R[R.MediaStop=126]="MediaStop",R[R.MediaPlayPause=127]="MediaPlayPause",R[R.LaunchMediaPlayer=128]="LaunchMediaPlayer",R[R.LaunchMail=129]="LaunchMail",R[R.LaunchApp2=130]="LaunchApp2",R[R.Clear=131]="Clear",R[R.MAX_VALUE=132]="MAX_VALUE"})(f||(e.KeyCode=f={}));var h;(function(R){R[R.Hint=1]="Hint",R[R.Info=2]="Info",R[R.Warning=4]="Warning",R[R.Error=8]="Error"})(h||(e.MarkerSeverity=h={}));var v;(function(R){R[R.Unnecessary=1]="Unnecessary",R[R.Deprecated=2]="Deprecated"})(v||(e.MarkerTag=v={}));var w;(function(R){R[R.Inline=1]="Inline",R[R.Gutter=2]="Gutter"})(w||(e.MinimapPosition=w={}));var S;(function(R){R[R.Normal=1]="Normal",R[R.Underlined=2]="Underlined"})(S||(e.MinimapSectionHeaderStyle=S={}));var L;(function(R){R[R.UNKNOWN=0]="UNKNOWN",R[R.TEXTAREA=1]="TEXTAREA",R[R.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",R[R.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",R[R.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",R[R.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",R[R.CONTENT_TEXT=6]="CONTENT_TEXT",R[R.CONTENT_EMPTY=7]="CONTENT_EMPTY",R[R.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",R[R.CONTENT_WIDGET=9]="CONTENT_WIDGET",R[R.OVERVIEW_RULER=10]="OVERVIEW_RULER",R[R.SCROLLBAR=11]="SCROLLBAR",R[R.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",R[R.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(L||(e.MouseTargetType=L={}));var D;(function(R){R[R.AIGenerated=1]="AIGenerated"})(D||(e.NewSymbolNameTag=D={}));var T;(function(R){R[R.Invoke=0]="Invoke",R[R.Automatic=1]="Automatic"})(T||(e.NewSymbolNameTriggerKind=T={}));var M;(function(R){R[R.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",R[R.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",R[R.TOP_CENTER=2]="TOP_CENTER"})(M||(e.OverlayWidgetPositionPreference=M={}));var A;(function(R){R[R.Left=1]="Left",R[R.Center=2]="Center",R[R.Right=4]="Right",R[R.Full=7]="Full"})(A||(e.OverviewRulerLane=A={}));var P;(function(R){R[R.Word=0]="Word",R[R.Line=1]="Line",R[R.Suggest=2]="Suggest"})(P||(e.PartialAcceptTriggerKind=P={}));var N;(function(R){R[R.Left=0]="Left",R[R.Right=1]="Right",R[R.None=2]="None",R[R.LeftOfInjectedText=3]="LeftOfInjectedText",R[R.RightOfInjectedText=4]="RightOfInjectedText"})(N||(e.PositionAffinity=N={}));var O;(function(R){R[R.Off=0]="Off",R[R.On=1]="On",R[R.Relative=2]="Relative",R[R.Interval=3]="Interval",R[R.Custom=4]="Custom"})(O||(e.RenderLineNumbersType=O={}));var F;(function(R){R[R.None=0]="None",R[R.Text=1]="Text",R[R.Blocks=2]="Blocks"})(F||(e.RenderMinimap=F={}));var x;(function(R){R[R.Smooth=0]="Smooth",R[R.Immediate=1]="Immediate"})(x||(e.ScrollType=x={}));var W;(function(R){R[R.Auto=1]="Auto",R[R.Hidden=2]="Hidden",R[R.Visible=3]="Visible"})(W||(e.ScrollbarVisibility=W={}));var V;(function(R){R[R.LTR=0]="LTR",R[R.RTL=1]="RTL"})(V||(e.SelectionDirection=V={}));var q;(function(R){R.Off="off",R.OnCode="onCode",R.On="on"})(q||(e.ShowLightbulbIconMode=q={}));var H;(function(R){R[R.Invoke=1]="Invoke",R[R.TriggerCharacter=2]="TriggerCharacter",R[R.ContentChange=3]="ContentChange"})(H||(e.SignatureHelpTriggerKind=H={}));var z;(function(R){R[R.File=0]="File",R[R.Module=1]="Module",R[R.Namespace=2]="Namespace",R[R.Package=3]="Package",R[R.Class=4]="Class",R[R.Method=5]="Method",R[R.Property=6]="Property",R[R.Field=7]="Field",R[R.Constructor=8]="Constructor",R[R.Enum=9]="Enum",R[R.Interface=10]="Interface",R[R.Function=11]="Function",R[R.Variable=12]="Variable",R[R.Constant=13]="Constant",R[R.String=14]="String",R[R.Number=15]="Number",R[R.Boolean=16]="Boolean",R[R.Array=17]="Array",R[R.Object=18]="Object",R[R.Key=19]="Key",R[R.Null=20]="Null",R[R.EnumMember=21]="EnumMember",R[R.Struct=22]="Struct",R[R.Event=23]="Event",R[R.Operator=24]="Operator",R[R.TypeParameter=25]="TypeParameter"})(z||(e.SymbolKind=z={}));var U;(function(R){R[R.Deprecated=1]="Deprecated"})(U||(e.SymbolTag=U={}));var j;(function(R){R[R.Hidden=0]="Hidden",R[R.Blink=1]="Blink",R[R.Smooth=2]="Smooth",R[R.Phase=3]="Phase",R[R.Expand=4]="Expand",R[R.Solid=5]="Solid"})(j||(e.TextEditorCursorBlinkingStyle=j={}));var Y;(function(R){R[R.Line=1]="Line",R[R.Block=2]="Block",R[R.Underline=3]="Underline",R[R.LineThin=4]="LineThin",R[R.BlockOutline=5]="BlockOutline",R[R.UnderlineThin=6]="UnderlineThin"})(Y||(e.TextEditorCursorStyle=Y={}));var G;(function(R){R[R.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",R[R.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",R[R.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",R[R.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(G||(e.TrackedRangeStickiness=G={}));var K;(function(R){R[R.None=0]="None",R[R.Same=1]="Same",R[R.Indent=2]="Indent",R[R.DeepIndent=3]="DeepIndent"})(K||(e.WrappingIndent=K={}))}),define(ne[583],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairWithMinIndentationInfo=e.BracketPairInfo=e.BracketInfo=void 0;class d{constructor(y,m,_,b){this.range=y,this.nestingLevel=m,this.nestingLevelOfEqualBracketType=_,this.isInvalid=b}}e.BracketInfo=d;class k{constructor(y,m,_,b,p,n){this.range=y,this.openingBracketRange=m,this.closingBracketRange=_,this.nestingLevel=b,this.nestingLevelOfEqualBracketType=p,this.bracketPairNode=n}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}e.BracketPairInfo=k;class I extends k{constructor(y,m,_,b,p,n,o){super(y,m,_,b,p,n),this.minVisibleColumnIndentation=o}}e.BracketPairWithMinIndentationInfo=I}),define(ne[584],se([1,0,6,2,583,200,321,106,320,149,236,13,319]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTree=void 0;class t extends k.Disposable{didLanguageChange(r){return this.brackets.didLanguageChange(r)}constructor(r,u){if(super(),this.textModel=r,this.getLanguageConfiguration=u,this.didChangeEmitter=new d.Emitter,this.denseKeyProvider=new b.DenseKeyProvider,this.brackets=new y.LanguageAgnosticBracketTokens(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],r.tokenization.hasTokens)r.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const C=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),f=new p.FastTokenizer(this.textModel.getValue(),C);this.initialAstWithoutTokens=(0,_.parseDocument)(f,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const r=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,r||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:r}){const u=r.map(C=>new E.TextEditInfo((0,m.toLength)(C.fromLineNumber-1,0),(0,m.toLength)(C.toLineNumber,0),(0,m.toLength)(C.toLineNumber-C.fromLineNumber+1,0)));this.handleEdits(u,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(r){const u=E.TextEditInfo.fromModelContentChanges(r.changes);this.handleEdits(u,!1)}handleEdits(r,u){const C=(0,o.combineTextEditInfos)(this.queuedTextEdits,r);this.queuedTextEdits=C,this.initialAstWithoutTokens&&!u&&(this.queuedTextEditsForInitialAstWithoutTokens=(0,o.combineTextEditInfos)(this.queuedTextEditsForInitialAstWithoutTokens,r))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(r,u,C){const h=u,v=new p.TextBufferTokenizer(this.textModel,this.brackets);return(0,_.parseDocument)(v,r,h,C)}getBracketsInRange(r,u){this.flushQueue();const C=(0,m.toLength)(r.startLineNumber-1,r.startColumn-1),f=(0,m.toLength)(r.endLineNumber-1,r.endColumn-1);return new n.CallbackIterable(h=>{const v=this.initialAstWithoutTokens||this.astWithTokens;g(v,m.lengthZero,v.length,C,f,h,0,0,new Map,u)})}getBracketPairsInRange(r,u){this.flushQueue();const C=(0,m.positionToLength)(r.getStartPosition()),f=(0,m.positionToLength)(r.getEndPosition());return new n.CallbackIterable(h=>{const v=this.initialAstWithoutTokens||this.astWithTokens,w=new c(h,u,this.textModel);l(v,m.lengthZero,v.length,C,f,w,0,new Map)})}getFirstBracketAfter(r){this.flushQueue();const u=this.initialAstWithoutTokens||this.astWithTokens;return s(u,m.lengthZero,u.length,(0,m.positionToLength)(r))}getFirstBracketBefore(r){this.flushQueue();const u=this.initialAstWithoutTokens||this.astWithTokens;return i(u,m.lengthZero,u.length,(0,m.positionToLength)(r))}}e.BracketPairsTree=t;function i(a,r,u,C){if(a.kind===4||a.kind===2){const f=[];for(const h of a.children)u=(0,m.lengthAdd)(r,h.length),f.push({nodeOffsetStart:r,nodeOffsetEnd:u}),r=u;for(let h=f.length-1;h>=0;h--){const{nodeOffsetStart:v,nodeOffsetEnd:w}=f[h];if((0,m.lengthLessThan)(v,C)){const S=i(a.children[h],v,w,C);if(S)return S}}return null}else{if(a.kind===3)return null;if(a.kind===1){const f=(0,m.lengthsToRange)(r,u);return{bracketInfo:a.bracketInfo,range:f}}}return null}function s(a,r,u,C){if(a.kind===4||a.kind===2){for(const f of a.children){if(u=(0,m.lengthAdd)(r,f.length),(0,m.lengthLessThan)(C,u)){const h=s(f,r,u,C);if(h)return h}r=u}return null}else{if(a.kind===3)return null;if(a.kind===1){const f=(0,m.lengthsToRange)(r,u);return{bracketInfo:a.bracketInfo,range:f}}}return null}function g(a,r,u,C,f,h,v,w,S,L,D=!1){if(v>200)return!0;e:for(;;)switch(a.kind){case 4:{const T=a.childrenLength;for(let M=0;M200)return!0;let S=!0;if(a.kind===2){let L=0;if(w){let M=w.get(a.openingBracket.text);M===void 0&&(M=0),L=M,M++,w.set(a.openingBracket.text,M)}const D=(0,m.lengthAdd)(r,a.openingBracket.length);let T=-1;if(h.includeMinIndentation&&(T=a.computeMinIndentation(r,h.textModel)),S=h.push(new I.BracketPairWithMinIndentationInfo((0,m.lengthsToRange)(r,u),(0,m.lengthsToRange)(r,D),a.closingBracket?(0,m.lengthsToRange)((0,m.lengthAdd)(D,a.child?.length||m.lengthZero),u):void 0,v,L,a,T)),r=D,S&&a.child){const M=a.child;if(u=(0,m.lengthAdd)(r,M.length),(0,m.lengthLessThanEqual)(r,f)&&(0,m.lengthGreaterThanEqual)(u,C)&&(S=l(M,r,u,C,f,h,v+1,w),!S))return!1}w?.set(a.openingBracket.text,L)}else{let L=r;for(const D of a.children){const T=L;if(L=(0,m.lengthAdd)(L,D.length),(0,m.lengthLessThanEqual)(T,f)&&(0,m.lengthLessThanEqual)(C,L)&&(S=l(D,T,L,C,f,h,v,w),!S))return!1}}return S}}),define(ne[132],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalModelContentChangeEvent=e.ModelInjectedTextChangedEvent=e.ModelRawContentChangedEvent=e.ModelRawEOLChanged=e.ModelRawLinesInserted=e.ModelRawLinesDeleted=e.ModelRawLineChanged=e.LineInjectedText=e.ModelRawFlush=void 0;class d{constructor(){this.changeType=1}}e.ModelRawFlush=d;class k{static applyInjectedText(o,t){if(!t||t.length===0)return o;let i="",s=0;for(const g of t)i+=o.substring(s,g.column-1),s=g.column-1,i+=g.options.content;return i+=o.substring(s),i}static fromDecorations(o){const t=[];for(const i of o)i.options.before&&i.options.before.content.length>0&&t.push(new k(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new k(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,s)=>i.lineNumber===s.lineNumber?i.column===s.column?i.order-s.order:i.column-s.column:i.lineNumber-s.lineNumber),t}constructor(o,t,i,s,g){this.ownerId=o,this.lineNumber=t,this.column=i,this.options=s,this.order=g}}e.LineInjectedText=k;class I{constructor(o,t,i){this.changeType=2,this.lineNumber=o,this.detail=t,this.injectedText=i}}e.ModelRawLineChanged=I;class E{constructor(o,t){this.changeType=3,this.fromLineNumber=o,this.toLineNumber=t}}e.ModelRawLinesDeleted=E;class y{constructor(o,t,i,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=o,this.toLineNumber=t,this.detail=i}}e.ModelRawLinesInserted=y;class m{constructor(){this.changeType=5}}e.ModelRawEOLChanged=m;class _{constructor(o,t,i,s){this.changes=o,this.versionId=t,this.isUndoing=i,this.isRedoing=s,this.resultingSelection=null}containsEvent(o){for(let t=0,i=this.changes.length;tg)throw new b.BugIndicatingError("Illegal value for lineNumber");const c=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(c&&c.offSide);let a=-2,r=-1,u=-2,C=-1;const f=O=>{if(a!==-1&&(a===-2||a>O-1)){a=-1,r=-1;for(let F=O-2;F>=0;F--){const x=this._computeIndentLevel(F);if(x>=0){a=F,r=x;break}}}if(u===-2){u=-1,C=-1;for(let F=O;F=0){u=F,C=x;break}}}};let h=-2,v=-1,w=-2,S=-1;const L=O=>{if(h===-2){h=-1,v=-1;for(let F=O-2;F>=0;F--){const x=this._computeIndentLevel(F);if(x>=0){h=F,v=x;break}}}if(w!==-1&&(w===-2||w=0){w=F,S=x;break}}}};let D=0,T=!0,M=0,A=!0,P=0,N=0;for(let O=0;T||A;O++){const F=t-O,x=t+O;O>1&&(F<1||F1&&(x>g||x>s)&&(A=!1),O>5e4&&(T=!1,A=!1);let W=-1;if(T&&F>=1){const q=this._computeIndentLevel(F-1);q>=0?(u=F-1,C=q,W=Math.ceil(q/this.textModel.getOptions().indentSize)):(f(F),W=this._getIndentLevelForWhitespaceLine(l,r,C))}let V=-1;if(A&&x<=g){const q=this._computeIndentLevel(x-1);q>=0?(h=x-1,v=q,V=Math.ceil(q/this.textModel.getOptions().indentSize)):(L(x),V=this._getIndentLevelForWhitespaceLine(l,v,S))}if(O===0){N=W;continue}if(O===1){if(x<=g&&V>=0&&N+1===V){T=!1,D=x,M=x,P=V;continue}if(F>=1&&W>=0&&W-1===N){A=!1,D=F,M=F,P=W;continue}if(D=t,M=t,P=N,P===0)return{startLineNumber:D,endLineNumber:M,indent:P}}T&&(W>=P?D=F:T=!1),A&&(V>=P?M=x:A=!1)}return{startLineNumber:D,endLineNumber:M,indent:P}}getLinesBracketGuides(t,i,s,g){const c=[];for(let f=t;f<=i;f++)c.push([]);const l=!0,a=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new E.Range(t,1,i,this.textModel.getLineMaxColumn(i))).toArray();let r;if(s&&a.length>0){const f=(t<=s.lineNumber&&s.lineNumber<=i?a:this.textModel.bracketPairs.getBracketPairsInRange(E.Range.fromPositions(s)).toArray()).filter(h=>E.Range.strictContainsPosition(h.range,s));r=(0,d.findLast)(f,h=>l||h.range.startLineNumber!==h.range.endLineNumber)?.range}const u=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,C=new n;for(const f of a){if(!f.closingBracketRange)continue;const h=r&&f.range.equalsRange(r);if(!h&&!g.includeInactive)continue;const v=C.getInlineClassName(f.nestingLevel,f.nestingLevelOfEqualBracketType,u)+(g.highlightActive&&h?" "+C.activeClassName:""),w=f.openingBracketRange.getStartPosition(),S=f.closingBracketRange.getStartPosition(),L=g.horizontalGuides===_.HorizontalGuidesState.Enabled||g.horizontalGuides===_.HorizontalGuidesState.EnabledForActive&&h;if(f.range.startLineNumber===f.range.endLineNumber){l&&L&&c[f.range.startLineNumber-t].push(new _.IndentGuide(-1,f.openingBracketRange.getEndPosition().column,v,new _.IndentGuideHorizontalLine(!1,S.column),-1,-1));continue}const D=this.getVisibleColumnFromPosition(S),T=this.getVisibleColumnFromPosition(f.openingBracketRange.getStartPosition()),M=Math.min(T,D,f.minVisibleColumnIndentation+1);let A=!1;k.firstNonWhitespaceIndex(this.textModel.getLineContent(f.closingBracketRange.startLineNumber))=t&&T>M&&c[w.lineNumber-t].push(new _.IndentGuide(M,-1,v,new _.IndentGuideHorizontalLine(!1,w.column),-1,-1)),S.lineNumber<=i&&D>M&&c[S.lineNumber-t].push(new _.IndentGuide(M,-1,v,new _.IndentGuideHorizontalLine(!A,S.column),-1,-1)))}for(const f of c)f.sort((h,v)=>h.visibleColumn-v.visibleColumn);return c}getVisibleColumnFromPosition(t){return I.CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(t.lineNumber),t.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(t,i){this.assertNotDisposed();const s=this.textModel.getLineCount();if(t<1||t>s)throw new Error("Illegal value for startLineNumber");if(i<1||i>s)throw new Error("Illegal value for endLineNumber");const g=this.textModel.getOptions(),c=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(c&&c.offSide),a=new Array(i-t+1);let r=-2,u=-1,C=-2,f=-1;for(let h=t;h<=i;h++){const v=h-t,w=this._computeIndentLevel(h-1);if(w>=0){r=h-1,u=w,a[v]=Math.ceil(w/g.indentSize);continue}if(r===-2){r=-1,u=-1;for(let S=h-2;S>=0;S--){const L=this._computeIndentLevel(S);if(L>=0){r=S,u=L;break}}}if(C!==-1&&(C===-2||C=0){C=S,f=L;break}}}a[v]=this._getIndentLevelForWhitespaceLine(l,u,f)}return a}_getIndentLevelForWhitespaceLine(t,i,s){const g=this.textModel.getOptions();return i===-1||s===-1?0:i{this._tokenizationSupports.get(m)===_&&(this._tokenizationSupports.delete(m),this.handleChange([m]))})}get(m){return this._tokenizationSupports.get(m)||null}registerFactory(m,_){this._factories.get(m)?.dispose();const b=new E(this,m,_);return this._factories.set(m,b),(0,k.toDisposable)(()=>{const p=this._factories.get(m);!p||p!==b||(this._factories.delete(m),p.dispose())})}async getOrCreate(m){const _=this.get(m);if(_)return _;const b=this._factories.get(m);return!b||b.isResolved?null:(await b.resolve(),this.get(m))}isResolved(m){if(this.get(m))return!0;const b=this._factories.get(m);return!!(!b||b.isResolved)}setColorMap(m){this._colorMap=m,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}e.TokenizationRegistry=I;class E extends k.Disposable{get isResolved(){return this._isResolved}constructor(m,_,b){super(),this._registry=m,this._languageId=_,this._factory=b,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const m=await this._factory.tokenizationSupport;this._isResolved=!0,m&&!this._isDisposed&&this._register(this._registry.register(this._languageId,m))}}}),define(ne[586],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokens=void 0;class d{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(I,E){this._startLineNumber=I,this._tokens=E}getLineTokens(I){return this._tokens[I-this._startLineNumber]}appendLineTokens(I){this._tokens.push(I)}}e.ContiguousMultilineTokens=d}),define(ne[330],se([1,0,586]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokensBuilder=void 0;class k{constructor(){this._tokens=[]}add(E,y){if(this._tokens.length>0){const m=this._tokens[this._tokens.length-1];if(m.endLineNumber+1===E){m.appendLineTokens(y);return}}this._tokens.push(new d.ContiguousMultilineTokens(E,[y]))}finalize(){return this._tokens}}e.ContiguousMultilineTokensBuilder=k}),define(ne[83],se([1,0,148]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineTokens=void 0,e.getStandardTokenTypeAtPosition=E;class k{static{this.defaultTokenMetadata=(32768|2<<24)>>>0}static createEmpty(m,_){const b=k.defaultTokenMetadata,p=new Uint32Array(2);return p[0]=m.length,p[1]=b,new k(p,m,_)}static createFromTextAndMetadata(m,_){let b=0,p="";const n=new Array;for(const{text:o,metadata:t}of m)n.push(b+o.length,t),b+=o.length,p+=o;return new k(new Uint32Array(n),p,_)}constructor(m,_,b){this._lineTokensBrand=void 0,this._tokens=m,this._tokensCount=this._tokens.length>>>1,this._text=_,this.languageIdCodec=b}equals(m){return m instanceof k?this.slicedEquals(m,0,this._tokensCount):!1}slicedEquals(m,_,b){if(this._text!==m._text||this._tokensCount!==m._tokensCount)return!1;const p=_<<1,n=p+(b<<1);for(let o=p;o0?this._tokens[m-1<<1]:0}getMetadata(m){return this._tokens[(m<<1)+1]}getLanguageId(m){const _=this._tokens[(m<<1)+1],b=d.TokenMetadata.getLanguageId(_);return this.languageIdCodec.decodeLanguageId(b)}getStandardTokenType(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getTokenType(_)}getForeground(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getForeground(_)}getClassName(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getClassNameFromMetadata(_)}getInlineStyle(m,_){const b=this._tokens[(m<<1)+1];return d.TokenMetadata.getInlineStyleFromMetadata(b,_)}getPresentation(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getPresentationFromMetadata(_)}getEndOffset(m){return this._tokens[m<<1]}findTokenIndexAtOffset(m){return k.findIndexInTokensArray(this._tokens,m)}inflate(){return this}sliceAndInflate(m,_,b){return new I(this,m,_,b)}static convertToEndOffset(m,_){const p=(m.length>>>1)-1;for(let n=0;n>>1)-1;for(;b_&&(p=n)}return b}withInserted(m){if(m.length===0)return this;let _=0,b=0,p="";const n=new Array;let o=0;for(;;){const t=_o){p+=this._text.substring(o,i.offset);const s=this._tokens[(_<<1)+1];n.push(p.length,s),o=i.offset}p+=i.text,n.push(p.length,i.tokenMetadata),b++}else break}return new k(new Uint32Array(n),p,this.languageIdCodec)}getTokenText(m){const _=this.getStartOffset(m),b=this.getEndOffset(m);return this._text.substring(_,b)}forEach(m){const _=this.getCount();for(let b=0;b<_;b++)m(b)}}e.LineTokens=k;class I{constructor(m,_,b,p){this._source=m,this._startOffset=_,this._endOffset=b,this._deltaOffset=p,this._firstTokenIndex=m.findTokenIndexAtOffset(_),this.languageIdCodec=m.languageIdCodec,this._tokensCount=0;for(let n=this._firstTokenIndex,o=m.getCount();n=b);n++)this._tokensCount++}getMetadata(m){return this._source.getMetadata(this._firstTokenIndex+m)}getLanguageId(m){return this._source.getLanguageId(this._firstTokenIndex+m)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(m){return m instanceof I?this._startOffset===m._startOffset&&this._endOffset===m._endOffset&&this._deltaOffset===m._deltaOffset&&this._source.slicedEquals(m._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(m){return this._source.getStandardTokenType(this._firstTokenIndex+m)}getForeground(m){return this._source.getForeground(this._firstTokenIndex+m)}getEndOffset(m){const _=this._source.getEndOffset(this._firstTokenIndex+m);return Math.min(this._endOffset,_)-this._startOffset+this._deltaOffset}getClassName(m){return this._source.getClassName(this._firstTokenIndex+m)}getInlineStyle(m,_){return this._source.getInlineStyle(this._firstTokenIndex+m,_)}getPresentation(m){return this._source.getPresentation(this._firstTokenIndex+m)}findTokenIndexAtOffset(m){return this._source.findTokenIndexAtOffset(m+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(m){const _=this._firstTokenIndex+m,b=this._source.getStartOffset(_),p=this._source.getEndOffset(_);let n=this._source.getTokenText(_);return bthis._endOffset&&(n=n.substring(0,n.length-(p-this._endOffset))),n}forEach(m){for(let _=0;_{this.model.tokenization.forceTokenization(C);const f=this.model.tokenization.getLineTokens(C),h=this.model.getLineMaxColumn(C)-1;return(0,k.createScopedLineTokens)(f,h)};this.model.tokenization.forceTokenization(p.startLineNumber);const o=this.model.tokenization.getLineTokens(p.startLineNumber),t=(0,k.createScopedLineTokens)(o,p.startColumn-1),i=I.LineTokens.createEmpty("",t.languageIdCodec),s=p.startLineNumber-1;if(s===0||!(t.firstCharOffset===0))return i;const l=n(s);if(!(t.languageId===l.languageId))return i;const r=l.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(r)}}e.IndentationContextProcessor=y;class m{constructor(p,n){this.model=p,this.languageConfigurationService=n}getProcessedLine(p,n){const o=(s,g)=>{const c=d.getLeadingWhitespace(s);return g+s.substring(c.length)};this.model.tokenization.forceTokenization?.(p);const t=this.model.tokenization.getLineTokens(p);let i=this.getProcessedTokens(t).getLineContent();return n!==void 0&&(i=o(i,n)),i}getProcessedTokens(p){const n=c=>c===2||c===3||c===1,o=p.getLanguageId(0),i=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getBracketRegExp({global:!0}),s=[];return p.forEach(c=>{const l=p.getStandardTokenType(c);let a=p.getTokenText(c);n(l)&&(a=a.replace(i,""));const r=p.getMetadata(c);s.push({text:a,metadata:r})}),I.LineTokens.createFromTextAndMetadata(s,p.languageIdCodec)}}function _(b,p){b.tokenization.forceTokenization(p.lineNumber);const n=b.tokenization.getLineTokens(p.lineNumber),o=(0,k.createScopedLineTokens)(n,p.column-1),t=o.firstCharOffset===0,i=n.getLanguageId(0)===o.languageId;return!t&&!i}}),define(ne[241],se([1,0,11,131,240]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getInheritIndentForLine=y,e.getGoodIndentForLine=m,e.getIndentForEnter=_,e.getIndentActionForType=b,e.getIndentMetadata=p;function E(o,t,i){const s=o.tokenization.getLanguageIdAtPosition(t,0);if(t>1){let g,c=-1;for(g=t-1;g>=1;g--){if(o.tokenization.getLanguageIdAtPosition(g,0)!==s)return c;const l=o.getLineContent(g);if(i.shouldIgnore(g)||/^\s+$/.test(l)||l===""){c=g;continue}return g}}return-1}function y(o,t,i,s=!0,g){if(o<4)return null;const c=g.getLanguageConfiguration(t.tokenization.getLanguageId()).indentRulesSupport;if(!c)return null;const l=new I.ProcessedIndentRulesSupport(t,c,g);if(i<=1)return{indentation:"",action:null};for(let r=i-1;r>0&&t.getLineContent(r)==="";r--)if(r===1)return{indentation:"",action:null};const a=E(t,i,l);if(a<0)return null;if(a<1)return{indentation:"",action:null};if(l.shouldIncrease(a)||l.shouldIndentNextLine(a)){const r=t.getLineContent(a);return{indentation:d.getLeadingWhitespace(r),action:k.IndentAction.Indent,line:a}}else if(l.shouldDecrease(a)){const r=t.getLineContent(a);return{indentation:d.getLeadingWhitespace(r),action:null,line:a}}else{if(a===1)return{indentation:d.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};const r=a-1,u=c.getIndentMetadata(t.getLineContent(r));if(!(u&3)&&u&4){let C=0;for(let f=r-1;f>0;f--)if(!l.shouldIndentNextLine(f)){C=f;break}return{indentation:d.getLeadingWhitespace(t.getLineContent(C+1)),action:null,line:C+1}}if(s)return{indentation:d.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};for(let C=a;C>0;C--){if(l.shouldIncrease(C))return{indentation:d.getLeadingWhitespace(t.getLineContent(C)),action:k.IndentAction.Indent,line:C};if(l.shouldIndentNextLine(C)){let f=0;for(let h=C-1;h>0;h--)if(!l.shouldIndentNextLine(C)){f=h;break}return{indentation:d.getLeadingWhitespace(t.getLineContent(f+1)),action:null,line:f+1}}else if(l.shouldDecrease(C))return{indentation:d.getLeadingWhitespace(t.getLineContent(C)),action:null,line:C}}return{indentation:d.getLeadingWhitespace(t.getLineContent(1)),action:null,line:1}}}function m(o,t,i,s,g,c){if(o<4)return null;const l=c.getLanguageConfiguration(i);if(!l)return null;const a=c.getLanguageConfiguration(i).indentRulesSupport;if(!a)return null;const r=new I.ProcessedIndentRulesSupport(t,a,c),u=y(o,t,s,void 0,c);if(u){const C=u.line;if(C!==void 0){let f=!0;for(let h=C;h0){const D=t.getLineContent(L);if(u.shouldIndentNextLine(D)&&u.shouldIncrease(S)){const M=y(l,t,i.startLineNumber,!1,c)?.indentation;if(M!==void 0){const A=t.getLineContent(i.startLineNumber),P=d.getLeadingWhitespace(A),O=g.shiftIndent(M)===P,F=/^\s*$/.test(w),x=o.autoClosingPairs.autoClosingPairsOpenByEnd.get(s),V=x&&x.length>0&&F;if(O&&V)return M}}}return null}function p(o,t,i){const s=i.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;return!s||t<1||t>o.getLineCount()?null:s.getIndentMetadata(o.getLineContent(t))}function n(o,t,i){return{tokenization:{getLineTokens:g=>g===t?i:o.tokenization.getLineTokens(g),getLanguageId:()=>o.getLanguageId(),getLanguageIdAtPosition:(g,c)=>o.getLanguageIdAtPosition(g,c)},getLineContent:g=>g===t?i.getLineContent():o.getLineContent(g)}}}),define(ne[587],se([1,0,83]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousTokensEditing=e.EMPTY_LINE_TOKENS=void 0,e.toUint32Array=I,e.EMPTY_LINE_TOKENS=new Uint32Array(0).buffer;class k{static deleteBeginning(y,m){return y===null||y===e.EMPTY_LINE_TOKENS?y:k.delete(y,0,m)}static deleteEnding(y,m){if(y===null||y===e.EMPTY_LINE_TOKENS)return y;const _=I(y),b=_[_.length-2];return k.delete(y,m,b)}static delete(y,m,_){if(y===null||y===e.EMPTY_LINE_TOKENS||m===_)return y;const b=I(y),p=b.length>>>1;if(m===0&&b[b.length-2]===_)return e.EMPTY_LINE_TOKENS;const n=d.LineTokens.findIndexInTokensArray(b,m),o=n>0?b[n-1<<1]:0,t=b[n<<1];if(_s&&(b[i++]=a,b[i++]=b[(l<<1)+1],s=a)}if(i===b.length)return y;const c=new Uint32Array(i);return c.set(b.subarray(0,i),0),c.buffer}static append(y,m){if(m===e.EMPTY_LINE_TOKENS)return y;if(y===e.EMPTY_LINE_TOKENS)return m;if(y===null)return y;if(m===null)return null;const _=I(y),b=I(m),p=b.length>>>1,n=new Uint32Array(_.length+b.length);n.set(_,0);let o=_.length;const t=_[_.length-2];for(let i=0;i>>1;let n=d.LineTokens.findIndexInTokensArray(b,m);n>0&&b[n-1<<1]===m&&n--;for(let o=n;o0}getTokens(p,n,o){let t=null;if(n1&&(i=y.TokenMetadata.getLanguageId(t[1])!==p),!i)return I.EMPTY_LINE_TOKENS}if(!t||t.length===0){const i=new Uint32Array(2);return i[0]=n,i[1]=_(p),i.buffer}return t[t.length-2]=n,t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t}_ensureLine(p){for(;p>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(p,n){n!==0&&(p+n>this._len&&(n=this._len-p),this._lineTokens.splice(p,n),this._len-=n)}_insertLines(p,n){if(n===0)return;const o=[];for(let t=0;t=this._len)return;if(p.startLineNumber===p.endLineNumber){if(p.startColumn===p.endColumn)return;this._lineTokens[n]=I.ContiguousTokensEditing.delete(this._lineTokens[n],p.startColumn-1,p.endColumn-1);return}this._lineTokens[n]=I.ContiguousTokensEditing.deleteEnding(this._lineTokens[n],p.startColumn-1);const o=p.endLineNumber-1;let t=null;o=this._len)){if(n===0){this._lineTokens[t]=I.ContiguousTokensEditing.insert(this._lineTokens[t],p.column-1,o);return}this._lineTokens[t]=I.ContiguousTokensEditing.deleteEnding(this._lineTokens[t],p.column-1),this._lineTokens[t]=I.ContiguousTokensEditing.insert(this._lineTokens[t],p.column-1,o),this._insertLines(p.lineNumber,n)}}setMultilineTokens(p,n){if(p.length===0)return{changes:[]};const o=[];for(let t=0,i=p.length;t>>0}}),define(ne[589],se([1,0,9,4,145]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SparseLineTokens=e.SparseMultilineTokens=void 0;class E{static create(b,p){return new E(b,new y(p))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(b,p){this._startLineNumber=b,this._tokens=p,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(b){return this._startLineNumber<=b&&b<=this._endLineNumber?this._tokens.getLineTokens(b-this._startLineNumber):null}getRange(){const b=this._tokens.getRange();return b&&new k.Range(this._startLineNumber+b.startLineNumber,b.startColumn,this._startLineNumber+b.endLineNumber,b.endColumn)}removeTokens(b){const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(p,b.startColumn-1,n,b.endColumn-1),this._updateEndLineNumber()}split(b){const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber,[o,t,i]=this._tokens.split(p,b.startColumn-1,n,b.endColumn-1);return[new E(this._startLineNumber,o),new E(this._startLineNumber+i,t)]}applyEdit(b,p){const[n,o,t]=(0,I.countEOL)(p);this.acceptEdit(b,n,o,t,p.length>0?p.charCodeAt(0):0)}acceptEdit(b,p,n,o,t){this._acceptDeleteRange(b),this._acceptInsertText(new d.Position(b.startLineNumber,b.startColumn),p,n,o,t),this._updateEndLineNumber()}_acceptDeleteRange(b){if(b.startLineNumber===b.endLineNumber&&b.startColumn===b.endColumn)return;const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber;if(n<0){const t=n-p;this._startLineNumber-=t;return}const o=this._tokens.getMaxDeltaLine();if(!(p>=o+1)){if(p<0&&n>=o+1){this._startLineNumber=0,this._tokens.clear();return}if(p<0){const t=-p;this._startLineNumber-=t,this._tokens.acceptDeleteRange(b.startColumn-1,0,0,n,b.endColumn-1)}else this._tokens.acceptDeleteRange(0,p,b.startColumn-1,n,b.endColumn-1)}}_acceptInsertText(b,p,n,o,t){if(p===0&&n===0)return;const i=b.lineNumber-this._startLineNumber;if(i<0){this._startLineNumber+=p;return}const s=this._tokens.getMaxDeltaLine();i>=s+1||this._tokens.acceptInsertText(i,b.column-1,p,n,o,t)}}e.SparseMultilineTokens=E;class y{constructor(b){this._tokens=b,this._tokenCount=b.length/4}toString(b){const p=[];for(let n=0;nb)n=o-1;else{let i=o;for(;i>p&&this._getDeltaLine(i-1)===b;)i--;let s=o;for(;sb||r===b&&C>=p)&&(rb||C===b&&h>=p){if(Ct?f-=t-n:f=n;else if(u===p&&C===n)if(u===o&&f>t)f-=t-n;else{l=!0;continue}else if(ut)u=p,C=n,f=C+(f-t);else{l=!0;continue}else if(u>o){if(g===0&&!l){c=s;break}u-=g}else if(u===o&&C>=t)b&&u===0&&(C+=b,f+=b),u-=g,C-=t-n,f-=t-n;else throw new Error("Not possible!");const v=4*c;i[v]=u,i[v+1]=C,i[v+2]=f,i[v+3]=h,c++}this._tokenCount=c}acceptInsertText(b,p,n,o,t,i){const s=n===0&&o===1&&(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122),g=this._tokens,c=this._tokenCount;for(let l=0;l0){const p=m[0].getRange(),n=m[m.length-1].getRange();if(!p||!n)return y;_=y.plusRange(p).plusRange(n)}let b=null;for(let p=0,n=this._pieces.length;p_.endLineNumber){b=b||{index:p};break}if(o.removeTokens(_),o.isEmpty()){this._pieces.splice(p,1),p--,n--;continue}if(o.endLineNumber<_.startLineNumber)continue;if(o.startLineNumber>_.endLineNumber){b=b||{index:p};continue}const[t,i]=o.split(_);if(t.isEmpty()){b=b||{index:p};continue}i.isEmpty()||(this._pieces.splice(p,1,t,i),p++,n++,b=b||{index:p})}return b=b||{index:this._pieces.length},m.length>0&&(this._pieces=d.arrayInsert(this._pieces,b.index,m)),_}isComplete(){return this._isComplete}addSparseTokens(y,m){if(m.getLineContent().length===0)return m;const _=this._pieces;if(_.length===0)return m;const b=I._findFirstPieceWithLine(_,y),p=_[b].getLineTokens(y);if(!p)return m;const n=m.getCount(),o=p.getCount();let t=0;const i=[];let s=0,g=0;const c=(l,a)=>{l!==g&&(g=l,i[s++]=l,i[s++]=a)};for(let l=0;l>>0,f=~C>>>0;for(;tm)b=p-1;else{for(;p>_&&y[p-1].startLineNumber<=m&&m<=y[p-1].endLineNumber;)p--;return p}}return _}acceptEdit(y,m,_,b,p){for(const n of this._pieces)n.acceptEdit(y,m,_,b,p)}}e.SparseTokensStore=I}),define(ne[170],se([1,0,2]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewEventHandler=void 0;class k extends d.Disposable{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(E){return!1}onCompositionEnd(E){return!1}onConfigurationChanged(E){return!1}onCursorStateChanged(E){return!1}onDecorationsChanged(E){return!1}onFlushed(E){return!1}onFocusChanged(E){return!1}onLanguageConfigurationChanged(E){return!1}onLineMappingChanged(E){return!1}onLinesChanged(E){return!1}onLinesDeleted(E){return!1}onLinesInserted(E){return!1}onRevealRangeRequest(E){return!1}onScrollChanged(E){return!1}onThemeChanged(E){return!1}onTokensChanged(E){return!1}onTokensColorsChanged(E){return!1}onZonesChanged(E){return!1}handleEvents(E){let y=!1;for(let m=0,_=E.length;m<_;m++){const b=E[m];switch(b.type){case 0:this.onCompositionStart(b)&&(y=!0);break;case 1:this.onCompositionEnd(b)&&(y=!0);break;case 2:this.onConfigurationChanged(b)&&(y=!0);break;case 3:this.onCursorStateChanged(b)&&(y=!0);break;case 4:this.onDecorationsChanged(b)&&(y=!0);break;case 5:this.onFlushed(b)&&(y=!0);break;case 6:this.onFocusChanged(b)&&(y=!0);break;case 7:this.onLanguageConfigurationChanged(b)&&(y=!0);break;case 8:this.onLineMappingChanged(b)&&(y=!0);break;case 9:this.onLinesChanged(b)&&(y=!0);break;case 10:this.onLinesDeleted(b)&&(y=!0);break;case 11:this.onLinesInserted(b)&&(y=!0);break;case 12:this.onRevealRangeRequest(b)&&(y=!0);break;case 13:this.onScrollChanged(b)&&(y=!0);break;case 15:this.onTokensChanged(b)&&(y=!0);break;case 14:this.onThemeChanged(b)&&(y=!0);break;case 16:this.onTokensColorsChanged(b)&&(y=!0);break;case 17:this.onZonesChanged(b)&&(y=!0);break;default:console.info("View received unknown event: "),console.info(b)}}y&&(this._shouldRender=!0)}}e.ViewEventHandler=k}),define(ne[133],se([1,0,170]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicViewOverlay=void 0;class k extends d.ViewEventHandler{}e.DynamicViewOverlay=k}),define(ne[56],se([1,0,170]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PartFingerprints=e.ViewPart=void 0;class k extends d.ViewEventHandler{constructor(y){super(),this._context=y,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}e.ViewPart=k;class I{static write(y,m){y.setAttribute("data-mprt",String(m))}static read(y){const m=y.getAttribute("data-mprt");return m===null?0:parseInt(m,10)}static collect(y,m){const _=[];let b=0;for(;y&&y!==y.ownerDocument.body&&y!==m;)y.nodeType===y.ELEMENT_NODE&&(_[b++]=this.read(y)),y=y.parentElement;const p=new Uint8Array(b);for(let n=0;n{if(i.options.zIndexs.options.zIndex)return 1;const g=i.options.className,c=s.options.className;return gc?1:I.Range.compareRangesUsingStarts(i.range,s.range)});const n=m.visibleRange.startLineNumber,o=m.visibleRange.endLineNumber,t=[];for(let i=n;i<=o;i++){const s=i-n;t[s]=""}this._renderWholeLineDecorations(m,b,t),this._renderNormalDecorations(m,b,t),this._renderResult=t}_renderWholeLineDecorations(m,_,b){const p=m.visibleRange.startLineNumber,n=m.visibleRange.endLineNumber;for(let o=0,t=_.length;o',g=Math.max(i.range.startLineNumber,p),c=Math.min(i.range.endLineNumber,n);for(let l=g;l<=c;l++){const a=l-p;b[a]+=s}}}_renderNormalDecorations(m,_,b){const p=m.visibleRange.startLineNumber;let n=null,o=!1,t=null,i=!1;for(let s=0,g=_.length;s';t[l]+=f}}}render(m,_){if(!this._renderResult)return"";const b=_-m;return b<0||b>=this._renderResult.length?"":this._renderResult[b]}}e.DecorationsOverlay=E}),define(ne[242],se([1,0,39,13,133,56,9,4,40,484]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginWidgets=e.DedupOverlay=e.VisibleLineDecorationsToRender=e.LineDecorationToRender=e.DecorationToRender=void 0;class b{constructor(l,a,r,u,C){this.startLineNumber=l,this.endLineNumber=a,this.className=r,this.tooltip=u,this._decorationToRenderBrand=void 0,this.zIndex=C??0}}e.DecorationToRender=b;class p{constructor(l,a,r){this.className=l,this.zIndex=a,this.tooltip=r}}e.LineDecorationToRender=p;class n{constructor(){this.decorations=[]}add(l){this.decorations.push(l)}getDecorations(){return this.decorations}}e.VisibleLineDecorationsToRender=n;class o extends I.DynamicViewOverlay{_render(l,a,r){const u=[];for(let h=l;h<=a;h++){const v=h-l;u[v]=new n}if(r.length===0)return u;r.sort((h,v)=>h.className===v.className?h.startLineNumber===v.startLineNumber?h.endLineNumber-v.endLineNumber:h.startLineNumber-v.startLineNumber:h.classNameu)continue;const w=Math.max(h,r),S=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new y.Position(w,0)),L=this._context.viewModel.glyphLanes.getLanesAtLine(S.lineNumber).indexOf(C.preference.lane);a.push(new s(w,L,C.preference.zIndex,C))}}_collectSortedGlyphRenderRequests(l){const a=[];return this._collectDecorationBasedGlyphRenderRequest(l,a),this._collectWidgetBasedGlyphRenderRequest(l,a),a.sort((r,u)=>r.lineNumber===u.lineNumber?r.laneIndex===u.laneIndex?r.zIndex===u.zIndex?u.type===r.type?r.type===0&&u.type===0?r.className0;){const u=a.peek();if(!u)break;const C=a.takeWhile(h=>h.lineNumber===u.lineNumber&&h.laneIndex===u.laneIndex);if(!C||C.length===0)break;const f=C[0];if(f.type===0){const h=[];for(const v of C){if(v.zIndex!==f.zIndex||v.type!==f.type)break;(h.length===0||h[h.length-1]!==v.className)&&h.push(v.className)}r.push(f.accept(h.join(" ")))}else f.widget.renderInfo={lineNumber:f.lineNumber,laneIndex:f.laneIndex}}this._decorationGlyphsToRender=r}render(l){if(!this._glyphMargin){for(const r of Object.values(this._widgets))r.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;)this._managedDomNodes.pop()?.domNode.remove();return}const a=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const r of Object.values(this._widgets))if(!r.renderInfo)r.domNode.setDisplay("none");else{const u=l.viewportData.relativeVerticalOffset[r.renderInfo.lineNumber-l.viewportData.startLineNumber],C=this._glyphMarginLeft+r.renderInfo.laneIndex*this._lineHeight;r.domNode.setDisplay("block"),r.domNode.setTop(u),r.domNode.setLeft(C),r.domNode.setWidth(a),r.domNode.setHeight(this._lineHeight)}for(let r=0;rthis._decorationGlyphsToRender.length;)this._managedDomNodes.pop()?.domNode.remove()}}e.GlyphMarginWidgets=t;class i{constructor(l,a,r,u){this.lineNumber=l,this.laneIndex=a,this.zIndex=r,this.className=u,this.type=0}accept(l){return new g(this.lineNumber,this.laneIndex,l)}}class s{constructor(l,a,r,u){this.lineNumber=l,this.laneIndex=a,this.zIndex=r,this.widget=u,this.type=1}}class g{constructor(l,a,r){this.lineNumber=l,this.laneIndex=a,this.combinedClassName=r}}}),define(ne[593],se([1,0,242,488]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesDecorationsOverlay=void 0;class k extends d.DedupOverlay{constructor(E){super(),this._context=E;const m=this._context.configuration.options.get(146);this._decorationsLeft=m.decorationsLeft,this._decorationsWidth=m.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(E){const m=this._context.configuration.options.get(146);return this._decorationsLeft=m.decorationsLeft,this._decorationsWidth=m.decorationsWidth,!0}onDecorationsChanged(E){return!0}onFlushed(E){return!0}onLinesChanged(E){return!0}onLinesDeleted(E){return!0}onLinesInserted(E){return!0}onScrollChanged(E){return E.scrollTopChanged}onZonesChanged(E){return!0}_getDecorations(E){const y=E.getDecorationsInViewport(),m=[];let _=0;for(let b=0,p=y.length;b',o=[];for(let t=y;t<=m;t++){const i=t-y,s=_[i].getDecorations();let g="";for(const c of s){let l='
    ';b[n]=t}this._renderResult=b}render(E,y){return this._renderResult?this._renderResult[y-E]:""}}e.MarginViewLineDecorationsOverlay=k}),define(ne[595],se([1,0,39,56,493]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Rulers=void 0;class I extends k.ViewPart{constructor(y){super(y),this.domNode=(0,d.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const m=this._context.configuration.options;this._rulers=m.get(103),this._typicalHalfwidthCharacterWidth=m.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(y){const m=this._context.configuration.options;return this._rulers=m.get(103),this._typicalHalfwidthCharacterWidth=m.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(y){return y.scrollHeightChanged}prepareRender(y){}_ensureRulersCount(){const y=this._renderedRulers.length,m=this._rulers.length;if(y===m)return;if(y0;){const o=(0,d.createFastDomNode)(document.createElement("div"));o.setClassName("view-ruler"),o.setWidth(p),this.domNode.appendChild(o),this._renderedRulers.push(o),n--}return}let _=y-m;for(;_>0;){const b=this._renderedRulers.pop();this.domNode.removeChild(b),_--}}render(y){this._ensureRulersCount();for(let m=0,_=this._rulers.length;m<_;m++){const b=this._renderedRulers[m],p=this._rulers[m];b.setBoxShadow(p.color?`1px 0 0 0 ${p.color} inset`:""),b.setHeight(Math.min(y.scrollHeight,1e6)),b.setLeft(p.column*this._typicalHalfwidthCharacterWidth)}}}e.Rulers=I}),define(ne[596],se([1,0,39,56,494]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollDecorationViewPart=void 0;class I extends k.ViewPart{constructor(y){super(y),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const _=this._context.configuration.options.get(104);this._useShadows=_.useShadows,this._domNode=(0,d.createFastDomNode)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const y=this._useShadows&&this._scrollTop>0;return this._shouldShow!==y?(this._shouldShow=y,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const m=this._context.configuration.options.get(146);m.minimap.renderMinimap===0||m.minimap.minimapWidth>0&&m.minimap.minimapLeft===0?this._width=m.width:this._width=m.width-m.verticalScrollbarWidth}onConfigurationChanged(y){const _=this._context.configuration.options.get(104);return this._useShadows=_.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(y){return this._scrollTop=y.scrollTop,this._updateShouldShow()}prepareRender(y){}render(y){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}e.ScrollDecorationViewPart=I}),define(ne[597],se([1,0,39,8,56,9]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewZones=void 0;const y=()=>{throw new Error("Invalid change accessor")};class m extends I.ViewPart{constructor(p){super(p);const n=this._context.configuration.options,o=n.get(146);this._lineHeight=n.get(67),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this.domNode=(0,d.createFastDomNode)(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=(0,d.createFastDomNode)(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const p=this._context.viewLayout.getWhitespaces(),n=new Map;for(const t of p)n.set(t.id,t);let o=!1;return this._context.viewModel.changeWhitespace(t=>{const i=Object.keys(this._zones);for(let s=0,g=i.length;s{const t={addZone:i=>(n=!0,this._addZone(o,i)),removeZone:i=>{i&&(n=this._removeZone(o,i)||n)},layoutZone:i=>{i&&(n=this._layoutZone(o,i)||n)}};_(p,t),t.addZone=y,t.removeZone=y,t.layoutZone=y}),n}_addZone(p,n){const o=this._computeWhitespaceProps(n),i={whitespaceId:p.insertWhitespace(o.afterViewLineNumber,this._getZoneOrdinal(n),o.heightInPx,o.minWidthInPx),delegate:n,isInHiddenArea:o.isInHiddenArea,isVisible:!1,domNode:(0,d.createFastDomNode)(n.domNode),marginDomNode:n.marginDomNode?(0,d.createFastDomNode)(n.marginDomNode):null};return this._safeCallOnComputedHeight(i.delegate,o.heightInPx),i.domNode.setPosition("absolute"),i.domNode.domNode.style.width="100%",i.domNode.setDisplay("none"),i.domNode.setAttribute("monaco-view-zone",i.whitespaceId),this.domNode.appendChild(i.domNode),i.marginDomNode&&(i.marginDomNode.setPosition("absolute"),i.marginDomNode.domNode.style.width="100%",i.marginDomNode.setDisplay("none"),i.marginDomNode.setAttribute("monaco-view-zone",i.whitespaceId),this.marginDomNode.appendChild(i.marginDomNode)),this._zones[i.whitespaceId]=i,this.setShouldRender(),i.whitespaceId}_removeZone(p,n){if(this._zones.hasOwnProperty(n)){const o=this._zones[n];return delete this._zones[n],p.removeWhitespace(o.whitespaceId),o.domNode.removeAttribute("monaco-visible-view-zone"),o.domNode.removeAttribute("monaco-view-zone"),o.domNode.domNode.remove(),o.marginDomNode&&(o.marginDomNode.removeAttribute("monaco-visible-view-zone"),o.marginDomNode.removeAttribute("monaco-view-zone"),o.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(p,n){if(this._zones.hasOwnProperty(n)){const o=this._zones[n],t=this._computeWhitespaceProps(o.delegate);return o.isInHiddenArea=t.isInHiddenArea,p.changeOneWhitespace(o.whitespaceId,t.afterViewLineNumber,t.heightInPx),this._safeCallOnComputedHeight(o.delegate,t.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(p){return this._zones.hasOwnProperty(p)?!!this._zones[p].delegate.suppressMouseDown:!1}_heightInPixels(p){return typeof p.heightInPx=="number"?p.heightInPx:typeof p.heightInLines=="number"?this._lineHeight*p.heightInLines:this._lineHeight}_minWidthInPixels(p){return typeof p.minWidthInPx=="number"?p.minWidthInPx:0}_safeCallOnComputedHeight(p,n){if(typeof p.onComputedHeight=="function")try{p.onComputedHeight(n)}catch(o){(0,k.onUnexpectedError)(o)}}_safeCallOnDomNodeTop(p,n){if(typeof p.onDomNodeTop=="function")try{p.onDomNodeTop(n)}catch(o){(0,k.onUnexpectedError)(o)}}prepareRender(p){}render(p){const n=p.viewportData.whitespaceViewportData,o={};let t=!1;for(const s of n)this._zones[s.id].isInHiddenArea||(o[s.id]=s,t=!0);const i=Object.keys(this._zones);for(let s=0,g=i.length;s=o||(i[s++]=new k(Math.max(1,g.startColumn-n+1),Math.min(t+1,g.endColumn-n+1),g.className,g.type));return i}static filter(_,b,p,n){if(_.length===0)return[];const o=[];let t=0;for(let i=0,s=_.length;ib||c.isEmpty()&&(g.type===0||g.type===3))continue;const l=c.startLineNumber===b?c.startColumn:p,a=c.endLineNumber===b?c.endColumn:n;o[t++]=new k(l,a,g.inlineClassName,g.type)}return o}static _typeCompare(_,b){const p=[2,0,1,3];return p[_]-p[b]}static compare(_,b){if(_.startColumn!==b.startColumn)return _.startColumn-b.startColumn;if(_.endColumn!==b.endColumn)return _.endColumn-b.endColumn;const p=k._typeCompare(_.type,b.type);return p!==0?p:_.className!==b.className?_.className0&&this.stopOffsets[0]<_;){let n=0;for(;n+10&&b<_&&(p.push(new I(b,_-1,this.classNames.join(" "),E._metadata(this.metadata))),b=_),b}insert(_,b,p){if(this.count===0||this.stopOffsets[this.count-1]<=_)this.stopOffsets.push(_),this.classNames.push(b),this.metadata.push(p);else for(let n=0;n=_){this.stopOffsets.splice(n,0,_),this.classNames.splice(n,0,b),this.metadata.splice(n,0,p);break}this.count++}}class y{static normalize(_,b){if(b.length===0)return[];const p=[],n=new E;let o=0;for(let t=0,i=b.length;t1){const C=_.charCodeAt(g-2);d.isHighSurrogate(C)&&g--}if(c>1){const C=_.charCodeAt(c-2);d.isHighSurrogate(C)&&c--}const r=g-1,u=c-2;o=n.consumeLowerThan(r,o,p),n.count===0&&(o=r),n.insert(u,l,a)}return n.consumeLowerThan(1073741824,o,p),p}}e.LineDecorationsNormalizer=y}),define(ne[598],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinePart=void 0;class d{constructor(I,E,y,m){this.endIndex=I,this.type=E,this.metadata=y,this.containsRTL=m,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}e.LinePart=d}),define(ne[599],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesLayout=e.EditorWhitespace=void 0;class k{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(m){this._hasPending=!0,this._inserts.push(m)}change(m){this._hasPending=!0,this._changes.push(m)}remove(m){this._hasPending=!0,this._removes.push(m)}mustCommit(){return this._hasPending}commit(m){if(!this._hasPending)return;const _=this._inserts,b=this._changes,p=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],m._commitPendingChanges(_,b,p)}}class I{constructor(m,_,b,p,n){this.id=m,this.afterLineNumber=_,this.ordinal=b,this.height=p,this.minWidth=n,this.prefixSum=0}}e.EditorWhitespace=I;class E{static{this.INSTANCE_COUNT=0}constructor(m,_,b,p){this._instanceId=d.singleLetterHash(++E.INSTANCE_COUNT),this._pendingChanges=new k,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=m,this._lineHeight=_,this._paddingTop=b,this._paddingBottom=p}static findInsertionIndex(m,_,b){let p=0,n=m.length;for(;p>>1;_===m[o].afterLineNumber?b{_=!0,p=p|0,n=n|0,o=o|0,t=t|0;const i=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new I(i,p,n,o,t)),i},changeOneWhitespace:(p,n,o)=>{_=!0,n=n|0,o=o|0,this._pendingChanges.change({id:p,newAfterLineNumber:n,newHeight:o})},removeWhitespace:p=>{_=!0,this._pendingChanges.remove({id:p})}})}finally{this._pendingChanges.commit(this)}return _}_commitPendingChanges(m,_,b){if((m.length>0||b.length>0)&&(this._minWidth=-1),m.length+_.length+b.length<=1){for(const i of m)this._insertWhitespace(i);for(const i of _)this._changeOneWhitespace(i.id,i.newAfterLineNumber,i.newHeight);for(const i of b){const s=this._findWhitespaceIndex(i.id);s!==-1&&this._removeWhitespace(s)}return}const p=new Set;for(const i of b)p.add(i.id);const n=new Map;for(const i of _)n.set(i.id,i);const o=i=>{const s=[];for(const g of i)if(!p.has(g.id)){if(n.has(g.id)){const c=n.get(g.id);g.afterLineNumber=c.newAfterLineNumber,g.height=c.newHeight}s.push(g)}return s},t=o(this._arr).concat(o(m));t.sort((i,s)=>i.afterLineNumber===s.afterLineNumber?i.ordinal-s.ordinal:i.afterLineNumber-s.afterLineNumber),this._arr=t,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(m){const _=E.findInsertionIndex(this._arr,m.afterLineNumber,m.ordinal);this._arr.splice(_,0,m),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,_-1)}_findWhitespaceIndex(m){const _=this._arr;for(let b=0,p=_.length;b_&&(this._arr[b].afterLineNumber-=_-m+1)}}onLinesInserted(m,_){this._checkPendingChanges(),m=m|0,_=_|0,this._lineCount+=_-m+1;for(let b=0,p=this._arr.length;b=_.length||_[t+1].afterLineNumber>=m)return t;b=t+1|0}else p=t-1|0}return-1}_findFirstWhitespaceAfterLineNumber(m){m=m|0;const b=this._findLastWhitespaceBeforeLineNumber(m)+1;return b1?b=this._lineHeight*(m-1):b=0;const p=this.getWhitespaceAccumulatedHeightBeforeLineNumber(m-(_?1:0));return b+p+this._paddingTop}getVerticalOffsetAfterLineNumber(m,_=!1){this._checkPendingChanges(),m=m|0;const b=this._lineHeight*m,p=this.getWhitespaceAccumulatedHeightBeforeLineNumber(m+(_?1:0));return b+p+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let m=0;for(let _=0,b=this._arr.length;__}isInTopPadding(m){return this._paddingTop===0?!1:(this._checkPendingChanges(),m=_-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(m){if(this._checkPendingChanges(),m=m|0,m<0)return 1;const _=this._lineCount|0,b=this._lineHeight;let p=1,n=_;for(;p=t+b)p=o+1;else{if(m>=t)return o;n=o}}return p>_?_:p}getLinesViewportData(m,_){this._checkPendingChanges(),m=m|0,_=_|0;const b=this._lineHeight,p=this.getLineNumberAtOrAfterVerticalOffset(m)|0,n=this.getVerticalOffsetForLineNumber(p)|0;let o=this._lineCount|0,t=this.getFirstWhitespaceIndexAfterLineNumber(p)|0;const i=this.getWhitespacesCount()|0;let s,g;t===-1?(t=i,g=o+1,s=0):(g=this.getAfterLineNumberForWhitespaceIndex(t)|0,s=this.getHeightForWhitespaceIndex(t)|0);let c=n,l=c;const a=5e5;let r=0;n>=a&&(r=Math.floor(n/a)*a,r=Math.floor(r/b)*b,l-=r);const u=[],C=m+(_-m)/2;let f=-1;for(let S=p;S<=o;S++){if(f===-1){const L=c,D=c+b;(L<=C&&CC)&&(f=S)}for(c+=b,u[S-p]=l,l+=b;g===S;)l+=s,c+=s,t++,t>=i?g=o+1:(g=this.getAfterLineNumberForWhitespaceIndex(t)|0,s=this.getHeightForWhitespaceIndex(t)|0);if(c>=_){o=S;break}}f===-1&&(f=o);const h=this.getVerticalOffsetForLineNumber(o)|0;let v=p,w=o;return v_&&w--,{bigNumbersDelta:r,startLineNumber:p,endLineNumber:o,relativeVerticalOffset:u,centeredLineNumber:f,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:w,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(m){this._checkPendingChanges(),m=m|0;const _=this.getAfterLineNumberForWhitespaceIndex(m);let b;_>=1?b=this._lineHeight*_:b=0;let p;return m>0?p=this.getWhitespacesAccumulatedHeight(m-1):p=0,b+p+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(m){this._checkPendingChanges(),m=m|0;let _=0,b=this.getWhitespacesCount()-1;if(b<0)return-1;const p=this.getVerticalOffsetForWhitespaceIndex(b),n=this.getHeightForWhitespaceIndex(b);if(m>=p+n)return-1;for(;_=t+i)_=o+1;else{if(m>=t)return o;b=o}}return _}getWhitespaceAtVerticalOffset(m){this._checkPendingChanges(),m=m|0;const _=this.getWhitespaceIndexAtOrAfterVerticallOffset(m);if(_<0||_>=this.getWhitespacesCount())return null;const b=this.getVerticalOffsetForWhitespaceIndex(_);if(b>m)return null;const p=this.getHeightForWhitespaceIndex(_),n=this.getIdForWhitespaceIndex(_),o=this.getAfterLineNumberForWhitespaceIndex(_);return{id:n,afterLineNumber:o,verticalOffset:b,height:p}}getWhitespaceViewportData(m,_){this._checkPendingChanges(),m=m|0,_=_|0;const b=this.getWhitespaceIndexAtOrAfterVerticallOffset(m),p=this.getWhitespacesCount()-1;if(b<0)return[];const n=[];for(let o=b;o<=p;o++){const t=this.getVerticalOffsetForWhitespaceIndex(o),i=this.getHeightForWhitespaceIndex(o);if(t>=_)break;n.push({id:this.getIdForWhitespaceIndex(o),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:t,height:i})}return n}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].id}getAfterLineNumberForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].afterLineNumber}getHeightForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].height}}e.LinesLayout=E}),define(ne[600],se([1,0,4]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportData=void 0;class k{constructor(E,y,m,_){this.selections=E,this.startLineNumber=y.startLineNumber|0,this.endLineNumber=y.endLineNumber|0,this.relativeVerticalOffset=y.relativeVerticalOffset,this.bigNumbersDelta=y.bigNumbersDelta|0,this.lineHeight=y.lineHeight|0,this.whitespaceViewportData=m,this._model=_,this.visibleRange=new d.Range(y.startLineNumber,this._model.getLineMinColumn(y.startLineNumber),y.endLineNumber,this._model.getLineMaxColumn(y.endLineNumber))}getViewLineRenderingData(E){return this._model.getViewportViewLineRenderingData(this.visibleRange,E)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}e.ViewportData=k}),define(ne[95],se([1,0,13,11,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerDecorationsGroup=e.ViewModelDecoration=e.SingleLineInlineDecoration=e.InlineDecoration=e.ViewLineRenderingData=e.ViewLineData=e.MinimapLinesRenderingData=e.Viewport=void 0;class E{constructor(i,s,g,c){this._viewportBrand=void 0,this.top=i|0,this.left=s|0,this.width=g|0,this.height=c|0}}e.Viewport=E;class y{constructor(i,s){this.tabSize=i,this.data=s}}e.MinimapLinesRenderingData=y;class m{constructor(i,s,g,c,l,a,r){this._viewLineDataBrand=void 0,this.content=i,this.continuesWithWrappedLine=s,this.minColumn=g,this.maxColumn=c,this.startVisibleColumn=l,this.tokens=a,this.inlineDecorations=r}}e.ViewLineData=m;class _{constructor(i,s,g,c,l,a,r,u,C,f){this.minColumn=i,this.maxColumn=s,this.content=g,this.continuesWithWrappedLine=c,this.isBasicASCII=_.isBasicASCII(g,a),this.containsRTL=_.containsRTL(g,this.isBasicASCII,l),this.tokens=r,this.inlineDecorations=u,this.tabSize=C,this.startVisibleColumn=f}static isBasicASCII(i,s){return s?k.isBasicASCII(i):!0}static containsRTL(i,s,g){return!s&&g?k.containsRTL(i):!1}}e.ViewLineRenderingData=_;class b{constructor(i,s,g){this.range=i,this.inlineClassName=s,this.type=g}}e.InlineDecoration=b;class p{constructor(i,s,g,c){this.startOffset=i,this.endOffset=s,this.inlineClassName=g,this.inlineClassNameAffectsLetterSpacing=c}toInlineDecoration(i){return new b(new I.Range(i,this.startOffset+1,i,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}e.SingleLineInlineDecoration=p;class n{constructor(i,s){this._viewModelDecorationBrand=void 0,this.range=i,this.options=s}}e.ViewModelDecoration=n;class o{constructor(i,s,g){this.color=i,this.zIndex=s,this.data=g}static compareByRenderingProps(i,s){return i.zIndex===s.zIndex?i.colors.color?1:0:i.zIndex-s.zIndex}static equals(i,s){return i.color===s.color&&i.zIndex===s.zIndex&&d.equals(i.data,s.data)}static equalsArr(i,s){return d.equals(i,s,o.equals)}}e.OverviewRulerDecorationsGroup=o}),define(ne[601],se([1,0,40]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginLanesModel=void 0;const k=d.GlyphMarginLane.Right;class I{constructor(y){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((y+1)*k/8))}reset(y){const m=Math.ceil((y+1)*k/8);this.lanes.length>>3]|=1<>>3]&1<<_%8)&&m.push(b+1),_++;return m.length?m:[d.GlyphMarginLane.Center]}countAtLine(y){let m=k*y,_=0;for(let b=0;b>>3]&1<0?this._projectionData.breakOffsets[g-1]:0,l=this._projectionData.breakOffsets[g];let a;if(this._projectionData.injectionOffsets!==null){const r=this._projectionData.injectionOffsets.map((C,f)=>new I.LineInjectedText(0,0,C+1,this._projectionData.injectionOptions[f],0));a=I.LineInjectedText.applyInjectedText(i.getLineContent(s),r).substring(c,l)}else a=i.getValueInRange({startLineNumber:s,startColumn:c+1,endLineNumber:s,endColumn:l+1});return g>0&&(a=n(this._projectionData.wrappedTextIndentLength)+a),a}getViewLineLength(i,s,g){return this._assertVisible(),this._projectionData.getLineLength(g)}getViewLineMinColumn(i,s,g){return this._assertVisible(),this._projectionData.getMinOutputOffset(g)+1}getViewLineMaxColumn(i,s,g){return this._assertVisible(),this._projectionData.getMaxOutputOffset(g)+1}getViewLineData(i,s,g){const c=new Array;return this.getViewLinesData(i,s,g,1,0,[!0],c),c[0]}getViewLinesData(i,s,g,c,l,a,r){this._assertVisible();const u=this._projectionData,C=u.injectionOffsets,f=u.injectionOptions;let h=null;if(C){h=[];let w=0,S=0;for(let L=0;L0?u.breakOffsets[L-1]:0,M=u.breakOffsets[L];for(;SM)break;if(T0?u.wrappedTextIndentLength:0,x=F+Math.max(P-T,0),W=F+Math.min(N-T,M-T);x!==W&&D.push(new E.SingleLineInlineDecoration(x,W,O.inlineClassName,O.inlineClassNameAffectsLetterSpacing))}}if(N<=M)w+=A,S++;else break}}}let v;C?v=i.tokenization.getLineTokens(s).withInserted(C.map((w,S)=>({offset:w,text:f[S].content,tokenMetadata:d.LineTokens.defaultTokenMetadata}))):v=i.tokenization.getLineTokens(s);for(let w=g;w0?c.wrappedTextIndentLength:0,a=g>0?c.breakOffsets[g-1]:0,r=c.breakOffsets[g],u=i.sliceAndInflate(a,r,l);let C=u.getLineContent();g>0&&(C=n(c.wrappedTextIndentLength)+C);const f=this._projectionData.getMinOutputOffset(g)+1,h=C.length+1,v=g+1=p.length)for(let i=1;i<=t;i++)p[i]=o(i);return p[t]}function o(t){return new Array(t+1).join(" ")}}),define(ne[603],se([1,0,11,144,132,325]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MonospaceLineBreaksComputerFactory=void 0;class y{static create(c){return new y(c.get(135),c.get(134))}constructor(c,l){this.classifier=new m(c,l)}createLineBreaksComputer(c,l,a,r,u){const C=[],f=[],h=[];return{addRequest:(v,w,S)=>{C.push(v),f.push(w),h.push(S)},finalize:()=>{const v=c.typicalFullwidthCharacterWidth/c.typicalHalfwidthCharacterWidth,w=[];for(let S=0,L=C.length;S=0&&c<256?this._asciiMap[c]:c>=12352&&c<=12543||c>=13312&&c<=19903||c>=19968&&c<=40959?3:this._map.get(c)||this._defaultValue}}let _=[],b=[];function p(g,c,l,a,r,u,C,f){if(r===-1)return null;const h=l.length;if(h<=1)return null;const v=f==="keepAll",w=c.breakOffsets,S=c.breakOffsetsVisibleColumn,L=s(l,a,r,u,C),D=r-L,T=_,M=b;let A=0,P=0,N=0,O=r;const F=w.length;let x=0;if(x>=0){let W=Math.abs(S[x]-O);for(;x+1=W)break;W=V,x++}}for(;xW&&(W=P,V=N);let q=0,H=0,z=0,U=0;if(V<=O){let Y=V,G=W===0?0:l.charCodeAt(W-1),K=W===0?0:g.get(G),R=!0;for(let J=W;JP&&i(G,K,ue,he,v)&&(q=ie,H=Y),Y+=pe,Y>O){ie>P?(z=ie,U=Y-pe):(z=J+1,U=Y),Y-H>D&&(q=0),R=!1;break}G=ue,K=he}if(R){A>0&&(T[A]=w[w.length-1],M[A]=S[w.length-1],A++);break}}if(q===0){let Y=V,G=l.charCodeAt(W),K=g.get(G),R=!1;for(let J=W-1;J>=P;J--){const ie=J+1,ue=l.charCodeAt(J);if(ue===9){R=!0;break}let he,pe;if(d.isLowSurrogate(ue)?(J--,he=0,pe=2):(he=g.get(ue),pe=d.isFullWidthCharacter(ue)?u:1),Y<=O){if(z===0&&(z=ie,U=Y),Y<=O-D)break;if(i(ue,he,G,K,v)){q=ie,H=Y;break}}Y-=pe,G=ue,K=he}if(q!==0){const J=D-(U-H);if(J<=a){const ie=l.charCodeAt(z);let ue;d.isHighSurrogate(ie)?ue=2:ue=o(ie,U,a,u),J-ue<0&&(q=0)}}if(R){x--;continue}}if(q===0&&(q=z,H=U),q<=P){const Y=l.charCodeAt(P);d.isHighSurrogate(Y)?(q=P+2,H=N+2):(q=P+1,H=N+o(Y,N,a,u))}for(P=q,T[A]=q,N=H,M[A]=H,A++,O=H+D;x<0||x=j)break;j=Y,x++}}return A===0?null:(T.length=A,M.length=A,_=c.breakOffsets,b=c.breakOffsetsVisibleColumn,c.breakOffsets=T,c.breakOffsetsVisibleColumn=M,c.wrappedTextIndentLength=L,c)}function n(g,c,l,a,r,u,C,f){const h=I.LineInjectedText.applyInjectedText(c,l);let v,w;if(l&&l.length>0?(v=l.map(H=>H.options),w=l.map(H=>H.column-1)):(v=null,w=null),r===-1)return v?new E.ModelLineProjectionData(w,v,[h.length],[],0):null;const S=h.length;if(S<=1)return v?new E.ModelLineProjectionData(w,v,[h.length],[],0):null;const L=f==="keepAll",D=s(h,a,r,u,C),T=r-D,M=[],A=[];let P=0,N=0,O=0,F=r,x=h.charCodeAt(0),W=g.get(x),V=o(x,0,a,u),q=1;d.isHighSurrogate(x)&&(V+=1,x=h.charCodeAt(1),W=g.get(x),q++);for(let H=q;HF&&((N===0||V-O>T)&&(N=z,O=V-Y),M[P]=N,A[P]=O,P++,F=O+T,N=0),x=U,W=j}return P===0&&(!l||l.length===0)?null:(M[P]=S,A[P]=V,new E.ModelLineProjectionData(w,v,M,A,D))}function o(g,c,l,a){return g===9?l-c%l:d.isFullWidthCharacter(g)||g<32?a:1}function t(g,c){return c-g%c}function i(g,c,l,a,r){return l!==32&&(c===2&&a!==2||c!==1&&a===1||!r&&c===3&&a!==2||!r&&a===3&&c!==1)}function s(g,c,l,a,r){let u=0;if(r!==0){const C=d.firstNonWhitespaceIndex(g);if(C!==-1){for(let h=0;hl&&(u=0)}}return u}}),define(ne[332],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewZoneManager=e.OverviewRulerZone=e.ColorZone=void 0;class d{constructor(y,m,_){this._colorZoneBrand=void 0,this.from=y|0,this.to=m|0,this.colorId=_|0}static compare(y,m){return y.colorId===m.colorId?y.from===m.from?y.to-m.to:y.from-m.from:y.colorId-m.colorId}}e.ColorZone=d;class k{constructor(y,m,_,b){this._overviewRulerZoneBrand=void 0,this.startLineNumber=y,this.endLineNumber=m,this.heightInLines=_,this.color=b,this._colorZone=null}static compare(y,m){return y.color===m.color?y.startLineNumber===m.startLineNumber?y.heightInLines===m.heightInLines?y.endLineNumber-m.endLineNumber:y.heightInLines-m.heightInLines:y.startLineNumber-m.startLineNumber:y.color_&&(r=_-u);const C=s.color;let f=this._color2Id[C];f||(f=++this._lastAssignedId,this._color2Id[C]=f,this._id2Color[f]=C);const h=new d(r-u,r+u,f);s.setColorZone(h),o.push(h)}return this._colorZonesInvalid=!1,o.sort(d.compare),o}}e.OverviewZoneManager=I}),define(ne[604],se([1,0,39,332,170]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRuler=void 0;class E extends I.ViewEventHandler{constructor(m,_){super(),this._context=m;const b=this._context.configuration.options;this._domNode=(0,d.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName(_),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new k.OverviewZoneManager(p=>this._context.viewLayout.getVerticalOffsetForLineNumber(p)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(b.get(67)),this._zoneManager.setPixelRatio(b.get(144)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(m){const _=this._context.configuration.options;return m.hasChanged(67)&&(this._zoneManager.setLineHeight(_.get(67)),this._render()),m.hasChanged(144)&&(this._zoneManager.setPixelRatio(_.get(144)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(m){return this._render(),!0}onScrollChanged(m){return m.scrollHeightChanged&&(this._zoneManager.setOuterHeight(m.scrollHeight),this._render()),!0}onZonesChanged(m){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(m){this._domNode.setTop(m.top),this._domNode.setRight(m.right);let _=!1;_=this._zoneManager.setDOMWidth(m.width)||_,_=this._zoneManager.setDOMHeight(m.height)||_,_&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(m){this._zoneManager.setZones(m),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const m=this._zoneManager.getCanvasWidth(),_=this._zoneManager.getCanvasHeight(),b=this._zoneManager.resolveColorZones(),p=this._zoneManager.getId2Color(),n=this._domNode.domNode.getContext("2d");return n.clearRect(0,0,m,_),b.length>0&&this._renderOneLane(n,b,p,m),!0}_renderOneLane(m,_,b,p){let n=0,o=0,t=0;for(const i of _){const s=i.colorId,g=i.from,c=i.to;s!==n?(m.fillRect(0,o,p,t-o),n=s,m.fillStyle=b[n],o=g,t=c):t>=g?t=Math.max(t,c):(m.fillRect(0,o,p,t-o),o=g,t=c)}m.fillRect(0,o,p,t-o)}}e.OverviewRuler=E}),define(ne[605],se([1,0,562]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContext=void 0;class k{constructor(E,y,m){this.configuration=E,this.theme=new d.EditorTheme(y),this.viewModel=m,this.viewLayout=m.viewLayout}addEventHandler(E){this.viewModel.addViewEventHandler(E)}removeEventHandler(E){this.viewModel.removeViewEventHandler(E)}}e.ViewContext=k}),define(ne[244],se([1,0,6,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ModelTokensChangedEvent=e.ModelOptionsChangedEvent=e.ModelContentChangedEvent=e.ModelLanguageConfigurationChangedEvent=e.ModelLanguageChangedEvent=e.ModelDecorationsChangedEvent=e.ReadOnlyEditAttemptEvent=e.CursorStateChangedEvent=e.HiddenAreasChangedEvent=e.ViewZonesChangedEvent=e.ScrollChangedEvent=e.FocusChangedEvent=e.ContentSizeChangedEvent=e.ViewModelEventsCollector=e.ViewModelEventDispatcher=void 0;class I extends k.Disposable{constructor(){super(),this._onEvent=this._register(new d.Emitter),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(r){this._addOutgoingEvent(r),this._emitOutgoingEvents()}_addOutgoingEvent(r){for(let u=0,C=this._outgoingEvents.length;u0;){if(this._collector||this._isConsumingViewEventQueue)return;const r=this._outgoingEvents.shift();r.isNoOp()||this._onEvent.fire(r)}}addViewEventHandler(r){for(let u=0,C=this._eventHandlers.length;u0&&this._emitMany(u)}this._emitOutgoingEvents()}emitSingleViewEvent(r){try{this.beginEmitViewEvents().emitViewEvent(r)}finally{this.endEmitViewEvents()}}_emitMany(r){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(r):this._viewEventQueue=r,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const r=this._viewEventQueue;this._viewEventQueue=null;const u=this._eventHandlers.slice(0);for(const C of u)C.handleEvents(r)}}}e.ViewModelEventDispatcher=I;class E{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(r){this.viewEvents.push(r)}emitOutgoingEvent(r){this.outgoingEvents.push(r)}}e.ViewModelEventsCollector=E;class y{constructor(r,u,C,f){this.kind=0,this._oldContentWidth=r,this._oldContentHeight=u,this.contentWidth=C,this.contentHeight=f,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(r){return r.kind!==this.kind?null:new y(this._oldContentWidth,this._oldContentHeight,r.contentWidth,r.contentHeight)}}e.ContentSizeChangedEvent=y;class m{constructor(r,u){this.kind=1,this.oldHasFocus=r,this.hasFocus=u}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(r){return r.kind!==this.kind?null:new m(this.oldHasFocus,r.hasFocus)}}e.FocusChangedEvent=m;class _{constructor(r,u,C,f,h,v,w,S){this.kind=2,this._oldScrollWidth=r,this._oldScrollLeft=u,this._oldScrollHeight=C,this._oldScrollTop=f,this.scrollWidth=h,this.scrollLeft=v,this.scrollHeight=w,this.scrollTop=S,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(r){return r.kind!==this.kind?null:new _(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,r.scrollWidth,r.scrollLeft,r.scrollHeight,r.scrollTop)}}e.ScrollChangedEvent=_;class b{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(r){return r.kind!==this.kind?null:this}}e.ViewZonesChangedEvent=b;class p{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(r){return r.kind!==this.kind?null:this}}e.HiddenAreasChangedEvent=p;class n{constructor(r,u,C,f,h,v,w){this.kind=6,this.oldSelections=r,this.selections=u,this.oldModelVersionId=C,this.modelVersionId=f,this.source=h,this.reason=v,this.reachedMaxCursorCount=w}static _selectionsAreEqual(r,u){if(!r&&!u)return!0;if(!r||!u)return!1;const C=r.length,f=u.length;if(C!==f)return!1;for(let h=0;h=i?0:g.horizontalScrollbarSize}_getContentHeight(t,i,s){const g=this._configuration.options;let c=this._linesLayout.getLinesTotalHeight();return g.get(106)?c+=Math.max(0,i-g.get(67)-g.get(84).bottom):g.get(104).ignoreHorizontalScrollbarInContentHeight||(c+=this._getHorizontalScrollbarHeight(t,s)),c}_updateHeight(){const t=this._scrollable.getScrollDimensions(),i=t.width,s=t.height,g=t.contentWidth;this._scrollable.setScrollDimensions(new b(i,t.contentWidth,s,this._getContentHeight(i,s,g)))}getCurrentViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getCurrentScrollPosition();return new y.Viewport(i.scrollTop,i.scrollLeft,t.width,t.height)}getFutureViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getFutureScrollPosition();return new y.Viewport(i.scrollTop,i.scrollLeft,t.width,t.height)}_computeContentWidth(){const t=this._configuration.options,i=this._maxLineWidth,s=t.get(147),g=t.get(50),c=t.get(146);if(s.isViewportWrapping){const l=t.get(73);return i>c.contentWidth+g.typicalHalfwidthCharacterWidth&&l.enabled&&l.side==="right"?i+c.verticalScrollbarWidth:i}else{const l=t.get(105)*g.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(i+l+c.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(t){this._maxLineWidth=t,this._updateContentWidth()}setOverlayWidgetsMinWidth(t){this._overlayWidgetsMinWidth=t,this._updateContentWidth()}_updateContentWidth(){const t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new b(t.width,this._computeContentWidth(),t.height,t.contentHeight)),this._updateHeight()}saveState(){const t=this._scrollable.getFutureScrollPosition(),i=t.scrollTop,s=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(i),g=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(s);return{scrollTop:i,scrollTopWithoutViewZones:i-g,scrollLeft:t.scrollLeft}}changeWhitespace(t){const i=this._linesLayout.changeWhitespace(t);return i&&this.onHeightMaybeChanged(),i}getVerticalOffsetForLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetForLineNumber(t,i)}getVerticalOffsetAfterLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(t,i)}isAfterLines(t){return this._linesLayout.isAfterLines(t)}isInTopPadding(t){return this._linesLayout.isInTopPadding(t)}isInBottomPadding(t){return this._linesLayout.isInBottomPadding(t)}getLineNumberAtVerticalOffset(t){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t)}getWhitespaceAtVerticalOffset(t){return this._linesLayout.getWhitespaceAtVerticalOffset(t)}getLinesViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(t.top,t.top+t.height)}getLinesViewportDataAtScrollTop(t){const i=this._scrollable.getScrollDimensions();return t+i.height>i.scrollHeight&&(t=i.scrollHeight-i.height),t<0&&(t=0),this._linesLayout.getLinesViewportData(t,t+i.height)}getWhitespaceViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(t.top,t.top+t.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(t){return this._scrollable.validateScrollPosition(t)}setScrollPosition(t,i){i===1?this._scrollable.setScrollPositionNow(t):this._scrollable.setScrollPositionSmooth(t)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(t,i){const s=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:s.scrollLeft+t,scrollTop:s.scrollTop+i})}}e.ViewLayout=n}),define(ne[607],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveCaretCommand=void 0;class I{constructor(y,m){this._selection=y,this._isMovingLeft=m}getEditOperations(y,m){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const _=this._selection.startLineNumber,b=this._selection.startColumn,p=this._selection.endColumn;if(!(this._isMovingLeft&&b===1)&&!(!this._isMovingLeft&&p===y.getLineMaxColumn(_)))if(this._isMovingLeft){const n=new d.Range(_,b-1,_,b),o=y.getValueInRange(n);m.addEditOperation(n,null),m.addEditOperation(new d.Range(_,p,_,p),o)}else{const n=new d.Range(_,p,_,p+1),o=y.getValueInRange(n);m.addEditOperation(n,null),m.addEditOperation(new d.Range(_,b,_,b),o)}}computeCursorState(y,m){return this._isMovingLeft?new k.Selection(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new k.Selection(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}e.MoveCaretCommand=I}),define(ne[134],se([1,0,8,91]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionItem=e.CodeActionCommandArgs=e.CodeActionTriggerSource=e.CodeActionKind=void 0,e.mayIncludeActionsOfKind=E,e.filtersAction=y,e.CodeActionKind=new class{constructor(){this.QuickFix=new k.HierarchicalKind("quickfix"),this.Refactor=new k.HierarchicalKind("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new k.HierarchicalKind("notebook"),this.Source=new k.HierarchicalKind("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var I;(function(p){p.Refactor="refactor",p.RefactorPreview="refactor preview",p.Lightbulb="lightbulb",p.Default="other (default)",p.SourceAction="source action",p.QuickFix="quick fix action",p.FixAll="fix all",p.OrganizeImports="organize imports",p.AutoFix="auto fix",p.QuickFixHover="quick fix hover window",p.OnSave="save participants",p.ProblemsView="problems view"})(I||(e.CodeActionTriggerSource=I={}));function E(p,n){return!(p.include&&!p.include.intersects(n)||p.excludes&&p.excludes.some(o=>m(n,o,p.include))||!p.includeSourceActions&&e.CodeActionKind.Source.contains(n))}function y(p,n){const o=n.kind?new k.HierarchicalKind(n.kind):void 0;return!(p.include&&(!o||!p.include.contains(o))||p.excludes&&o&&p.excludes.some(t=>m(o,t,p.include))||!p.includeSourceActions&&o&&e.CodeActionKind.Source.contains(o)||p.onlyIncludePreferredActions&&!n.isPreferred)}function m(p,n,o){return!(!n.contains(p)||o&&n.contains(o))}class _{static fromUser(n,o){return!n||typeof n!="object"?new _(o.kind,o.apply,!1):new _(_.getKindFromUser(n,o.kind),_.getApplyFromUser(n,o.apply),_.getPreferredUser(n))}static getApplyFromUser(n,o){switch(typeof n.apply=="string"?n.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return o}}static getKindFromUser(n,o){return typeof n.kind=="string"?new k.HierarchicalKind(n.kind):o}static getPreferredUser(n){return typeof n.preferred=="boolean"?n.preferred:!1}constructor(n,o,t){this.kind=n,this.apply=o,this.preferred=t}}e.CodeActionCommandArgs=_;class b{constructor(n,o,t){this.action=n,this.provider=o,this.highlightRange=t}async resolve(n){if(this.provider?.resolveCodeAction&&!this.action.edit){let o;try{o=await this.provider.resolveCodeAction(this.action,n)}catch(t){(0,d.onUnexpectedExternalError)(t)}o&&(this.action.edit=o.edit)}return this}}e.CodeActionItem=b}),define(ne[608],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerModel=void 0;class k{get color(){return this._color}set color(E){this._color.equals(E)||(this._color=E,this._onDidChangeColor.fire(E))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(E){this._colorPresentations=E,this.presentationIndex>E.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(E,y,m){this.presentationIndex=m,this._onColorFlushed=new d.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new d.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new d.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=E,this._color=E,this._colorPresentations=y}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(E,y){let m=-1;for(let _=0;_o)return!1;for(let t=0;t=65&&i<=90&&i+32===s)&&!(s>=65&&s<=90&&s+32===i))return!1}return!0}_createOperationsForBlockComment(_,b,p,n,o,t){const i=_.startLineNumber,s=_.startColumn,g=_.endLineNumber,c=_.endColumn,l=o.getLineContent(i),a=o.getLineContent(g);let r=l.lastIndexOf(b,s-1+b.length),u=a.indexOf(p,c-1-p.length);if(r!==-1&&u!==-1)if(i===g)l.substring(r+b.length,u).indexOf(p)>=0&&(r=-1,u=-1);else{const f=l.substring(r+b.length),h=a.substring(0,u);(f.indexOf(p)>=0||h.indexOf(p)>=0)&&(r=-1,u=-1)}let C;r!==-1&&u!==-1?(n&&r+b.length0&&a.charCodeAt(u-1)===32&&(p=" "+p,u-=1),C=y._createRemoveBlockCommentOperations(new I.Range(i,r+b.length+1,g,u+1),b,p)):(C=y._createAddBlockCommentOperations(_,b,p,this._insertSpace),this._usedEndToken=C.length===1?p:null);for(const f of C)t.addTrackedEditOperation(f.range,f.text)}static _createRemoveBlockCommentOperations(_,b,p){const n=[];return I.Range.isEmpty(_)?n.push(d.EditOperation.delete(new I.Range(_.startLineNumber,_.startColumn-b.length,_.endLineNumber,_.endColumn+p.length))):(n.push(d.EditOperation.delete(new I.Range(_.startLineNumber,_.startColumn-b.length,_.startLineNumber,_.startColumn))),n.push(d.EditOperation.delete(new I.Range(_.endLineNumber,_.endColumn,_.endLineNumber,_.endColumn+p.length)))),n}static _createAddBlockCommentOperations(_,b,p,n){const o=[];return I.Range.isEmpty(_)?o.push(d.EditOperation.replace(new I.Range(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn),b+" "+p)):(o.push(d.EditOperation.insert(new k.Position(_.startLineNumber,_.startColumn),b+(n?" ":""))),o.push(d.EditOperation.insert(new k.Position(_.endLineNumber,_.endColumn),(n?" ":"")+p))),o}getEditOperations(_,b){const p=this._selection.startLineNumber,n=this._selection.startColumn;_.tokenization.tokenizeIfCheap(p);const o=_.getLanguageIdAtPosition(p,n),t=this.languageConfigurationService.getLanguageConfiguration(o).comments;!t||!t.blockCommentStartToken||!t.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,t.blockCommentStartToken,t.blockCommentEndToken,this._insertSpace,_,b)}computeCursorState(_,b){const p=b.getInverseEditOperations();if(p.length===2){const n=p[0],o=p[1];return new E.Selection(n.range.endLineNumber,n.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const n=p[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new E.Selection(n.endLineNumber,n.endColumn+o,n.endLineNumber,n.endColumn+o)}}}e.BlockCommentCommand=y}),define(ne[609],se([1,0,11,75,9,4,23,333]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineCommentCommand=void 0;class _{constructor(p,n,o,t,i,s,g){this.languageConfigurationService=p,this._selection=n,this._indentSize=o,this._type=t,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=g||!1}static _gatherPreflightCommentStrings(p,n,o,t){p.tokenization.tokenizeIfCheap(n);const i=p.getLanguageIdAtPosition(n,1),s=t.getLanguageConfiguration(i).comments,g=s?s.lineCommentToken:null;if(!g)return null;const c=[];for(let l=0,a=o-n+1;li?n[c].commentStrOffset=s-1:n[c].commentStrOffset=s}}}e.LineCommentCommand=_}),define(ne[610],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropCommand=void 0;class I{constructor(y,m,_){this.selection=y,this.targetPosition=m,this.copy=_,this.targetSelection=null}getEditOperations(y,m){const _=y.getValueInRange(this.selection);if(this.copy||m.addEditOperation(this.selection,null),m.addEditOperation(new d.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),_),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new k.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new k.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber0){const m=[];for(let p=0;pd.Range.compareRangesUsingStarts(p.range,n.range));const _=[];let b=m[0];for(let p=1;p0){const c=[],l=s.caseOps.length;let a=0;for(let r=0,u=g.length;r=l){c.push(g.slice(r));break}switch(s.caseOps[a]){case"U":c.push(g[r].toUpperCase());break;case"u":c.push(g[r].toUpperCase()),a++;break;case"L":c.push(g[r].toLowerCase());break;case"l":c.push(g[r].toLowerCase()),a++;break;default:c.push(g[r])}}g=c.join("")}o+=g}return o}static _substitute(p,n){if(n===null)return"";if(p===0)return n[0];let o="";for(;p>0;){if(p=t)break;const s=b.charCodeAt(o);switch(s){case 92:n.emitUnchanged(o-1),n.emitStatic("\\",o+1);break;case 110:n.emitUnchanged(o-1),n.emitStatic(` -`,o+1);break;case 116:n.emitUnchanged(o-1),n.emitStatic(" ",o+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(o-1),n.emitStatic("",o+1),p.push(String.fromCharCode(s));break}continue}if(i===36){if(o++,o>=t)break;const s=b.charCodeAt(o);if(s===36){n.emitUnchanged(o-1),n.emitStatic("$",o+1);continue}if(s===48||s===38){n.emitUnchanged(o-1),n.emitMatchIndex(0,o+1,p),p.length=0;continue}if(49<=s&&s<=57){let g=s-48;if(o+1e.MAX_FOLDING_REGIONS)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=m,this._endIndexes=_,this._collapseStates=new k(m.length),this._userDefinedStates=new k(m.length),this._recoveredStates=new k(m.length),this._types=b,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const m=[],_=(b,p)=>{const n=m[m.length-1];return this.getStartLineNumber(n)<=b&&this.getEndLineNumber(n)>=p};for(let b=0,p=this._startIndexes.length;be.MAX_LINE_NUMBER||o>e.MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+e.MAX_LINE_NUMBER);for(;m.length>0&&!_(n,o);)m.pop();const t=m.length>0?m[m.length-1]:-1;m.push(b),this._startIndexes[b]=n+((t&255)<<24),this._endIndexes[b]=o+((t&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(m){return this._startIndexes[m]&e.MAX_LINE_NUMBER}getEndLineNumber(m){return this._endIndexes[m]&e.MAX_LINE_NUMBER}getType(m){return this._types?this._types[m]:void 0}hasTypes(){return!!this._types}isCollapsed(m){return this._collapseStates.get(m)}setCollapsed(m,_){this._collapseStates.set(m,_)}isUserDefined(m){return this._userDefinedStates.get(m)}setUserDefined(m,_){return this._userDefinedStates.set(m,_)}isRecovered(m){return this._recoveredStates.get(m)}setRecovered(m,_){return this._recoveredStates.set(m,_)}getSource(m){return this.isUserDefined(m)?1:this.isRecovered(m)?2:0}setSource(m,_){_===1?(this.setUserDefined(m,!0),this.setRecovered(m,!1)):_===2?(this.setUserDefined(m,!1),this.setRecovered(m,!0)):(this.setUserDefined(m,!1),this.setRecovered(m,!1))}setCollapsedAllOfType(m,_){let b=!1;if(this._types)for(let p=0;p>>24)+((this._endIndexes[m]&d)>>>16);return _===e.MAX_FOLDING_REGIONS?-1:_}contains(m,_){return this.getStartLineNumber(m)<=_&&this.getEndLineNumber(m)>=_}findIndex(m){let _=0,b=this._startIndexes.length;if(b===0)return-1;for(;_=0){if(this.getEndLineNumber(_)>=m)return _;for(_=this.getParentIndex(_);_!==-1;){if(this.contains(_,m))return _;_=this.getParentIndex(_)}}return-1}toString(){const m=[];for(let _=0;_Array.isArray(C)?h=>hh=c.startLineNumber))g&&g.startLineNumber===c.startLineNumber?(c.source===1?C=c:(C=g,C.isCollapsed=c.isCollapsed&&(g.endLineNumber===c.endLineNumber||!p?.startsInside(g.startLineNumber+1,g.endLineNumber+1)),C.source=0),g=o(++i)):(C=c,c.isCollapsed&&c.source===0&&(C.source=2)),c=t(++s);else{let f=s,h=c;for(;;){if(!h||h.startLineNumber>g.endLineNumber){C=g;break}if(h.source===1&&h.endLineNumber>g.endLineNumber)break;h=t(++f)}g=o(++i)}if(C){for(;a&&a.endLineNumberC.startLineNumber&&C.startLineNumber>r&&C.endLineNumber<=b&&(!a||a.endLineNumber>=C.endLineNumber)&&(u.push(C),r=C.startLineNumber,a&&l.push(a),a=C)}}return u}}e.FoldingRegions=I;class E{constructor(m,_){this.ranges=m,this.index=_}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(m){return m.startLineNumber<=this.startLineNumber&&m.endLineNumber>=this.endLineNumber}containsLine(m){return this.startLineNumber<=m&&m<=this.endLineNumber}}e.FoldingRegion=E}),define(ne[334],se([1,0,6,203,129]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingModel=void 0,e.toggleCollapseState=y,e.setCollapseStateLevelsDown=m,e.setCollapseStateLevelsUp=_,e.setCollapseStateUp=b,e.setCollapseStateAtLevel=p,e.setCollapseStateForRest=n,e.setCollapseStateForMatchingLines=o,e.setCollapseStateForType=t,e.getParentFoldLine=i,e.getPreviousFoldLine=s,e.getNextFoldLine=g;class E{get regions(){return this._regions}get textModel(){return this._textModel}constructor(l,a){this._updateEventEmitter=new d.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=l,this._decorationProvider=a,this._regions=new k.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(l){if(!l.length)return;l=l.sort((r,u)=>r.regionIndex-u.regionIndex);const a={};this._decorationProvider.changeDecorations(r=>{let u=0,C=-1,f=-1;const h=v=>{for(;uf&&(f=w),u++}};for(const v of l){const w=v.regionIndex,S=this._editorDecorationIds[w];if(S&&!a[S]){a[S]=!0,h(w);const L=!this._regions.isCollapsed(w);this._regions.setCollapsed(w,L),C=Math.max(C,this._regions.getEndLineNumber(w))}}h(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:l})}removeManualRanges(l){const a=new Array,r=u=>{for(const C of l)if(!(C.startLineNumber>u.endLineNumber||u.startLineNumber>C.endLineNumber))return!0;return!1};for(let u=0;ur&&(r=h)}this._decorationProvider.changeDecorations(u=>this._editorDecorationIds=u.deltaDecorations(this._editorDecorationIds,a)),this._regions=l,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(l){const a=[];for(let r=0,u=this._regions.length;r=f.endLineNumber||f.startLineNumber<1||f.endLineNumber>r)continue;const h=this._getLinesChecksum(f.startLineNumber+1,f.endLineNumber);a.push({startLineNumber:f.startLineNumber,endLineNumber:f.endLineNumber,isCollapsed:f.isCollapsed,source:f.source,checksum:h})}return a.length>0?a:void 0}applyMemento(l){if(!Array.isArray(l))return;const a=[],r=this._textModel.getLineCount();for(const C of l){if(C.startLineNumber>=C.endLineNumber||C.startLineNumber<1||C.endLineNumber>r)continue;const f=this._getLinesChecksum(C.startLineNumber+1,C.endLineNumber);(!C.checksum||f===C.checksum)&&a.push({startLineNumber:C.startLineNumber,endLineNumber:C.endLineNumber,type:void 0,isCollapsed:C.isCollapsed??!0,source:C.source??0})}const u=k.FoldingRegions.sanitizeAndMerge(this._regions,a,r);this.updatePost(k.FoldingRegions.fromFoldRanges(u))}_getLinesChecksum(l,a){return(0,I.hash)(this._textModel.getLineContent(l)+this._textModel.getLineContent(a))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(l,a){const r=[];if(this._regions){let u=this._regions.findRange(l),C=1;for(;u>=0;){const f=this._regions.toRegion(u);(!a||a(f,C))&&r.push(f),C++,u=f.parentIndex}}return r}getRegionAtLine(l){if(this._regions){const a=this._regions.findRange(l);if(a>=0)return this._regions.toRegion(a)}return null}getRegionsInside(l,a){const r=[],u=l?l.regionIndex+1:0,C=l?l.endLineNumber:Number.MAX_VALUE;if(a&&a.length===2){const f=[];for(let h=u,v=this._regions.length;h0&&!w.containedBy(f[f.length-1]);)f.pop();f.push(w),a(w,f.length)&&r.push(w)}else break}}else for(let f=u,h=this._regions.length;f1){const h=c.getRegionsInside(C,(v,w)=>v.isCollapsed!==f&&w0)for(const C of r){const f=c.getRegionAtLine(C);if(f&&(f.isCollapsed!==l&&u.push(f),a>1)){const h=c.getRegionsInside(f,(v,w)=>v.isCollapsed!==l&&wf.isCollapsed!==l&&hh.isCollapsed!==l&&v<=a);u.push(...f)}c.toggleCollapseState(u)}function b(c,l,a){const r=[];for(const u of a){const C=c.getAllRegionsAtLine(u,f=>f.isCollapsed!==l);C.length>0&&r.push(C[0])}c.toggleCollapseState(r)}function p(c,l,a,r){const u=(f,h)=>h===l&&f.isCollapsed!==a&&!r.some(v=>f.containsLine(v)),C=c.getRegionsInside(null,u);c.toggleCollapseState(C)}function n(c,l,a){const r=[];for(const f of a){const h=c.getAllRegionsAtLine(f,void 0);h.length>0&&r.push(h[0])}const u=f=>r.every(h=>!h.containedBy(f)&&!f.containedBy(h))&&f.isCollapsed!==l,C=c.getRegionsInside(null,u);c.toggleCollapseState(C)}function o(c,l,a){const r=c.textModel,u=c.regions,C=[];for(let f=u.length-1;f>=0;f--)if(a!==u.isCollapsed(f)){const h=u.getStartLineNumber(f);l.test(r.getLineContent(h))&&C.push(u.toRegion(f))}c.toggleCollapseState(C)}function t(c,l,a){const r=c.regions,u=[];for(let C=r.length-1;C>=0;C--)a!==r.isCollapsed(C)&&l===r.getType(C)&&u.push(r.toRegion(C));c.toggleCollapseState(u)}function i(c,l){let a=null;const r=l.getRegionAtLine(c);if(r!==null&&(a=r.startLineNumber,c===a)){const u=r.parentIndex;u!==-1?a=l.regions.getStartLineNumber(u):a=null}return a}function s(c,l){let a=l.getRegionAtLine(c);if(a!==null&&a.startLineNumber===c){if(c!==a.startLineNumber)return a.startLineNumber;{const r=a.parentIndex;let u=0;for(r!==-1&&(u=l.regions.getStartLineNumber(a.parentIndex));a!==null;)if(a.regionIndex>0){if(a=l.regions.toRegion(a.regionIndex-1),a.startLineNumber<=u)return null;if(a.parentIndex===r)return a.startLineNumber}else return null}}else if(l.regions.length>0)for(a=l.regions.toRegion(l.regions.length-1);a!==null;){if(a.startLineNumber0?a=l.regions.toRegion(a.regionIndex-1):a=null}return null}function g(c,l){let a=l.getRegionAtLine(c);if(a!==null&&a.startLineNumber===c){const r=a.parentIndex;let u=0;if(r!==-1)u=l.regions.getEndLineNumber(a.parentIndex);else{if(l.regions.length===0)return null;u=l.regions.getEndLineNumber(l.regions.length-1)}for(;a!==null;)if(a.regionIndex=u)return null;if(a.parentIndex===r)return a.startLineNumber}else return null}else if(l.regions.length>0)for(a=l.regions.toRegion(0);a!==null;){if(a.startLineNumber>c)return a.startLineNumber;a.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],p.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(p){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=p.changes.some(n=>n.range.endLineNumber!==n.range.startLineNumber||(0,E.countEOL)(n.text)[0]!==0))}updateHiddenRanges(){let p=!1;const n=[];let o=0,t=0,i=Number.MAX_VALUE,s=-1;const g=this._foldingModel.regions;for(;o0}isHidden(p){return _(this._hiddenRanges,p)!==null}adjustSelections(p){let n=!1;const o=this._foldingModel.textModel;let t=null;const i=s=>((!t||!m(s,t))&&(t=_(this._hiddenRanges,s)),t?t.startLineNumber-1:null);for(let s=0,g=p.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}e.HiddenRangeModel=y;function m(b,p){return b>=p.startLineNumber&&b<=p.endLineNumber}function _(b,p){const n=(0,d.findFirstIdxMonotonousOrArrLen)(b,o=>p=0&&b[n].endLineNumber>=p?b[n]:null}}),define(ne[335],se([1,0,237,203]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangesCollector=e.IndentRangeProvider=void 0,e.computeRanges=b;const I=5e3,E="indent";class y{constructor(n,o,t){this.editorModel=n,this.languageConfigurationService=o,this.foldingRangesLimit=t,this.id=E}dispose(){}compute(n){const o=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,t=o&&!!o.offSide,i=o&&o.markers;return Promise.resolve(b(this.editorModel,t,i,this.foldingRangesLimit))}}e.IndentRangeProvider=y;class m{constructor(n){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=n}insertFirst(n,o,t){if(n>k.MAX_LINE_NUMBER||o>k.MAX_LINE_NUMBER)return;const i=this._length;this._startIndexes[i]=n,this._endIndexes[i]=o,this._length++,t<1e3&&(this._indentOccurrences[t]=(this._indentOccurrences[t]||0)+1)}toIndentRanges(n){const o=this._foldingRangesLimit.limit;if(this._length<=o){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=this._length-1,g=0;s>=0;s--,g++)t[g]=this._startIndexes[s],i[g]=this._endIndexes[s];return new k.FoldingRegions(t,i)}else{this._foldingRangesLimit.update(this._length,o);let t=0,i=this._indentOccurrences.length;for(let l=0;lo){i=l;break}t+=a}}const s=n.getOptions().tabSize,g=new Uint32Array(o),c=new Uint32Array(o);for(let l=this._length-1,a=0;l>=0;l--){const r=this._startIndexes[l],u=n.getLineContent(r),C=(0,d.computeIndentLevel)(u,s);(C{}};function b(p,n,o,t=_){const i=p.getOptions().tabSize,s=new m(t);let g;o&&(g=new RegExp(`(${o.start.source})|(?:${o.end.source})`));const c=[],l=p.getLineCount()+1;c.push({indent:-1,endAbove:l,line:l});for(let a=p.getLineCount();a>0;a--){const r=p.getLineContent(a),u=(0,d.computeIndentLevel)(r,i);let C=c[c.length-1];if(u===-1){n&&(C.endAbove=a);continue}let f;if(g&&(f=r.match(g)))if(f[1]){let h=c.length-1;for(;h>0&&c[h].indent!==-2;)h--;if(h>0){c.length=h+1,C=c[h],s.insertFirst(a,C.line,u),C.line=a,C.indent=u,C.endAbove=a;continue}}else{c.push({indent:-2,endAbove:a,line:a});continue}if(C.indent>u){do c.pop(),C=c[c.length-1];while(C.indent>u);const h=C.endAbove-1;h-a>=1&&s.insertFirst(a,h,u)}C.indent===u?C.endAbove=a:c.push({indent:u,endAbove:a,line:a})}return s.toIndentRanges(p)}}),define(ne[336],se([1,0,8,2,203]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SyntaxRangeProvider=void 0,e.sanitizeRanges=p;const E={},y="syntax";class m{constructor(o,t,i,s,g){this.editorModel=o,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=s,this.fallbackRangeProvider=g,this.id=y,this.disposables=new k.DisposableStore,g&&this.disposables.add(g);for(const c of t)typeof c.onDidChange=="function"&&this.disposables.add(c.onDidChange(i))}compute(o){return _(this.providers,this.editorModel,o).then(t=>t?p(t,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(o)??null)}dispose(){this.disposables.dispose()}}e.SyntaxRangeProvider=m;function _(n,o,t){let i=null;const s=n.map((g,c)=>Promise.resolve(g.provideFoldingRanges(o,E,t)).then(l=>{if(!t.isCancellationRequested&&Array.isArray(l)){Array.isArray(i)||(i=[]);const a=o.getLineCount();for(const r of l)r.start>0&&r.end>r.start&&r.end<=a&&i.push({start:r.start,end:r.end,rank:c,kind:r.kind})}},d.onUnexpectedExternalError));return Promise.all(s).then(g=>i)}class b{constructor(o){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=o}add(o,t,i,s){if(o>I.MAX_LINE_NUMBER||t>I.MAX_LINE_NUMBER)return;const g=this._length;this._startIndexes[g]=o,this._endIndexes[g]=t,this._nestingLevels[g]=s,this._types[g]=i,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const o=this._foldingRangesLimit.limit;if(this._length<=o){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=0;so){i=l;break}t+=a}}const s=new Uint32Array(o),g=new Uint32Array(o),c=[];for(let l=0,a=0;l{let a=c.start-l.start;return a===0&&(a=c.rank-l.rank),a}),i=new b(o);let s;const g=[];for(const c of t)if(!s)s=c,i.add(c.start,c.end,c.kind&&c.kind.value,g.length);else if(c.start>s.start)if(c.end<=s.end)g.push(s),s=c,i.add(c.start,c.end,c.kind&&c.kind.value,g.length);else{if(c.start>s.end){do s=g.pop();while(s&&c.start>s.end);s&&g.push(s),s=c}i.add(c.start,c.end,c.kind&&c.kind.value,g.length)}return i.toIndentRanges()}}),define(ne[337],se([1,0,75,4,143]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormattingEdit=void 0;class E{static _handleEolEdits(m,_){let b;const p=[];for(const n of _)typeof n.eol=="number"&&(b=n.eol),n.range&&typeof n.text=="string"&&p.push(n);return typeof b=="number"&&m.hasModel()&&m.getModel().pushEOL(b),p}static _isFullModelReplaceEdit(m,_){if(!m.hasModel())return!1;const b=m.getModel(),p=b.validateRange(_.range);return b.getFullModelRange().equalsRange(p)}static execute(m,_,b){b&&m.pushUndoStop();const p=I.StableEditorScrollState.capture(m),n=E._handleEolEdits(m,_);n.length===1&&E._isFullModelReplaceEdit(m,n[0])?m.executeEdits("formatEditsCommand",n.map(o=>d.EditOperation.replace(k.Range.lift(o.range),o.text))):m.executeEdits("formatEditsCommand",n.map(o=>d.EditOperation.replaceMove(k.Range.lift(o.range),o.text))),b&&m.pushUndoStop(),p.restoreRelativeVerticalPositionOfCursor(m)}}e.FormattingEdit=E}),define(ne[614],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FilteredHoverResult=e.HoverResult=void 0;class d{constructor(E,y,m){this.anchor=E,this.hoverParts=y,this.isComplete=m}filter(E){const y=this.hoverParts.filter(m=>m.isValidForHoverAnchor(E));return y.length===this.hoverParts.length?this:new k(this,this.anchor,y,this.isComplete)}}e.HoverResult=d;class k extends d{constructor(E,y,m,_){super(y,m,_),this.original=E}filter(E){return this.original.filter(E)}}e.FilteredHoverResult=k}),define(ne[615],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExtHoverAccessibleView=e.HoverAccessibilityHelp=e.HoverAccessibleView=void 0;class d{}e.HoverAccessibleView=d;class k{}e.HoverAccessibilityHelp=k;class I{}e.ExtHoverAccessibleView=I}),define(ne[84],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverParticipantRegistry=e.RenderedHoverParts=e.HoverForeignElementAnchor=e.HoverRangeAnchor=void 0;class d{constructor(y,m,_,b){this.priority=y,this.range=m,this.initialMousePosX=_,this.initialMousePosY=b,this.type=1}equals(y){return y.type===1&&this.range.equalsRange(y.range)}canAdoptVisibleHover(y,m){return y.type===1&&m.lineNumber===this.range.startLineNumber}}e.HoverRangeAnchor=d;class k{constructor(y,m,_,b,p,n){this.priority=y,this.owner=m,this.range=_,this.initialMousePosX=b,this.initialMousePosY=p,this.supportsMarkerHover=n,this.type=2}equals(y){return y.type===2&&this.owner===y.owner}canAdoptVisibleHover(y,m){return y.type===2&&this.owner===y.owner}}e.HoverForeignElementAnchor=k;class I{constructor(y){this.renderedHoverParts=y}dispose(){for(const y of this.renderedHoverParts)y.dispose()}}e.RenderedHoverParts=I,e.HoverParticipantRegistry=new class{constructor(){this._participants=[]}register(y){this._participants.push(y)}getAll(){return this._participants}}}),define(ne[616],se([1,0,23]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InPlaceReplaceCommand=void 0;class k{constructor(E,y,m){this._editRange=E,this._originalSelection=y,this._text=m}getEditOperations(E,y){y.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(E,y){const _=y.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new d.Selection(_.endLineNumber,Math.min(this._originalSelection.positionColumn,_.endColumn),_.endLineNumber,Math.min(this._originalSelection.positionColumn,_.endColumn)):new d.Selection(_.endLineNumber,_.endColumn-this._text.length,_.endLineNumber,_.endColumn)}}e.InPlaceReplaceCommand=k}),define(ne[338],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSpaceCnt=d,e.generateIndent=k;function d(I,E){let y=0;for(let m=0;mi.equals(t.parts[s]))}renderForScreenReader(t){if(this.parts.length===0)return"";const i=this.parts[this.parts.length-1],s=t.substr(0,i.column-1);return new y.TextEdit([...this.parts.map(c=>new y.SingleTextEdit(E.Range.fromPositions(new I.Position(1,c.column)),c.lines.join(` -`)))]).applyToString(s).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(t=>t.lines.length===0)}get lineCount(){return 1+this.parts.reduce((t,i)=>t+i.lines.length-1,0)}}e.GhostText=m;class _{constructor(t,i,s){this.column=t,this.text=i,this.preview=s,this.lines=(0,k.splitLines)(this.text)}equals(t){return this.column===t.column&&this.lines.length===t.lines.length&&this.lines.every((i,s)=>i===t.lines[s])}}e.GhostTextPart=_;class b{constructor(t,i,s,g=0){this.lineNumber=t,this.columnRange=i,this.text=s,this.additionalReservedLineCount=g,this.parts=[new _(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=(0,k.splitLines)(this.text)}renderForScreenReader(t){return this.newLines.join(` -`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(t=>t.lines.length===0)}equals(t){return this.lineNumber===t.lineNumber&&this.columnRange.equals(t.columnRange)&&this.newLines.length===t.newLines.length&&this.newLines.every((i,s)=>i===t.newLines[s])&&this.additionalReservedLineCount===t.additionalReservedLineCount}}e.GhostTextReplacement=b;function p(o,t){return(0,d.equals)(o,t,n)}function n(o,t){return o===t?!0:!o||!t?!1:o instanceof m&&t instanceof m||o instanceof b&&t instanceof b?o.equals(t):!1}}),define(ne[246],se([1,0,190,11,4,113,104,204]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.singleTextRemoveCommonPrefix=_,e.singleTextEditAugments=b,e.computeGhostText=p;function _(g,c,l){const a=l?g.range.intersectRanges(l):g.range;if(!a)return g;const r=c.getValueInRange(a,1),u=(0,k.commonPrefixLength)(r,g.text),C=E.TextLength.ofText(r.substring(0,u)).addToPosition(g.range.getStartPosition()),f=g.text.substring(u),h=I.Range.fromPositions(C,g.range.getEndPosition());return new y.SingleTextEdit(h,f)}function b(g,c){return g.text.startsWith(c.text)&&n(g.range,c.range)}function p(g,c,l,a,r=0){let u=_(g,c);if(u.range.endLineNumber!==u.range.startLineNumber)return;const C=c.getLineContent(u.range.startLineNumber),f=(0,k.getLeadingWhitespace)(C).length;if(u.range.startColumn-1<=f){const T=(0,k.getLeadingWhitespace)(u.text).length,M=C.substring(u.range.startColumn-1,f),[A,P]=[u.range.getStartPosition(),u.range.getEndPosition()],N=A.column+M.length<=P.column?A.delta(0,M.length):P,O=I.Range.fromPositions(N,P),F=u.text.startsWith(M)?u.text.substring(M.length):u.text.substring(T);u=new y.SingleTextEdit(O,F)}const v=c.getValueInRange(u.range),w=t(v,u.text);if(!w)return;const S=u.range.startLineNumber,L=new Array;if(l==="prefix"){const T=w.filter(M=>M.originalLength===0);if(T.length>1||T.length===1&&T[0].originalStart!==v.length)return}const D=u.text.length-r;for(const T of w){const M=u.range.startColumn+T.originalStart+T.originalLength;if(l==="subwordSmart"&&a&&a.lineNumber===u.range.startLineNumber&&M0)return;if(T.modifiedLength===0)continue;const A=T.modifiedStart+T.modifiedLength,P=Math.max(T.modifiedStart,Math.min(A,D)),N=u.text.substring(T.modifiedStart,P),O=u.text.substring(P,Math.max(T.modifiedStart,A));N.length>0&&L.push(new m.GhostTextPart(M,N,!1)),O.length>0&&L.push(new m.GhostTextPart(M,O,!0))}return new m.GhostText(S,L)}function n(g,c){return c.getStartPosition().equals(g.getStartPosition())&&c.getEndPosition().isBeforeOrEqual(g.getEndPosition())}let o;function t(g,c){if(o?.originalValue===g&&o?.newValue===c)return o?.changes;{let l=s(g,c,!0);if(l){const a=i(l);if(a>0){const r=s(g,c,!1);r&&i(r)5e3||c.length>5e3)return;function a(v){let w=0;for(let S=0,L=v.length;Sw&&(w=D)}return w}const r=Math.max(a(g),a(c));function u(v){if(v<0)throw new Error("unexpected");return r+v+1}function C(v){let w=0,S=0;const L=new Int32Array(v.length);for(let D=0,T=v.length;Df},{getElements:()=>h}).ComputeDiff(!1).changes}}),define(ne[205],se([1,0,8,2,21,9,4]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColumnRange=void 0,e.getReadonlyEmptyArray=_,e.applyObservableDecorations=p,e.addPositions=n,e.subtractPositions=o;const m=[];function _(){return m}class b{constructor(i,s){if(this.startColumn=i,this.endColumnExclusive=s,i>s)throw new d.BugIndicatingError(`startColumn ${i} cannot be after endColumnExclusive ${s}`)}toRange(i){return new y.Range(i,this.startColumn,i,this.endColumnExclusive)}equals(i){return this.startColumn===i.startColumn&&this.endColumnExclusive===i.endColumnExclusive}}e.ColumnRange=b;function p(t,i){const s=new k.DisposableStore,g=t.createDecorationsCollection();return s.add((0,I.autorunOpts)({debugName:()=>`Apply decorations from ${i.debugName}`},c=>{const l=i.read(c);g.set(l)})),s.add({dispose:()=>{g.clear()}}),s}function n(t,i){return new E.Position(t.lineNumber+i.lineNumber-1,i.lineNumber===1?t.column+i.column-1:i.column)}function o(t,i){return new E.Position(t.lineNumber-i.lineNumber+1,t.lineNumber-i.lineNumber===0?t.column-i.column+1:t.column)}}),define(ne[618],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inlineEditJumpBackId=e.inlineEditJumpToId=e.inlineEditRejectId=e.inlineEditAcceptId=void 0,e.inlineEditAcceptId="editor.action.inlineEdit.accept",e.inlineEditRejectId="editor.action.inlineEdit.reject",e.inlineEditJumpToId="editor.action.inlineEdit.jumpTo",e.inlineEditJumpBackId="editor.action.inlineEdit.jumpBack"}),define(ne[619],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CopyLinesCommand=void 0;class I{constructor(y,m,_){this._selection=y,this._isCopyingDown=m,this._noop=_||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(y,m){let _=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,_.startLineNumber<_.endLineNumber&&_.endColumn===1&&(this._endLineNumberDelta=1,_=_.setEndPosition(_.endLineNumber-1,y.getLineMaxColumn(_.endLineNumber-1)));const b=[];for(let n=_.startLineNumber;n<=_.endLineNumber;n++)b.push(y.getLineContent(n));const p=b.join(` -`);p===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?m.addEditOperation(new d.Range(_.endLineNumber,y.getLineMaxColumn(_.endLineNumber),_.endLineNumber+1,1),_.endLineNumber===y.getLineCount()?"":` -`):this._isCopyingDown?m.addEditOperation(new d.Range(_.startLineNumber,1,_.startLineNumber,1),p+` -`):m.addEditOperation(new d.Range(_.endLineNumber,y.getLineMaxColumn(_.endLineNumber),_.endLineNumber,y.getLineMaxColumn(_.endLineNumber)),` -`+p),this._selectionId=m.trackSelection(_),this._selectionDirection=this._selection.getDirection()}computeCursorState(y,m){let _=m.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let b=_.startLineNumber,p=_.startColumn,n=_.endLineNumber,o=_.endColumn;this._startLineNumberDelta!==0&&(b=b+this._startLineNumberDelta,p=1),this._endLineNumberDelta!==0&&(n=n+this._endLineNumberDelta,o=1),_=k.Selection.createWithDirection(b,p,n,o,this._selectionDirection)}return _}}e.CopyLinesCommand=I}),define(ne[620],se([1,0,75,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SortLinesCommand=void 0;class I{static{this._COLLATOR=null}static getCollator(){return I._COLLATOR||(I._COLLATOR=new Intl.Collator),I._COLLATOR}constructor(_,b){this.selection=_,this.descending=b,this.selectionId=null}getEditOperations(_,b){const p=y(_,this.selection,this.descending);p&&b.addEditOperation(p.range,p.text),this.selectionId=b.trackSelection(this.selection)}computeCursorState(_,b){return b.getTrackedSelection(this.selectionId)}static canRun(_,b,p){if(_===null)return!1;const n=E(_,b,p);if(!n)return!1;for(let o=0,t=n.before.length;o=n)return null;const o=[];for(let i=p;i<=n;i++)o.push(m.getLineContent(i));let t=o.slice(0);return t.sort(I.getCollator().compare),b===!0&&(t=t.reverse()),{startLineNumber:p,endLineNumber:n,before:o,after:t}}function y(m,_,b){const p=E(m,_,b);return p?d.EditOperation.replace(new k.Range(p.startLineNumber,1,p.endLineNumber,m.getLineMaxColumn(p.endLineNumber)),p.after.join(` -`)):null}}),define(ne[339],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SEMANTIC_HIGHLIGHTING_SETTING_ID=void 0,e.isSemanticColoringEnabled=d,e.SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function d(k,I,E){const y=E.getValue(e.SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:k.getLanguageId(),resource:k.uri})?.enabled;return typeof y=="boolean"?y:I.getColorTheme().semanticHighlighting}}),define(ne[340],se([1,0,73,9,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketSelectionRangeProvider=void 0;class E{async provideSelectionRanges(m,_){const b=[];for(const p of _){const n=[];b.push(n);const o=new Map;await new Promise(t=>E._bracketsRightYield(t,0,m,p,o)),await new Promise(t=>E._bracketsLeftYield(t,0,m,p,o,n))}return b}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(m,_,b,p,n){const o=new Map,t=Date.now();for(;;){if(_>=E._maxRounds){m();break}if(!p){m();break}const i=b.bracketPairs.findNextBracket(p);if(!i){m();break}if(Date.now()-t>E._maxDuration){setTimeout(()=>E._bracketsRightYield(m,_+1,b,p,n));break}if(i.bracketInfo.isOpeningBracket){const g=i.bracketInfo.bracketText,c=o.has(g)?o.get(g):0;o.set(g,c+1)}else{const g=i.bracketInfo.getOpeningBrackets()[0].bracketText;let c=o.has(g)?o.get(g):0;if(c-=1,o.set(g,Math.max(0,c)),c<0){let l=n.get(g);l||(l=new d.LinkedList,n.set(g,l)),l.push(i.range)}}p=i.range.getEndPosition()}}static _bracketsLeftYield(m,_,b,p,n,o){const t=new Map,i=Date.now();for(;;){if(_>=E._maxRounds&&n.size===0){m();break}if(!p){m();break}const s=b.bracketPairs.findPrevBracket(p);if(!s){m();break}if(Date.now()-i>E._maxDuration){setTimeout(()=>E._bracketsLeftYield(m,_+1,b,p,n,o));break}if(s.bracketInfo.isOpeningBracket){const c=s.bracketInfo.bracketText;let l=t.has(c)?t.get(c):0;if(l-=1,t.set(c,Math.max(0,l)),l<0){const a=n.get(c);if(a){const r=a.shift();a.size===0&&n.delete(c);const u=I.Range.fromPositions(s.range.getEndPosition(),r.getStartPosition()),C=I.Range.fromPositions(s.range.getStartPosition(),r.getEndPosition());o.push({range:u}),o.push({range:C}),E._addBracketLeading(b,C,o)}}}else{const c=s.bracketInfo.getOpeningBrackets()[0].bracketText,l=t.has(c)?t.get(c):0;t.set(c,l+1)}p=s.range.getStartPosition()}}static _addBracketLeading(m,_,b){if(_.startLineNumber===_.endLineNumber)return;const p=_.startLineNumber,n=m.getLineFirstNonWhitespaceColumn(p);n!==0&&n!==_.startColumn&&(b.push({range:I.Range.fromPositions(new k.Position(p,n),_.getEndPosition())}),b.push({range:I.Range.fromPositions(new k.Position(p,1),_.getEndPosition())}));const o=p-1;if(o>0){const t=m.getLineFirstNonWhitespaceColumn(o);t===_.startColumn&&t!==m.getLineLastNonWhitespaceColumn(o)&&(b.push({range:I.Range.fromPositions(new k.Position(o,t),_.getEndPosition())}),b.push({range:I.Range.fromPositions(new k.Position(o,1),_.getEndPosition())}))}}}e.BracketSelectionRangeProvider=E}),define(ne[621],se([1,0,11,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordSelectionRangeProvider=void 0;class I{constructor(y=!0){this.selectSubwords=y}provideSelectionRanges(y,m){const _=[];for(const b of m){const p=[];_.push(p),this.selectSubwords&&this._addInWordRanges(p,y,b),this._addWordRanges(p,y,b),this._addWhitespaceLine(p,y,b),p.push({range:y.getFullModelRange()})}return _}_addInWordRanges(y,m,_){const b=m.getWordAtPosition(_);if(!b)return;const{word:p,startColumn:n}=b,o=_.column-n;let t=o,i=o,s=0;for(;t>=0;t--){const g=p.charCodeAt(t);if(t!==o&&(g===95||g===45))break;if((0,d.isLowerAsciiLetter)(g)&&(0,d.isUpperAsciiLetter)(s))break;s=g}for(t+=1;i0&&m.getLineFirstNonWhitespaceColumn(_.lineNumber)===0&&m.getLineLastNonWhitespaceColumn(_.lineNumber)===0&&y.push({range:new k.Range(_.lineNumber,1,_.lineNumber,m.getLineMaxColumn(_.lineNumber))})}}e.WordSelectionRangeProvider=I}),define(ne[135],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetParser=e.TextmateSnippet=e.Variable=e.FormatString=e.Transform=e.Choice=e.Placeholder=e.TransformableMarker=e.Text=e.Marker=e.Scanner=void 0;class d{constructor(){this.value="",this.pos=0}static{this._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13}}static isDigitCharacter(s){return s>=48&&s<=57}static isVariableCharacter(s){return s===95||s>=97&&s<=122||s>=65&&s<=90}text(s){this.value=s,this.pos=0}tokenText(s){return this.value.substr(s.pos,s.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const s=this.pos;let g=0,c=this.value.charCodeAt(s),l;if(l=d._table[c],typeof l=="number")return this.pos+=1,{type:l,pos:s,len:1};if(d.isDigitCharacter(c)){l=8;do g+=1,c=this.value.charCodeAt(s+g);while(d.isDigitCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}if(d.isVariableCharacter(c)){l=9;do c=this.value.charCodeAt(s+ ++g);while(d.isVariableCharacter(c)||d.isDigitCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}l=10;do g+=1,c=this.value.charCodeAt(s+g);while(!isNaN(c)&&typeof d._table[c]>"u"&&!d.isDigitCharacter(c)&&!d.isVariableCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}}e.Scanner=d;class k{constructor(){this._children=[]}appendChild(s){return s instanceof I&&this._children[this._children.length-1]instanceof I?this._children[this._children.length-1].value+=s.value:(s.parent=this,this._children.push(s)),this}replace(s,g){const{parent:c}=s,l=c.children.indexOf(s),a=c.children.slice(0);a.splice(l,1,...g),c._children=a,function r(u,C){for(const f of u)f.parent=C,r(f.children,f)}(g,c)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let s=this;for(;;){if(!s)return;if(s instanceof o)return s;s=s.parent}}toString(){return this.children.reduce((s,g)=>s+g.toString(),"")}len(){return 0}}e.Marker=k;class I extends k{constructor(s){super(),this.value=s}toString(){return this.value}len(){return this.value.length}clone(){return new I(this.value)}}e.Text=I;class E extends k{}e.TransformableMarker=E;class y extends E{static compareByIndex(s,g){return s.index===g.index?0:s.isFinalTabstop?1:g.isFinalTabstop||s.indexg.index?1:0}constructor(s){super(),this.index=s}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof m?this._children[0]:void 0}clone(){const s=new y(this.index);return this.transform&&(s.transform=this.transform.clone()),s._children=this.children.map(g=>g.clone()),s}}e.Placeholder=y;class m extends k{constructor(){super(...arguments),this.options=[]}appendChild(s){return s instanceof I&&(s.parent=this,this.options.push(s)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const s=new m;return this.options.forEach(s.appendChild,s),s}}e.Choice=m;class _ extends k{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(s){const g=this;let c=!1,l=s.replace(this.regexp,function(){return c=!0,g._replace(Array.prototype.slice.call(arguments,0,-2))});return!c&&this._children.some(a=>a instanceof b&&!!a.elseValue)&&(l=this._replace([])),l}_replace(s){let g="";for(const c of this._children)if(c instanceof b){let l=s[c.index]||"";l=c.resolve(l),g+=l}else g+=c.toString();return g}toString(){return""}clone(){const s=new _;return s.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),s._children=this.children.map(g=>g.clone()),s}}e.Transform=_;class b extends k{constructor(s,g,c,l){super(),this.index=s,this.shorthandName=g,this.ifValue=c,this.elseValue=l}resolve(s){return this.shorthandName==="upcase"?s?s.toLocaleUpperCase():"":this.shorthandName==="downcase"?s?s.toLocaleLowerCase():"":this.shorthandName==="capitalize"?s?s[0].toLocaleUpperCase()+s.substr(1):"":this.shorthandName==="pascalcase"?s?this._toPascalCase(s):"":this.shorthandName==="camelcase"?s?this._toCamelCase(s):"":s&&typeof this.ifValue=="string"?this.ifValue:!s&&typeof this.elseValue=="string"?this.elseValue:s||""}_toPascalCase(s){const g=s.match(/[a-z0-9]+/gi);return g?g.map(c=>c.charAt(0).toUpperCase()+c.substr(1)).join(""):s}_toCamelCase(s){const g=s.match(/[a-z0-9]+/gi);return g?g.map((c,l)=>l===0?c.charAt(0).toLowerCase()+c.substr(1):c.charAt(0).toUpperCase()+c.substr(1)).join(""):s}clone(){return new b(this.index,this.shorthandName,this.ifValue,this.elseValue)}}e.FormatString=b;class p extends E{constructor(s){super(),this.name=s}resolve(s){let g=s.resolve(this);return this.transform&&(g=this.transform.resolve(g||"")),g!==void 0?(this._children=[new I(g)],!0):!1}clone(){const s=new p(this.name);return this.transform&&(s.transform=this.transform.clone()),s._children=this.children.map(g=>g.clone()),s}}e.Variable=p;function n(i,s){const g=[...i];for(;g.length>0;){const c=g.shift();if(!s(c))break;g.unshift(...c.children)}}class o extends k{get placeholderInfo(){if(!this._placeholders){const s=[];let g;this.walk(function(c){return c instanceof y&&(s.push(c),g=!g||g.indexl===s?(c=!0,!1):(g+=l.len(),!0)),c?g:-1}fullLen(s){let g=0;return n([s],c=>(g+=c.len(),!0)),g}enclosingPlaceholders(s){const g=[];let{parent:c}=s;for(;c;)c instanceof y&&g.push(c),c=c.parent;return g}resolveVariables(s){return this.walk(g=>(g instanceof p&&g.resolve(s)&&(this._placeholders=void 0),!0)),this}appendChild(s){return this._placeholders=void 0,super.appendChild(s)}replace(s,g){return this._placeholders=void 0,super.replace(s,g)}clone(){const s=new o;return this._children=this.children.map(g=>g.clone()),s}walk(s){n(this.children,s)}}e.TextmateSnippet=o;class t{constructor(){this._scanner=new d,this._token={type:14,pos:0,len:0}}static escape(s){return s.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(s){return/\${?CLIPBOARD/.test(s)}parse(s,g,c){const l=new o;return this.parseFragment(s,l),this.ensureFinalTabstop(l,c??!1,g??!1),l}parseFragment(s,g){const c=g.children.length;for(this._scanner.text(s),this._token=this._scanner.next();this._parse(g););const l=new Map,a=[];g.walk(C=>(C instanceof y&&(C.isFinalTabstop?l.set(0,void 0):!l.has(C.index)&&C.children.length>0?l.set(C.index,C.children):a.push(C)),!0));const r=(C,f)=>{const h=l.get(C.index);if(!h)return;const v=new y(C.index);v.transform=C.transform;for(const w of h){const S=w.clone();v.appendChild(S),S instanceof y&&l.has(S.index)&&!f.has(S.index)&&(f.add(S.index),r(S,f),f.delete(S.index))}g.replace(C,[v])},u=new Set;for(const C of a)r(C,u);return g.children.slice(c)}ensureFinalTabstop(s,g,c){(g||c&&s.placeholders.length>0)&&(s.placeholders.find(a=>a.index===0)||s.appendChild(new y(0)))}_accept(s,g){if(s===void 0||this._token.type===s){const c=g?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),c}return!1}_backTo(s){return this._scanner.pos=s.pos+s.len,this._token=s,!1}_until(s){const g=this._token;for(;this._token.type!==s;){if(this._token.type===14)return!1;if(this._token.type===5){const l=this._scanner.next();if(l.type!==0&&l.type!==4&&l.type!==5)return!1}this._token=this._scanner.next()}const c=this._scanner.value.substring(g.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),c}_parse(s){return this._parseEscaped(s)||this._parseTabstopOrVariableName(s)||this._parseComplexPlaceholder(s)||this._parseComplexVariable(s)||this._parseAnything(s)}_parseEscaped(s){let g;return(g=this._accept(5,!0))?(g=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||g,s.appendChild(new I(g)),!0):!1}_parseTabstopOrVariableName(s){let g;const c=this._token;return this._accept(0)&&(g=this._accept(9,!0)||this._accept(8,!0))?(s.appendChild(/^\d+$/.test(g)?new y(Number(g)):new p(g)),!0):this._backTo(c)}_parseComplexPlaceholder(s){let g;const c=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(8,!0))))return this._backTo(c);const a=new y(Number(g));if(this._accept(1))for(;;){if(this._accept(4))return s.appendChild(a),!0;if(!this._parse(a))return s.appendChild(new I("${"+g+":")),a.children.forEach(s.appendChild,s),!0}else if(a.index>0&&this._accept(7)){const r=new m;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(a.appendChild(r),this._accept(4)))return s.appendChild(a),!0}return this._backTo(c),!1}}else return this._accept(6)?this._parseTransform(a)?(s.appendChild(a),!0):(this._backTo(c),!1):this._accept(4)?(s.appendChild(a),!0):this._backTo(c)}_parseChoiceElement(s){const g=this._token,c=[];for(;!(this._token.type===2||this._token.type===7);){let l;if((l=this._accept(5,!0))?l=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||l:l=this._accept(void 0,!0),!l)return this._backTo(g),!1;c.push(l)}return c.length===0?(this._backTo(g),!1):(s.appendChild(new I(c.join(""))),!0)}_parseComplexVariable(s){let g;const c=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(9,!0))))return this._backTo(c);const a=new p(g);if(this._accept(1))for(;;){if(this._accept(4))return s.appendChild(a),!0;if(!this._parse(a))return s.appendChild(new I("${"+g+":")),a.children.forEach(s.appendChild,s),!0}else return this._accept(6)?this._parseTransform(a)?(s.appendChild(a),!0):(this._backTo(c),!1):this._accept(4)?(s.appendChild(a),!0):this._backTo(c)}_parseTransform(s){const g=new _;let c="",l="";for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(6,!0)||a,c+=a;continue}if(this._token.type!==14){c+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(5,!0)||this._accept(6,!0)||a,g.appendChild(new I(a));continue}if(!(this._parseFormatString(g)||this._parseAnything(g)))return!1}for(;!this._accept(4);){if(this._token.type!==14){l+=this._accept(void 0,!0);continue}return!1}try{g.regexp=new RegExp(c,l)}catch{return!1}return s.transform=g,!0}_parseFormatString(s){const g=this._token;if(!this._accept(0))return!1;let c=!1;this._accept(3)&&(c=!0);const l=this._accept(8,!0);if(l)if(c){if(this._accept(4))return s.appendChild(new b(Number(l))),!0;if(!this._accept(1))return this._backTo(g),!1}else return s.appendChild(new b(Number(l))),!0;else return this._backTo(g),!1;if(this._accept(6)){const a=this._accept(9,!0);return!a||!this._accept(4)?(this._backTo(g),!1):(s.appendChild(new b(Number(l),a)),!0)}else if(this._accept(11)){const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,a,void 0)),!0}else if(this._accept(12)){const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,void 0,a)),!0}else if(this._accept(13)){const a=this._until(1);if(a){const r=this._until(4);if(r)return s.appendChild(new b(Number(l),void 0,a,r)),!0}}else{const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,void 0,a)),!0}return this._backTo(g),!1}_parseAnything(s){return this._token.type!==14?(s.appendChild(new I(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}e.SnippetParser=t}),define(ne[341],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyModel=e.StickyElement=e.StickyRange=void 0;class d{constructor(y,m){this.startLineNumber=y,this.endLineNumber=m}}e.StickyRange=d;class k{constructor(y,m,_){this.range=y,this.children=m,this.parent=_}}e.StickyElement=k;class I{constructor(y,m,_,b){this.uri=y,this.version=m,this.element=_,this.outlineProviderId=b}}e.StickyModel=I}),define(ne[342],se([1,0,13,82,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompletionModel=e.LineContext=void 0;class E{constructor(_,b){this.leadingLineContent=_,this.characterCountDelta=b}}e.LineContext=E;class y{constructor(_,b,p,n,o,t,i=k.FuzzyScoreOptions.default,s=void 0){this.clipboardText=s,this._snippetCompareFn=y._compareCompletionItems,this._items=_,this._column=b,this._wordDistance=n,this._options=o,this._refilterKind=1,this._lineContext=p,this._fuzzyScoreOptions=i,t==="top"?this._snippetCompareFn=y._compareCompletionItemsSnippetsUp:t==="bottom"&&(this._snippetCompareFn=y._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(_){(this._lineContext.leadingLineContent!==_.leadingLineContent||this._lineContext.characterCountDelta!==_.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<_.characterCountDelta&&this._filteredItems?2:1,this._lineContext=_)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const _=new Set;for(const[b,p]of this.getItemsByProvider())p.length>0&&p[0].container.incomplete&&_.add(b);return _}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const _=[],{leadingLineContent:b,characterCountDelta:p}=this._lineContext;let n="",o="";const t=this._refilterKind===1?this._items:this._filteredItems,i=[],s=!this._options.filterGraceful||t.length>2e3?k.fuzzyScore:k.fuzzyScoreGracefulAggressive;for(let g=0;g=r)c.score=k.FuzzyScore.Default;else if(typeof c.completion.filterText=="string"){const C=s(n,o,u,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!C)continue;(0,I.compareIgnoreCase)(c.completion.filterText,c.textLabel)===0?c.score=C:(c.score=(0,k.anyScore)(n,o,u,c.textLabel,c.labelLow,0),c.score[0]=C[0])}else{const C=s(n,o,u,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!C)continue;c.score=C}}c.idx=g,c.distance=this._wordDistance.distance(c.position,c.completion),i.push(c),_.push(c.textLabel.length)}this._filteredItems=i.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:_.length?(0,d.quickSelect)(_.length-.85,_,(g,c)=>g-c):0}}static _compareCompletionItems(_,b){return _.score[0]>b.score[0]?-1:_.score[0]b.distance?1:_.idxb.idx?1:0}static _compareCompletionItemsSnippetsDown(_,b){if(_.completion.kind!==b.completion.kind){if(_.completion.kind===27)return 1;if(b.completion.kind===27)return-1}return y._compareCompletionItems(_,b)}static _compareCompletionItemsSnippetsUp(_,b){if(_.completion.kind!==b.completion.kind){if(_.completion.kind===27)return-1;if(b.completion.kind===27)return 1}return y._compareCompletionItems(_,b)}}e.CompletionModel=y}),define(ne[622],se([1,0,13,2,144]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommitCharacterController=void 0;class E{constructor(m,_,b,p){this._disposables=new k.DisposableStore,this._disposables.add(b.onDidSuggest(n=>{n.completionModel.items.length===0&&this.reset()})),this._disposables.add(b.onDidCancel(n=>{this.reset()})),this._disposables.add(_.onDidShow(()=>this._onItem(_.getFocusedItem()))),this._disposables.add(_.onDidFocus(this._onItem,this)),this._disposables.add(_.onDidHide(this.reset,this)),this._disposables.add(m.onWillType(n=>{if(this._active&&!_.isFrozen()&&b.state!==0){const o=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(o)&&m.getOption(0)&&p(this._active.item)}}))}_onItem(m){if(!m||!(0,d.isNonEmptyArray)(m.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===m.item)return;const _=new I.CharacterSet;for(const b of m.item.completion.commitCharacters)b.length>0&&_.add(b.charCodeAt(0));this._active={acceptCharacters:_,item:m}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}e.CommitCharacterController=E}),define(ne[623],se([1,0,2]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OvertypingCapturer=void 0;class k{static{this._maxSelectionLength=51200}constructor(E,y){this._disposables=new d.DisposableStore,this._lastOvertyped=[],this._locked=!1,this._disposables.add(E.onWillType(()=>{if(this._locked||!E.hasModel())return;const m=E.getSelections(),_=m.length;let b=!1;for(let n=0;n<_;n++)if(!m[n].isEmpty()){b=!0;break}if(!b){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const p=E.getModel();for(let n=0;n<_;n++){const o=m[n];if(p.getValueLengthInRange(o)>k._maxSelectionLength)return;this._lastOvertyped[n]={value:p.getValueInRange(o),multiline:o.startLineNumber!==o.endLineNumber}}})),this._disposables.add(y.onDidTrigger(m=>{this._locked=!0})),this._disposables.add(y.onDidCancel(m=>{this._locked=!1}))}getLastOvertypedInfo(E){if(E>=0&&E=0?c[l]:c[Math.max(0,~l-1)];let r=n.length;for(const u of n){if(!k.Range.containsRange(u.range,a))break;r-=1}return r}}}}e.WordDistance=E}),define(ne[624],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneTreeSitterParserService=void 0;class d{getParseResult(I){}}e.StandaloneTreeSitterParserService=d}),define(ne[344],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isFuzzyActionArr=d,e.isFuzzyAction=k,e.isString=I,e.isIAction=E,e.empty=y,e.fixCase=m,e.sanitize=_,e.log=b,e.createError=p,e.substituteMatches=n,e.substituteMatchesRe=o,e.findRules=t,e.stateExists=i;function d(s){return Array.isArray(s)}function k(s){return!d(s)}function I(s){return typeof s=="string"}function E(s){return!I(s)}function y(s){return!s}function m(s,g){return s.ignoreCase&&g?g.toLowerCase():g}function _(s){return s.replace(/[&<>'"_]/g,"-")}function b(s,g){console.log(`${s.languageId}: ${g}`)}function p(s,g){return new Error(`${s.languageId}: ${g}`)}function n(s,g,c,l,a){const r=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let u=null;return g.replace(r,function(C,f,h,v,w,S,L,D,T){return y(h)?y(v)?!y(w)&&w0;){const l=s.tokenizer[c];if(l)return l;const a=c.lastIndexOf(".");a<0?c=null:c=c.substr(0,a)}return null}function i(s,g){let c=g;for(;c&&c.length>0;){if(s.stateNames[c])return!0;const a=c.lastIndexOf(".");a<0?c=null:c=c.substr(0,a)}return!1}}),define(ne[625],se([1,0,344]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compile=t;function k(i,s){if(!s||!Array.isArray(s))return!1;for(const g of s)if(!i(g))return!1;return!0}function I(i,s){return typeof i=="boolean"?i:s}function E(i,s){return typeof i=="string"?i:s}function y(i){const s={};for(const g of i)s[g]=!0;return s}function m(i,s=!1){s&&(i=i.map(function(c){return c.toLowerCase()}));const g=y(i);return s?function(c){return g[c.toLowerCase()]!==void 0&&g.hasOwnProperty(c.toLowerCase())}:function(c){return g[c]!==void 0&&g.hasOwnProperty(c)}}function _(i,s,g){s=s.replace(/@@/g,"");let c=0,l;do l=!1,s=s.replace(/@(\w+)/g,function(r,u){l=!0;let C="";if(typeof i[u]=="string")C=i[u];else if(i[u]&&i[u]instanceof RegExp)C=i[u].source;else throw i[u]===void 0?d.createError(i,"language definition does not contain attribute '"+u+"', used at: "+s):d.createError(i,"attribute reference '"+u+"' must be a string, used at: "+s);return d.empty(C)?"":"(?:"+C+")"}),c++;while(l&&c<5);s=s.replace(/\x01/g,"@");const a=(i.ignoreCase?"i":"")+(i.unicode?"u":"");if(g&&s.match(/\$[sS](\d\d?)/g)){let u=null,C=null;return f=>(C&&u===f||(u=f,C=new RegExp(d.substituteMatchesRe(i,s,f),a)),C)}return new RegExp(s,a)}function b(i,s,g,c){if(c<0)return i;if(c=100){c=c-100;const l=g.split(".");if(l.unshift(g),c=0&&(c.tokenSubst=!0),typeof g.bracket=="string")if(g.bracket==="@open")c.bracket=1;else if(g.bracket==="@close")c.bracket=-1;else throw d.createError(i,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+s);if(g.next){if(typeof g.next!="string")throw d.createError(i,"the next state must be a string value in rule: "+s);{let l=g.next;if(!/^(@pop|@push|@popall)$/.test(l)&&(l[0]==="@"&&(l=l.substr(1)),l.indexOf("$")<0&&!d.stateExists(i,d.substituteMatches(i,l,"",[],""))))throw d.createError(i,"the next state '"+g.next+"' is not defined in rule: "+s);c.next=l}}return typeof g.goBack=="number"&&(c.goBack=g.goBack),typeof g.switchTo=="string"&&(c.switchTo=g.switchTo),typeof g.log=="string"&&(c.log=g.log),typeof g.nextEmbedded=="string"&&(c.nextEmbedded=g.nextEmbedded,i.usesEmbedded=!0),c}}else if(Array.isArray(g)){const c=[];for(let l=0,a=g.length;l0&&c[0]==="^",this.name=this.name+": "+c,this.regex=_(s,"^(?:"+(this.matchOnlyAtLineStart?c.substr(1):c)+")",!0)}setAction(s,g){this.action=n(s,this.name,g)}resolveRegex(s){return this.regex instanceof RegExp?this.regex:this.regex(s)}}function t(i,s){if(!s||typeof s!="object")throw new Error("Monarch: expecting a language definition object");const g={languageId:i,includeLF:I(s.includeLF,!1),noThrow:!1,maxStack:100,start:typeof s.start=="string"?s.start:null,ignoreCase:I(s.ignoreCase,!1),unicode:I(s.unicode,!1),tokenPostfix:E(s.tokenPostfix,"."+i),defaultToken:E(s.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},c=s;c.languageId=i,c.includeLF=g.includeLF,c.ignoreCase=g.ignoreCase,c.unicode=g.unicode,c.noThrow=g.noThrow,c.usesEmbedded=g.usesEmbedded,c.stateNames=s.tokenizer,c.defaultToken=g.defaultToken;function l(r,u,C){for(const f of C){let h=f.include;if(h){if(typeof h!="string")throw d.createError(g,"an 'include' attribute must be a string at: "+r);if(h[0]==="@"&&(h=h.substr(1)),!s.tokenizer[h])throw d.createError(g,"include target '"+h+"' is not defined at: "+r);l(r+"."+h,u,s.tokenizer[h])}else{const v=new o(r);if(Array.isArray(f)&&f.length>=1&&f.length<=3)if(v.setRegex(c,f[0]),f.length>=3)if(typeof f[1]=="string")v.setAction(c,{token:f[1],next:f[2]});else if(typeof f[1]=="object"){const w=f[1];w.next=f[2],v.setAction(c,w)}else throw d.createError(g,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else v.setAction(c,f[1]);else{if(!f.regex)throw d.createError(g,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);f.name&&typeof f.name=="string"&&(v.name=f.name),f.matchOnlyAtStart&&(v.matchOnlyAtLineStart=I(f.matchOnlyAtLineStart,!1)),v.setRegex(c,f.regex),v.setAction(c,f.action)}u.push(v)}}}if(!s.tokenizer||typeof s.tokenizer!="object")throw d.createError(g,"a language definition must define the 'tokenizer' attribute as an object");g.tokenizer=[];for(const r in s.tokenizer)if(s.tokenizer.hasOwnProperty(r)){g.start||(g.start=r);const u=s.tokenizer[r];g.tokenizer[r]=new Array,l("tokenizer."+r,g.tokenizer[r],u)}if(g.usesEmbedded=c.usesEmbedded,s.brackets){if(!Array.isArray(s.brackets))throw d.createError(g,"the 'brackets' attribute must be defined as an array")}else s.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const a=[];for(const r of s.brackets){let u=r;if(u&&Array.isArray(u)&&u.length===3&&(u={token:u[2],open:u[0],close:u[1]}),u.open===u.close)throw d.createError(g,"open and close brackets in a 'brackets' attribute must be different: "+u.open+` - hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof u.open=="string"&&typeof u.token=="string"&&typeof u.close=="string")a.push({token:u.token+g.tokenPostfix,open:d.fixCase(g,u.open),close:d.fixCase(g,u.close)});else throw d.createError(g,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return g.brackets=a,g.noThrow=!0,g}}),define(ne[345],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNLSMessages=d,e.getNLSLanguage=k;function d(){return globalThis._VSCODE_NLS_MESSAGES}function k(){return globalThis._VSCODE_NLS_LANGUAGE}}),define(ne[3],se([1,0,345,345]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNLSMessages=e.getNLSLanguage=void 0,e.localize=y,e.localize2=_,Object.defineProperty(e,"getNLSLanguage",{enumerable:!0,get:function(){return k.getNLSLanguage}}),Object.defineProperty(e,"getNLSMessages",{enumerable:!0,get:function(){return k.getNLSMessages}});const I=(0,d.getNLSLanguage)()==="pseudo"||typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function E(b,p){let n;return p.length===0?n=b:n=b.replace(/\{(\d+)\}/g,(o,t)=>{const i=t[0],s=p[i];let g=o;return typeof s=="string"?g=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(g=String(s)),g}),I&&(n="\uFF3B"+n.replace(/[aouei]/g,"$&$&")+"\uFF3D"),n}function y(b,p,...n){return E(typeof b=="number"?m(b,p):p,n)}function m(b,p){const n=(0,d.getNLSMessages)()?.[b];if(typeof n!="string"){if(typeof p=="string")return p;throw new Error(`!!! NLS MISSING: ${b} !!!`)}return n}function _(b,p,...n){let o;typeof b=="number"?o=m(b,p):o=p;const t=E(o,n);return{value:t,original:p===o?t:E(p,n)}}}),define(ne[41],se([1,0,6,2,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmptySubmenuAction=e.SubmenuAction=e.Separator=e.ActionRunner=e.Action=void 0,e.toAction=p;class E extends k.Disposable{constructor(o,t="",i="",s=!0,g){super(),this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=o,this._label=t,this._cssClass=i,this._enabled=s,this._actionCallback=g}get id(){return this._id}get label(){return this._label}set label(o){this._setLabel(o)}_setLabel(o){this._label!==o&&(this._label=o,this._onDidChange.fire({label:o}))}get tooltip(){return this._tooltip||""}set tooltip(o){this._setTooltip(o)}_setTooltip(o){this._tooltip!==o&&(this._tooltip=o,this._onDidChange.fire({tooltip:o}))}get class(){return this._cssClass}set class(o){this._setClass(o)}_setClass(o){this._cssClass!==o&&(this._cssClass=o,this._onDidChange.fire({class:o}))}get enabled(){return this._enabled}set enabled(o){this._setEnabled(o)}_setEnabled(o){this._enabled!==o&&(this._enabled=o,this._onDidChange.fire({enabled:o}))}get checked(){return this._checked}set checked(o){this._setChecked(o)}_setChecked(o){this._checked!==o&&(this._checked=o,this._onDidChange.fire({checked:o}))}async run(o,t){this._actionCallback&&await this._actionCallback(o)}}e.Action=E;class y extends k.Disposable{constructor(){super(...arguments),this._onWillRun=this._register(new d.Emitter),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new d.Emitter),this.onDidRun=this._onDidRun.event}async run(o,t){if(!o.enabled)return;this._onWillRun.fire({action:o});let i;try{await this.runAction(o,t)}catch(s){i=s}this._onDidRun.fire({action:o,error:i})}async runAction(o,t){await o.run(t)}}e.ActionRunner=y;class m{constructor(){this.id=m.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...o){let t=[];for(const i of o)i.length&&(t.length?t=[...t,new m,...i]:t=i);return t}static{this.ID="vs.actions.separator"}async run(){}}e.Separator=m;class _{get actions(){return this._actions}constructor(o,t,i,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=o,this.label=t,this.class=s,this._actions=i}async run(){}}e.SubmenuAction=_;class b extends E{static{this.ID="vs.actions.empty"}constructor(){super(b.ID,I.localize(27,"(empty)"),void 0,!1)}}e.EmptySubmenuAction=b;function p(n){return{id:n.id,label:n.label,tooltip:n.tooltip??n.label,class:n.class,enabled:n.enabled??!0,checked:n.checked,run:async(...o)=>n.run(...o)}}}),define(ne[346],se([1,0,13,19,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toErrorMessage=_;function E(b,p){return p&&(b.stack||b.stacktrace)?I.localize(28,"{0}: {1}",m(b),y(b.stack)||y(b.stacktrace)):m(b)}function y(b){return Array.isArray(b)?b.join(` -`):b}function m(b){return b.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${b.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof b.code=="string"&&typeof b.errno=="number"&&typeof b.syscall=="string"?I.localize(29,"A system error occurred ({0})",b.message):b.message||I.localize(30,"An unknown error occurred. Please consult the log for more details.")}function _(b=null,p=!1){if(!b)return I.localize(31,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(b)){const n=d.coalesce(b),o=_(n[0],p);return n.length>1?I.localize(32,"{0} ({1} errors in total)",o,n.length):o}if(k.isString(b))return b;if(b.detail){const n=b.detail;if(n.error)return E(n.error,p);if(n.exception)return E(n.exception,p)}return b.stack?E(b,p):b.message?b.message:I.localize(33,"An unknown error occurred. Please consult the log for more details.")}}),define(ne[247],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserSettingsLabelProvider=e.ElectronAcceleratorLabelProvider=e.AriaLabelProvider=e.UILabelProvider=e.ModifierLabelProvider=void 0;class k{constructor(y,m,_=m){this.modifierLabels=[null],this.modifierLabels[2]=y,this.modifierLabels[1]=m,this.modifierLabels[3]=_}toLabel(y,m,_){if(m.length===0)return null;const b=[];for(let p=0,n=m.length;p=0,I=c.indexOf("Macintosh")>=0,p=(c.indexOf("Macintosh")>=0||c.indexOf("iPad")>=0||c.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,E=c.indexOf("Linux")>=0,o=c?.indexOf("Mobi")>=0,_=!0,i=d.getNLSLanguage()||e.LANGUAGE_DEFAULT,t=navigator.language.toLowerCase(),s=t):console.error("Unable to resolve platform.");let C=0;I?C=1:k?C=3:E&&(C=2),e.isWindows=k,e.isMacintosh=I,e.isLinux=E,e.isNative=m,e.isWeb=_,e.isWebWorker=_&&typeof l.importScripts=="function",e.webWorkerOrigin=e.isWebWorker?l.origin:void 0,e.isIOS=p,e.isMobile=o,e.userAgent=c,e.language=i,e.setTimeout0IsFaster=typeof l.postMessage=="function"&&!l.importScripts,e.setTimeout0=(()=>{if(e.setTimeout0IsFaster){const w=[];l.addEventListener("message",L=>{if(L.data&&L.data.vscodeScheduleAsyncWork)for(let D=0,T=w.length;D{const D=++S;w.push({id:D,callback:L}),l.postMessage({vscodeScheduleAsyncWork:D},"*")}}return w=>setTimeout(w)})(),e.OS=I||p?2:k?1:3;let f=!0,h=!1;function v(){if(!h){h=!0;const w=new Uint8Array(2);w[0]=1,w[1]=2,f=new Uint16Array(w.buffer)[0]===513}return f}e.isChrome=!!(e.userAgent&&e.userAgent.indexOf("Chrome")>=0),e.isFirefox=!!(e.userAgent&&e.userAgent.indexOf("Firefox")>=0),e.isSafari=!!(!e.isChrome&&e.userAgent&&e.userAgent.indexOf("Safari")>=0),e.isEdge=!!(e.userAgent&&e.userAgent.indexOf("Edg/")>=0),e.isAndroid=!!(e.userAgent&&e.userAgent.indexOf("Android")>=0)}),define(ne[248],se([1,0,64,52,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserFeatures=void 0,e.BrowserFeatures={clipboard:{writeText:I.isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:I.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:I.isNative||d.isStandalone()?0:navigator.keyboard||d.isSafari?1:2,touch:"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0,pointerEvents:k.mainWindow.PointerEvent&&("ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0)}}),define(ne[347],se([1,0,16]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_FONT_FAMILY=void 0,e.DEFAULT_FONT_FAMILY=d.isWindows?'"Segoe WPC", "Segoe UI", sans-serif':d.isMacintosh?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif'}),define(ne[47],se([1,0,64,72,140,16]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardKeyboardEvent=void 0;function y(o){if(o.charCode){const i=String.fromCharCode(o.charCode).toUpperCase();return k.KeyCodeUtils.fromString(i)}const t=o.keyCode;if(t===3)return 7;if(d.isFirefox)switch(t){case 59:return 85;case 60:if(E.isLinux)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(E.isMacintosh)return 57;break}else if(d.isWebKit){if(E.isMacintosh&&t===93)return 57;if(!E.isMacintosh&&t===92)return 57}return k.EVENT_KEY_CODE_MAP[t]||0}const m=E.isMacintosh?256:2048,_=512,b=1024,p=E.isMacintosh?2048:256;class n{constructor(t){this._standardKeyboardEventBrand=!0;const i=t;this.browserEvent=i,this.target=i.target,this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,this.altGraphKey=i.getModifierState?.("AltGraph"),this.keyCode=y(i),this.code=i.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(t){return this._asKeybinding===t}_computeKeybinding(){let t=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode);let i=0;return this.ctrlKey&&(i|=m),this.altKey&&(i|=_),this.shiftKey&&(i|=b),this.metaKey&&(i|=p),i|=t,i}_computeKeyCodeChord(){let t=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode),new I.KeyCodeChord(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,t)}}e.StandardKeyboardEvent=n}),define(ne[77],se([1,0,64,441,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardWheelEvent=e.StandardMouseEvent=void 0;class E{constructor(_,b){this.timestamp=Date.now(),this.browserEvent=b,this.leftButton=b.button===0,this.middleButton=b.button===1,this.rightButton=b.button===2,this.buttons=b.buttons,this.target=b.target,this.detail=b.detail||1,b.type==="dblclick"&&(this.detail=2),this.ctrlKey=b.ctrlKey,this.shiftKey=b.shiftKey,this.altKey=b.altKey,this.metaKey=b.metaKey,typeof b.pageX=="number"?(this.posx=b.pageX,this.posy=b.pageY):(this.posx=b.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=b.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const p=k.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(_,b.view);this.posx-=p.left,this.posy-=p.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}e.StandardMouseEvent=E;class y{constructor(_,b=0,p=0){this.browserEvent=_||null,this.target=_?_.target||_.targetNode||_.srcElement:null,this.deltaY=p,this.deltaX=b;let n=!1;if(d.isChrome){const o=navigator.userAgent.match(/Chrome\/(\d+)/);n=(o?parseInt(o[1]):123)<=122}if(_){const o=_,t=_,i=_.view?.devicePixelRatio||1;if(typeof o.wheelDeltaY<"u")n?this.deltaY=o.wheelDeltaY/(120*i):this.deltaY=o.wheelDeltaY/120;else if(typeof t.VERTICAL_AXIS<"u"&&t.axis===t.VERTICAL_AXIS)this.deltaY=-t.detail/3;else if(_.type==="wheel"){const s=_;s.deltaMode===s.DOM_DELTA_LINE?d.isFirefox&&!I.isMacintosh?this.deltaY=-_.deltaY/3:this.deltaY=-_.deltaY:this.deltaY=-_.deltaY/40}if(typeof o.wheelDeltaX<"u")d.isSafari&&I.isWindows?this.deltaX=-(o.wheelDeltaX/120):n?this.deltaX=o.wheelDeltaX/(120*i):this.deltaX=o.wheelDeltaX/120;else if(typeof t.HORIZONTAL_AXIS<"u"&&t.axis===t.HORIZONTAL_AXIS)this.deltaX=-_.detail/3;else if(_.type==="wheel"){const s=_;s.deltaMode===s.DOM_DELTA_LINE?d.isFirefox&&!I.isMacintosh?this.deltaX=-_.deltaX/3:this.deltaX=-_.deltaX:this.deltaX=-_.deltaX/40}this.deltaY===0&&this.deltaX===0&&_.wheelDelta&&(n?this.deltaY=_.wheelDelta/(120*i):this.deltaY=_.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}}e.StandardWheelEvent=y}),define(ne[14],se([1,0,18,8,6,2,16,301]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancelableAsyncIterableObject=e.AsyncIterableObject=e.Promises=e.DeferredPromise=e.GlobalIdleValue=e.AbstractIdleValue=e._runWhenIdle=e.runWhenGlobalIdle=e.RunOnceScheduler=e.IntervalTimer=e.TimeoutTimer=e.ThrottledDelayer=e.Delayer=e.Throttler=void 0,e.isThenable=_,e.createCancelablePromise=b,e.raceCancellation=p,e.timeout=g,e.disposableTimeout=c,e.first=l,e.createCancelableAsyncIterable=L;function _(D){return!!D&&typeof D.then=="function"}function b(D){const T=new d.CancellationTokenSource,M=D(T.token),A=new Promise((P,N)=>{const O=T.token.onCancellationRequested(()=>{O.dispose(),N(new k.CancellationError)});Promise.resolve(M).then(F=>{O.dispose(),T.dispose(),P(F)},F=>{O.dispose(),T.dispose(),N(F)})});return new class{cancel(){T.cancel(),T.dispose()}then(P,N){return A.then(P,N)}catch(P){return this.then(void 0,P)}finally(P){return A.finally(P)}}}function p(D,T,M){return new Promise((A,P)=>{const N=T.onCancellationRequested(()=>{N.dispose(),A(M)});D.then(A,P).finally(()=>N.dispose())})}class n{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(T){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=T,!this.queuedPromise){const M=()=>{if(this.queuedPromise=null,this.isDisposed)return;const A=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,A};this.queuedPromise=new Promise(A=>{this.activePromise.then(M,M).then(A)})}return new Promise((M,A)=>{this.queuedPromise.then(M,A)})}return this.activePromise=T(),new Promise((M,A)=>{this.activePromise.then(P=>{this.activePromise=null,M(P)},P=>{this.activePromise=null,A(P)})})}dispose(){this.isDisposed=!0}}e.Throttler=n;const o=(D,T)=>{let M=!0;const A=setTimeout(()=>{M=!1,T()},D);return{isTriggered:()=>M,dispose:()=>{clearTimeout(A),M=!1}}},t=D=>{let T=!0;return queueMicrotask(()=>{T&&(T=!1,D())}),{isTriggered:()=>T,dispose:()=>{T=!1}}};class i{constructor(T){this.defaultDelay=T,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(T,M=this.defaultDelay){this.task=T,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((P,N)=>{this.doResolve=P,this.doReject=N}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const P=this.task;return this.task=null,P()}}));const A=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=M===m.MicrotaskDelay?t(A):o(M,A),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new k.CancellationError),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}}e.Delayer=i;class s{constructor(T){this.delayer=new i(T),this.throttler=new n}trigger(T,M){return this.delayer.trigger(()=>this.throttler.queue(T),M)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}e.ThrottledDelayer=s;function g(D,T){return T?new Promise((M,A)=>{const P=setTimeout(()=>{N.dispose(),M()},D),N=T.onCancellationRequested(()=>{clearTimeout(P),N.dispose(),A(new k.CancellationError)})}):b(M=>g(D,M))}function c(D,T=0,M){const A=setTimeout(()=>{D(),M&&P.dispose()},T),P=(0,E.toDisposable)(()=>{clearTimeout(A),M?.deleteAndLeak(P)});return M?.add(P),P}function l(D,T=A=>!!A,M=null){let A=0;const P=D.length,N=()=>{if(A>=P)return Promise.resolve(M);const O=D[A++];return Promise.resolve(O()).then(x=>T(x)?Promise.resolve(x):N())};return N()}class a{constructor(T,M){this._isDisposed=!1,this._token=-1,typeof T=="function"&&typeof M=="number"&&this.setIfNotSet(T,M)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(T,M){if(this._isDisposed)throw new k.BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,T()},M)}setIfNotSet(T,M){if(this._isDisposed)throw new k.BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,T()},M))}}e.TimeoutTimer=a;class r{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(T,M,A=globalThis){if(this.isDisposed)throw new k.BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const P=A.setInterval(()=>{T()},M);this.disposable=(0,E.toDisposable)(()=>{A.clearInterval(P),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}e.IntervalTimer=r;class u{constructor(T,M){this.timeoutToken=-1,this.runner=T,this.timeout=M,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(T=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,T)}get delay(){return this.timeout}set delay(T){this.timeout=T}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner?.()}}e.RunOnceScheduler=u,function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?e._runWhenIdle=(D,T)=>{(0,y.setTimeout0)(()=>{if(M)return;const A=Date.now()+15;T(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,A-Date.now())}}))});let M=!1;return{dispose(){M||(M=!0)}}}:e._runWhenIdle=(D,T,M)=>{const A=D.requestIdleCallback(T,typeof M=="number"?{timeout:M}:void 0);let P=!1;return{dispose(){P||(P=!0,D.cancelIdleCallback(A))}}},e.runWhenGlobalIdle=D=>(0,e._runWhenIdle)(globalThis,D)}();class C{constructor(T,M){this._didRun=!1,this._executor=()=>{try{this._value=M()}catch(A){this._error=A}finally{this._didRun=!0}},this._handle=(0,e._runWhenIdle)(T,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}e.AbstractIdleValue=C;class f extends C{constructor(T){super(globalThis,T)}}e.GlobalIdleValue=f;class h{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((T,M)=>{this.completeCallback=T,this.errorCallback=M})}complete(T){return new Promise(M=>{this.completeCallback(T),this.outcome={outcome:0,value:T},M()})}error(T){return new Promise(M=>{this.errorCallback(T),this.outcome={outcome:1,value:T},M()})}cancel(){return this.error(new k.CancellationError)}}e.DeferredPromise=h;var v;(function(D){async function T(A){let P;const N=await Promise.all(A.map(O=>O.then(F=>F,F=>{P||(P=F)})));if(typeof P<"u")throw P;return N}D.settled=T;function M(A){return new Promise(async(P,N)=>{try{await A(P,N)}catch(O){N(O)}})}D.withAsyncBody=M})(v||(e.Promises=v={}));class w{static fromArray(T){return new w(M=>{M.emitMany(T)})}static fromPromise(T){return new w(async M=>{M.emitMany(await T)})}static fromPromises(T){return new w(async M=>{await Promise.all(T.map(async A=>M.emitOne(await A)))})}static merge(T){return new w(async M=>{await Promise.all(T.map(async A=>{for await(const P of A)M.emitOne(P)}))})}static{this.EMPTY=w.fromArray([])}constructor(T,M){this._state=0,this._results=[],this._error=null,this._onReturn=M,this._onStateChanged=new I.Emitter,queueMicrotask(async()=>{const A={emitOne:P=>this.emitOne(P),emitMany:P=>this.emitMany(P),reject:P=>this.reject(P)};try{await Promise.resolve(T(A)),this.resolve()}catch(P){this.reject(P)}finally{A.emitOne=void 0,A.emitMany=void 0,A.reject=void 0}})}[Symbol.asyncIterator](){let T=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(T(this._onReturn?.(),{done:!0,value:void 0})}}static map(T,M){return new w(async A=>{for await(const P of T)A.emitOne(M(P))})}map(T){return w.map(this,T)}static filter(T,M){return new w(async A=>{for await(const P of T)M(P)&&A.emitOne(P)})}filter(T){return w.filter(this,T)}static coalesce(T){return w.filter(T,M=>!!M)}coalesce(){return w.coalesce(this)}static async toPromise(T){const M=[];for await(const A of T)M.push(A);return M}toPromise(){return w.toPromise(this)}emitOne(T){this._state===0&&(this._results.push(T),this._onStateChanged.fire())}emitMany(T){this._state===0&&(this._results=this._results.concat(T),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(T){this._state===0&&(this._state=2,this._error=T,this._onStateChanged.fire())}}e.AsyncIterableObject=w;class S extends w{constructor(T,M){super(M),this._source=T}cancel(){this._source.cancel()}}e.CancelableAsyncIterableObject=S;function L(D){const T=new d.CancellationTokenSource,M=D(T.token);return new S(T,async A=>{const P=T.token.onCancellationRequested(()=>{P.dispose(),T.dispose(),A.reject(new k.CancellationError)});try{for await(const N of M){if(T.token.isCancellationRequested)return;A.emitOne(N)}P.dispose(),T.dispose()}catch(N){P.dispose(),T.dispose(),A.reject(N)}})}}),define(ne[626],se([1,0,14,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarVisibilityController=void 0;class I extends k.Disposable{constructor(y,m,_){super(),this._visibility=y,this._visibleClassName=m,this._invisibleClassName=_,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new d.TimeoutTimer)}setVisibility(y){this._visibility!==y&&(this._visibility=y,this._updateShouldBeVisible())}setShouldBeVisible(y){this._rawShouldBeVisible=y,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const y=this._applyVisibilitySetting();this._shouldBeVisible!==y&&(this._shouldBeVisible=y,this.ensureVisibility())}setIsNeeded(y){this._isNeeded!==y&&(this._isNeeded=y,this.ensureVisibility())}setDomNode(y){this._domNode=y,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(y){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(y?" fade":"")))}}e.ScrollbarVisibilityController=I}),define(ne[249],se([1,0,159,13,14,301,190,6,53]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndexTreeModel=void 0,e.isFilterResult=b,e.getVisibleState=p;function b(t){return typeof t=="object"&&"visibility"in t&&"data"in t}function p(t){switch(t){case!0:return 1;case!1:return 0;default:return t}}function n(t){return typeof t.collapsible=="boolean"}class o{constructor(i,s,g,c={}){this.user=i,this.list=s,this.rootRef=[],this.eventBufferer=new m.EventBufferer,this._onDidChangeCollapseState=new m.Emitter,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new m.Emitter,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new m.Emitter,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new I.Delayer(E.MicrotaskDelay),this.collapseByDefault=typeof c.collapseByDefault>"u"?!1:c.collapseByDefault,this.allowNonCollapsibleParents=c.allowNonCollapsibleParents??!1,this.filter=c.filter,this.autoExpandSingleChildren=typeof c.autoExpandSingleChildren>"u"?!1:c.autoExpandSingleChildren,this.root={parent:void 0,element:g,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(i,s,g=_.Iterable.empty(),c={}){if(i.length===0)throw new d.TreeError(this.user,"Invalid tree location");c.diffIdentityProvider?this.spliceSmart(c.diffIdentityProvider,i,s,g,c):this.spliceSimple(i,s,g,c)}spliceSmart(i,s,g,c=_.Iterable.empty(),l,a=l.diffDepth??0){const{parentNode:r}=this.getParentNodeWithListIndex(s);if(!r.lastDiffIds)return this.spliceSimple(s,g,c,l);const u=[...c],C=s[s.length-1],f=new y.LcsDiff({getElements:()=>r.lastDiffIds},{getElements:()=>[...r.children.slice(0,C),...u,...r.children.slice(C+g)].map(L=>i.getId(L.element).toString())}).ComputeDiff(!1);if(f.quitEarly)return r.lastDiffIds=void 0,this.spliceSimple(s,g,u,l);const h=s.slice(0,-1),v=(L,D,T)=>{if(a>0)for(let M=0;MT.originalStart-D.originalStart))v(w,S,w-(L.originalStart+L.originalLength)),w=L.originalStart,S=L.modifiedStart-C,this.spliceSimple([...h,w],L.originalLength,_.Iterable.slice(u,S,S+L.modifiedLength),l);v(w,S,w)}spliceSimple(i,s,g=_.Iterable.empty(),{onDidCreateNode:c,onDidDeleteNode:l,diffIdentityProvider:a}){const{parentNode:r,listIndex:u,revealed:C,visible:f}=this.getParentNodeWithListIndex(i),h=[],v=_.Iterable.map(g,N=>this.createTreeNode(N,r,r.visible?1:0,C,h,c)),w=i[i.length-1];let S=0;for(let N=w;N>=0&&Na.getId(N.element).toString())):r.lastDiffIds=r.children.map(N=>a.getId(N.element).toString()):r.lastDiffIds=void 0;let A=0;for(const N of M)N.visible&&A++;if(A!==0)for(let N=w+L.length;NO+(F.visible?F.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(r,T-N),this.list.splice(u,N,h)}if(M.length>0&&l){const N=O=>{l(O),O.children.forEach(N)};M.forEach(N)}this._onDidSplice.fire({insertedNodes:L,deletedNodes:M});let P=r;for(;P;){if(P.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}P=P.parent}}rerender(i){if(i.length===0)throw new d.TreeError(this.user,"Invalid tree location");const{node:s,listIndex:g,revealed:c}=this.getTreeNodeWithListIndex(i);s.visible&&c&&this.list.splice(g,1,[s])}has(i){return this.hasTreeNode(i)}getListIndex(i){const{listIndex:s,visible:g,revealed:c}=this.getTreeNodeWithListIndex(i);return g&&c?s:-1}getListRenderCount(i){return this.getTreeNode(i).renderNodeCount}isCollapsible(i){return this.getTreeNode(i).collapsible}setCollapsible(i,s){const g=this.getTreeNode(i);typeof s>"u"&&(s=!g.collapsible);const c={collapsible:s};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(i,c))}isCollapsed(i){return this.getTreeNode(i).collapsed}setCollapsed(i,s,g){const c=this.getTreeNode(i);typeof s>"u"&&(s=!c.collapsed);const l={collapsed:s,recursive:g||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(i,l))}_setCollapseState(i,s){const{node:g,listIndex:c,revealed:l}=this.getTreeNodeWithListIndex(i),a=this._setListNodeCollapseState(g,c,l,s);if(g!==this.root&&this.autoExpandSingleChildren&&a&&!n(s)&&g.collapsible&&!g.collapsed&&!s.recursive){let r=-1;for(let u=0;u-1){r=-1;break}else r=u;r>-1&&this._setCollapseState([...i,r],s)}return a}_setListNodeCollapseState(i,s,g,c){const l=this._setNodeCollapseState(i,c,!1);if(!g||!i.visible||!l)return l;const a=i.renderNodeCount,r=this.updateNodeAfterCollapseChange(i),u=a-(s===-1?0:1);return this.list.splice(s+1,u,r.slice(1)),l}_setNodeCollapseState(i,s,g){let c;if(i===this.root?c=!1:(n(s)?(c=i.collapsible!==s.collapsible,i.collapsible=s.collapsible):i.collapsible?(c=i.collapsed!==s.collapsed,i.collapsed=s.collapsed):c=!1,c&&this._onDidChangeCollapseState.fire({node:i,deep:g})),!n(s)&&s.recursive)for(const l of i.children)c=this._setNodeCollapseState(l,s,!0)||c;return c}expandTo(i){this.eventBufferer.bufferEvents(()=>{let s=this.getTreeNode(i);for(;s.parent;)s=s.parent,i=i.slice(0,i.length-1),s.collapsed&&this._setCollapseState(i,{collapsed:!1,recursive:!1})})}refilter(){const i=this.root.renderNodeCount,s=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,i,s),this.refilterDelayer.cancel()}createTreeNode(i,s,g,c,l,a){const r={parent:s,element:i.element,children:[],depth:s.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof i.collapsible=="boolean"?i.collapsible:typeof i.collapsed<"u",collapsed:typeof i.collapsed>"u"?this.collapseByDefault:i.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},u=this._filterNode(r,g);r.visibility=u,c&&l.push(r);const C=i.children||_.Iterable.empty(),f=c&&u!==0&&!r.collapsed;let h=0,v=1;for(const w of C){const S=this.createTreeNode(w,r,u,f,l,a);r.children.push(S),v+=S.renderNodeCount,S.visible&&(S.visibleChildIndex=h++)}return this.allowNonCollapsibleParents||(r.collapsible=r.collapsible||r.children.length>0),r.visibleChildrenCount=h,r.visible=u===2?h>0:u===1,r.visible?r.collapsed||(r.renderNodeCount=v):(r.renderNodeCount=0,c&&l.pop()),a?.(r),r}updateNodeAfterCollapseChange(i){const s=i.renderNodeCount,g=[];return this._updateNodeAfterCollapseChange(i,g),this._updateAncestorsRenderNodeCount(i.parent,g.length-s),g}_updateNodeAfterCollapseChange(i,s){if(i.visible===!1)return 0;if(s.push(i),i.renderNodeCount=1,!i.collapsed)for(const g of i.children)i.renderNodeCount+=this._updateNodeAfterCollapseChange(g,s);return this._onDidChangeRenderNodeCount.fire(i),i.renderNodeCount}updateNodeAfterFilterChange(i){const s=i.renderNodeCount,g=[];return this._updateNodeAfterFilterChange(i,i.visible?1:0,g),this._updateAncestorsRenderNodeCount(i.parent,g.length-s),g}_updateNodeAfterFilterChange(i,s,g,c=!0){let l;if(i!==this.root){if(l=this._filterNode(i,s),l===0)return i.visible=!1,i.renderNodeCount=0,!1;c&&g.push(i)}const a=g.length;i.renderNodeCount=i===this.root?0:1;let r=!1;if(!i.collapsed||l!==0){let u=0;for(const C of i.children)r=this._updateNodeAfterFilterChange(C,l,g,c&&!i.collapsed)||r,C.visible&&(C.visibleChildIndex=u++);i.visibleChildrenCount=u}else i.visibleChildrenCount=0;return i!==this.root&&(i.visible=l===2?r:l===1,i.visibility=l),i.visible?i.collapsed||(i.renderNodeCount+=g.length-a):(i.renderNodeCount=0,c&&g.pop()),this._onDidChangeRenderNodeCount.fire(i),i.visible}_updateAncestorsRenderNodeCount(i,s){if(s!==0)for(;i;)i.renderNodeCount+=s,this._onDidChangeRenderNodeCount.fire(i),i=i.parent}_filterNode(i,s){const g=this.filter?this.filter.filter(i.element,s):1;return typeof g=="boolean"?(i.filterData=void 0,g?1:0):b(g)?(i.filterData=g.data,p(g.visibility)):(i.filterData=void 0,p(g))}hasTreeNode(i,s=this.root){if(!i||i.length===0)return!0;const[g,...c]=i;return g<0||g>s.children.length?!1:this.hasTreeNode(c,s.children[g])}getTreeNode(i,s=this.root){if(!i||i.length===0)return s;const[g,...c]=i;if(g<0||g>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");return this.getTreeNode(c,s.children[g])}getTreeNodeWithListIndex(i){if(i.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:s,listIndex:g,revealed:c,visible:l}=this.getParentNodeWithListIndex(i),a=i[i.length-1];if(a<0||a>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");const r=s.children[a];return{node:r,listIndex:g,revealed:c,visible:l&&r.visible}}getParentNodeWithListIndex(i,s=this.root,g=0,c=!0,l=!0){const[a,...r]=i;if(a<0||a>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");for(let u=0;u{if(i.element===null)return;const s=i;if(p.add(s.element),this.nodes.set(s.element,s),this.identityProvider){const g=this.identityProvider.getId(s.element).toString();n.add(g),this.nodesByIdentity.set(g,s)}b.onDidCreateNode?.(s)},t=i=>{if(i.element===null)return;const s=i;if(p.has(s.element)||this.nodes.delete(s.element),this.identityProvider){const g=this.identityProvider.getId(s.element).toString();n.has(g)||this.nodesByIdentity.delete(g)}b.onDidDeleteNode?.(s)};this.model.splice([...m,0],Number.MAX_VALUE,_,{...b,onDidCreateNode:o,onDidDeleteNode:t})}preserveCollapseState(m=I.Iterable.empty()){return this.sorter&&(m=[...m].sort(this.sorter.compare.bind(this.sorter))),I.Iterable.map(m,_=>{let b=this.nodes.get(_.element);if(!b&&this.identityProvider){const o=this.identityProvider.getId(_.element).toString();b=this.nodesByIdentity.get(o)}if(!b){let o;return typeof _.collapsed>"u"?o=void 0:_.collapsed===k.ObjectTreeElementCollapseState.Collapsed||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed?o=!0:_.collapsed===k.ObjectTreeElementCollapseState.Expanded||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?o=!1:o=!!_.collapsed,{..._,children:this.preserveCollapseState(_.children),collapsed:o}}const p=typeof _.collapsible=="boolean"?_.collapsible:b.collapsible;let n;return typeof _.collapsed>"u"||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?n=b.collapsed:_.collapsed===k.ObjectTreeElementCollapseState.Collapsed?n=!0:_.collapsed===k.ObjectTreeElementCollapseState.Expanded?n=!1:n=!!_.collapsed,{..._,collapsible:p,collapsed:n,children:this.preserveCollapseState(_.children)}})}rerender(m){const _=this.getElementLocation(m);this.model.rerender(_)}getFirstElementChild(m=null){const _=this.getElementLocation(m);return this.model.getFirstElementChild(_)}has(m){return this.nodes.has(m)}getListIndex(m){const _=this.getElementLocation(m);return this.model.getListIndex(_)}getListRenderCount(m){const _=this.getElementLocation(m);return this.model.getListRenderCount(_)}isCollapsible(m){const _=this.getElementLocation(m);return this.model.isCollapsible(_)}setCollapsible(m,_){const b=this.getElementLocation(m);return this.model.setCollapsible(b,_)}isCollapsed(m){const _=this.getElementLocation(m);return this.model.isCollapsed(_)}setCollapsed(m,_,b){const p=this.getElementLocation(m);return this.model.setCollapsed(p,_,b)}expandTo(m){const _=this.getElementLocation(m);this.model.expandTo(_)}refilter(){this.model.refilter()}getNode(m=null){if(m===null)return this.model.getNode(this.model.rootRef);const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);return _}getNodeLocation(m){return m.element}getParentNodeLocation(m){if(m===null)throw new k.TreeError(this.user,"Invalid getParentNodeLocation call");const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);const b=this.model.getNodeLocation(_),p=this.model.getParentNodeLocation(b);return this.model.getNode(p).element}getElementLocation(m){if(m===null)return[];const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);return this.model.getNodeLocation(_)}}e.ObjectTreeModel=E}),define(ne[627],se([1,0,250,159,13,6,53]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTreeModel=e.DefaultElementMapper=e.CompressedObjectTreeModel=void 0,e.compress=_,e.decompress=p;function m(a){const r=[a.element],u=a.incompressible||!1;return{element:{elements:r,incompressible:u},children:y.Iterable.map(y.Iterable.from(a.children),m),collapsible:a.collapsible,collapsed:a.collapsed}}function _(a){const r=[a.element],u=a.incompressible||!1;let C,f;for(;[f,C]=y.Iterable.consume(y.Iterable.from(a.children),2),!(f.length!==1||f[0].incompressible);)a=f[0],r.push(a.element);return{element:{elements:r,incompressible:u},children:y.Iterable.map(y.Iterable.concat(f,C),_),collapsible:a.collapsible,collapsed:a.collapsed}}function b(a,r=0){let u;return rb(C,0)),r===0&&a.element.incompressible?{element:a.element.elements[r],children:u,incompressible:!0,collapsible:a.collapsible,collapsed:a.collapsed}:{element:a.element.elements[r],children:u,collapsible:a.collapsible,collapsed:a.collapsed}}function p(a){return b(a,0)}function n(a,r,u){return a.element===r?{...a,children:u}:{...a,children:y.Iterable.map(y.Iterable.from(a.children),C=>n(C,r,u))}}const o=a=>({getId(r){return r.elements.map(u=>a.getId(u).toString()).join("\0")}});class t{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(r,u,C={}){this.user=r,this.rootRef=null,this.nodes=new Map,this.model=new d.ObjectTreeModel(r,u,C),this.enabled=typeof C.compressionEnabled>"u"?!0:C.compressionEnabled,this.identityProvider=C.identityProvider}setChildren(r,u=y.Iterable.empty(),C){const f=C.diffIdentityProvider&&o(C.diffIdentityProvider);if(r===null){const P=y.Iterable.map(u,this.enabled?_:m);this._setChildren(null,P,{diffIdentityProvider:f,diffDepth:1/0});return}const h=this.nodes.get(r);if(!h)throw new k.TreeError(this.user,"Unknown compressed tree node");const v=this.model.getNode(h),w=this.model.getParentNodeLocation(h),S=this.model.getNode(w),L=p(v),D=n(L,r,u),T=(this.enabled?_:m)(D),M=C.diffIdentityProvider?(P,N)=>C.diffIdentityProvider.getId(P)===C.diffIdentityProvider.getId(N):void 0;if((0,I.equals)(T.element.elements,v.element.elements,M)){this._setChildren(h,T.children||y.Iterable.empty(),{diffIdentityProvider:f,diffDepth:1});return}const A=S.children.map(P=>P===v?T:P);this._setChildren(S.element,A,{diffIdentityProvider:f,diffDepth:v.depth-S.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(r){if(r===this.enabled)return;this.enabled=r;const C=this.model.getNode().children,f=y.Iterable.map(C,p),h=y.Iterable.map(f,r?_:m);this._setChildren(null,h,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(r,u,C){const f=new Set,h=w=>{for(const S of w.element.elements)f.add(S),this.nodes.set(S,w.element)},v=w=>{for(const S of w.element.elements)f.has(S)||this.nodes.delete(S)};this.model.setChildren(r,u,{...C,onDidCreateNode:h,onDidDeleteNode:v})}has(r){return this.nodes.has(r)}getListIndex(r){const u=this.getCompressedNode(r);return this.model.getListIndex(u)}getListRenderCount(r){const u=this.getCompressedNode(r);return this.model.getListRenderCount(u)}getNode(r){if(typeof r>"u")return this.model.getNode();const u=this.getCompressedNode(r);return this.model.getNode(u)}getNodeLocation(r){const u=this.model.getNodeLocation(r);return u===null?null:u.elements[u.elements.length-1]}getParentNodeLocation(r){const u=this.getCompressedNode(r),C=this.model.getParentNodeLocation(u);return C===null?null:C.elements[C.elements.length-1]}getFirstElementChild(r){const u=this.getCompressedNode(r);return this.model.getFirstElementChild(u)}isCollapsible(r){const u=this.getCompressedNode(r);return this.model.isCollapsible(u)}setCollapsible(r,u){const C=this.getCompressedNode(r);return this.model.setCollapsible(C,u)}isCollapsed(r){const u=this.getCompressedNode(r);return this.model.isCollapsed(u)}setCollapsed(r,u,C){const f=this.getCompressedNode(r);return this.model.setCollapsed(f,u,C)}expandTo(r){const u=this.getCompressedNode(r);this.model.expandTo(u)}rerender(r){const u=this.getCompressedNode(r);this.model.rerender(u)}refilter(){this.model.refilter()}getCompressedNode(r){if(r===null)return null;const u=this.nodes.get(r);if(!u)throw new k.TreeError(this.user,`Tree element not found: ${r}`);return u}}e.CompressedObjectTreeModel=t;const i=a=>a[a.length-1];e.DefaultElementMapper=i;class s{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(r=>new s(this.unwrapper,r))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(r,u){this.unwrapper=r,this.node=u}}function g(a,r){return{splice(u,C,f){r.splice(u,C,f.map(h=>a.map(h)))},updateElementHeight(u,C){r.updateElementHeight(u,C)}}}function c(a,r){return{...r,identityProvider:r.identityProvider&&{getId(u){return r.identityProvider.getId(a(u))}},sorter:r.sorter&&{compare(u,C){return r.sorter.compare(u.elements[0],C.elements[0])}},filter:r.filter&&{filter(u,C){return r.filter.filter(a(u),C)}}}}class l{get onDidSplice(){return E.Event.map(this.model.onDidSplice,({insertedNodes:r,deletedNodes:u})=>({insertedNodes:r.map(C=>this.nodeMapper.map(C)),deletedNodes:u.map(C=>this.nodeMapper.map(C))}))}get onDidChangeCollapseState(){return E.Event.map(this.model.onDidChangeCollapseState,({node:r,deep:u})=>({node:this.nodeMapper.map(r),deep:u}))}get onDidChangeRenderNodeCount(){return E.Event.map(this.model.onDidChangeRenderNodeCount,r=>this.nodeMapper.map(r))}constructor(r,u,C={}){this.rootRef=null,this.elementMapper=C.elementMapper||e.DefaultElementMapper;const f=h=>this.elementMapper(h.elements);this.nodeMapper=new k.WeakMapper(h=>new s(f,h)),this.model=new t(r,g(this.nodeMapper,u),c(f,C))}setChildren(r,u=y.Iterable.empty(),C={}){this.model.setChildren(r,u,C)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(r){this.model.setCompressionEnabled(r)}has(r){return this.model.has(r)}getListIndex(r){return this.model.getListIndex(r)}getListRenderCount(r){return this.model.getListRenderCount(r)}getNode(r){return this.nodeMapper.map(this.model.getNode(r))}getNodeLocation(r){return r.element}getParentNodeLocation(r){return this.model.getParentNodeLocation(r)}getFirstElementChild(r){const u=this.model.getFirstElementChild(r);return u===null||typeof u>"u"?u:this.elementMapper(u.elements)}isCollapsible(r){return this.model.isCollapsible(r)}setCollapsible(r,u){return this.model.setCollapsible(r,u)}isCollapsed(r){return this.model.isCollapsed(r)}setCollapsed(r,u,C){return this.model.setCollapsed(r,u,C)}expandTo(r){return this.model.expandTo(r)}rerender(r){return this.model.rerender(r)}refilter(){return this.model.refilter()}getCompressedTreeNode(r=null){return this.model.getNode(r)}}e.CompressibleObjectTreeModel=l}),define(ne[348],se([1,0,16]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.platform=e.env=e.cwd=void 0;let k;const I=globalThis.vscode;if(typeof I<"u"&&typeof I.process<"u"){const E=I.process;k={get platform(){return E.platform},get arch(){return E.arch},get env(){return E.env},cwd(){return E.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?k={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:k={get platform(){return d.isWindows?"win32":d.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};e.cwd=k.cwd,e.env=k.env,e.platform=k.platform}),define(ne[349],se([1,0,348]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isHotReloadEnabled=k,e.registerHotReloadHandler=I;function k(){return d.env&&!!d.env.VSCODE_DEV}function I(m){if(k()){const _=E();return _.add(m),{dispose(){_.delete(m)}}}else return{dispose(){}}}function E(){y||(y=new Set);const m=globalThis;return m.$hotReload_applyNewExports||(m.$hotReload_applyNewExports=_=>{const b={config:{mode:void 0},..._},p=[];for(const n of y){const o=n(b);o&&p.push(o)}if(p.length>0)return n=>{let o=!1;for(const t of p)t(n)&&(o=!0);return o}}),y}let y;k()&&I(({oldExports:m,newSrc:_,config:b})=>{if(b.mode==="patch-prototype")return p=>{for(const n in p){const o=p[n];if(console.log(`[hot-reload] Patching prototype methods of '${n}'`,{exportedItem:o}),typeof o=="function"&&o.prototype){const t=m[n];if(t){for(const i of Object.getOwnPropertyNames(o.prototype)){const s=Object.getOwnPropertyDescriptor(o.prototype,i),g=Object.getOwnPropertyDescriptor(t.prototype,i);s?.value?.toString()!==g?.value?.toString()&&console.log(`[hot-reload] Patching prototype method '${n}.${i}'`),Object.defineProperty(t.prototype,i,s)}p[n]=t}}}return!0}})}),define(ne[171],se([1,0,349,21]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.readHotReloadableExport=I,e.observeHotReloadableExports=E;function I(y,m){return E([y],m),y}function E(y,m){(0,d.isHotReloadEnabled)()&&(0,k.observableSignalFromEvent)("reload",b=>(0,d.registerHotReloadHandler)(({oldExports:p})=>{if([...Object.values(p)].some(n=>y.includes(n)))return n=>(b(void 0),!0)})).read(m)}}),define(ne[99],se([1,0,348]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sep=e.extname=e.basename=e.dirname=e.relative=e.resolve=e.join=e.normalize=e.posix=e.win32=void 0;const k=65,I=97,E=90,y=122,m=46,_=47,b=92,p=58,n=63;class o extends Error{constructor(h,v,w){let S;typeof v=="string"&&v.indexOf("not ")===0?(S="must not be",v=v.replace(/^not /,"")):S="must be";const L=h.indexOf(".")!==-1?"property":"argument";let D=`The "${h}" ${L} ${S} of type ${v}`;D+=`. Received type ${typeof w}`,super(D),this.code="ERR_INVALID_ARG_TYPE"}}function t(f,h){if(f===null||typeof f!="object")throw new o(h,"Object",f)}function i(f,h){if(typeof f!="string")throw new o(h,"string",f)}const s=d.platform==="win32";function g(f){return f===_||f===b}function c(f){return f===_}function l(f){return f>=k&&f<=E||f>=I&&f<=y}function a(f,h,v,w){let S="",L=0,D=-1,T=0,M=0;for(let A=0;A<=f.length;++A){if(A2){const P=S.lastIndexOf(v);P===-1?(S="",L=0):(S=S.slice(0,P),L=S.length-1-S.lastIndexOf(v)),D=A,T=0;continue}else if(S.length!==0){S="",L=0,D=A,T=0;continue}}h&&(S+=S.length>0?`${v}..`:"..",L=2)}else S.length>0?S+=`${v}${f.slice(D+1,A)}`:S=f.slice(D+1,A),L=A-D-1;D=A,T=0}else M===m&&T!==-1?++T:T=-1}return S}function r(f){return f?`${f[0]==="."?"":"."}${f}`:""}function u(f,h){t(h,"pathObject");const v=h.dir||h.root,w=h.base||`${h.name||""}${r(h.ext)}`;return v?v===h.root?`${v}${w}`:`${v}${f}${w}`:w}e.win32={resolve(...f){let h="",v="",w=!1;for(let S=f.length-1;S>=-1;S--){let L;if(S>=0){if(L=f[S],i(L,`paths[${S}]`),L.length===0)continue}else h.length===0?L=d.cwd():(L=d.env[`=${h}`]||d.cwd(),(L===void 0||L.slice(0,2).toLowerCase()!==h.toLowerCase()&&L.charCodeAt(2)===b)&&(L=`${h}\\`));const D=L.length;let T=0,M="",A=!1;const P=L.charCodeAt(0);if(D===1)g(P)&&(T=1,A=!0);else if(g(P))if(A=!0,g(L.charCodeAt(1))){let N=2,O=N;for(;N2&&g(L.charCodeAt(2))&&(A=!0,T=3));if(M.length>0)if(h.length>0){if(M.toLowerCase()!==h.toLowerCase())continue}else h=M;if(w){if(h.length>0)break}else if(v=`${L.slice(T)}\\${v}`,w=A,A&&h.length>0)break}return v=a(v,!w,"\\",g),w?`${h}\\${v}`:`${h}${v}`||"."},normalize(f){i(f,"path");const h=f.length;if(h===0)return".";let v=0,w,S=!1;const L=f.charCodeAt(0);if(h===1)return c(L)?"\\":f;if(g(L))if(S=!0,g(f.charCodeAt(1))){let T=2,M=T;for(;T2&&g(f.charCodeAt(2))&&(S=!0,v=3));let D=v0&&g(f.charCodeAt(h-1))&&(D+="\\"),w===void 0?S?`\\${D}`:D:S?`${w}\\${D}`:`${w}${D}`},isAbsolute(f){i(f,"path");const h=f.length;if(h===0)return!1;const v=f.charCodeAt(0);return g(v)||h>2&&l(v)&&f.charCodeAt(1)===p&&g(f.charCodeAt(2))},join(...f){if(f.length===0)return".";let h,v;for(let L=0;L0&&(h===void 0?h=v=D:h+=`\\${D}`)}if(h===void 0)return".";let w=!0,S=0;if(typeof v=="string"&&g(v.charCodeAt(0))){++S;const L=v.length;L>1&&g(v.charCodeAt(1))&&(++S,L>2&&(g(v.charCodeAt(2))?++S:w=!1))}if(w){for(;S=2&&(h=`\\${h.slice(S)}`)}return e.win32.normalize(h)},relative(f,h){if(i(f,"from"),i(h,"to"),f===h)return"";const v=e.win32.resolve(f),w=e.win32.resolve(h);if(v===w||(f=v.toLowerCase(),h=w.toLowerCase(),f===h))return"";let S=0;for(;SS&&f.charCodeAt(L-1)===b;)L--;const D=L-S;let T=0;for(;TT&&h.charCodeAt(M-1)===b;)M--;const A=M-T,P=DP){if(h.charCodeAt(T+O)===b)return w.slice(T+O+1);if(O===2)return w.slice(T+O)}D>P&&(f.charCodeAt(S+O)===b?N=O:O===2&&(N=3)),N===-1&&(N=0)}let F="";for(O=S+N+1;O<=L;++O)(O===L||f.charCodeAt(O)===b)&&(F+=F.length===0?"..":"\\..");return T+=N,F.length>0?`${F}${w.slice(T,M)}`:(w.charCodeAt(T)===b&&++T,w.slice(T,M))},toNamespacedPath(f){if(typeof f!="string"||f.length===0)return f;const h=e.win32.resolve(f);if(h.length<=2)return f;if(h.charCodeAt(0)===b){if(h.charCodeAt(1)===b){const v=h.charCodeAt(2);if(v!==n&&v!==m)return`\\\\?\\UNC\\${h.slice(2)}`}}else if(l(h.charCodeAt(0))&&h.charCodeAt(1)===p&&h.charCodeAt(2)===b)return`\\\\?\\${h}`;return f},dirname(f){i(f,"path");const h=f.length;if(h===0)return".";let v=-1,w=0;const S=f.charCodeAt(0);if(h===1)return g(S)?f:".";if(g(S)){if(v=w=1,g(f.charCodeAt(1))){let T=2,M=T;for(;T2&&g(f.charCodeAt(2))?3:2,w=v);let L=-1,D=!0;for(let T=h-1;T>=w;--T)if(g(f.charCodeAt(T))){if(!D){L=T;break}}else D=!1;if(L===-1){if(v===-1)return".";L=v}return f.slice(0,L)},basename(f,h){h!==void 0&&i(h,"suffix"),i(f,"path");let v=0,w=-1,S=!0,L;if(f.length>=2&&l(f.charCodeAt(0))&&f.charCodeAt(1)===p&&(v=2),h!==void 0&&h.length>0&&h.length<=f.length){if(h===f)return"";let D=h.length-1,T=-1;for(L=f.length-1;L>=v;--L){const M=f.charCodeAt(L);if(g(M)){if(!S){v=L+1;break}}else T===-1&&(S=!1,T=L+1),D>=0&&(M===h.charCodeAt(D)?--D===-1&&(w=L):(D=-1,w=T))}return v===w?w=T:w===-1&&(w=f.length),f.slice(v,w)}for(L=f.length-1;L>=v;--L)if(g(f.charCodeAt(L))){if(!S){v=L+1;break}}else w===-1&&(S=!1,w=L+1);return w===-1?"":f.slice(v,w)},extname(f){i(f,"path");let h=0,v=-1,w=0,S=-1,L=!0,D=0;f.length>=2&&f.charCodeAt(1)===p&&l(f.charCodeAt(0))&&(h=w=2);for(let T=f.length-1;T>=h;--T){const M=f.charCodeAt(T);if(g(M)){if(!L){w=T+1;break}continue}S===-1&&(L=!1,S=T+1),M===m?v===-1?v=T:D!==1&&(D=1):v!==-1&&(D=-1)}return v===-1||S===-1||D===0||D===1&&v===S-1&&v===w+1?"":f.slice(v,S)},format:u.bind(null,"\\"),parse(f){i(f,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return h;const v=f.length;let w=0,S=f.charCodeAt(0);if(v===1)return g(S)?(h.root=h.dir=f,h):(h.base=h.name=f,h);if(g(S)){if(w=1,g(f.charCodeAt(1))){let N=2,O=N;for(;N0&&(h.root=f.slice(0,w));let L=-1,D=w,T=-1,M=!0,A=f.length-1,P=0;for(;A>=w;--A){if(S=f.charCodeAt(A),g(S)){if(!M){D=A+1;break}continue}T===-1&&(M=!1,T=A+1),S===m?L===-1?L=A:P!==1&&(P=1):L!==-1&&(P=-1)}return T!==-1&&(L===-1||P===0||P===1&&L===T-1&&L===D+1?h.base=h.name=f.slice(D,T):(h.name=f.slice(D,L),h.base=f.slice(D,T),h.ext=f.slice(L,T))),D>0&&D!==w?h.dir=f.slice(0,D-1):h.dir=h.root,h},sep:"\\",delimiter:";",win32:null,posix:null};const C=(()=>{if(s){const f=/\\/g;return()=>{const h=d.cwd().replace(f,"/");return h.slice(h.indexOf("/"))}}return()=>d.cwd()})();e.posix={resolve(...f){let h="",v=!1;for(let w=f.length-1;w>=-1&&!v;w--){const S=w>=0?f[w]:C();i(S,`paths[${w}]`),S.length!==0&&(h=`${S}/${h}`,v=S.charCodeAt(0)===_)}return h=a(h,!v,"/",c),v?`/${h}`:h.length>0?h:"."},normalize(f){if(i(f,"path"),f.length===0)return".";const h=f.charCodeAt(0)===_,v=f.charCodeAt(f.length-1)===_;return f=a(f,!h,"/",c),f.length===0?h?"/":v?"./":".":(v&&(f+="/"),h?`/${f}`:f)},isAbsolute(f){return i(f,"path"),f.length>0&&f.charCodeAt(0)===_},join(...f){if(f.length===0)return".";let h;for(let v=0;v0&&(h===void 0?h=w:h+=`/${w}`)}return h===void 0?".":e.posix.normalize(h)},relative(f,h){if(i(f,"from"),i(h,"to"),f===h||(f=e.posix.resolve(f),h=e.posix.resolve(h),f===h))return"";const v=1,w=f.length,S=w-v,L=1,D=h.length-L,T=ST){if(h.charCodeAt(L+A)===_)return h.slice(L+A+1);if(A===0)return h.slice(L+A)}else S>T&&(f.charCodeAt(v+A)===_?M=A:A===0&&(M=0));let P="";for(A=v+M+1;A<=w;++A)(A===w||f.charCodeAt(A)===_)&&(P+=P.length===0?"..":"/..");return`${P}${h.slice(L+M)}`},toNamespacedPath(f){return f},dirname(f){if(i(f,"path"),f.length===0)return".";const h=f.charCodeAt(0)===_;let v=-1,w=!0;for(let S=f.length-1;S>=1;--S)if(f.charCodeAt(S)===_){if(!w){v=S;break}}else w=!1;return v===-1?h?"/":".":h&&v===1?"//":f.slice(0,v)},basename(f,h){h!==void 0&&i(h,"ext"),i(f,"path");let v=0,w=-1,S=!0,L;if(h!==void 0&&h.length>0&&h.length<=f.length){if(h===f)return"";let D=h.length-1,T=-1;for(L=f.length-1;L>=0;--L){const M=f.charCodeAt(L);if(M===_){if(!S){v=L+1;break}}else T===-1&&(S=!1,T=L+1),D>=0&&(M===h.charCodeAt(D)?--D===-1&&(w=L):(D=-1,w=T))}return v===w?w=T:w===-1&&(w=f.length),f.slice(v,w)}for(L=f.length-1;L>=0;--L)if(f.charCodeAt(L)===_){if(!S){v=L+1;break}}else w===-1&&(S=!1,w=L+1);return w===-1?"":f.slice(v,w)},extname(f){i(f,"path");let h=-1,v=0,w=-1,S=!0,L=0;for(let D=f.length-1;D>=0;--D){const T=f.charCodeAt(D);if(T===_){if(!S){v=D+1;break}continue}w===-1&&(S=!1,w=D+1),T===m?h===-1?h=D:L!==1&&(L=1):h!==-1&&(L=-1)}return h===-1||w===-1||L===0||L===1&&h===w-1&&h===v+1?"":f.slice(h,w)},format:u.bind(null,"/"),parse(f){i(f,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return h;const v=f.charCodeAt(0)===_;let w;v?(h.root="/",w=1):w=0;let S=-1,L=0,D=-1,T=!0,M=f.length-1,A=0;for(;M>=w;--M){const P=f.charCodeAt(M);if(P===_){if(!T){L=M+1;break}continue}D===-1&&(T=!1,D=M+1),P===m?S===-1?S=M:A!==1&&(A=1):S!==-1&&(A=-1)}if(D!==-1){const P=L===0&&v?1:L;S===-1||A===0||A===1&&S===D-1&&S===L+1?h.base=h.name=f.slice(P,D):(h.name=f.slice(P,S),h.base=f.slice(P,D),h.ext=f.slice(S,D))}return L>0?h.dir=f.slice(0,L-1):v&&(h.dir="/"),h},sep:"/",delimiter:":",win32:null,posix:null},e.posix.win32=e.win32.win32=e.win32,e.posix.posix=e.win32.posix=e.posix,e.normalize=s?e.win32.normalize:e.posix.normalize,e.join=s?e.win32.join:e.posix.join,e.resolve=s?e.win32.resolve:e.posix.resolve,e.relative=s?e.win32.relative:e.posix.relative,e.dirname=s?e.win32.dirname:e.posix.dirname,e.basename=s?e.win32.basename:e.posix.basename,e.extname=s?e.win32.extname:e.posix.extname,e.sep=s?e.win32.sep:e.posix.sep}),define(ne[251],se([1,0,99,16,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isPathSeparator=E,e.toSlashes=y,e.toPosixPath=m,e.getRoot=_,e.isEqualOrParent=b,e.isWindowsDriveLetter=p,e.hasDriveLetter=n;function E(o){return o===47||o===92}function y(o){return o.replace(/[\\/]/g,d.posix.sep)}function m(o){return o.indexOf("/")===-1&&(o=y(o)),/^[a-zA-Z]:(\/|$)/.test(o)&&(o="/"+o),o}function _(o,t=d.posix.sep){if(!o)return"";const i=o.length,s=o.charCodeAt(0);if(E(s)){if(E(o.charCodeAt(1))&&!E(o.charCodeAt(2))){let c=3;const l=c;for(;co.length)return!1;if(i){if(!(0,I.startsWithIgnoreCase)(o,t))return!1;if(t.length===o.length)return!0;let c=t.length;return t.charAt(t.length-1)===s&&c--,o.charAt(c)===s}return t.charAt(t.length-1)!==s&&(t+=s),o.indexOf(t)===0}function p(o){return o>=65&&o<=90||o>=97&&o<=122}function n(o,t=k.isWindows){return t?p(o.charCodeAt(0))&&o.charCodeAt(1)===58:!1}}),define(ne[628],se([1,0,82,99,16,11]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.scoreFuzzy2=m,e.prepareQuery=s,e.pieceToQuery=c;const y=[void 0,[]];function m(l,a,r=0,u=0){const C=a;return C.values&&C.values.length>1?_(l,C.values,r,u):b(l,a,r,u)}function _(l,a,r,u){let C=0;const f=[];for(const h of a){const[v,w]=b(l,h,r,u);if(typeof v!="number")return y;C+=v,f.push(...w)}return[C,n(f)]}function b(l,a,r,u){const C=(0,d.fuzzyScore)(a.original,a.originalLowercase,r,l,l.toLowerCase(),u,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return C?[C[0],(0,d.createMatches)(C)]:y}const p=Object.freeze({score:0});function n(l){const a=l.sort((C,f)=>C.start-f.start),r=[];let u;for(const C of a)!u||!o(u,C)?(u=C,r.push(C)):(u.start=Math.min(u.start,C.start),u.end=Math.max(u.end,C.end));return r}function o(l,a){return!(l.end=0,h=t(l);let v;const w=l.split(i);if(w.length>1)for(const S of w){const L=t(S),{pathNormalized:D,normalized:T,normalizedLowercase:M}=g(S);T&&(v||(v=[]),v.push({original:S,originalLowercase:S.toLowerCase(),pathNormalized:D,normalized:T,normalizedLowercase:M,expectContiguousMatch:L}))}return{original:l,originalLowercase:a,pathNormalized:r,normalized:u,normalizedLowercase:C,values:v,containsPathSeparator:f,expectContiguousMatch:h}}function g(l){let a;I.isWindows?a=l.replace(/\//g,k.sep):a=l.replace(/\\/g,k.sep);const r=(0,E.stripWildcards)(a).replace(/\s|"/g,"");return{pathNormalized:a,normalized:r,normalizedLowercase:r.toLowerCase()}}function c(l){return Array.isArray(l)?s(l.map(a=>a.original).join(i)):s(l.original)}}),define(ne[350],se([1,0,14,251,45,99,16,11]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GLOB_SPLIT=e.GLOBSTAR=void 0,e.splitGlobAware=o,e.match=M,e.parse=A,e.isRelativePattern=P,e.GLOBSTAR="**",e.GLOB_SPLIT="/";const _="[/\\\\]",b="[^/\\\\]",p=/\//g;function n(x,W){switch(x){case 0:return"";case 1:return`${b}*?`;default:return`(?:${_}|${b}+${_}${W?`|${_}${b}+`:""})*?`}}function o(x,W){if(!x)return[];const V=[];let q=!1,H=!1,z="";for(const U of x){switch(U){case W:if(!q&&!H){V.push(z),z="";continue}break;case"{":q=!0;break;case"}":q=!1;break;case"[":H=!0;break;case"]":H=!1;break}z+=U}return z&&V.push(z),V}function t(x){if(!x)return"";let W="";const V=o(x,e.GLOB_SPLIT);if(V.every(q=>q===e.GLOBSTAR))W=".*";else{let q=!1;V.forEach((H,z)=>{if(H===e.GLOBSTAR){if(q)return;W+=n(2,z===V.length-1)}else{let U=!1,j="",Y=!1,G="";for(const K of H){if(K!=="}"&&U){j+=K;continue}if(Y&&(K!=="]"||!G)){let R;K==="-"?R=K:(K==="^"||K==="!")&&!G?R="^":K===e.GLOB_SPLIT?R="":R=(0,m.escapeRegExpCharacters)(K),G+=R;continue}switch(K){case"{":U=!0;continue;case"[":Y=!0;continue;case"}":{const J=`(?:${o(j,",").map(ie=>t(ie)).join("|")})`;W+=J,U=!1,j="";break}case"]":{W+="["+G+"]",Y=!1,G="";break}case"?":W+=b;continue;case"*":W+=n(1);continue;default:W+=(0,m.escapeRegExpCharacters)(K)}}zf(j,W)).filter(j=>j!==C),x),q=V.length;if(!q)return C;if(q===1)return V[0];const H=function(j,Y){for(let G=0,K=V.length;G!!j.allBasenames);z&&(H.allBasenames=z.allBasenames);const U=V.reduce((j,Y)=>Y.allPaths?j.concat(Y.allPaths):j,[]);return U.length&&(H.allPaths=U),H}function D(x,W,V){const q=E.sep===E.posix.sep,H=q?x:x.replace(p,E.sep),z=E.sep+H,U=E.posix.sep+x;let j;return V?j=function(Y,G){return typeof Y=="string"&&(Y===H||Y.endsWith(z)||!q&&(Y===x||Y.endsWith(U)))?W:null}:j=function(Y,G){return typeof Y=="string"&&(Y===H||!q&&Y===x)?W:null},j.allPaths=[(V?"*/":"./")+x],j}function T(x){try{const W=new RegExp(`^${t(x)}$`);return function(V){return W.lastIndex=0,typeof V=="string"&&W.test(V)?x:null}}catch{return C}}function M(x,W,V){return!x||typeof W!="string"?!1:A(x)(W,void 0,V)}function A(x,W={}){if(!x)return u;if(typeof x=="string"||P(x)){const V=f(x,W);if(V===C)return u;const q=function(H,z){return!!V(H,z)};return V.allBasenames&&(q.allBasenames=V.allBasenames),V.allPaths&&(q.allPaths=V.allPaths),q}return N(x,W)}function P(x){const W=x;return W?typeof W.base=="string"&&typeof W.pattern=="string":!1}function N(x,W){const V=F(Object.getOwnPropertyNames(x).map(j=>O(j,x[j],W)).filter(j=>j!==C)),q=V.length;if(!q)return C;if(!V.some(j=>!!j.requiresSiblings)){if(q===1)return V[0];const j=function(K,R){let J;for(let ie=0,ue=V.length;ie{for(const ie of J){const ue=await ie;if(typeof ue=="string")return ue}return null})():null},Y=V.find(K=>!!K.allBasenames);Y&&(j.allBasenames=Y.allBasenames);const G=V.reduce((K,R)=>R.allPaths?K.concat(R.allPaths):K,[]);return G.length&&(j.allPaths=G),j}const H=function(j,Y,G){let K,R;for(let J=0,ie=V.length;J{for(const J of R){const ie=await J;if(typeof ie=="string")return ie}return null})():null},z=V.find(j=>!!j.allBasenames);z&&(H.allBasenames=z.allBasenames);const U=V.reduce((j,Y)=>Y.allPaths?j.concat(Y.allPaths):j,[]);return U.length&&(H.allPaths=U),H}function O(x,W,V){if(W===!1)return C;const q=f(x,V);if(q===C)return C;if(typeof W=="boolean")return q;if(W){const H=W.when;if(typeof H=="string"){const z=(U,j,Y,G)=>{if(!G||!q(U,j))return null;const K=H.replace("$(basename)",()=>Y),R=G(K);return(0,d.isThenable)(R)?R.then(J=>J?x:null):R?x:null};return z.requiresSiblings=!0,z}}return q}function F(x,W){const V=x.filter(j=>!!j.basenames);if(V.length<2)return x;const q=V.reduce((j,Y)=>{const G=Y.basenames;return G?j.concat(G):j},[]);let H;if(W){H=[];for(let j=0,Y=q.length;j{const G=Y.patterns;return G?j.concat(G):j},[]);const z=function(j,Y){if(typeof j!="string")return null;if(!Y){let K;for(K=j.length;K>0;K--){const R=j.charCodeAt(K-1);if(R===47||R===92)break}Y=j.substr(K)}const G=q.indexOf(Y);return G!==-1?H[G]:null};z.basenames=q,z.patterns=H,z.allBasenames=q;const U=x.filter(j=>!j.basenames);return U.push(z),U}}),define(ne[629],se([1,0,251,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeDriveLetter=I;function I(y,m=k.isWindows){return(0,d.hasDriveLetter)(y,m)?y.charAt(0).toUpperCase()+y.slice(1):y}let E=Object.create(null)}),define(ne[22],se([1,0,99,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.URI=void 0,e.uriToFsPath=a;const I=/^\w[\w\d+.-]*$/,E=/^\//,y=/^\/\//;function m(h,v){if(!h.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${h.authority}", path: "${h.path}", query: "${h.query}", fragment: "${h.fragment}"}`);if(h.scheme&&!I.test(h.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(h.path){if(h.authority){if(!E.test(h.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(y.test(h.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function _(h,v){return!h&&!v?"file":h}function b(h,v){switch(h){case"https":case"http":case"file":v?v[0]!==n&&(v=n+v):v=n;break}return v}const p="",n="/",o=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class t{static isUri(v){return v instanceof t?!0:v?typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function":!1}constructor(v,w,S,L,D,T=!1){typeof v=="object"?(this.scheme=v.scheme||p,this.authority=v.authority||p,this.path=v.path||p,this.query=v.query||p,this.fragment=v.fragment||p):(this.scheme=_(v,T),this.authority=w||p,this.path=b(this.scheme,S||p),this.query=L||p,this.fragment=D||p,m(this,T))}get fsPath(){return a(this,!1)}with(v){if(!v)return this;let{scheme:w,authority:S,path:L,query:D,fragment:T}=v;return w===void 0?w=this.scheme:w===null&&(w=p),S===void 0?S=this.authority:S===null&&(S=p),L===void 0?L=this.path:L===null&&(L=p),D===void 0?D=this.query:D===null&&(D=p),T===void 0?T=this.fragment:T===null&&(T=p),w===this.scheme&&S===this.authority&&L===this.path&&D===this.query&&T===this.fragment?this:new s(w,S,L,D,T)}static parse(v,w=!1){const S=o.exec(v);return S?new s(S[2]||p,f(S[4]||p),f(S[5]||p),f(S[7]||p),f(S[9]||p),w):new s(p,p,p,p,p)}static file(v){let w=p;if(k.isWindows&&(v=v.replace(/\\/g,n)),v[0]===n&&v[1]===n){const S=v.indexOf(n,2);S===-1?(w=v.substring(2),v=n):(w=v.substring(2,S),v=v.substring(S)||n)}return new s("file",w,v,p,p)}static from(v,w){return new s(v.scheme,v.authority,v.path,v.query,v.fragment,w)}static joinPath(v,...w){if(!v.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let S;return k.isWindows&&v.scheme==="file"?S=t.file(d.win32.join(a(v,!0),...w)).path:S=d.posix.join(v.path,...w),v.with({path:S})}toString(v=!1){return r(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof t)return v;{const w=new s(v);return w._formatted=v.external??null,w._fsPath=v._sep===i?v.fsPath??null:null,w}}else return v}}e.URI=t;const i=k.isWindows?1:void 0;class s extends t{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=a(this,!1)),this._fsPath}toString(v=!1){return v?r(this,!0):(this._formatted||(this._formatted=r(this,!1)),this._formatted)}toJSON(){const v={$mid:1};return this._fsPath&&(v.fsPath=this._fsPath,v._sep=i),this._formatted&&(v.external=this._formatted),this.path&&(v.path=this.path),this.scheme&&(v.scheme=this.scheme),this.authority&&(v.authority=this.authority),this.query&&(v.query=this.query),this.fragment&&(v.fragment=this.fragment),v}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function c(h,v,w){let S,L=-1;for(let D=0;D=97&&T<=122||T>=65&&T<=90||T>=48&&T<=57||T===45||T===46||T===95||T===126||v&&T===47||w&&T===91||w&&T===93||w&&T===58)L!==-1&&(S+=encodeURIComponent(h.substring(L,D)),L=-1),S!==void 0&&(S+=h.charAt(D));else{S===void 0&&(S=h.substr(0,D));const M=g[T];M!==void 0?(L!==-1&&(S+=encodeURIComponent(h.substring(L,D)),L=-1),S+=M):L===-1&&(L=D)}}return L!==-1&&(S+=encodeURIComponent(h.substring(L))),S!==void 0?S:h}function l(h){let v;for(let w=0;w1&&h.scheme==="file"?w=`//${h.authority}${h.path}`:h.path.charCodeAt(0)===47&&(h.path.charCodeAt(1)>=65&&h.path.charCodeAt(1)<=90||h.path.charCodeAt(1)>=97&&h.path.charCodeAt(1)<=122)&&h.path.charCodeAt(2)===58?v?w=h.path.substr(1):w=h.path[1].toLowerCase()+h.path.substr(2):w=h.path,k.isWindows&&(w=w.replace(/\//g,"\\")),w}function r(h,v){const w=v?l:c;let S="",{scheme:L,authority:D,path:T,query:M,fragment:A}=h;if(L&&(S+=L,S+=":"),(D||L==="file")&&(S+=n,S+=n),D){let P=D.indexOf("@");if(P!==-1){const N=D.substr(0,P);D=D.substr(P+1),P=N.lastIndexOf(":"),P===-1?S+=w(N,!1,!1):(S+=w(N.substr(0,P),!1,!1),S+=":",S+=w(N.substr(P+1),!1,!0)),S+="@"}D=D.toLowerCase(),P=D.lastIndexOf(":"),P===-1?S+=w(D,!1,!0):(S+=w(D.substr(0,P),!1,!0),S+=D.substr(P))}if(T){if(T.length>=3&&T.charCodeAt(0)===47&&T.charCodeAt(2)===58){const P=T.charCodeAt(1);P>=65&&P<=90&&(T=`/${String.fromCharCode(P+32)}:${T.substr(3)}`)}else if(T.length>=2&&T.charCodeAt(1)===58){const P=T.charCodeAt(0);P>=65&&P<=90&&(T=`${String.fromCharCode(P+32)}:${T.substr(2)}`)}S+=w(T,!0,!1)}return M&&(S+="?",S+=w(M,!1,!1)),A&&(S+="#",S+=v?A:c(A,!1,!1)),S}function u(h){try{return decodeURIComponent(h)}catch{return h.length>3?h.substr(0,3)+u(h.substr(3)):h}}const C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function f(h){return h.match(C)?h.replace(C,v=>u(v)):h}}),define(ne[252],se([1,0,160,22]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stringify=I,e.parse=E,e.revive=m;function I(_){return JSON.stringify(_,y)}function E(_){let b=JSON.parse(_);return b=m(b),b}function y(_,b){return b instanceof RegExp?{$mid:2,source:b.source,flags:b.flags}:b}function m(_,b=0){if(!_||b>200)return _;if(typeof _=="object"){switch(_.$mid){case 1:return k.URI.revive(_);case 2:return new RegExp(_.source,_.flags);case 17:return new Date(_.source)}if(_ instanceof d.VSBuffer||_ instanceof Uint8Array)return _;if(Array.isArray(_))for(let p=0;p<_.length;++p)_[p]=m(_[p],b+1);else for(const p in _)Object.hasOwnProperty.call(_,p)&&(_[p]=m(_[p],b+1))}return _}}),define(ne[42],se([1,0,8,16,11,22,99]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.COI=e.FileAccess=e.VSCODE_AUTHORITY=e.RemoteAuthorities=e.connectionTokenQueryName=e.Schemas=void 0,e.matchesScheme=_,e.matchesSomeScheme=b;var m;(function(t){t.inMemory="inmemory",t.vscode="vscode",t.internal="private",t.walkThrough="walkThrough",t.walkThroughSnippet="walkThroughSnippet",t.http="http",t.https="https",t.file="file",t.mailto="mailto",t.untitled="untitled",t.data="data",t.command="command",t.vscodeRemote="vscode-remote",t.vscodeRemoteResource="vscode-remote-resource",t.vscodeManagedRemoteResource="vscode-managed-remote-resource",t.vscodeUserData="vscode-userdata",t.vscodeCustomEditor="vscode-custom-editor",t.vscodeNotebookCell="vscode-notebook-cell",t.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",t.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",t.vscodeNotebookCellOutput="vscode-notebook-cell-output",t.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",t.vscodeNotebookMetadata="vscode-notebook-metadata",t.vscodeInteractiveInput="vscode-interactive-input",t.vscodeSettings="vscode-settings",t.vscodeWorkspaceTrust="vscode-workspace-trust",t.vscodeTerminal="vscode-terminal",t.vscodeChatCodeBlock="vscode-chat-code-block",t.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",t.vscodeChatSesssion="vscode-chat-editor",t.webviewPanel="webview-panel",t.vscodeWebview="vscode-webview",t.extension="extension",t.vscodeFileResource="vscode-file",t.tmp="tmp",t.vsls="vsls",t.vscodeSourceControl="vscode-scm",t.commentsInput="comment",t.codeSetting="code-setting",t.outputChannel="output"})(m||(e.Schemas=m={}));function _(t,i){return E.URI.isUri(t)?(0,I.equalsIgnoreCase)(t.scheme,i):(0,I.startsWithIgnoreCase)(t,i+":")}function b(t,...i){return i.some(s=>_(t,s))}e.connectionTokenQueryName="tkn";class p{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(i){this._preferredWebSchema=i}get _remoteResourcesPath(){return y.posix.join(this._serverRootPath,m.vscodeRemoteResource)}rewrite(i){if(this._delegate)try{return this._delegate(i)}catch(r){return d.onUnexpectedError(r),i}const s=i.authority;let g=this._hosts[s];g&&g.indexOf(":")!==-1&&g.indexOf("[")===-1&&(g=`[${g}]`);const c=this._ports[s],l=this._connectionTokens[s];let a=`path=${encodeURIComponent(i.path)}`;return typeof l=="string"&&(a+=`&${e.connectionTokenQueryName}=${encodeURIComponent(l)}`),E.URI.from({scheme:k.isWeb?this._preferredWebSchema:m.vscodeRemoteResource,authority:`${g}:${c}`,path:this._remoteResourcesPath,query:a})}}e.RemoteAuthorities=new p,e.VSCODE_AUTHORITY="vscode-app";class n{static{this.FALLBACK_AUTHORITY=e.VSCODE_AUTHORITY}asBrowserUri(i){const s=this.toUri(i,oe);return this.uriToBrowserUri(s)}uriToBrowserUri(i){return i.scheme===m.vscodeRemote?e.RemoteAuthorities.rewrite(i):i.scheme===m.file&&(k.isNative||k.webWorkerOrigin===`${m.vscodeFileResource}://${n.FALLBACK_AUTHORITY}`)?i.with({scheme:m.vscodeFileResource,authority:i.authority||n.FALLBACK_AUTHORITY,query:null,fragment:null}):i}toUri(i,s){if(E.URI.isUri(i))return i;if(globalThis._VSCODE_FILE_ROOT){const g=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(g))return E.URI.joinPath(E.URI.parse(g,!0),i);const c=y.join(g,i);return E.URI.file(c)}return E.URI.parse(s.toUrl(i))}}e.FileAccess=new n;var o;(function(t){const i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);t.CoopAndCoep=Object.freeze(i.get("3"));const s="vscode-coi";function g(l){let a;typeof l=="string"?a=new URL(l).searchParams:l instanceof URL?a=l.searchParams:E.URI.isUri(l)&&(a=new URL(l.toString(!0)).searchParams);const r=a?.get(s);if(r)return i.get(r)}t.getHeadersFromQuery=g;function c(l,a,r){if(!globalThis.crossOriginIsolated)return;const u=a&&r?"3":r?"2":"1";l instanceof URLSearchParams?l.set(s,u):l[s]=u}t.addSearchParam=c})(o||(e.COI=o={}))}),define(ne[5],se([1,0,64,248,47,77,14,8,6,351,2,42,16,129,52]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";var s;Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropObserver=e.ModifierKeyEmitter=e.basicMarkupHtmlTags=e.Namespace=e.EventHelper=e.EventType=e.sharedMutationObserver=e.Dimension=e.WindowIntervalTimer=e.scheduleAtNextAnimationFrame=e.runAtThisOrScheduleAtNextAnimationFrame=e.WindowIdleValue=e.addStandardDisposableGenericMouseUpListener=e.addStandardDisposableGenericMouseDownListener=e.addStandardDisposableListener=e.onDidUnregisterWindow=e.onWillUnregisterWindow=e.onDidRegisterWindow=e.hasWindow=e.getWindowById=e.getWindowId=e.getWindowsCount=e.getWindows=e.getDocument=e.getWindow=e.registerWindow=void 0,e.clearNode=g,e.addDisposableListener=l,e.addDisposableGenericMouseDownListener=h,e.addDisposableGenericMouseUpListener=v,e.runWhenWindowIdle=w,e.getComputedStyle=T,e.getClientArea=M,e.getTopLeftOffset=N,e.size=O,e.getDomNodePagePosition=F,e.getDomNodeZoomLevel=x,e.getTotalWidth=W,e.getContentWidth=V,e.getContentHeight=q,e.getTotalHeight=H,e.isAncestor=z,e.findParentWithClass=U,e.hasParentWithClass=j,e.isShadowRoot=Y,e.isInShadowDOM=G,e.getShadowRoot=K,e.getActiveElement=R,e.isActiveElement=J,e.isAncestorOfActiveElement=ie,e.getActiveDocument=ue,e.getActiveWindow=he,e.createStyleSheet2=ae,e.createStyleSheet=de,e.createCSSRule=Q,e.removeCSSRulesContainingSelector=Z,e.isHTMLElement=re,e.isHTMLAnchorElement=le,e.isSVGElement=me,e.isMouseEvent=Ce,e.isKeyboardEvent=ye,e.isEventLike=Le,e.saveParentsScrollTop=Ee,e.restoreParentsScrollTop=Me,e.trackFocus=Ne,e.after=Ke,e.append=ze,e.prepend=Ge,e.reset=it,e.$=_e,e.setVisibility=xe,e.show=be,e.hide=ve,e.computeScreenAwareSize=we,e.windowOpenNoOpener=Te,e.animate=Pe,e.asCSSUrl=Be,e.asCSSPropertyValue=He,e.asCssValueWithDefault=$e,e.hookDomPurifyHrefAndSrcSanitizer=je,e.h=st,e.svgElem=pt,s=function(){const De=new Map;(0,i.ensureCodeWindow)(i.mainWindow,1);const Ie={window:i.mainWindow,disposables:new p.DisposableStore};De.set(i.mainWindow.vscodeWindowId,Ie);const Re=new _.Emitter,Se=new _.Emitter,We=new _.Emitter;function qe(Ue,Je){return(typeof Ue=="number"?De.get(Ue):void 0)??(Je?Ie:void 0)}return{onDidRegisterWindow:Re.event,onWillUnregisterWindow:We.event,onDidUnregisterWindow:Se.event,registerWindow(Ue){if(De.has(Ue.vscodeWindowId))return p.Disposable.None;const Je=new p.DisposableStore,tt={window:Ue,disposables:Je.add(new p.DisposableStore)};return De.set(Ue.vscodeWindowId,tt),Je.add((0,p.toDisposable)(()=>{De.delete(Ue.vscodeWindowId),Se.fire(Ue)})),Je.add(l(Ue,e.EventType.BEFORE_UNLOAD,()=>{We.fire(Ue)})),Re.fire(tt),Je},getWindows(){return De.values()},getWindowsCount(){return De.size},getWindowId(Ue){return Ue.vscodeWindowId},hasWindow(Ue){return De.has(Ue)},getWindowById:qe,getWindow(Ue){const Je=Ue;if(Je?.ownerDocument?.defaultView)return Je.ownerDocument.defaultView.window;const tt=Ue;return tt?.view?tt.view.window:i.mainWindow},getDocument(Ue){const Je=Ue;return(0,e.getWindow)(Je).document}}}(),e.registerWindow=s.registerWindow,e.getWindow=s.getWindow,e.getDocument=s.getDocument,e.getWindows=s.getWindows,e.getWindowsCount=s.getWindowsCount,e.getWindowId=s.getWindowId,e.getWindowById=s.getWindowById,e.hasWindow=s.hasWindow,e.onDidRegisterWindow=s.onDidRegisterWindow,e.onWillUnregisterWindow=s.onWillUnregisterWindow,e.onDidUnregisterWindow=s.onDidUnregisterWindow;function g(De){for(;De.firstChild;)De.firstChild.remove()}class c{constructor(Ie,Re,Se,We){this._node=Ie,this._type=Re,this._handler=Se,this._options=We||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function l(De,Ie,Re,Se){return new c(De,Ie,Re,Se)}function a(De,Ie){return function(Re){return Ie(new E.StandardMouseEvent(De,Re))}}function r(De){return function(Ie){return De(new I.StandardKeyboardEvent(Ie))}}const u=function(Ie,Re,Se,We){let qe=Se;return Re==="click"||Re==="mousedown"||Re==="contextmenu"?qe=a((0,e.getWindow)(Ie),Se):(Re==="keydown"||Re==="keypress"||Re==="keyup")&&(qe=r(Se)),l(Ie,Re,qe,We)};e.addStandardDisposableListener=u;const C=function(Ie,Re,Se){const We=a((0,e.getWindow)(Ie),Re);return h(Ie,We,Se)};e.addStandardDisposableGenericMouseDownListener=C;const f=function(Ie,Re,Se){const We=a((0,e.getWindow)(Ie),Re);return v(Ie,We,Se)};e.addStandardDisposableGenericMouseUpListener=f;function h(De,Ie,Re){return l(De,o.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_DOWN:e.EventType.MOUSE_DOWN,Ie,Re)}function v(De,Ie,Re){return l(De,o.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_UP:e.EventType.MOUSE_UP,Ie,Re)}function w(De,Ie,Re){return(0,y._runWhenIdle)(De,Ie,Re)}class S extends y.AbstractIdleValue{constructor(Ie,Re){super(Ie,Re)}}e.WindowIdleValue=S;class L extends y.IntervalTimer{constructor(Ie){super(),this.defaultTarget=Ie&&(0,e.getWindow)(Ie)}cancelAndSet(Ie,Re,Se){return super.cancelAndSet(Ie,Re,Se??this.defaultTarget)}}e.WindowIntervalTimer=L;class D{constructor(Ie,Re=0){this._runner=Ie,this.priority=Re,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(Ie){(0,m.onUnexpectedError)(Ie)}}static sort(Ie,Re){return Re.priority-Ie.priority}}(function(){const De=new Map,Ie=new Map,Re=new Map,Se=new Map,We=qe=>{Re.set(qe,!1);const Ue=De.get(qe)??[];for(Ie.set(qe,Ue),De.set(qe,[]),Se.set(qe,!0);Ue.length>0;)Ue.sort(D.sort),Ue.shift().execute();Se.set(qe,!1)};e.scheduleAtNextAnimationFrame=(qe,Ue,Je=0)=>{const tt=(0,e.getWindowId)(qe),Qe=new D(Ue,Je);let rt=De.get(tt);return rt||(rt=[],De.set(tt,rt)),rt.push(Qe),Re.get(tt)||(Re.set(tt,!0),qe.requestAnimationFrame(()=>We(tt))),Qe},e.runAtThisOrScheduleAtNextAnimationFrame=(qe,Ue,Je)=>{const tt=(0,e.getWindowId)(qe);if(Se.get(tt)){const Qe=new D(Ue,Je);let rt=Ie.get(tt);return rt||(rt=[],Ie.set(tt,rt)),rt.push(Qe),Qe}else return(0,e.scheduleAtNextAnimationFrame)(qe,Ue,Je)}})();function T(De){return(0,e.getWindow)(De).getComputedStyle(De,null)}function M(De,Ie){const Re=(0,e.getWindow)(De),Se=Re.document;if(De!==Se.body)return new P(De.clientWidth,De.clientHeight);if(o.isIOS&&Re?.visualViewport)return new P(Re.visualViewport.width,Re.visualViewport.height);if(Re?.innerWidth&&Re.innerHeight)return new P(Re.innerWidth,Re.innerHeight);if(Se.body&&Se.body.clientWidth&&Se.body.clientHeight)return new P(Se.body.clientWidth,Se.body.clientHeight);if(Se.documentElement&&Se.documentElement.clientWidth&&Se.documentElement.clientHeight)return new P(Se.documentElement.clientWidth,Se.documentElement.clientHeight);if(Ie)return M(Ie);throw new Error("Unable to figure out browser width and height")}class A{static convertToPixels(Ie,Re){return parseFloat(Re)||0}static getDimension(Ie,Re,Se){const We=T(Ie),qe=We?We.getPropertyValue(Re):"0";return A.convertToPixels(Ie,qe)}static getBorderLeftWidth(Ie){return A.getDimension(Ie,"border-left-width","borderLeftWidth")}static getBorderRightWidth(Ie){return A.getDimension(Ie,"border-right-width","borderRightWidth")}static getBorderTopWidth(Ie){return A.getDimension(Ie,"border-top-width","borderTopWidth")}static getBorderBottomWidth(Ie){return A.getDimension(Ie,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(Ie){return A.getDimension(Ie,"padding-left","paddingLeft")}static getPaddingRight(Ie){return A.getDimension(Ie,"padding-right","paddingRight")}static getPaddingTop(Ie){return A.getDimension(Ie,"padding-top","paddingTop")}static getPaddingBottom(Ie){return A.getDimension(Ie,"padding-bottom","paddingBottom")}static getMarginLeft(Ie){return A.getDimension(Ie,"margin-left","marginLeft")}static getMarginTop(Ie){return A.getDimension(Ie,"margin-top","marginTop")}static getMarginRight(Ie){return A.getDimension(Ie,"margin-right","marginRight")}static getMarginBottom(Ie){return A.getDimension(Ie,"margin-bottom","marginBottom")}}class P{static{this.None=new P(0,0)}constructor(Ie,Re){this.width=Ie,this.height=Re}with(Ie=this.width,Re=this.height){return Ie!==this.width||Re!==this.height?new P(Ie,Re):this}static is(Ie){return typeof Ie=="object"&&typeof Ie.height=="number"&&typeof Ie.width=="number"}static lift(Ie){return Ie instanceof P?Ie:new P(Ie.width,Ie.height)}static equals(Ie,Re){return Ie===Re?!0:!Ie||!Re?!1:Ie.width===Re.width&&Ie.height===Re.height}}e.Dimension=P;function N(De){let Ie=De.offsetParent,Re=De.offsetTop,Se=De.offsetLeft;for(;(De=De.parentNode)!==null&&De!==De.ownerDocument.body&&De!==De.ownerDocument.documentElement;){Re-=De.scrollTop;const We=Y(De)?null:T(De);We&&(Se-=We.direction!=="rtl"?De.scrollLeft:-De.scrollLeft),De===Ie&&(Se+=A.getBorderLeftWidth(De),Re+=A.getBorderTopWidth(De),Re+=De.offsetTop,Se+=De.offsetLeft,Ie=De.offsetParent)}return{left:Se,top:Re}}function O(De,Ie,Re){typeof Ie=="number"&&(De.style.width=`${Ie}px`),typeof Re=="number"&&(De.style.height=`${Re}px`)}function F(De){const Ie=De.getBoundingClientRect(),Re=(0,e.getWindow)(De);return{left:Ie.left+Re.scrollX,top:Ie.top+Re.scrollY,width:Ie.width,height:Ie.height}}function x(De){let Ie=De,Re=1;do{const Se=T(Ie).zoom;Se!=null&&Se!=="1"&&(Re*=Se),Ie=Ie.parentElement}while(Ie!==null&&Ie!==Ie.ownerDocument.documentElement);return Re}function W(De){const Ie=A.getMarginLeft(De)+A.getMarginRight(De);return De.offsetWidth+Ie}function V(De){const Ie=A.getBorderLeftWidth(De)+A.getBorderRightWidth(De),Re=A.getPaddingLeft(De)+A.getPaddingRight(De);return De.offsetWidth-Ie-Re}function q(De){const Ie=A.getBorderTopWidth(De)+A.getBorderBottomWidth(De),Re=A.getPaddingTop(De)+A.getPaddingBottom(De);return De.offsetHeight-Ie-Re}function H(De){const Ie=A.getMarginTop(De)+A.getMarginBottom(De);return De.offsetHeight+Ie}function z(De,Ie){return!!Ie?.contains(De)}function U(De,Ie,Re){for(;De&&De.nodeType===De.ELEMENT_NODE;){if(De.classList.contains(Ie))return De;if(Re){if(typeof Re=="string"){if(De.classList.contains(Re))return null}else if(De===Re)return null}De=De.parentNode}return null}function j(De,Ie,Re){return!!U(De,Ie,Re)}function Y(De){return De&&!!De.host&&!!De.mode}function G(De){return!!K(De)}function K(De){for(;De.parentNode;){if(De===De.ownerDocument?.body)return null;De=De.parentNode}return Y(De)?De:null}function R(){let De=ue().activeElement;for(;De?.shadowRoot;)De=De.shadowRoot.activeElement;return De}function J(De){return R()===De}function ie(De){return z(R(),De)}function ue(){return(0,e.getWindowsCount)()<=1?i.mainWindow.document:Array.from((0,e.getWindows)()).map(({window:Ie})=>Ie.document).find(Ie=>Ie.hasFocus())??i.mainWindow.document}function he(){return ue().defaultView?.window??i.mainWindow}const pe=new Map;function ae(){return new ee}class ee{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(Ie){Ie!==this._currentCssStyle&&(this._currentCssStyle=Ie,this._styleSheet?this._styleSheet.innerText=Ie:this._styleSheet=de(i.mainWindow.document.head,Re=>Re.innerText=Ie))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function de(De=i.mainWindow.document.head,Ie,Re){const Se=document.createElement("style");if(Se.type="text/css",Se.media="screen",Ie?.(Se),De.appendChild(Se),Re&&Re.add((0,p.toDisposable)(()=>Se.remove())),De===i.mainWindow.document.head){const We=new Set;pe.set(Se,We);for(const{window:qe,disposables:Ue}of(0,e.getWindows)()){if(qe===i.mainWindow)continue;const Je=Ue.add(ge(Se,We,qe));Re?.add(Je)}}return Se}function ge(De,Ie,Re){const Se=new p.DisposableStore,We=De.cloneNode(!0);Re.document.head.appendChild(We),Se.add((0,p.toDisposable)(()=>We.remove()));for(const qe of $(De))We.sheet?.insertRule(qe.cssText,We.sheet?.cssRules.length);return Se.add(e.sharedMutationObserver.observe(De,Se,{childList:!0})(()=>{We.textContent=De.textContent})),Ie.add(We),Se.add((0,p.toDisposable)(()=>Ie.delete(We))),Se}e.sharedMutationObserver=new class{constructor(){this.mutationObservers=new Map}observe(De,Ie,Re){let Se=this.mutationObservers.get(De);Se||(Se=new Map,this.mutationObservers.set(De,Se));const We=(0,t.hash)(Re);let qe=Se.get(We);if(qe)qe.users+=1;else{const Ue=new _.Emitter,Je=new MutationObserver(Qe=>Ue.fire(Qe));Je.observe(De,Re);const tt=qe={users:1,observer:Je,onDidMutate:Ue.event};Ie.add((0,p.toDisposable)(()=>{tt.users-=1,tt.users===0&&(Ue.dispose(),Je.disconnect(),Se?.delete(We),Se?.size===0&&this.mutationObservers.delete(De))})),Se.set(We,qe)}return qe.onDidMutate}};let X=null;function B(){return X||(X=de()),X}function $(De){return De?.sheet?.rules?De.sheet.rules:De?.sheet?.cssRules?De.sheet.cssRules:[]}function Q(De,Ie,Re=B()){if(!(!Re||!Ie)){Re.sheet?.insertRule(`${De} {${Ie}}`,0);for(const Se of pe.get(Re)??[])Q(De,Ie,Se)}}function Z(De,Ie=B()){if(!Ie)return;const Re=$(Ie),Se=[];for(let We=0;We=0;We--)Ie.sheet?.deleteRule(Se[We]);for(const We of pe.get(Ie)??[])Z(De,We)}function te(De){return typeof De.selectorText=="string"}function re(De){return De instanceof HTMLElement||De instanceof(0,e.getWindow)(De).HTMLElement}function le(De){return De instanceof HTMLAnchorElement||De instanceof(0,e.getWindow)(De).HTMLAnchorElement}function me(De){return De instanceof SVGElement||De instanceof(0,e.getWindow)(De).SVGElement}function Ce(De){return De instanceof MouseEvent||De instanceof(0,e.getWindow)(De).MouseEvent}function ye(De){return De instanceof KeyboardEvent||De instanceof(0,e.getWindow)(De).KeyboardEvent}e.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:d.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:d.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:d.isWebKit?"webkitAnimationIteration":"animationiteration"};function Le(De){const Ie=De;return!!(Ie&&typeof Ie.preventDefault=="function"&&typeof Ie.stopPropagation=="function")}e.EventHelper={stop:(De,Ie)=>(De.preventDefault(),Ie&&De.stopPropagation(),De)};function Ee(De){const Ie=[];for(let Re=0;De&&De.nodeType===De.ELEMENT_NODE;Re++)Ie[Re]=De.scrollTop,De=De.parentNode;return Ie}function Me(De,Ie){for(let Re=0;De&&De.nodeType===De.ELEMENT_NODE;Re++)De.scrollTop!==Ie[Re]&&(De.scrollTop=Ie[Re]),De=De.parentNode}class Ae extends p.Disposable{static hasFocusWithin(Ie){if(re(Ie)){const Re=K(Ie),Se=Re?Re.activeElement:Ie.ownerDocument.activeElement;return z(Se,Ie)}else{const Re=Ie;return z(Re.document.activeElement,Re.document)}}constructor(Ie){super(),this._onDidFocus=this._register(new _.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new _.Emitter),this.onDidBlur=this._onDidBlur.event;let Re=Ae.hasFocusWithin(Ie),Se=!1;const We=()=>{Se=!1,Re||(Re=!0,this._onDidFocus.fire())},qe=()=>{Re&&(Se=!0,(re(Ie)?(0,e.getWindow)(Ie):Ie).setTimeout(()=>{Se&&(Se=!1,Re=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{Ae.hasFocusWithin(Ie)!==Re&&(Re?qe():We())},this._register(l(Ie,e.EventType.FOCUS,We,!0)),this._register(l(Ie,e.EventType.BLUR,qe,!0)),re(Ie)&&(this._register(l(Ie,e.EventType.FOCUS_IN,()=>this._refreshStateHandler())),this._register(l(Ie,e.EventType.FOCUS_OUT,()=>this._refreshStateHandler())))}}function Ne(De){return new Ae(De)}function Ke(De,Ie){return De.after(Ie),Ie}function ze(De,...Ie){if(De.append(...Ie),Ie.length===1&&typeof Ie[0]!="string")return Ie[0]}function Ge(De,Ie){return De.insertBefore(Ie,De.firstChild),Ie}function it(De,...Ie){De.innerText="",ze(De,...Ie)}const Oe=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Fe;(function(De){De.HTML="http://www.w3.org/1999/xhtml",De.SVG="http://www.w3.org/2000/svg"})(Fe||(e.Namespace=Fe={}));function fe(De,Ie,Re,...Se){const We=Oe.exec(Ie);if(!We)throw new Error("Bad use of emmet");const qe=We[1]||"div";let Ue;return De!==Fe.HTML?Ue=document.createElementNS(De,qe):Ue=document.createElement(qe),We[3]&&(Ue.id=We[3]),We[4]&&(Ue.className=We[4].replace(/\./g," ").trim()),Re&&Object.entries(Re).forEach(([Je,tt])=>{typeof tt>"u"||(/^on\w+$/.test(Je)?Ue[Je]=tt:Je==="selected"?tt&&Ue.setAttribute(Je,"true"):Ue.setAttribute(Je,tt))}),Ue.append(...Se),Ue}function _e(De,Ie,...Re){return fe(Fe.HTML,De,Ie,...Re)}_e.SVG=function(De,Ie,...Re){return fe(Fe.SVG,De,Ie,...Re)};function xe(De,...Ie){De?be(...Ie):ve(...Ie)}function be(...De){for(const Ie of De)Ie.style.display="",Ie.removeAttribute("aria-hidden")}function ve(...De){for(const Ie of De)Ie.style.display="none",Ie.setAttribute("aria-hidden","true")}function we(De,Ie){const Re=De.devicePixelRatio*Ie;return Math.max(1,Math.floor(Re))/De.devicePixelRatio}function Te(De){i.mainWindow.open(De,"_blank","noopener")}function Pe(De,Ie){const Re=()=>{Ie(),Se=(0,e.scheduleAtNextAnimationFrame)(De,Re)};let Se=(0,e.scheduleAtNextAnimationFrame)(De,Re);return(0,p.toDisposable)(()=>Se.dispose())}n.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(i.mainWindow.location.href)?"https":"http");function Be(De){return De?`url('${n.FileAccess.uriToBrowserUri(De).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function He(De){return`'${De.replace(/'/g,"%27")}'`}function $e(De,Ie){if(De!==void 0){const Re=De.match(/^\s*var\((.+)\)$/);if(Re){const Se=Re[1].split(",",2);return Se.length===2&&(Ie=$e(Se[1].trim(),Ie)),`var(${Se[0]}, ${Ie})`}return De}return Ie}function je(De,Ie=!1){const Re=document.createElement("a");return b.addHook("afterSanitizeAttributes",Se=>{for(const We of["href","src"])if(Se.hasAttribute(We)){const qe=Se.getAttribute(We);if(We==="href"&&qe.startsWith("#"))continue;if(Re.href=qe,!De.includes(Re.protocol.replace(/:$/,""))){if(Ie&&We==="src"&&Re.href.startsWith("data:"))continue;Se.removeAttribute(We)}}}),(0,p.toDisposable)(()=>{b.removeHook("afterSanitizeAttributes")})}e.basicMarkupHtmlTags=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);const Xe=Object.freeze({ALLOWED_TAGS:["a","button","blockquote","code","div","h1","h2","h3","h4","h5","h6","hr","input","label","li","p","pre","select","small","span","strong","textarea","ul","ol"],ALLOWED_ATTR:["href","data-href","data-command","target","title","name","src","alt","class","id","role","tabindex","style","data-code","width","height","align","x-dispatch","required","checked","placeholder","type","start"],RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,RETURN_TRUSTED_TYPE:!0});class et extends _.Emitter{constructor(){super(),this._subscriptions=new p.DisposableStore,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(_.Event.runAndSubscribe(e.onDidRegisterWindow,({window:Ie,disposables:Re})=>this.registerListeners(Ie,Re),{window:i.mainWindow,disposables:this._subscriptions}))}registerListeners(Ie,Re){Re.add(l(Ie,"keydown",Se=>{if(Se.defaultPrevented)return;const We=new I.StandardKeyboardEvent(Se);if(!(We.keyCode===6&&Se.repeat)){if(Se.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(Se.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(Se.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(Se.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(We.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=Se.altKey,this._keyStatus.ctrlKey=Se.ctrlKey,this._keyStatus.metaKey=Se.metaKey,this._keyStatus.shiftKey=Se.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=Se,this.fire(this._keyStatus))}},!0)),Re.add(l(Ie,"keyup",Se=>{Se.defaultPrevented||(!Se.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!Se.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!Se.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!Se.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=Se.altKey,this._keyStatus.ctrlKey=Se.ctrlKey,this._keyStatus.metaKey=Se.metaKey,this._keyStatus.shiftKey=Se.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=Se,this.fire(this._keyStatus)))},!0)),Re.add(l(Ie.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Re.add(l(Ie.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Re.add(l(Ie.document.body,"mousemove",Se=>{Se.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),Re.add(l(Ie,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return et.instance||(et.instance=new et),et.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}e.ModifierKeyEmitter=et;class dt extends p.Disposable{constructor(Ie,Re){super(),this.element=Ie,this.callbacks=Re,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(l(this.element,e.EventType.DRAG_START,Ie=>{this.callbacks.onDragStart?.(Ie)})),this.callbacks.onDrag&&this._register(l(this.element,e.EventType.DRAG,Ie=>{this.callbacks.onDrag?.(Ie)})),this._register(l(this.element,e.EventType.DRAG_ENTER,Ie=>{this.counter++,this.dragStartTime=Ie.timeStamp,this.callbacks.onDragEnter?.(Ie)})),this._register(l(this.element,e.EventType.DRAG_OVER,Ie=>{Ie.preventDefault(),this.callbacks.onDragOver?.(Ie,Ie.timeStamp-this.dragStartTime)})),this._register(l(this.element,e.EventType.DRAG_LEAVE,Ie=>{this.counter--,this.counter===0&&(this.dragStartTime=0,this.callbacks.onDragLeave?.(Ie))})),this._register(l(this.element,e.EventType.DRAG_END,Ie=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd?.(Ie)})),this._register(l(this.element,e.EventType.DROP,Ie=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop?.(Ie)}))}}e.DragAndDropObserver=dt;const at=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function st(De,...Ie){let Re,Se;Array.isArray(Ie[0])?(Re={},Se=Ie[0]):(Re=Ie[0]||{},Se=Ie[1]);const We=at.exec(De);if(!We||!We.groups)throw new Error("Bad use of h");const qe=We.groups.tag||"div",Ue=document.createElement(qe);We.groups.id&&(Ue.id=We.groups.id);const Je=[];if(We.groups.class)for(const Qe of We.groups.class.split("."))Qe!==""&&Je.push(Qe);if(Re.className!==void 0)for(const Qe of Re.className.split("."))Qe!==""&&Je.push(Qe);Je.length>0&&(Ue.className=Je.join(" "));const tt={};if(We.groups.name&&(tt[We.groups.name]=Ue),Se)for(const Qe of Se)re(Qe)?Ue.appendChild(Qe):typeof Qe=="string"?Ue.append(Qe):"root"in Qe&&(Object.assign(tt,Qe),Ue.appendChild(Qe.root));for(const[Qe,rt]of Object.entries(Re))if(Qe!=="className")if(Qe==="style")for(const[Ct,ut]of Object.entries(rt))Ue.style.setProperty(bt(Ct),typeof ut=="number"?ut+"px":""+ut);else Qe==="tabIndex"?Ue.tabIndex=rt:Ue.setAttribute(bt(Qe),rt.toString());return tt.root=Ue,tt}function pt(De,...Ie){let Re,Se;Array.isArray(Ie[0])?(Re={},Se=Ie[0]):(Re=Ie[0]||{},Se=Ie[1]);const We=at.exec(De);if(!We||!We.groups)throw new Error("Bad use of h");const qe=We.groups.tag||"div",Ue=document.createElementNS("http://www.w3.org/2000/svg",qe);We.groups.id&&(Ue.id=We.groups.id);const Je=[];if(We.groups.class)for(const Qe of We.groups.class.split("."))Qe!==""&&Je.push(Qe);if(Re.className!==void 0)for(const Qe of Re.className.split("."))Qe!==""&&Je.push(Qe);Je.length>0&&(Ue.className=Je.join(" "));const tt={};if(We.groups.name&&(tt[We.groups.name]=Ue),Se)for(const Qe of Se)re(Qe)?Ue.appendChild(Qe):typeof Qe=="string"?Ue.append(Qe):"root"in Qe&&(Object.assign(tt,Qe),Ue.appendChild(Qe.root));for(const[Qe,rt]of Object.entries(Re))if(Qe!=="className")if(Qe==="style")for(const[Ct,ut]of Object.entries(rt))Ue.style.setProperty(bt(Ct),typeof ut=="number"?ut+"px":""+ut);else Qe==="tabIndex"?Ue.tabIndex=rt:Ue.setAttribute(bt(Qe),rt.toString());return tt.root=Ue,tt}function bt(De){return De.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}),define(ne[630],se([1,0,5,2,21]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createStyleSheetFromObservable=E;function E(y){const m=new k.DisposableStore,_=m.add((0,d.createStyleSheet2)());return m.add((0,I.autorun)(b=>{_.setStyle(y.read(b))})),m}}),define(ne[352],se([1,0,5]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderText=k,e.renderFormattedText=I,e.createElement=E;function k(n,o={}){const t=E(o);return t.textContent=n,t}function I(n,o={}){const t=E(o);return m(t,_(n,!!o.renderCodeSegments),o.actionHandler,o.renderCodeSegments),t}function E(n){const o=n.inline?"span":"div",t=document.createElement(o);return n.className&&(t.className=n.className),t}class y{constructor(o){this.source=o,this.index=0}eos(){return this.index>=this.source.length}next(){const o=this.peek();return this.advance(),o}peek(){return this.source[this.index]}advance(){this.index++}}function m(n,o,t,i){let s;if(o.type===2)s=document.createTextNode(o.content||"");else if(o.type===3)s=document.createElement("b");else if(o.type===4)s=document.createElement("i");else if(o.type===7&&i)s=document.createElement("code");else if(o.type===5&&t){const g=document.createElement("a");t.disposables.add(d.addStandardDisposableListener(g,"click",c=>{t.callback(String(o.index),c)})),s=g}else o.type===8?s=document.createElement("br"):o.type===1&&(s=n);s&&n!==s&&n.appendChild(s),s&&Array.isArray(o.children)&&o.children.forEach(g=>{m(s,g,t,i)})}function _(n,o){const t={type:1,children:[]};let i=0,s=t;const g=[],c=new y(n);for(;!c.eos();){let l=c.next();const a=l==="\\"&&p(c.peek(),o)!==0;if(a&&(l=c.next()),!a&&b(l,o)&&l===c.peek()){c.advance(),s.type===2&&(s=g.pop());const r=p(l,o);if(s.type===r||s.type===5&&r===6)s=g.pop();else{const u={type:r,children:[]};r===5&&(u.index=i,i++),s.children.push(u),g.push(s),s=u}}else if(l===` -`)s.type===2&&(s=g.pop()),s.children.push({type:8});else if(s.type!==2){const r={type:2,content:l};s.children.push(r),g.push(s),s=r}else s.content+=l}return s.type===2&&(s=g.pop()),g.length,t}function b(n,o){return p(n,o)!==0}function p(n,o){switch(n){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return o?7:0;default:return 0}}}),define(ne[172],se([1,0,5,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalPointerMoveMonitor=void 0;class I{constructor(){this._hooks=new k.DisposableStore,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(y,m){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const _=this._onStopCallback;this._onStopCallback=null,y&&_&&_(m)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(y,m,_,b,p){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=b,this._onStopCallback=p;let n=y;try{y.setPointerCapture(m),this._hooks.add((0,k.toDisposable)(()=>{try{y.releasePointerCapture(m)}catch{}}))}catch{n=d.getWindow(y)}this._hooks.add(d.addDisposableListener(n,d.EventType.POINTER_MOVE,o=>{if(o.buttons!==_){this.stopMonitoring(!0);return}o.preventDefault(),this._pointerMoveCallback(o)})),this._hooks.add(d.addDisposableListener(n,d.EventType.POINTER_UP,o=>this.stopMonitoring(!0)))}}e.GlobalPointerMoveMonitor=I}),define(ne[253],se([1,0,5,6,2]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PixelRatio=void 0;class E extends I.Disposable{constructor(b){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(b,!0),this._mediaQueryList=null,this._handleChange(b,!1)}_handleChange(b,p){this._mediaQueryList?.removeEventListener("change",this._listener),this._mediaQueryList=b.matchMedia(`(resolution: ${b.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),p&&this._onDidChange.fire()}}class y extends I.Disposable{get value(){return this._value}constructor(b){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(b);const p=this._register(new E(b));this._register(p.onDidChange(()=>{this._value=this._getPixelRatio(b),this._onDidChange.fire(this._value)}))}_getPixelRatio(b){const p=document.createElement("canvas").getContext("2d"),n=b.devicePixelRatio||1,o=p.webkitBackingStorePixelRatio||p.mozBackingStorePixelRatio||p.msBackingStorePixelRatio||p.oBackingStorePixelRatio||p.backingStorePixelRatio||1;return n/o}}class m{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(b){const p=(0,d.getWindowId)(b);let n=this.mapWindowIdToPixelRatioMonitor.get(p);return n||(n=(0,I.markAsSingleton)(new y(b)),this.mapWindowIdToPixelRatioMonitor.set(p,n),(0,I.markAsSingleton)(k.Event.once(d.onDidUnregisterWindow)(({vscodeWindowId:o})=>{o===p&&(n?.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(p))}))),n}getInstance(b){return this._getOrCreatePixelRatioMonitor(b)}}e.PixelRatio=new m}),define(ne[69],se([1,0,5,52,13,126,6,2,73]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Gesture=e.EventType=void 0;var b;(function(n){n.Tap="-monaco-gesturetap",n.Change="-monaco-gesturechange",n.Start="-monaco-gesturestart",n.End="-monaco-gesturesend",n.Contextmenu="-monaco-gesturecontextmenu"})(b||(e.EventType=b={}));class p extends m.Disposable{static{this.SCROLL_FRICTION=-.005}static{this.HOLD_DELAY=700}static{this.CLEAR_TAP_COUNT_TIME=400}constructor(){super(),this.dispatched=!1,this.targets=new _.LinkedList,this.ignoreTargets=new _.LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(y.Event.runAndSubscribe(d.onDidRegisterWindow,({window:o,disposables:t})=>{t.add(d.addDisposableListener(o.document,"touchstart",i=>this.onTouchStart(i),{passive:!1})),t.add(d.addDisposableListener(o.document,"touchend",i=>this.onTouchEnd(o,i))),t.add(d.addDisposableListener(o.document,"touchmove",i=>this.onTouchMove(i),{passive:!1}))},{window:k.mainWindow,disposables:this._store}))}static addTarget(o){if(!p.isTouchDevice())return m.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,m.markAsSingleton)(new p));const t=p.INSTANCE.targets.push(o);return(0,m.toDisposable)(t)}static ignoreTarget(o){if(!p.isTouchDevice())return m.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,m.markAsSingleton)(new p));const t=p.INSTANCE.ignoreTargets.push(o);return(0,m.toDisposable)(t)}static isTouchDevice(){return"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(o){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,s=o.targetTouches.length;i=p.HOLD_DELAY&&Math.abs(a.initialPageX-I.tail(a.rollingPageX))<30&&Math.abs(a.initialPageY-I.tail(a.rollingPageY))<30){const u=this.newGestureEvent(b.Contextmenu,a.initialTarget);u.pageX=I.tail(a.rollingPageX),u.pageY=I.tail(a.rollingPageY),this.dispatchEvent(u)}else if(s===1){const u=I.tail(a.rollingPageX),C=I.tail(a.rollingPageY),f=I.tail(a.rollingTimestamps)-a.rollingTimestamps[0],h=u-a.rollingPageX[0],v=C-a.rollingPageY[0],w=[...this.targets].filter(S=>a.initialTarget instanceof Node&&S.contains(a.initialTarget));this.inertia(o,w,i,Math.abs(h)/f,h>0?1:-1,u,Math.abs(v)/f,v>0?1:-1,C)}this.dispatchEvent(this.newGestureEvent(b.End,a.initialTarget)),delete this.activeTouches[l.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(o,t){const i=document.createEvent("CustomEvent");return i.initEvent(o,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(o){if(o.type===b.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>p.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,o.tapCount=i}else(o.type===b.Change||o.type===b.Contextmenu)&&(this._lastSetTapCountTime=0);if(o.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(o.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(o.initialTarget)){let s=0,g=o.initialTarget;for(;g&&g!==i;)s++,g=g.parentElement;t.push([s,i])}t.sort((i,s)=>i[0]-s[0]);for(const[i,s]of t)s.dispatchEvent(o),this.dispatched=!0}}inertia(o,t,i,s,g,c,l,a,r){this.handle=d.scheduleAtNextAnimationFrame(o,()=>{const u=Date.now(),C=u-i;let f=0,h=0,v=!0;s+=p.SCROLL_FRICTION*C,l+=p.SCROLL_FRICTION*C,s>0&&(v=!1,f=g*s*C),l>0&&(v=!1,h=a*l*C);const w=this.newGestureEvent(b.Change);w.translationX=f,w.translationY=h,t.forEach(S=>S.dispatchEvent(w)),v||this.inertia(o,t,u,s,g,c+f,l,a,r+h)})}onTouchMove(o){const t=Date.now();for(let i=0,s=o.changedTouches.length;i3&&(c.rollingPageX.shift(),c.rollingPageY.shift(),c.rollingTimestamps.shift()),c.rollingPageX.push(g.pageX),c.rollingPageY.push(g.pageY),c.rollingTimestamps.push(t)}this.dispatched&&(o.preventDefault(),o.stopPropagation(),this.dispatched=!1)}}e.Gesture=p,ke([E.memoize],p,"isTouchDevice",null)}),define(ne[46],se([1,0,5,458]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setARIAContainer=b,e.alert=p,e.status=n;const k=2e4;let I,E,y,m,_;function b(t){I=document.createElement("div"),I.className="monaco-aria-container";const i=()=>{const g=document.createElement("div");return g.className="monaco-alert",g.setAttribute("role","alert"),g.setAttribute("aria-atomic","true"),I.appendChild(g),g};E=i(),y=i();const s=()=>{const g=document.createElement("div");return g.className="monaco-status",g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true"),I.appendChild(g),g};m=s(),_=s(),t.appendChild(I)}function p(t){I&&(E.textContent!==t?(d.clearNode(y),o(E,t)):(d.clearNode(E),o(y,t)))}function n(t){I&&(m.textContent!==t?(d.clearNode(_),o(m,t)):(d.clearNode(m),o(_,t)))}function o(t,i){d.clearNode(t),i.length>k&&(i=i.substr(0,k)),t.textContent=i,t.style.visibility="hidden",t.style.visibility="visible"}}),define(ne[353],se([1,0,248,5,2,16,188,462]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextView=e.LayoutAnchorMode=void 0,e.isAnchor=m,e.layout=b;function m(o){const t=o;return!!t&&typeof t.x=="number"&&typeof t.y=="number"}var _;(function(o){o[o.AVOID=0]="AVOID",o[o.ALIGN=1]="ALIGN"})(_||(e.LayoutAnchorMode=_={}));function b(o,t,i){const s=i.mode===_.ALIGN?i.offset:i.offset+i.size,g=i.mode===_.ALIGN?i.offset+i.size:i.offset;return i.position===0?t<=o-s?s:t<=g?g-t:Math.max(o-t,0):t<=g?g-t:t<=o-s?s:0}class p extends I.Disposable{static{this.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"]}static{this.BUBBLE_DOWN_EVENTS=["click"]}constructor(t,i){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=I.Disposable.None,this.toDisposeOnSetContainer=I.Disposable.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=k.$(".context-view"),k.hide(this.view),this.setContainer(t,i),this._register((0,I.toDisposable)(()=>this.setContainer(null,1)))}setContainer(t,i){this.useFixedPosition=i!==1;const s=this.useShadowDOM;if(this.useShadowDOM=i===3,!(t===this.container&&s===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.view.remove(),this.shadowRoot&&(this.shadowRoot=null,this.shadowRootHostElement?.remove(),this.shadowRootHostElement=null),this.container=null),t)){if(this.container=t,this.useShadowDOM){this.shadowRootHostElement=k.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const c=document.createElement("style");c.textContent=n,this.shadowRoot.appendChild(c),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(k.$("slot"))}else this.container.appendChild(this.view);const g=new I.DisposableStore;p.BUBBLE_UP_EVENTS.forEach(c=>{g.add(k.addStandardDisposableListener(this.container,c,l=>{this.onDOMEvent(l,!1)}))}),p.BUBBLE_DOWN_EVENTS.forEach(c=>{g.add(k.addStandardDisposableListener(this.container,c,l=>{this.onDOMEvent(l,!0)},!0))}),this.toDisposeOnSetContainer=g}}show(t){this.isVisible()&&this.hide(),k.clearNode(this.view),this.view.className="context-view monaco-component",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex=`${2575+(t.layer??0)}`,this.view.style.position=this.useFixedPosition?"fixed":"absolute",k.show(this.view),this.toDisposeOnClean=t.render(this.view)||I.Disposable.None,this.delegate=t,this.doLayout(),this.delegate.focus?.()}getViewElement(){return this.view}layout(){if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(E.isIOS&&d.BrowserFeatures.pointerEvents)){this.hide();return}this.delegate?.layout?.(),this.doLayout()}}doLayout(){if(!this.isVisible())return;const t=this.delegate.getAnchor();let i;if(k.isHTMLElement(t)){const h=k.getDomNodePagePosition(t),v=k.getDomNodeZoomLevel(t);i={top:h.top*v,left:h.left*v,width:h.width*v,height:h.height*v}}else m(t)?i={top:t.y,left:t.x,width:t.width||1,height:t.height||2}:i={top:t.posy,left:t.posx,width:2,height:2};const s=k.getTotalWidth(this.view),g=k.getTotalHeight(this.view),c=this.delegate.anchorPosition||0,l=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let r,u;const C=k.getActiveWindow();if(a===0){const h={offset:i.top-C.pageYOffset,size:i.height,position:c===0?0:1},v={offset:i.left,size:i.width,position:l===0?0:1,mode:_.ALIGN};r=b(C.innerHeight,g,h)+C.pageYOffset,y.Range.intersects({start:r,end:r+g},{start:h.offset,end:h.offset+h.size})&&(v.mode=_.AVOID),u=b(C.innerWidth,s,v)}else{const h={offset:i.left,size:i.width,position:l===0?0:1},v={offset:i.top,size:i.height,position:c===0?0:1,mode:_.ALIGN};u=b(C.innerWidth,s,h),y.Range.intersects({start:u,end:u+s},{start:h.offset,end:h.offset+h.size})&&(v.mode=_.AVOID),r=b(C.innerHeight,g,v)+C.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(c===0?"bottom":"top"),this.view.classList.add(l===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const f=k.getDomNodePagePosition(this.container);this.view.style.top=`${r-(this.useFixedPosition?k.getDomNodePagePosition(this.view).top:f.top)}px`,this.view.style.left=`${u-(this.useFixedPosition?k.getDomNodePagePosition(this.view).left:f.left)}px`,this.view.style.width="initial"}hide(t){const i=this.delegate;this.delegate=null,i?.onHide&&i.onHide(t),this.toDisposeOnClean.dispose(),k.hide(this.view)}isVisible(){return!!this.delegate}onDOMEvent(t,i){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(t,k.getWindow(t).document.activeElement):i&&!k.isAncestor(t.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}e.ContextView=p;const n=` - :host { - all: initial; /* 1st rule so subsequent properties are reset. */ - } - - .codicon[class*='codicon-'] { - font: normal normal normal 16px/1 codicon; - display: inline-block; - text-decoration: none; - text-rendering: auto; - text-align: center; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - } - - :host { - font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; - } - - :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } - :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } - :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } - :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } - :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } - - :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } - :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } - :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } - :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } - :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } - - :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } - :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } - :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } - :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } - :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } -`}),define(ne[354],se([1,0,5,11,463]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CountBadge=void 0;class I{constructor(y,m,_){this.options=m,this.styles=_,this.count=0,this.element=(0,d.append)(y,(0,d.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(y){this.count=y,this.render()}setTitleFormat(y){this.titleFormat=y,this.render()}render(){this.element.textContent=(0,k.format)(this.countFormat,this.count),this.element.title=(0,k.format)(this.titleFormat,this.count),this.element.style.backgroundColor=this.styles.badgeBackground??"",this.element.style.color=this.styles.badgeForeground??"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}e.CountBadge=I}),define(ne[631],se([1,0,5,47,69,41,6,303]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenu=void 0;class m extends E.ActionRunner{constructor(p,n){super(),this._onDidChangeVisibility=this._register(new y.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=(0,d.append)(p,(0,d.$)(".monaco-dropdown")),this._label=(0,d.append)(this._element,(0,d.$)(".dropdown-label"));let o=n.labelRenderer;o||(o=i=>(i.textContent=n.label||"",null));for(const i of[d.EventType.CLICK,d.EventType.MOUSE_DOWN,I.EventType.Tap])this._register((0,d.addDisposableListener)(this.element,i,s=>d.EventHelper.stop(s,!0)));for(const i of[d.EventType.MOUSE_DOWN,I.EventType.Tap])this._register((0,d.addDisposableListener)(this._label,i,s=>{(0,d.isMouseEvent)(s)&&(s.detail>1||s.button!==0)||(this.visible?this.hide():this.show())}));this._register((0,d.addDisposableListener)(this._label,d.EventType.KEY_UP,i=>{const s=new k.StandardKeyboardEvent(i);(s.equals(3)||s.equals(10))&&(d.EventHelper.stop(i,!0),this.visible?this.hide():this.show())}));const t=o(this._label);t&&this._register(t),this._register(I.Gesture.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class _ extends m{constructor(p,n){super(p,n),this._options=n,this._actions=[],this.actions=n.actions||[]}set menuOptions(p){this._menuOptions=p}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(p){this._actions=p}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(p,n)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(p,n):void 0,getKeyBinding:p=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(p):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}e.DropdownMenu=_}),define(ne[114],se([1,0,5,30]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderLabelWithIcons=E,e.renderIcon=y;const I=new RegExp(`(\\\\)?\\$\\((${k.ThemeIcon.iconNameExpression}(?:${k.ThemeIcon.iconModifierExpression})?)\\)`,"g");function E(m){const _=new Array;let b,p=0,n=0;for(;(b=I.exec(m))!==null;){n=b.index||0,p{t=i===`\r -`?-1:0,s+=o;for(const g of n)g.end<=s||(g.start>=s&&(g.start+=t),g.end>=s&&(g.end+=t));return o+=t,"\u23CE"})}}e.HighlightedLabel=_}),define(ne[254],se([1,0,5,355,2,60,188,44,81,19,142,465]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IconLabel=void 0;class n{constructor(c){this._element=c}get element(){return this._element}set textContent(c){this.disposed||c===this._textContent||(this._textContent=c,this._element.textContent=c)}set classNames(c){this.disposed||(0,E.equals)(c,this._classNames)||(this._classNames=c,this._element.classList.value="",this._element.classList.add(...c))}set empty(c){this.disposed||c===this._empty||(this._empty=c,this._element.style.marginLeft=c?"0":"")}dispose(){this.disposed=!0}}class o extends I.Disposable{constructor(c,l){super(),this.customHovers=new Map,this.creationOptions=l,this.domNode=this._register(new n(d.append(c,d.$(".monaco-icon-label")))),this.labelContainer=d.append(this.domNode.element,d.$(".monaco-icon-label-container")),this.nameContainer=d.append(this.labelContainer,d.$("span.monaco-icon-name-container")),l?.supportHighlights||l?.supportIcons?this.nameNode=this._register(new s(this.nameContainer,!!l.supportIcons)):this.nameNode=new t(this.nameContainer),this.hoverDelegate=l?.hoverDelegate??(0,m.getDefaultHoverDelegate)("mouse")}get element(){return this.domNode.element}setLabel(c,l,a){const r=["monaco-icon-label"],u=["monaco-icon-label-container"];let C="";a&&(a.extraClasses&&r.push(...a.extraClasses),a.italic&&r.push("italic"),a.strikethrough&&r.push("strikethrough"),a.disabledCommand&&u.push("disabled"),a.title&&(typeof a.title=="string"?C+=a.title:C+=c));const f=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(a?.iconPath){let h;!f||!d.isHTMLElement(f)?(h=d.$(".monaco-icon-label-iconpath"),this.domNode.element.prepend(h)):h=f,h.style.backgroundImage=d.asCSSUrl(a?.iconPath)}else f&&f.remove();if(this.domNode.classNames=r,this.domNode.element.setAttribute("aria-label",C),this.labelContainer.classList.value="",this.labelContainer.classList.add(...u),this.setupHover(a?.descriptionTitle?this.labelContainer:this.element,a?.title),this.nameNode.setLabel(c,a),l||this.descriptionNode){const h=this.getOrCreateDescriptionNode();h instanceof k.HighlightedLabel?(h.set(l||"",a?a.descriptionMatches:void 0,void 0,a?.labelEscapeNewLines),this.setupHover(h.element,a?.descriptionTitle)):(h.textContent=l&&a?.labelEscapeNewLines?k.HighlightedLabel.escapeNewLines(l,[]):l||"",this.setupHover(h.element,a?.descriptionTitle||""),h.empty=!l)}if(a?.suffix||this.suffixNode){const h=this.getOrCreateSuffixNode();h.textContent=a?.suffix??""}}setupHover(c,l){const a=this.customHovers.get(c);if(a&&(a.dispose(),this.customHovers.delete(c)),!l){c.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)(function(u,C){(0,b.isString)(C)?u.title=(0,p.stripIcons)(C):C?.markdownNotSupportedFallback?u.title=C.markdownNotSupportedFallback:u.removeAttribute("title")})(c,l);else{const r=(0,_.getBaseLayerHoverDelegate)().setupManagedHover(this.hoverDelegate,c,l);r&&this.customHovers.set(c,r)}}dispose(){super.dispose();for(const c of this.customHovers.values())c.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const c=this._register(new n(d.after(this.nameContainer,d.$("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new n(d.append(c.element,d.$("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){if(!this.descriptionNode){const c=this._register(new n(d.append(this.labelContainer,d.$("span.monaco-icon-description-container"))));this.creationOptions?.supportDescriptionHighlights?this.descriptionNode=this._register(new k.HighlightedLabel(d.append(c.element,d.$("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new n(d.append(c.element,d.$("span.label-description"))))}return this.descriptionNode}}e.IconLabel=o;class t{constructor(c){this.container=c,this.label=void 0,this.singleLabel=void 0}setLabel(c,l){if(!(this.label===c&&(0,E.equals)(this.options,l)))if(this.label=c,this.options=l,typeof c=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=d.append(this.container,d.$("a.label-name",{id:l?.domId}))),this.singleLabel.textContent=c;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let a=0;a{const u={start:a,end:a+r.length},C=l.map(f=>y.Range.intersect(u,f)).filter(f=>!y.Range.isEmpty(f)).map(({start:f,end:h})=>({start:f-a,end:h-a}));return a=u.end+c.length,C})}class s extends I.Disposable{constructor(c,l){super(),this.container=c,this.supportIcons=l,this.label=void 0,this.singleLabel=void 0}setLabel(c,l){if(!(this.label===c&&(0,E.equals)(this.options,l)))if(this.label=c,this.options=l,typeof c=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new k.HighlightedLabel(d.append(this.container,d.$("a.label-name",{id:l?.domId})),{supportIcons:this.supportIcons}))),this.singleLabel.set(c,l?.matches,void 0,l?.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const a=l?.separator||"/",r=i(c,a,l?.matches);for(let u=0;u{for(const m of E)this.getRenderer(y).disposeTemplate(m.templateData),m.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(E){const y=this.renderers.get(E);if(!y)throw new Error(`No renderer found for ${E}`);return y}}e.RowCache=k}),define(ne[633],se([1,0,5,14,2,469]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressBar=void 0;const E="done",y="active",m="infinite",_="infinite-long-running",b="discrete";class p extends I.Disposable{static{this.LONG_RUNNING_INFINITE_THRESHOLD=1e4}constructor(o,t){super(),this.progressSignal=this._register(new I.MutableDisposable),this.workedVal=0,this.showDelayedScheduler=this._register(new k.RunOnceScheduler(()=>(0,d.show)(this.element),0)),this.longRunningScheduler=this._register(new k.RunOnceScheduler(()=>this.infiniteLongRunning(),p.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(o,t)}create(o,t){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),o.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=t?.progressBarBackground||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(y,m,_,b),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(o){return this.element.classList.add(E),this.element.classList.contains(m)?(this.bit.style.opacity="0",o?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",o?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(b,E,_),this.element.classList.add(y,m),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(_)}getContainer(){return this.element}}e.ProgressBar=p}),define(ne[173],se([1,0,5,93,69,14,126,6,2,16,470]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Sash=e.OrthogonalEdge=void 0;const p=!1;var n;(function(u){u.North="north",u.South="south",u.East="east",u.West="west"})(n||(e.OrthogonalEdge=n={}));let o=4;const t=new m.Emitter;let i=300;const s=new m.Emitter;class g{constructor(C){this.el=C,this.disposables=new _.DisposableStore}get onPointerMove(){return this.disposables.add(new k.DomEmitter((0,d.getWindow)(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter((0,d.getWindow)(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}ke([y.memoize],g.prototype,"onPointerMove",null),ke([y.memoize],g.prototype,"onPointerUp",null);class c{get onPointerMove(){return this.disposables.add(new k.DomEmitter(this.el,I.EventType.Change)).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter(this.el,I.EventType.End)).event}constructor(C){this.el=C,this.disposables=new _.DisposableStore}dispose(){this.disposables.dispose()}}ke([y.memoize],c.prototype,"onPointerMove",null),ke([y.memoize],c.prototype,"onPointerUp",null);class l{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(C){this.factory=C}dispose(){}}ke([y.memoize],l.prototype,"onPointerMove",null),ke([y.memoize],l.prototype,"onPointerUp",null);const a="pointer-events-disabled";class r extends _.Disposable{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(C){this._state!==C&&(this.el.classList.toggle("disabled",C===0),this.el.classList.toggle("minimum",C===1),this.el.classList.toggle("maximum",C===2),this._state=C,this.onDidEnablementChange.fire(C))}set orthogonalStartSash(C){if(this._orthogonalStartSash!==C){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),C){const f=h=>{this.orthogonalStartDragHandleDisposables.clear(),h!==0&&(this._orthogonalStartDragHandle=(0,d.append)(this.el,(0,d.$)(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add((0,_.toDisposable)(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseenter")).event(()=>r.onMouseEnter(C),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseleave")).event(()=>r.onMouseLeave(C),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(C.onDidEnablementChange.event(f,this)),f(C.state)}this._orthogonalStartSash=C}}set orthogonalEndSash(C){if(this._orthogonalEndSash!==C){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),C){const f=h=>{this.orthogonalEndDragHandleDisposables.clear(),h!==0&&(this._orthogonalEndDragHandle=(0,d.append)(this.el,(0,d.$)(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add((0,_.toDisposable)(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseenter")).event(()=>r.onMouseEnter(C),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseleave")).event(()=>r.onMouseLeave(C),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(C.onDidEnablementChange.event(f,this)),f(C.state)}this._orthogonalEndSash=C}}constructor(C,f,h){super(),this.hoverDelay=i,this.hoverDelayer=this._register(new E.Delayer(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new m.Emitter),this._onDidStart=this._register(new m.Emitter),this._onDidChange=this._register(new m.Emitter),this._onDidReset=this._register(new m.Emitter),this._onDidEnd=this._register(new m.Emitter),this.orthogonalStartSashDisposables=this._register(new _.DisposableStore),this.orthogonalStartDragHandleDisposables=this._register(new _.DisposableStore),this.orthogonalEndSashDisposables=this._register(new _.DisposableStore),this.orthogonalEndDragHandleDisposables=this._register(new _.DisposableStore),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=(0,d.append)(C,(0,d.$)(".monaco-sash")),h.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${h.orthogonalEdge}`),b.isMacintosh&&this.el.classList.add("mac");const v=this._register(new k.DomEmitter(this.el,"mousedown")).event;this._register(v(A=>this.onPointerStart(A,new g(C)),this));const w=this._register(new k.DomEmitter(this.el,"dblclick")).event;this._register(w(this.onPointerDoublePress,this));const S=this._register(new k.DomEmitter(this.el,"mouseenter")).event;this._register(S(()=>r.onMouseEnter(this)));const L=this._register(new k.DomEmitter(this.el,"mouseleave")).event;this._register(L(()=>r.onMouseLeave(this))),this._register(I.Gesture.addTarget(this.el));const D=this._register(new k.DomEmitter(this.el,I.EventType.Start)).event;this._register(D(A=>this.onPointerStart(A,new c(this.el)),this));const T=this._register(new k.DomEmitter(this.el,I.EventType.Tap)).event;let M;this._register(T(A=>{if(M){clearTimeout(M),M=void 0,this.onPointerDoublePress(A);return}clearTimeout(M),M=setTimeout(()=>M=void 0,250)},this)),typeof h.size=="number"?(this.size=h.size,h.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=o,this._register(t.event(A=>{this.size=A,this.layout()}))),this._register(s.event(A=>this.hoverDelay=A)),this.layoutProvider=f,this.orthogonalStartSash=h.orthogonalStartSash,this.orthogonalEndSash=h.orthogonalEndSash,this.orientation=h.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",p),this.layout()}onPointerStart(C,f){d.EventHelper.stop(C);let h=!1;if(!C.__orthogonalSashEvent){const O=this.getOrthogonalSash(C);O&&(h=!0,C.__orthogonalSashEvent=!0,O.onPointerStart(C,new l(f)))}if(this.linkedSash&&!C.__linkedSashEvent&&(C.__linkedSashEvent=!0,this.linkedSash.onPointerStart(C,new l(f))),!this.state)return;const v=this.el.ownerDocument.getElementsByTagName("iframe");for(const O of v)O.classList.add(a);const w=C.pageX,S=C.pageY,L=C.altKey,D={startX:w,currentX:w,startY:S,currentY:S,altKey:L};this.el.classList.add("active"),this._onDidStart.fire(D);const T=(0,d.createStyleSheet)(this.el),M=()=>{let O="";h?O="all-scroll":this.orientation===1?this.state===1?O="s-resize":this.state===2?O="n-resize":O=b.isMacintosh?"row-resize":"ns-resize":this.state===1?O="e-resize":this.state===2?O="w-resize":O=b.isMacintosh?"col-resize":"ew-resize",T.textContent=`* { cursor: ${O} !important; }`},A=new _.DisposableStore;M(),h||this.onDidEnablementChange.event(M,null,A);const P=O=>{d.EventHelper.stop(O,!1);const F={startX:w,currentX:O.pageX,startY:S,currentY:O.pageY,altKey:L};this._onDidChange.fire(F)},N=O=>{d.EventHelper.stop(O,!1),T.remove(),this.el.classList.remove("active"),this._onDidEnd.fire(),A.dispose();for(const F of v)F.classList.remove(a)};f.onPointerMove(P,null,A),f.onPointerUp(N,null,A),A.add(f)}onPointerDoublePress(C){const f=this.getOrthogonalSash(C);f&&f._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(C,f=!1){C.el.classList.contains("active")?(C.hoverDelayer.cancel(),C.el.classList.add("hover")):C.hoverDelayer.trigger(()=>C.el.classList.add("hover"),C.hoverDelay).then(void 0,()=>{}),!f&&C.linkedSash&&r.onMouseEnter(C.linkedSash,!0)}static onMouseLeave(C,f=!1){C.hoverDelayer.cancel(),C.el.classList.remove("hover"),!f&&C.linkedSash&&r.onMouseLeave(C.linkedSash,!0)}clearSashHoverState(){r.onMouseLeave(this)}layout(){if(this.orientation===0){const C=this.layoutProvider;this.el.style.left=C.getVerticalSashLeft(this)-this.size/2+"px",C.getVerticalSashTop&&(this.el.style.top=C.getVerticalSashTop(this)+"px"),C.getVerticalSashHeight&&(this.el.style.height=C.getVerticalSashHeight(this)+"px")}else{const C=this.layoutProvider;this.el.style.top=C.getHorizontalSashTop(this)-this.size/2+"px",C.getHorizontalSashLeft&&(this.el.style.left=C.getHorizontalSashLeft(this)+"px"),C.getHorizontalSashWidth&&(this.el.style.width=C.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(C){const f=C.initialTarget??C.target;if(!(!f||!(0,d.isHTMLElement)(f))&&f.classList.contains("orthogonal-drag-handle"))return f.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}e.Sash=r}),define(ne[255],se([1,0,5,173,6,2]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableHTMLElement=void 0;class y{constructor(){this._onDidWillResize=new I.Emitter,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new I.Emitter,this.onDidResize=this._onDidResize.event,this._sashListener=new E.DisposableStore,this._size=new d.Dimension(0,0),this._minSize=new d.Dimension(0,0),this._maxSize=new d.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:k.OrthogonalEdge.North}),this._southSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:k.OrthogonalEdge.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let _,b=0,p=0;this._sashListener.add(I.Event.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{_===void 0&&(this._onDidWillResize.fire(),_=this._size,b=0,p=0)})),this._sashListener.add(I.Event.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{_!==void 0&&(_=void 0,b=0,p=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(n=>{_&&(p=n.currentX-n.startX,this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(n=>{_&&(p=-(n.currentX-n.startX),this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(n=>{_&&(b=-(n.currentY-n.startY),this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(n=>{_&&(b=n.currentY-n.startY,this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(I.Event.any(this._eastSash.onDidReset,this._westSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(I.Event.any(this._northSash.onDidReset,this._southSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(_,b,p,n){this._northSash.state=_?3:0,this._eastSash.state=b?3:0,this._southSash.state=p?3:0,this._westSash.state=n?3:0}layout(_=this.size.height,b=this.size.width){const{height:p,width:n}=this._minSize,{height:o,width:t}=this._maxSize;_=Math.max(p,Math.min(o,_)),b=Math.max(n,Math.min(t,b));const i=new d.Dimension(b,_);d.Dimension.equals(i,this._size)||(this.domNode.style.height=_+"px",this.domNode.style.width=b+"px",this._size=i,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(_){this._maxSize=_}get maxSize(){return this._maxSize}set minSize(_){this._minSize=_}get minSize(){return this._minSize}set preferredSize(_){this._preferredSize=_}get preferredSize(){return this._preferredSize}}e.ResizableHTMLElement=y}),define(ne[634],se([1,0,5,69,13,6,2,16]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectBoxNative=void 0;class _ extends y.Disposable{constructor(p,n,o,t){super(),this.selected=0,this.selectBoxOptions=t||Object.create(null),this.options=[],this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new E.Emitter),this.styles=o,this.registerListeners(),this.setOptions(p,n)}registerListeners(){this._register(k.Gesture.addTarget(this.selectElement)),[k.EventType.Tap].forEach(p=>{this._register(d.addDisposableListener(this.selectElement,p,n=>{this.selectElement.focus()}))}),this._register(d.addStandardDisposableListener(this.selectElement,"click",p=>{d.EventHelper.stop(p,!0)})),this._register(d.addStandardDisposableListener(this.selectElement,"change",p=>{this.selectElement.title=p.target.value,this._onDidSelect.fire({index:p.target.selectedIndex,selected:p.target.value})})),this._register(d.addStandardDisposableListener(this.selectElement,"keydown",p=>{let n=!1;m.isMacintosh?(p.keyCode===18||p.keyCode===16||p.keyCode===10)&&(n=!0):(p.keyCode===18&&p.altKey||p.keyCode===10||p.keyCode===3)&&(n=!0),n&&p.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(p,n){(!this.options||!I.equals(this.options,p))&&(this.options=p,this.selectElement.options.length=0,this.options.forEach((o,t)=>{this.selectElement.add(this.createOption(o.text,t,o.isDisabled))})),n!==void 0&&this.select(n)}select(p){this.options.length===0?this.selected=0:p>=0&&pthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selectedp(new I.StandardMouseEvent(d.getWindow(b),n))))}onmousedown(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_DOWN,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onmouseover(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_OVER,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onmouseleave(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_LEAVE,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onkeydown(b,p){this._register(d.addDisposableListener(b,d.EventType.KEY_DOWN,n=>p(new k.StandardKeyboardEvent(n))))}onkeyup(b,p){this._register(d.addDisposableListener(b,d.EventType.KEY_UP,n=>p(new k.StandardKeyboardEvent(n))))}oninput(b,p){this._register(d.addDisposableListener(b,d.EventType.INPUT,p))}onblur(b,p){this._register(d.addDisposableListener(b,d.EventType.BLUR,p))}onfocus(b,p){this._register(d.addDisposableListener(b,d.EventType.FOCUS,p))}ignoreGesture(b){return E.Gesture.ignoreTarget(b)}}e.Widget=m}),define(ne[256],se([1,0,172,85,14,30,5]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarArrow=e.ARROW_IMG_SIZE=void 0,e.ARROW_IMG_SIZE=11;class m extends k.Widget{constructor(b){super(),this._onActivate=b.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=b.bgWidth+"px",this.bgDomNode.style.height=b.bgHeight+"px",typeof b.top<"u"&&(this.bgDomNode.style.top="0px"),typeof b.left<"u"&&(this.bgDomNode.style.left="0px"),typeof b.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof b.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=b.className,this.domNode.classList.add(...E.ThemeIcon.asClassNameArray(b.icon)),this.domNode.style.position="absolute",this.domNode.style.width=e.ARROW_IMG_SIZE+"px",this.domNode.style.height=e.ARROW_IMG_SIZE+"px",typeof b.top<"u"&&(this.domNode.style.top=b.top+"px"),typeof b.left<"u"&&(this.domNode.style.left=b.left+"px"),typeof b.bottom<"u"&&(this.domNode.style.bottom=b.bottom+"px"),typeof b.right<"u"&&(this.domNode.style.right=b.right+"px"),this._pointerMoveMonitor=this._register(new d.GlobalPointerMoveMonitor),this._register(y.addStandardDisposableListener(this.bgDomNode,y.EventType.POINTER_DOWN,p=>this._arrowPointerDown(p))),this._register(y.addStandardDisposableListener(this.domNode,y.EventType.POINTER_DOWN,p=>this._arrowPointerDown(p))),this._pointerdownRepeatTimer=this._register(new y.WindowIntervalTimer),this._pointerdownScheduleRepeatTimer=this._register(new I.TimeoutTimer)}_arrowPointerDown(b){if(!b.target||!(b.target instanceof Element))return;const p=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,y.getWindow(b))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(p,200),this._pointerMoveMonitor.startMonitoring(b.target,b.pointerId,b.buttons,n=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),b.preventDefault()}}e.ScrollbarArrow=m}),define(ne[356],se([1,0,5,39,172,256,626,85,16]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractScrollbar=void 0;const b=140;class p extends m.Widget{constructor(o){super(),this._lazyRender=o.lazyRender,this._host=o.host,this._scrollable=o.scrollable,this._scrollByPage=o.scrollByPage,this._scrollbarState=o.scrollbarState,this._visibilityController=this._register(new y.ScrollbarVisibilityController(o.visibility,"visible scrollbar "+o.extraScrollbarClassName,"invisible scrollbar "+o.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new I.GlobalPointerMoveMonitor),this._shouldRender=!0,this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(d.addDisposableListener(this.domNode.domNode,d.EventType.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(o){const t=this._register(new E.ScrollbarArrow(o));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(o,t,i,s){this.slider=(0,k.createFastDomNode)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(o),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof s=="number"&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(d.addDisposableListener(this.slider.domNode,d.EventType.POINTER_DOWN,g=>{g.button===0&&(g.preventDefault(),this._sliderPointerDown(g))})),this.onclick(this.slider.domNode,g=>{g.leftButton&&g.stopPropagation()})}_onElementSize(o){return this._scrollbarState.setVisibleSize(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(o){return this._scrollbarState.setScrollSize(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(o){return this._scrollbarState.setScrollPosition(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(o){o.target===this.domNode.domNode&&this._onPointerDown(o)}delegatePointerDown(o){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),g=this._sliderPointerPosition(o);i<=g&&g<=s?o.button===0&&(o.preventDefault(),this._sliderPointerDown(o)):this._onPointerDown(o)}_onPointerDown(o){let t,i;if(o.target===this.domNode.domNode&&typeof o.offsetX=="number"&&typeof o.offsetY=="number")t=o.offsetX,i=o.offsetY;else{const g=d.getDomNodePagePosition(this.domNode.domNode);t=o.pageX-g.left,i=o.pageY-g.top}const s=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),o.button===0&&(o.preventDefault(),this._sliderPointerDown(o))}_sliderPointerDown(o){if(!o.target||!(o.target instanceof Element))return;const t=this._sliderPointerPosition(o),i=this._sliderOrthogonalPointerPosition(o),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(o.target,o.pointerId,o.buttons,g=>{const c=this._sliderOrthogonalPointerPosition(g),l=Math.abs(c-i);if(_.isWindows&&l>b){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const r=this._sliderPointerPosition(g)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(r))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(o){const t={};this.writeScrollPosition(t,o),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(o){this._updateScrollbarSize(o),this._scrollbarState.setScrollbarSize(o),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}e.AbstractScrollbar=p}),define(ne[635],se([1,0,77,356,256,223,26]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HorizontalScrollbar=void 0;class m extends k.AbstractScrollbar{constructor(b,p,n){const o=b.getScrollDimensions(),t=b.getCurrentScrollPosition();if(super({lazyRender:p.lazyRender,host:n,scrollbarState:new E.ScrollbarState(p.horizontalHasArrows?p.arrowSize:0,p.horizontal===2?0:p.horizontalScrollbarSize,p.vertical===2?0:p.verticalScrollbarSize,o.width,o.scrollWidth,t.scrollLeft),visibility:p.horizontal,extraScrollbarClassName:"horizontal",scrollable:b,scrollByPage:p.scrollByPage}),p.horizontalHasArrows){const i=(p.arrowSize-I.ARROW_IMG_SIZE)/2,s=(p.horizontalScrollbarSize-I.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonLeft,top:s,left:i,bottom:void 0,right:void 0,bgWidth:p.arrowSize,bgHeight:p.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,1,0))}),this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonRight,top:s,left:void 0,bottom:void 0,right:i,bgWidth:p.arrowSize,bgHeight:p.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,-1,0))})}this._createSlider(Math.floor((p.horizontalScrollbarSize-p.horizontalSliderSize)/2),0,void 0,p.horizontalSliderSize)}_updateSlider(b,p){this.slider.setWidth(b),this.slider.setLeft(p)}_renderDomNode(b,p){this.domNode.setWidth(b),this.domNode.setHeight(p),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(b){return this._shouldRender=this._onElementScrollSize(b.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(b.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(b.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(b,p){return b}_sliderPointerPosition(b){return b.pageX}_sliderOrthogonalPointerPosition(b){return b.pageY}_updateScrollbarSize(b){this.slider.setHeight(b)}writeScrollPosition(b,p){b.scrollLeft=p}updateOptions(b){this.updateScrollbarSize(b.horizontal===2?0:b.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(b.vertical===2?0:b.verticalScrollbarSize),this._visibilityController.setVisibility(b.horizontal),this._scrollByPage=b.scrollByPage}}e.HorizontalScrollbar=m}),define(ne[636],se([1,0,77,356,256,223,26]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VerticalScrollbar=void 0;class m extends k.AbstractScrollbar{constructor(b,p,n){const o=b.getScrollDimensions(),t=b.getCurrentScrollPosition();if(super({lazyRender:p.lazyRender,host:n,scrollbarState:new E.ScrollbarState(p.verticalHasArrows?p.arrowSize:0,p.vertical===2?0:p.verticalScrollbarSize,0,o.height,o.scrollHeight,t.scrollTop),visibility:p.vertical,extraScrollbarClassName:"vertical",scrollable:b,scrollByPage:p.scrollByPage}),p.verticalHasArrows){const i=(p.arrowSize-I.ARROW_IMG_SIZE)/2,s=(p.verticalScrollbarSize-I.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonUp,top:i,left:s,bottom:void 0,right:void 0,bgWidth:p.verticalScrollbarSize,bgHeight:p.arrowSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,0,1))}),this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonDown,top:void 0,left:s,bottom:i,right:void 0,bgWidth:p.verticalScrollbarSize,bgHeight:p.arrowSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,0,-1))})}this._createSlider(0,Math.floor((p.verticalScrollbarSize-p.verticalSliderSize)/2),p.verticalSliderSize,void 0)}_updateSlider(b,p){this.slider.setHeight(b),this.slider.setTop(p)}_renderDomNode(b,p){this.domNode.setWidth(p),this.domNode.setHeight(b),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(b){return this._shouldRender=this._onElementScrollSize(b.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(b.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(b.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(b,p){return p}_sliderPointerPosition(b){return b.pageY}_sliderOrthogonalPointerPosition(b){return b.pageX}_updateScrollbarSize(b){this.slider.setWidth(b)}writeScrollPosition(b,p){b.scrollTop=p}updateOptions(b){this.updateScrollbarSize(b.vertical===2?0:b.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(b.vertical),this._scrollByPage=b.scrollByPage}}e.VerticalScrollbar=m}),define(ne[86],se([1,0,64,5,39,77,635,636,85,14,6,2,16,163,471]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomScrollableElement=e.SmoothScrollableElement=e.ScrollableElement=e.AbstractScrollableElement=e.MouseWheelClassifier=void 0;const i=500,s=50,g=!0;class c{constructor(v,w,S){this.timestamp=v,this.deltaX=w,this.deltaY=S,this.score=0}}class l{static{this.INSTANCE=new l}constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let v=1,w=0,S=1,L=this._rear;do{const D=L===this._front?v:Math.pow(2,-S);if(v-=D,w+=this._memory[L].score*D,L===this._front)break;L=(this._capacity+L-1)%this._capacity,S++}while(!0);return w<=.5}acceptStandardWheelEvent(v){if(d.isChrome){const w=k.getWindow(v.browserEvent),S=(0,d.getZoomFactor)(w);this.accept(Date.now(),v.deltaX*S,v.deltaY*S)}else this.accept(Date.now(),v.deltaX,v.deltaY)}accept(v,w,S){let L=null;const D=new c(v,w,S);this._front===-1&&this._rear===-1?(this._memory[0]=D,this._front=0,this._rear=0):(L=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=D),D.score=this._computeScore(D,L)}_computeScore(v,w){if(Math.abs(v.deltaX)>0&&Math.abs(v.deltaY)>0)return 1;let S=.5;if((!this._isAlmostInt(v.deltaX)||!this._isAlmostInt(v.deltaY))&&(S+=.25),w){const L=Math.abs(v.deltaX),D=Math.abs(v.deltaY),T=Math.abs(w.deltaX),M=Math.abs(w.deltaY),A=Math.max(Math.min(L,T),1),P=Math.max(Math.min(D,M),1),N=Math.max(L,T),O=Math.max(D,M);N%A===0&&O%P===0&&(S-=.5)}return Math.min(Math.max(S,0),1)}_isAlmostInt(v){return Math.abs(Math.round(v)-v)<.01}}e.MouseWheelClassifier=l;class a extends _.Widget{get options(){return this._options}constructor(v,w,S){super(),this._onScroll=this._register(new p.Emitter),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new p.Emitter),v.style.overflow="hidden",this._options=f(w),this._scrollable=S,this._register(this._scrollable.onScroll(D=>{this._onWillScroll.fire(D),this._onDidScroll(D),this._onScroll.fire(D)}));const L={onMouseWheel:D=>this._onMouseWheel(D),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new m.VerticalScrollbar(this._scrollable,this._options,L)),this._horizontalScrollbar=this._register(new y.HorizontalScrollbar(this._scrollable,this._options,L)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(v),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,D=>this._onMouseOver(D)),this.onmouseleave(this._listenOnDomNode,D=>this._onMouseLeave(D)),this._hideTimeout=this._register(new b.TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=(0,n.dispose)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(v){this._verticalScrollbar.delegatePointerDown(v)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(v){this._scrollable.setScrollDimensions(v,!1)}updateClassName(v){this._options.className=v,o.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(v){typeof v.handleMouseWheel<"u"&&(this._options.handleMouseWheel=v.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof v.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=v.mouseWheelScrollSensitivity),typeof v.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=v.fastScrollSensitivity),typeof v.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=v.scrollPredominantAxis),typeof v.horizontal<"u"&&(this._options.horizontal=v.horizontal),typeof v.vertical<"u"&&(this._options.vertical=v.vertical),typeof v.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=v.horizontalScrollbarSize),typeof v.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=v.verticalScrollbarSize),typeof v.scrollByPage<"u"&&(this._options.scrollByPage=v.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(v){this._onMouseWheel(new E.StandardWheelEvent(v))}_setListeningToMouseWheel(v){if(this._mouseWheelToDispose.length>0!==v&&(this._mouseWheelToDispose=(0,n.dispose)(this._mouseWheelToDispose),v)){const S=L=>{this._onMouseWheel(new E.StandardWheelEvent(L))};this._mouseWheelToDispose.push(k.addDisposableListener(this._listenOnDomNode,k.EventType.MOUSE_WHEEL,S,{passive:!1}))}}_onMouseWheel(v){if(v.browserEvent?.defaultPrevented)return;const w=l.INSTANCE;g&&w.acceptStandardWheelEvent(v);let S=!1;if(v.deltaY||v.deltaX){let D=v.deltaY*this._options.mouseWheelScrollSensitivity,T=v.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&T+D===0?T=D=0:Math.abs(D)>=Math.abs(T)?T=0:D=0),this._options.flipAxes&&([D,T]=[T,D]);const M=!o.isMacintosh&&v.browserEvent&&v.browserEvent.shiftKey;(this._options.scrollYToX||M)&&!T&&(T=D,D=0),v.browserEvent&&v.browserEvent.altKey&&(T=T*this._options.fastScrollSensitivity,D=D*this._options.fastScrollSensitivity);const A=this._scrollable.getFutureScrollPosition();let P={};if(D){const N=s*D,O=A.scrollTop-(N<0?Math.floor(N):Math.ceil(N));this._verticalScrollbar.writeScrollPosition(P,O)}if(T){const N=s*T,O=A.scrollLeft-(N<0?Math.floor(N):Math.ceil(N));this._horizontalScrollbar.writeScrollPosition(P,O)}P=this._scrollable.validateScrollPosition(P),(A.scrollLeft!==P.scrollLeft||A.scrollTop!==P.scrollTop)&&(g&&this._options.mouseWheelSmoothScroll&&w.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(P):this._scrollable.setScrollPositionNow(P),S=!0)}let L=S;!L&&this._options.alwaysConsumeMouseWheel&&(L=!0),!L&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(L=!0),L&&(v.preventDefault(),v.stopPropagation())}_onDidScroll(v){this._shouldRender=this._horizontalScrollbar.onDidScroll(v)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(v)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const v=this._scrollable.getCurrentScrollPosition(),w=v.scrollTop>0,S=v.scrollLeft>0,L=S?" left":"",D=w?" top":"",T=S||w?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${L}`),this._topShadowDomNode.setClassName(`shadow${D}`),this._topLeftShadowDomNode.setClassName(`shadow${T}${D}${L}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(v){this._mouseIsOver=!1,this._hide()}_onMouseOver(v){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),i)}}e.AbstractScrollableElement=a;class r extends a{constructor(v,w){w=w||{},w.mouseWheelSmoothScroll=!1;const S=new t.Scrollable({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:L=>k.scheduleAtNextAnimationFrame(k.getWindow(v),L)});super(v,w,S),this._register(S)}setScrollPosition(v){this._scrollable.setScrollPositionNow(v)}}e.ScrollableElement=r;class u extends a{constructor(v,w,S){super(v,w,S)}setScrollPosition(v){v.reuseAnimation?this._scrollable.setScrollPositionSmooth(v,v.reuseAnimation):this._scrollable.setScrollPositionNow(v)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}e.SmoothScrollableElement=u;class C extends a{constructor(v,w){w=w||{},w.mouseWheelSmoothScroll=!1;const S=new t.Scrollable({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:L=>k.scheduleAtNextAnimationFrame(k.getWindow(v),L)});super(v,w,S),this._register(S),this._element=v,this._register(this.onScroll(L=>{L.scrollTopChanged&&(this._element.scrollTop=L.scrollTop),L.scrollLeftChanged&&(this._element.scrollLeft=L.scrollLeft)})),this.scanDomNode()}setScrollPosition(v){this._scrollable.setScrollPositionNow(v)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}e.DomScrollableElement=C;function f(h){const v={lazyRender:typeof h.lazyRender<"u"?h.lazyRender:!1,className:typeof h.className<"u"?h.className:"",useShadows:typeof h.useShadows<"u"?h.useShadows:!0,handleMouseWheel:typeof h.handleMouseWheel<"u"?h.handleMouseWheel:!0,flipAxes:typeof h.flipAxes<"u"?h.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof h.consumeMouseWheelIfScrollbarIsNeeded<"u"?h.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof h.alwaysConsumeMouseWheel<"u"?h.alwaysConsumeMouseWheel:!1,scrollYToX:typeof h.scrollYToX<"u"?h.scrollYToX:!1,mouseWheelScrollSensitivity:typeof h.mouseWheelScrollSensitivity<"u"?h.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof h.fastScrollSensitivity<"u"?h.fastScrollSensitivity:5,scrollPredominantAxis:typeof h.scrollPredominantAxis<"u"?h.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof h.mouseWheelSmoothScroll<"u"?h.mouseWheelSmoothScroll:!0,arrowSize:typeof h.arrowSize<"u"?h.arrowSize:11,listenOnDomNode:typeof h.listenOnDomNode<"u"?h.listenOnDomNode:null,horizontal:typeof h.horizontal<"u"?h.horizontal:1,horizontalScrollbarSize:typeof h.horizontalScrollbarSize<"u"?h.horizontalScrollbarSize:10,horizontalSliderSize:typeof h.horizontalSliderSize<"u"?h.horizontalSliderSize:0,horizontalHasArrows:typeof h.horizontalHasArrows<"u"?h.horizontalHasArrows:!1,vertical:typeof h.vertical<"u"?h.vertical:1,verticalScrollbarSize:typeof h.verticalScrollbarSize<"u"?h.verticalScrollbarSize:10,verticalHasArrows:typeof h.verticalHasArrows<"u"?h.verticalHasArrows:!1,verticalSliderSize:typeof h.verticalSliderSize<"u"?h.verticalSliderSize:0,scrollByPage:typeof h.scrollByPage<"u"?h.scrollByPage:!1};return v.horizontalSliderSize=typeof h.horizontalSliderSize<"u"?h.horizontalSliderSize:v.horizontalScrollbarSize,v.verticalSliderSize=typeof h.verticalSliderSize<"u"?h.verticalSliderSize:v.verticalScrollbarSize,o.isMacintosh&&(v.className+=" mac"),v}}),define(ne[174],se([1,0,5,47,86,2,3,464]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeyDownAction=e.ClickAction=e.HoverAction=e.HoverWidget=void 0,e.getHoverAccessibleViewHint=p;const m=d.$;class _ extends E.Disposable{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new I.DomScrollableElement(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}e.HoverWidget=_;class b extends E.Disposable{static render(i,s,g){return new b(i,s,g)}constructor(i,s,g){super(),this.actionLabel=s.label,this.actionKeybindingLabel=g,this.actionContainer=d.append(i,m("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=d.append(this.actionContainer,m("a.action")),this.action.setAttribute("role","button"),s.iconClass&&d.append(this.action,m(`span.icon.${s.iconClass}`));const c=d.append(this.action,m("span"));c.textContent=g?`${s.label} (${g})`:s.label,this._store.add(new n(this.actionContainer,s.run)),this._store.add(new o(this.actionContainer,s.run,[3,10])),this.setEnabled(!0)}setEnabled(i){i?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}e.HoverAction=b;function p(t,i){return t&&i?(0,y.localize)(7,"Inspect this in the accessible view with {0}.",i):t?(0,y.localize)(8,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class n extends E.Disposable{constructor(i,s){super(),this._register(d.addDisposableListener(i,d.EventType.CLICK,g=>{g.stopPropagation(),g.preventDefault(),s(i)}))}}e.ClickAction=n;class o extends E.Disposable{constructor(i,s,g){super(),this._register(d.addDisposableListener(i,d.EventType.KEY_DOWN,c=>{const l=new k.StandardKeyboardEvent(c);g.some(a=>l.equals(a))&&(c.stopPropagation(),c.preventDefault(),s(i))}))}}e.KeyDownAction=o}),define(ne[257],se([1,0,224,5,93,69,86,13,14,126,6,2,188,163,454,632,8,141]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListView=e.NativeDragAndDropData=e.ExternalElementsDragAndDropData=e.ElementsDragAndDropData=void 0;const l={CurrentDragAndDropData:void 0},a={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(w){return[w]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class r{constructor(S){this.elements=S}update(){}getData(){return this.elements}}e.ElementsDragAndDropData=r;class u{constructor(S){this.elements=S}update(){}getData(){return this.elements}}e.ExternalElementsDragAndDropData=u;class C{constructor(){this.types=[],this.files=[]}update(S){if(S.types&&this.types.splice(0,this.types.length,...S.types),S.files){this.files.splice(0,this.files.length);for(let L=0;LT,S?.getPosInSet?this.getPosInSet=S.getPosInSet.bind(S):this.getPosInSet=(L,D)=>D+1,S?.getRole?this.getRole=S.getRole.bind(S):this.getRole=L=>"listitem",S?.isChecked?this.isChecked=S.isChecked.bind(S):this.isChecked=L=>{}}}class v{static{this.InstanceCount=0}get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(S){if(S!==this._horizontalScrolling){if(S&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=S,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const L of this.items)this.measureItemWidth(L);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,k.getContentWidth)(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(S,L,D,T=a){if(this.virtualDelegate=L,this.domId=`list_id_${++v.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new _.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=n.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=n.Disposable.None,this.onDragLeaveTimeout=n.Disposable.None,this.disposables=new n.DisposableStore,this._onDidChangeContentHeight=new p.Emitter,this._onDidChangeContentWidth=new p.Emitter,this.onDidChangeContentHeight=p.Event.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,T.horizontalScrolling&&T.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap(T.paddingTop??0);for(const A of D)this.renderers.set(A.templateId,A);this.cache=this.disposables.add(new s.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof T.mouseSupport=="boolean"?T.mouseSupport:!0),this._horizontalScrolling=T.horizontalScrolling??a.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof T.paddingBottom>"u"?0:T.paddingBottom,this.accessibilityProvider=new h(T.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(T.transformOptimization??a.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(E.Gesture.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new t.Scrollable({forceIntegerValues:!0,smoothScrollDuration:T.smoothScrolling??!1?125:0,scheduleAtNextAnimationFrame:A=>(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),A)})),this.scrollableElement=this.disposables.add(new y.SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:T.alwaysConsumeMouseWheel??a.alwaysConsumeMouseWheel,horizontal:1,vertical:T.verticalScrollMode??a.verticalScrollMode,useShadows:T.useShadows??a.useShadows,mouseWheelScrollSensitivity:T.mouseWheelScrollSensitivity,fastScrollSensitivity:T.fastScrollSensitivity,scrollByPage:T.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),S.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add((0,k.addDisposableListener)(this.rowsContainer,E.EventType.Change,A=>this.onTouchChange(A))),this.disposables.add((0,k.addDisposableListener)(this.scrollableElement.getDomNode(),"scroll",A=>A.target.scrollTop=0)),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragover",A=>this.onDragOver(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"drop",A=>this.onDrop(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragleave",A=>this.onDragLeave(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragend",A=>this.onDragEnd(A))),this.setRowLineHeight=T.setRowLineHeight??a.setRowLineHeight,this.setRowHeight=T.setRowHeight??a.setRowHeight,this.supportDynamicHeights=T.supportDynamicHeights??a.supportDynamicHeights,this.dnd=T.dnd??this.disposables.add(a.dnd),this.layout(T.initialSize?.height,T.initialSize?.width)}updateOptions(S){S.paddingBottom!==void 0&&(this.paddingBottom=S.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),S.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(S.smoothScrolling?125:0),S.horizontalScrolling!==void 0&&(this.horizontalScrolling=S.horizontalScrolling);let L;if(S.scrollByPage!==void 0&&(L={...L??{},scrollByPage:S.scrollByPage}),S.mouseWheelScrollSensitivity!==void 0&&(L={...L??{},mouseWheelScrollSensitivity:S.mouseWheelScrollSensitivity}),S.fastScrollSensitivity!==void 0&&(L={...L??{},fastScrollSensitivity:S.fastScrollSensitivity}),L&&this.scrollableElement.updateOptions(L),S.paddingTop!==void 0&&S.paddingTop!==this.rangeMap.paddingTop){const D=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),T=S.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=S.paddingTop,this.render(D,Math.max(0,this.lastRenderTop+T),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(S){return new i.RangeMap(S)}splice(S,L,D=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(S,L,D)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(S,L,D=[]){const T=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),M={start:S,end:S+L},A=o.Range.intersect(T,M),P=new Map;for(let K=A.end-1;K>=A.start;K--){const R=this.items[K];if(R.dragStartDisposable.dispose(),R.checkedDisposable.dispose(),R.row){let J=P.get(R.templateId);J||(J=[],P.set(R.templateId,J));const ie=this.renderers.get(R.templateId);ie&&ie.disposeElement&&ie.disposeElement(R.element,K,R.row.templateData,R.size),J.unshift(R.row)}R.row=null,R.stale=!0}const N={start:S+L,end:this.items.length},O=o.Range.intersect(N,T),F=o.Range.relativeComplement(N,T),x=D.map(K=>({id:String(this.itemId++),element:K,templateId:this.virtualDelegate.getTemplateId(K),size:this.virtualDelegate.getHeight(K),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(K),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:n.Disposable.None,checkedDisposable:n.Disposable.None,stale:!1}));let W;S===0&&L>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,x),W=this.items,this.items=x):(this.rangeMap.splice(S,L,x),W=this.items.splice(S,L,...x));const V=D.length-L,q=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),H=(0,i.shift)(O,V),z=o.Range.intersect(q,H);for(let K=z.start;K(0,i.shift)(K,V)),G=[{start:S,end:S+D.length},...j].map(K=>o.Range.intersect(q,K)).reverse();for(const K of G)for(let R=K.end-1;R>=K.start;R--){const J=this.items[R],ue=P.get(J.templateId)?.pop();this.insertItemInDOM(R,ue)}for(const K of P.values())for(const R of K)this.cache.release(R);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),W.map(K=>K.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let S=0;for(const L of this.items)typeof L.width<"u"&&(S=Math.max(S,L.width));this.scrollWidth=S,this.scrollableElement.setScrollDimensions({scrollWidth:S===0?0:S+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const S of this.items)S.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(S){return this.items[S].element}indexOf(S){return this.items.findIndex(L=>L.element===S)}domElement(S){const L=this.items[S].row;return L&&L.domNode}elementHeight(S){return this.items[S].size}elementTop(S){return this.rangeMap.positionAt(S)}indexAt(S){return this.rangeMap.indexAt(S)}indexAfter(S){return this.rangeMap.indexAfter(S)}layout(S,L){const D={height:typeof S=="number"?S:(0,k.getContentHeight)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,D.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(D),typeof L<"u"&&(this.renderWidth=L,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof L=="number"?L:(0,k.getContentWidth)(this.domNode)})}render(S,L,D,T,M,A=!1){const P=this.getRenderRange(L,D),N=o.Range.relativeComplement(P,S).reverse(),O=o.Range.relativeComplement(S,P);if(A){const F=o.Range.intersect(S,P);for(let x=F.start;x{for(const F of O)for(let x=F.start;x=F.start;x--)this.insertItemInDOM(x)}),T!==void 0&&(this.rowsContainer.style.left=`-${T}px`),this.rowsContainer.style.top=`-${L}px`,this.horizontalScrolling&&M!==void 0&&(this.rowsContainer.style.width=`${Math.max(M,this.renderWidth)}px`),this.lastRenderTop=L,this.lastRenderHeight=D}insertItemInDOM(S,L){const D=this.items[S];if(!D.row)if(L)D.row=L,D.stale=!0;else{const N=this.cache.alloc(D.templateId);D.row=N.row,D.stale||=N.isReusingConnectedDomNode}const T=this.accessibilityProvider.getRole(D.element)||"listitem";D.row.domNode.setAttribute("role",T);const M=this.accessibilityProvider.isChecked(D.element);if(typeof M=="boolean")D.row.domNode.setAttribute("aria-checked",String(!!M));else if(M){const N=O=>D.row.domNode.setAttribute("aria-checked",String(!!O));N(M.value),D.checkedDisposable=M.onDidChange(()=>N(M.value))}if(D.stale||!D.row.domNode.parentElement){const N=this.items.at(S+1)?.row?.domNode??null;(D.row.domNode.parentElement!==this.rowsContainer||D.row.domNode.nextElementSibling!==N)&&this.rowsContainer.insertBefore(D.row.domNode,N),D.stale=!1}this.updateItemInDOM(D,S);const A=this.renderers.get(D.templateId);if(!A)throw new Error(`No renderer found for template id ${D.templateId}`);A?.renderElement(D.element,S,D.row.templateData,D.size);const P=this.dnd.getDragURI(D.element);D.dragStartDisposable.dispose(),D.row.domNode.draggable=!!P,P&&(D.dragStartDisposable=(0,k.addDisposableListener)(D.row.domNode,"dragstart",N=>this.onDragStart(D.element,P,N))),this.horizontalScrolling&&(this.measureItemWidth(D),this.eventuallyUpdateScrollWidth())}measureItemWidth(S){if(!S.row||!S.row.domNode)return;S.row.domNode.style.width="fit-content",S.width=(0,k.getContentWidth)(S.row.domNode);const L=(0,k.getWindow)(S.row.domNode).getComputedStyle(S.row.domNode);L.paddingLeft&&(S.width+=parseFloat(L.paddingLeft)),L.paddingRight&&(S.width+=parseFloat(L.paddingRight)),S.row.domNode.style.width=""}updateItemInDOM(S,L){S.row.domNode.style.top=`${this.elementTop(L)}px`,this.setRowHeight&&(S.row.domNode.style.height=`${S.size}px`),this.setRowLineHeight&&(S.row.domNode.style.lineHeight=`${S.size}px`),S.row.domNode.setAttribute("data-index",`${L}`),S.row.domNode.setAttribute("data-last-element",L===this.length-1?"true":"false"),S.row.domNode.setAttribute("data-parity",L%2===0?"even":"odd"),S.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(S.element,L,this.length))),S.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(S.element,L))),S.row.domNode.setAttribute("id",this.getElementDomId(L)),S.row.domNode.classList.toggle("drop-target",S.dropTarget)}removeItemFromDOM(S){const L=this.items[S];if(L.dragStartDisposable.dispose(),L.checkedDisposable.dispose(),L.row){const D=this.renderers.get(L.templateId);D&&D.disposeElement&&D.disposeElement(L.element,S,L.row.templateData,L.size),this.cache.release(L.row),L.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(S,L){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:S,reuseAnimation:L})}get scrollTop(){return this.getScrollTop()}set scrollTop(S){this.setScrollTop(S)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"click")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseDblClick(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"dblclick")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseMiddleClick(){return p.Event.filter(p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"auxclick")).event,S=>this.toMouseEvent(S),this.disposables),S=>S.browserEvent.button===1,this.disposables)}get onMouseDown(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mousedown")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseOver(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mouseover")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseOut(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mouseout")).event,S=>this.toMouseEvent(S),this.disposables)}get onContextMenu(){return p.Event.any(p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"contextmenu")).event,S=>this.toMouseEvent(S),this.disposables),p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,E.EventType.Contextmenu)).event,S=>this.toGestureEvent(S),this.disposables))}get onTouchStart(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"touchstart")).event,S=>this.toTouchEvent(S),this.disposables)}get onTap(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.rowsContainer,E.EventType.Tap)).event,S=>this.toGestureEvent(S),this.disposables)}toMouseEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toTouchEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toGestureEvent(S){const L=this.getItemIndexFromEventTarget(S.initialTarget||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toDragEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element,M=this.getTargetSector(S,L);return{browserEvent:S,index:L,element:T,sector:M}}onScroll(S){try{const L=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(L,S.scrollTop,S.height,S.scrollLeft,S.scrollWidth),this.supportDynamicHeights&&this._rerender(S.scrollTop,S.height,S.inSmoothScrolling)}catch(L){throw console.error("Got bad scroll event:",S),L}}onTouchChange(S){S.preventDefault(),S.stopPropagation(),this.scrollTop-=S.translationY}onDragStart(S,L,D){if(!D.dataTransfer)return;const T=this.dnd.getDragElements(S);if(D.dataTransfer.effectAllowed="copyMove",D.dataTransfer.setData(d.DataTransfers.TEXT,L),D.dataTransfer.setDragImage){let M;this.dnd.getDragLabel&&(M=this.dnd.getDragLabel(T,D)),typeof M>"u"&&(M=String(T.length));const A=(0,k.$)(".monaco-drag-image");A.textContent=M,(O=>{for(;O&&!O.classList.contains("monaco-workbench");)O=O.parentElement;return O||this.domNode.ownerDocument})(this.domNode).appendChild(A),D.dataTransfer.setDragImage(A,-10,-10),setTimeout(()=>A.remove(),0)}this.domNode.classList.add("dragging"),this.currentDragData=new r(T),l.CurrentDragAndDropData=new u(T),this.dnd.onDragStart?.(this.currentDragData,D)}onDragOver(S){if(S.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),l.CurrentDragAndDropData&&l.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(S.browserEvent),!S.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(l.CurrentDragAndDropData)this.currentDragData=l.CurrentDragAndDropData;else{if(!S.browserEvent.dataTransfer.types)return!1;this.currentDragData=new C}const L=this.dnd.onDragOver(this.currentDragData,S.element,S.index,S.sector,S.browserEvent);if(this.canDrop=typeof L=="boolean"?L:L.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;S.browserEvent.dataTransfer.dropEffect=typeof L!="boolean"&&L.effect?.type===0?"copy":"move";let D;typeof L!="boolean"&&L.feedback?D=L.feedback:typeof S.index>"u"?D=[-1]:D=[S.index],D=(0,m.distinct)(D).filter(M=>M>=-1&&MM-A),D=D[0]===-1?[-1]:D;let T=typeof L!="boolean"&&L.effect&&L.effect.position?L.effect.position:"drop-target";if(f(this.currentDragFeedback,D)&&this.currentDragFeedbackPosition===T)return!0;if(this.currentDragFeedback=D,this.currentDragFeedbackPosition=T,this.currentDragFeedbackDisposable.dispose(),D[0]===-1)this.domNode.classList.add(T),this.rowsContainer.classList.add(T),this.currentDragFeedbackDisposable=(0,n.toDisposable)(()=>{this.domNode.classList.remove(T),this.rowsContainer.classList.remove(T)});else{if(D.length>1&&T!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");T==="drop-target-after"&&D[0]{for(const M of D){const A=this.items[M];A.dropTarget=!1,A.row?.domNode.classList.remove(T)}})}return!0}onDragLeave(S){this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,_.disposableTimeout)(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&this.dnd.onDragLeave?.(this.currentDragData,S.element,S.index,S.browserEvent)}onDrop(S){if(!this.canDrop)return;const L=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,l.CurrentDragAndDropData=void 0,!(!L||!S.browserEvent.dataTransfer)&&(S.browserEvent.preventDefault(),L.update(S.browserEvent.dataTransfer),this.dnd.drop(L,S.element,S.index,S.sector,S.browserEvent))}onDragEnd(S){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,l.CurrentDragAndDropData=void 0,this.dnd.onDragEnd?.(S)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=n.Disposable.None}setupDragAndDropScrollTopAnimation(S){if(!this.dragOverAnimationDisposable){const L=(0,k.getTopLeftOffset)(this.domNode).top;this.dragOverAnimationDisposable=(0,k.animate)((0,k.getWindow)(this.domNode),this.animateDragAndDropScrollTop.bind(this,L))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,_.disposableTimeout)(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=S.pageY}animateDragAndDropScrollTop(S){if(this.dragOverMouseY===void 0)return;const L=this.dragOverMouseY-S,D=this.renderHeight-35;L<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(L-35))):L>D&&(this.scrollTop+=Math.min(14,Math.floor(.3*(L-D))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(S,L){if(L===void 0)return;const D=S.offsetY/this.items[L].size,T=Math.floor(D/.25);return(0,c.clamp)(T,0,3)}getItemIndexFromEventTarget(S){const L=this.scrollableElement.getDomNode();let D=S;for(;((0,k.isHTMLElement)(D)||(0,k.isSVGElement)(D))&&D!==this.rowsContainer&&L.contains(D);){const T=D.getAttribute("data-index");if(T){const M=Number(T);if(!isNaN(M))return M}D=D.parentElement}}getRenderRange(S,L){return{start:this.rangeMap.indexAt(S),end:this.rangeMap.indexAfter(S+L-1)}}_rerender(S,L,D){const T=this.getRenderRange(S,L);let M,A;S===this.elementTop(T.start)?(M=T.start,A=0):T.end-T.start>1&&(M=T.start+1,A=this.elementTop(M)-S);let P=0;for(;;){const N=this.getRenderRange(S,L);let O=!1;for(let F=N.start;F=W.start;V--)this.insertItemInDOM(V);for(let W=N.start;WB.templateData===ge);if(X>=0){const B=this.renderedElements[X];this.trait.unrender(ge),B.index=de}else{const B={index:de,templateData:ge};this.renderedElements.push(B)}this.trait.renderIndex(de,ge)}splice(ee,de,ge){const X=[];for(const B of this.renderedElements)B.index=ee+de&&X.push({index:B.index+ge-de,templateData:B.templateData});this.renderedElements=X}renderIndexes(ee){for(const{index:de,templateData:ge}of this.renderedElements)ee.indexOf(de)>-1&&this.trait.renderIndex(de,ge)}disposeTemplate(ee){const de=this.renderedElements.findIndex(ge=>ge.templateData===ee);de<0||this.renderedElements.splice(de,1)}}class f{get name(){return this._trait}get renderer(){return new C(this)}constructor(ee){this._trait=ee,this.indexes=[],this.sortedIndexes=[],this._onChange=new o.Emitter,this.onChange=this._onChange.event}splice(ee,de,ge){const X=ge.length-de,B=ee+de,$=[];let Q=0;for(;Q=B;)$.push(this.sortedIndexes[Q++]+X);this.renderer.splice(ee,de,ge.length),this._set($,$)}renderIndex(ee,de){de.classList.toggle(this._trait,this.contains(ee))}unrender(ee){ee.classList.remove(this._trait)}set(ee,de){return this._set(ee,[...ee].sort(J),de)}_set(ee,de,ge){const X=this.indexes,B=this.sortedIndexes;this.indexes=ee,this.sortedIndexes=de;const $=K(B,ee);return this.renderer.renderIndexes($),this._onChange.fire({indexes:ee,browserEvent:ge}),X}get(){return this.indexes}contains(ee){return(0,_.binarySearch)(this.sortedIndexes,ee,J)>=0}dispose(){(0,i.dispose)(this._onChange)}}ke([n.memoize],f.prototype,"renderer",null);class h extends f{constructor(ee){super("selected"),this.setAriaSelected=ee}renderIndex(ee,de){super.renderIndex(ee,de),this.setAriaSelected&&(this.contains(ee)?de.setAttribute("aria-selected","true"):de.setAttribute("aria-selected","false"))}}class v{constructor(ee,de,ge){this.trait=ee,this.view=de,this.identityProvider=ge}splice(ee,de,ge){if(!this.identityProvider)return this.trait.splice(ee,de,new Array(ge.length).fill(!1));const X=this.trait.get().map(Q=>this.identityProvider.getId(this.view.element(Q)).toString());if(X.length===0)return this.trait.splice(ee,de,new Array(ge.length).fill(!1));const B=new Set(X),$=ge.map(Q=>B.has(this.identityProvider.getId(Q).toString()));this.trait.splice(ee,de,$)}}function w(ae){return ae.tagName==="INPUT"||ae.tagName==="TEXTAREA"}function S(ae,ee){return ae.classList.contains(ee)?!0:ae.classList.contains("monaco-list")||!ae.parentElement?!1:S(ae.parentElement,ee)}function L(ae){return S(ae,"monaco-editor")}function D(ae){return S(ae,"monaco-custom-toggle")}function T(ae){return S(ae,"action-item")}function M(ae){return S(ae,"monaco-tree-sticky-row")}function A(ae){return ae.classList.contains("monaco-tree-sticky-container")}function P(ae){return ae.tagName==="A"&&ae.classList.contains("monaco-button")||ae.tagName==="DIV"&&ae.classList.contains("monaco-button-dropdown")?!0:ae.classList.contains("monaco-list")||!ae.parentElement?!1:P(ae.parentElement)}class N{get onKeyDown(){return o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,ee=>ee.filter(de=>!w(de.target)).map(de=>new I.StandardKeyboardEvent(de)))}constructor(ee,de,ge){this.list=ee,this.view=de,this.disposables=new i.DisposableStore,this.multipleSelectionDisposables=new i.DisposableStore,this.multipleSelectionSupport=ge.multipleSelectionSupport,this.disposables.add(this.onKeyDown(X=>{switch(X.keyCode){case 3:return this.onEnter(X);case 16:return this.onUpArrow(X);case 18:return this.onDownArrow(X);case 11:return this.onPageUpArrow(X);case 12:return this.onPageDownArrow(X);case 9:return this.onEscape(X);case 31:this.multipleSelectionSupport&&(g.isMacintosh?X.metaKey:X.ctrlKey)&&this.onCtrlA(X)}}))}updateOptions(ee){ee.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=ee.multipleSelectionSupport)}onEnter(ee){ee.preventDefault(),ee.stopPropagation(),this.list.setSelection(this.list.getFocus(),ee.browserEvent)}onUpArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusPrevious(1,!1,ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onDownArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusNext(1,!1,ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onPageUpArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusPreviousPage(ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onPageDownArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusNextPage(ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onCtrlA(ee){ee.preventDefault(),ee.stopPropagation(),this.list.setSelection((0,_.range)(this.list.length),ee.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(ee){this.list.getSelection().length&&(ee.preventDefault(),ee.stopPropagation(),this.list.setSelection([],ee.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}ke([n.memoize],N.prototype,"onKeyDown",null);var O;(function(ae){ae[ae.Automatic=0]="Automatic",ae[ae.Trigger=1]="Trigger"})(O||(e.TypeNavigationMode=O={}));var F;(function(ae){ae[ae.Idle=0]="Idle",ae[ae.Typing=1]="Typing"})(F||(F={})),e.DefaultKeyboardNavigationDelegate=new class{mightProducePrintableCharacter(ae){return ae.ctrlKey||ae.metaKey||ae.altKey?!1:ae.keyCode>=31&&ae.keyCode<=56||ae.keyCode>=21&&ae.keyCode<=30||ae.keyCode>=98&&ae.keyCode<=107||ae.keyCode>=85&&ae.keyCode<=95}};class x{constructor(ee,de,ge,X,B){this.list=ee,this.view=de,this.keyboardNavigationLabelProvider=ge,this.keyboardNavigationEventFilter=X,this.delegate=B,this.enabled=!1,this.state=F.Idle,this.mode=O.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new i.DisposableStore,this.disposables=new i.DisposableStore,this.updateOptions(ee.options)}updateOptions(ee){ee.typeNavigationEnabled??!0?this.enable():this.disable(),this.mode=ee.typeNavigationMode??O.Automatic}enable(){if(this.enabled)return;let ee=!1;const de=o.Event.chain(this.enabledDisposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,B=>B.filter($=>!w($.target)).filter(()=>this.mode===O.Automatic||this.triggered).map($=>new I.StandardKeyboardEvent($)).filter($=>ee||this.keyboardNavigationEventFilter($)).filter($=>this.delegate.mightProducePrintableCharacter($)).forEach($=>d.EventHelper.stop($,!0)).map($=>$.browserEvent.key)),ge=o.Event.debounce(de,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);o.Event.reduce(o.Event.any(de,ge),(B,$)=>$===null?null:(B||"")+$,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),ge(this.onClear,this,this.enabledDisposables),de(()=>ee=!0,void 0,this.enabledDisposables),ge(()=>ee=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){const ee=this.list.getFocus();if(ee.length>0&&ee[0]===this.previouslyFocused){const de=this.list.options.accessibilityProvider?.getAriaLabel(this.list.element(ee[0]));typeof de=="string"?(0,y.alert)(de):de&&(0,y.alert)(de.get())}this.previouslyFocused=-1}onInput(ee){if(!ee){this.state=F.Idle,this.triggered=!1;return}const de=this.list.getFocus(),ge=de.length>0?de[0]:0,X=this.state===F.Idle?1:0;this.state=F.Typing;for(let B=0;B1&&te.length===1){this.previouslyFocused=ge,this.list.setFocus([$]),this.list.reveal($);return}}}else if(typeof Z>"u"||(0,t.matchesPrefix)(ee,Z)){this.previouslyFocused=ge,this.list.setFocus([$]),this.list.reveal($);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class W{constructor(ee,de){this.list=ee,this.view=de,this.disposables=new i.DisposableStore;const ge=o.Event.chain(this.disposables.add(new k.DomEmitter(de.domNode,"keydown")).event,B=>B.filter($=>!w($.target)).map($=>new I.StandardKeyboardEvent($)));o.Event.chain(ge,B=>B.filter($=>$.keyCode===2&&!$.ctrlKey&&!$.metaKey&&!$.shiftKey&&!$.altKey))(this.onTab,this,this.disposables)}onTab(ee){if(ee.target!==this.view.domNode)return;const de=this.list.getFocus();if(de.length===0)return;const ge=this.view.domElement(de[0]);if(!ge)return;const X=ge.querySelector("[tabIndex]");if(!X||!(0,d.isHTMLElement)(X)||X.tabIndex===-1)return;const B=(0,d.getWindow)(X).getComputedStyle(X);B.visibility==="hidden"||B.display==="none"||(ee.preventDefault(),ee.stopPropagation(),X.focus())}dispose(){this.disposables.dispose()}}function V(ae){return g.isMacintosh?ae.browserEvent.metaKey:ae.browserEvent.ctrlKey}function q(ae){return ae.browserEvent.shiftKey}function H(ae){return(0,d.isMouseEvent)(ae)&&ae.button===2}const z={isSelectionSingleChangeEvent:V,isSelectionRangeChangeEvent:q};class U{constructor(ee){this.list=ee,this.disposables=new i.DisposableStore,this._onPointer=new o.Emitter,this.onPointer=this._onPointer.event,ee.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z),this.mouseSupport=typeof ee.options.mouseSupport>"u"||!!ee.options.mouseSupport,this.mouseSupport&&(ee.onMouseDown(this.onMouseDown,this,this.disposables),ee.onContextMenu(this.onContextMenu,this,this.disposables),ee.onMouseDblClick(this.onDoubleClick,this,this.disposables),ee.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(E.Gesture.addTarget(ee.getHTMLElement()))),o.Event.any(ee.onMouseClick,ee.onMouseMiddleClick,ee.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(ee){ee.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,ee.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z))}isSelectionSingleChangeEvent(ee){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(ee):!1}isSelectionRangeChangeEvent(ee){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(ee):!1}isSelectionChangeEvent(ee){return this.isSelectionSingleChangeEvent(ee)||this.isSelectionRangeChangeEvent(ee)}onMouseDown(ee){L(ee.browserEvent.target)||(0,d.getActiveElement)()!==ee.browserEvent.target&&this.list.domFocus()}onContextMenu(ee){if(w(ee.browserEvent.target)||L(ee.browserEvent.target))return;const de=typeof ee.index>"u"?[]:[ee.index];this.list.setFocus(de,ee.browserEvent)}onViewPointer(ee){if(!this.mouseSupport||w(ee.browserEvent.target)||L(ee.browserEvent.target)||ee.browserEvent.isHandledByList)return;ee.browserEvent.isHandledByList=!0;const de=ee.index;if(typeof de>"u"){this.list.setFocus([],ee.browserEvent),this.list.setSelection([],ee.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(ee))return this.changeSelection(ee);this.list.setFocus([de],ee.browserEvent),this.list.setAnchor(de),H(ee.browserEvent)||this.list.setSelection([de],ee.browserEvent),this._onPointer.fire(ee)}onDoubleClick(ee){if(w(ee.browserEvent.target)||L(ee.browserEvent.target)||this.isSelectionChangeEvent(ee)||ee.browserEvent.isHandledByList)return;ee.browserEvent.isHandledByList=!0;const de=this.list.getFocus();this.list.setSelection(de,ee.browserEvent)}changeSelection(ee){const de=ee.index;let ge=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(ee)){typeof ge>"u"&&(ge=this.list.getFocus()[0]??de,this.list.setAnchor(ge));const X=Math.min(ge,de),B=Math.max(ge,de),$=(0,_.range)(X,B+1),Q=this.list.getSelection(),Z=G(K(Q,[ge]),ge);if(Z.length===0)return;const te=K($,R(Q,Z));this.list.setSelection(te,ee.browserEvent),this.list.setFocus([de],ee.browserEvent)}else if(this.isSelectionSingleChangeEvent(ee)){const X=this.list.getSelection(),B=X.filter($=>$!==de);this.list.setFocus([de]),this.list.setAnchor(de),X.length===B.length?this.list.setSelection([...B,de],ee.browserEvent):this.list.setSelection(B,ee.browserEvent)}}dispose(){this.disposables.dispose()}}e.MouseController=U;class j{constructor(ee,de){this.styleElement=ee,this.selectorSuffix=de}style(ee){const de=this.selectorSuffix&&`.${this.selectorSuffix}`,ge=[];ee.listBackground&&ge.push(`.monaco-list${de} .monaco-list-rows { background: ${ee.listBackground}; }`),ee.listFocusBackground&&(ge.push(`.monaco-list${de}:focus .monaco-list-row.focused { background-color: ${ee.listFocusBackground}; }`),ge.push(`.monaco-list${de}:focus .monaco-list-row.focused:hover { background-color: ${ee.listFocusBackground}; }`)),ee.listFocusForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.focused { color: ${ee.listFocusForeground}; }`),ee.listActiveSelectionBackground&&(ge.push(`.monaco-list${de}:focus .monaco-list-row.selected { background-color: ${ee.listActiveSelectionBackground}; }`),ge.push(`.monaco-list${de}:focus .monaco-list-row.selected:hover { background-color: ${ee.listActiveSelectionBackground}; }`)),ee.listActiveSelectionForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.selected { color: ${ee.listActiveSelectionForeground}; }`),ee.listActiveSelectionIconForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.selected .codicon { color: ${ee.listActiveSelectionIconForeground}; }`),ee.listFocusAndSelectionBackground&&ge.push(` - .monaco-drag-image, - .monaco-list${de}:focus .monaco-list-row.selected.focused { background-color: ${ee.listFocusAndSelectionBackground}; } - `),ee.listFocusAndSelectionForeground&&ge.push(` - .monaco-drag-image, - .monaco-list${de}:focus .monaco-list-row.selected.focused { color: ${ee.listFocusAndSelectionForeground}; } - `),ee.listInactiveFocusForeground&&(ge.push(`.monaco-list${de} .monaco-list-row.focused { color: ${ee.listInactiveFocusForeground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.focused:hover { color: ${ee.listInactiveFocusForeground}; }`)),ee.listInactiveSelectionIconForeground&&ge.push(`.monaco-list${de} .monaco-list-row.focused .codicon { color: ${ee.listInactiveSelectionIconForeground}; }`),ee.listInactiveFocusBackground&&(ge.push(`.monaco-list${de} .monaco-list-row.focused { background-color: ${ee.listInactiveFocusBackground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.focused:hover { background-color: ${ee.listInactiveFocusBackground}; }`)),ee.listInactiveSelectionBackground&&(ge.push(`.monaco-list${de} .monaco-list-row.selected { background-color: ${ee.listInactiveSelectionBackground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.selected:hover { background-color: ${ee.listInactiveSelectionBackground}; }`)),ee.listInactiveSelectionForeground&&ge.push(`.monaco-list${de} .monaco-list-row.selected { color: ${ee.listInactiveSelectionForeground}; }`),ee.listHoverBackground&&ge.push(`.monaco-list${de}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${ee.listHoverBackground}; }`),ee.listHoverForeground&&ge.push(`.monaco-list${de}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${ee.listHoverForeground}; }`);const X=(0,d.asCssValueWithDefault)(ee.listFocusAndSelectionOutline,(0,d.asCssValueWithDefault)(ee.listSelectionOutline,ee.listFocusOutline??""));X&&ge.push(`.monaco-list${de}:focus .monaco-list-row.focused.selected { outline: 1px solid ${X}; outline-offset: -1px;}`),ee.listFocusOutline&&ge.push(` - .monaco-drag-image, - .monaco-list${de}:focus .monaco-list-row.focused { outline: 1px solid ${ee.listFocusOutline}; outline-offset: -1px; } - .monaco-workbench.context-menu-visible .monaco-list${de}.last-focused .monaco-list-row.focused { outline: 1px solid ${ee.listFocusOutline}; outline-offset: -1px; } - `);const B=(0,d.asCssValueWithDefault)(ee.listSelectionOutline,ee.listInactiveFocusOutline??"");B&&ge.push(`.monaco-list${de} .monaco-list-row.focused.selected { outline: 1px dotted ${B}; outline-offset: -1px; }`),ee.listSelectionOutline&&ge.push(`.monaco-list${de} .monaco-list-row.selected { outline: 1px dotted ${ee.listSelectionOutline}; outline-offset: -1px; }`),ee.listInactiveFocusOutline&&ge.push(`.monaco-list${de} .monaco-list-row.focused { outline: 1px dotted ${ee.listInactiveFocusOutline}; outline-offset: -1px; }`),ee.listHoverOutline&&ge.push(`.monaco-list${de} .monaco-list-row:hover { outline: 1px dashed ${ee.listHoverOutline}; outline-offset: -1px; }`),ee.listDropOverBackground&&ge.push(` - .monaco-list${de}.drop-target, - .monaco-list${de} .monaco-list-rows.drop-target, - .monaco-list${de} .monaco-list-row.drop-target { background-color: ${ee.listDropOverBackground} !important; color: inherit !important; } - `),ee.listDropBetweenBackground&&(ge.push(` - .monaco-list${de} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, - .monaco-list${de} .monaco-list-row.drop-target-before::before { - content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; - background-color: ${ee.listDropBetweenBackground}; - }`),ge.push(` - .monaco-list${de} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, - .monaco-list${de} .monaco-list-row.drop-target-after::after { - content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; - background-color: ${ee.listDropBetweenBackground}; - }`)),ee.tableColumnsBorder&&ge.push(` - .monaco-table > .monaco-split-view2, - .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, - .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, - .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { - border-color: ${ee.tableColumnsBorder}; - } - - .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, - .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { - border-color: transparent; - } - `),ee.tableOddRowsBackgroundColor&&ge.push(` - .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, - .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, - .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { - background-color: ${ee.tableOddRowsBackgroundColor}; - } - `),this.styleElement.textContent=ge.join(` -`)}}e.DefaultStyleController=j,e.unthemedListStyles={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:p.Color.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:p.Color.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:p.Color.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0};const Y={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function G(ae,ee){const de=ae.indexOf(ee);if(de===-1)return[];const ge=[];let X=de-1;for(;X>=0&&ae[X]===ee-(de-X);)ge.push(ae[X--]);for(ge.reverse(),X=de;X=ae.length)de.push(ee[X++]);else if(X>=ee.length)de.push(ae[ge++]);else if(ae[ge]===ee[X]){de.push(ae[ge]),ge++,X++;continue}else ae[ge]=ae.length)de.push(ee[X++]);else if(X>=ee.length)de.push(ae[ge++]);else if(ae[ge]===ee[X]){ge++,X++;continue}else ae[ge]ae-ee;class ie{constructor(ee,de){this._templateId=ee,this.renderers=de}get templateId(){return this._templateId}renderTemplate(ee){return this.renderers.map(de=>de.renderTemplate(ee))}renderElement(ee,de,ge,X){let B=0;for(const $ of this.renderers)$.renderElement(ee,de,ge[B++],X)}disposeElement(ee,de,ge,X){let B=0;for(const $ of this.renderers)$.disposeElement?.(ee,de,ge[B],X),B+=1}disposeTemplate(ee){let de=0;for(const ge of this.renderers)ge.disposeTemplate(ee[de++])}}class ue{constructor(ee){this.accessibilityProvider=ee,this.templateId="a18n"}renderTemplate(ee){return{container:ee,disposables:new i.DisposableStore}}renderElement(ee,de,ge){const X=this.accessibilityProvider.getAriaLabel(ee),B=X&&typeof X!="string"?X:(0,u.constObservable)(X);ge.disposables.add((0,u.autorun)(Q=>{this.setAriaLabel(Q.readObservable(B),ge.container)}));const $=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(ee);typeof $=="number"?ge.container.setAttribute("aria-level",`${$}`):ge.container.removeAttribute("aria-level")}setAriaLabel(ee,de){ee?de.setAttribute("aria-label",ee):de.removeAttribute("aria-label")}disposeElement(ee,de,ge,X){ge.disposables.clear()}disposeTemplate(ee){ee.disposables.dispose()}}class he{constructor(ee,de){this.list=ee,this.dnd=de}getDragElements(ee){const de=this.list.getSelectedElements();return de.indexOf(ee)>-1?de:[ee]}getDragURI(ee){return this.dnd.getDragURI(ee)}getDragLabel(ee,de){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(ee,de)}onDragStart(ee,de){this.dnd.onDragStart?.(ee,de)}onDragOver(ee,de,ge,X,B){return this.dnd.onDragOver(ee,de,ge,X,B)}onDragLeave(ee,de,ge,X){this.dnd.onDragLeave?.(ee,de,ge,X)}onDragEnd(ee){this.dnd.onDragEnd?.(ee)}drop(ee,de,ge,X,B){this.dnd.drop(ee,de,ge,X,B)}dispose(){this.dnd.dispose()}}class pe{get onDidChangeFocus(){return o.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),ee=>this.toListEvent(ee),this.disposables)}get onDidChangeSelection(){return o.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),ee=>this.toListEvent(ee),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let ee=!1;const de=o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,B=>B.map($=>new I.StandardKeyboardEvent($)).filter($=>ee=$.keyCode===58||$.shiftKey&&$.keyCode===68).map($=>d.EventHelper.stop($,!0)).filter(()=>!1)),ge=o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keyup")).event,B=>B.forEach(()=>ee=!1).map($=>new I.StandardKeyboardEvent($)).filter($=>$.keyCode===58||$.shiftKey&&$.keyCode===68).map($=>d.EventHelper.stop($,!0)).map(({browserEvent:$})=>{const Q=this.getFocus(),Z=Q.length?Q[0]:void 0,te=typeof Z<"u"?this.view.element(Z):void 0,re=typeof Z<"u"?this.view.domElement(Z):this.view.domNode;return{index:Z,element:te,anchor:re,browserEvent:$}})),X=o.Event.chain(this.view.onContextMenu,B=>B.filter($=>!ee).map(({element:$,index:Q,browserEvent:Z})=>({element:$,index:Q,anchor:new r.StandardMouseEvent((0,d.getWindow)(this.view.domNode),Z),browserEvent:Z})));return o.Event.any(de,ge,X)}get onKeyDown(){return this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event}get onDidFocus(){return o.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return o.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"blur",!0)).event)}constructor(ee,de,ge,X,B=Y){this.user=ee,this._options=B,this.focus=new f("focused"),this.anchor=new f("anchor"),this.eventBufferer=new o.EventBufferer,this._ariaLabel="",this.disposables=new i.DisposableStore,this._onDidDispose=new o.Emitter,this.onDidDispose=this._onDidDispose.event;const $=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?this._options.accessibilityProvider?.getWidgetRole():"list";this.selection=new h($!=="listbox");const Q=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=B.accessibilityProvider,this.accessibilityProvider&&(Q.push(new ue(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant?.(this.onDidChangeActiveDescendant,this,this.disposables)),X=X.map(te=>new ie(te.templateId,[...Q,te]));const Z={...B,dnd:B.dnd&&new he(this,B.dnd)};if(this.view=this.createListView(de,ge,X,Z),this.view.domNode.setAttribute("role",$),B.styleController)this.styleController=B.styleController(this.view.domId);else{const te=(0,d.createStyleSheet)(this.view.domNode);this.styleController=new j(te,this.view.domId)}if(this.spliceable=new m.CombinedSpliceable([new v(this.focus,this.view,B.identityProvider),new v(this.selection,this.view,B.identityProvider),new v(this.anchor,this.view,B.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new W(this,this.view)),(typeof B.keyboardSupport!="boolean"||B.keyboardSupport)&&(this.keyboardController=new N(this,this.view,B),this.disposables.add(this.keyboardController)),B.keyboardNavigationLabelProvider){const te=B.keyboardNavigationDelegate||e.DefaultKeyboardNavigationDelegate;this.typeNavigationController=new x(this,this.view,B.keyboardNavigationLabelProvider,B.keyboardNavigationEventFilter??(()=>!0),te),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(B),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(ee,de,ge,X){return new a.ListView(ee,de,ge,X)}createMouseController(ee){return new U(this)}updateOptions(ee={}){this._options={...this._options,...ee},this.typeNavigationController?.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(ee),this.keyboardController?.updateOptions(ee),this.view.updateOptions(ee)}get options(){return this._options}splice(ee,de,ge=[]){if(ee<0||ee>this.view.length)throw new l.ListError(this.user,`Invalid start index: ${ee}`);if(de<0)throw new l.ListError(this.user,`Invalid delete count: ${de}`);de===0&&ge.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(ee,de,ge))}rerender(){this.view.rerender()}element(ee){return this.view.element(ee)}indexOf(ee){return this.view.indexOf(ee)}indexAt(ee){return this.view.indexAt(ee)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(ee){this.view.setScrollTop(ee)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(ee){this._ariaLabel=ee,this.view.domNode.setAttribute("aria-label",ee)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(ee,de){this.view.layout(ee,de)}setSelection(ee,de){for(const ge of ee)if(ge<0||ge>=this.length)throw new l.ListError(this.user,`Invalid index ${ge}`);this.selection.set(ee,de)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(ee=>this.view.element(ee))}setAnchor(ee){if(typeof ee>"u"){this.anchor.set([]);return}if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);this.anchor.set([ee])}getAnchor(){return(0,_.firstOrDefault)(this.anchor.get(),void 0)}getAnchorElement(){const ee=this.getAnchor();return typeof ee>"u"?void 0:this.element(ee)}setFocus(ee,de){for(const ge of ee)if(ge<0||ge>=this.length)throw new l.ListError(this.user,`Invalid index ${ge}`);this.focus.set(ee,de)}focusNext(ee=1,de=!1,ge,X){if(this.length===0)return;const B=this.focus.get(),$=this.findNextIndex(B.length>0?B[0]+ee:0,de,X);$>-1&&this.setFocus([$],ge)}focusPrevious(ee=1,de=!1,ge,X){if(this.length===0)return;const B=this.focus.get(),$=this.findPreviousIndex(B.length>0?B[0]-ee:0,de,X);$>-1&&this.setFocus([$],ge)}async focusNextPage(ee,de){let ge=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);ge=ge===0?0:ge-1;const X=this.getFocus()[0];if(X!==ge&&(X===void 0||ge>X)){const B=this.findPreviousIndex(ge,!1,de);B>-1&&X!==B?this.setFocus([B],ee):this.setFocus([ge],ee)}else{const B=this.view.getScrollTop();let $=B+this.view.renderHeight;ge>X&&($-=this.view.elementHeight(ge)),this.view.setScrollTop($),this.view.getScrollTop()!==B&&(this.setFocus([]),await(0,b.timeout)(0),await this.focusNextPage(ee,de))}}async focusPreviousPage(ee,de,ge=()=>0){let X;const B=ge(),$=this.view.getScrollTop()+B;$===0?X=this.view.indexAt($):X=this.view.indexAfter($-1);const Q=this.getFocus()[0];if(Q!==X&&(Q===void 0||Q>=X)){const Z=this.findNextIndex(X,!1,de);Z>-1&&Q!==Z?this.setFocus([Z],ee):this.setFocus([X],ee)}else{const Z=$;this.view.setScrollTop($-this.view.renderHeight-B),this.view.getScrollTop()+ge()!==Z&&(this.setFocus([]),await(0,b.timeout)(0),await this.focusPreviousPage(ee,de,ge))}}focusLast(ee,de){if(this.length===0)return;const ge=this.findPreviousIndex(this.length-1,!1,de);ge>-1&&this.setFocus([ge],ee)}focusFirst(ee,de){this.focusNth(0,ee,de)}focusNth(ee,de,ge){if(this.length===0)return;const X=this.findNextIndex(ee,!1,ge);X>-1&&this.setFocus([X],de)}findNextIndex(ee,de=!1,ge){for(let X=0;X=this.length&&!de)return-1;if(ee=ee%this.length,!ge||ge(this.element(ee)))return ee;ee++}return-1}findPreviousIndex(ee,de=!1,ge){for(let X=0;Xthis.view.element(ee))}reveal(ee,de,ge=0){if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);const X=this.view.getScrollTop(),B=this.view.elementTop(ee),$=this.view.elementHeight(ee);if((0,c.isNumber)(de)){const Q=$-this.view.renderHeight+ge;this.view.setScrollTop(Q*(0,s.clamp)(de,0,1)+B-ge)}else{const Q=B+$,Z=X+this.view.renderHeight;B=Z||(B=Z&&$>=this.view.renderHeight?this.view.setScrollTop(B-ge):Q>=Z&&this.view.setScrollTop(Q-this.view.renderHeight))}}getRelativeTop(ee,de=0){if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);const ge=this.view.getScrollTop(),X=this.view.elementTop(ee),B=this.view.elementHeight(ee);if(Xge+this.view.renderHeight)return null;const $=B-this.view.renderHeight+de;return Math.abs((ge+de-X)/$)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(ee){return this.view.getElementDomId(ee)}getElementTop(ee){return this.view.elementTop(ee)}style(ee){this.styleController.style(ee)}toListEvent({indexes:ee,browserEvent:de}){return{indexes:ee,elements:ee.map(ge=>this.view.element(ge)),browserEvent:de}}_onFocusChange(){const ee=this.focus.get();this.view.domNode.classList.toggle("element-focused",ee.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){const ee=this.focus.get();if(ee.length>0){let de;this.accessibilityProvider?.getActiveDescendantId&&(de=this.accessibilityProvider.getActiveDescendantId(this.view.element(ee[0]))),this.view.domNode.setAttribute("aria-activedescendant",de||this.view.getElementDomId(ee[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const ee=this.selection.get();this.view.domNode.classList.toggle("selection-none",ee.length===0),this.view.domNode.classList.toggle("selection-single",ee.length===1),this.view.domNode.classList.toggle("selection-multiple",ee.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}e.List=pe,ke([n.memoize],pe.prototype,"onDidChangeFocus",null),ke([n.memoize],pe.prototype,"onDidChangeSelection",null),ke([n.memoize],pe.prototype,"onContextMenu",null),ke([n.memoize],pe.prototype,"onKeyDown",null),ke([n.memoize],pe.prototype,"onDidFocus",null),ke([n.memoize],pe.prototype,"onDidBlur",null)}),define(ne[637],se([1,0,13,18,6,2,115,305]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedList=void 0;class m{get templateId(){return this.renderer.templateId}constructor(o,t){this.renderer=o,this.modelProvider=t}renderTemplate(o){return{data:this.renderer.renderTemplate(o),disposable:E.Disposable.None}}renderElement(o,t,i,s){if(i.disposable?.dispose(),!i.data)return;const g=this.modelProvider();if(g.isResolved(o))return this.renderer.renderElement(g.get(o),o,i.data,s);const c=new k.CancellationTokenSource,l=g.resolve(o,c.token);i.disposable={dispose:()=>c.cancel()},this.renderer.renderPlaceholder(o,i.data),l.then(a=>this.renderer.renderElement(a,o,i.data,s))}disposeTemplate(o){o.disposable&&(o.disposable.dispose(),o.disposable=void 0),o.data&&(this.renderer.disposeTemplate(o.data),o.data=void 0)}}class _{constructor(o,t){this.modelProvider=o,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(o){const t=this.modelProvider();return t.isResolved(o)?this.accessibilityProvider.getAriaLabel(t.get(o)):null}}function b(n,o){return{...o,accessibilityProvider:o.accessibilityProvider&&new _(n,o.accessibilityProvider)}}class p{constructor(o,t,i,s,g={}){const c=()=>this.model,l=s.map(a=>new m(a,c));this.list=new y.List(o,t,i,l,b(c,g))}updateOptions(o){this.list.updateOptions(o)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return I.Event.map(this.list.onMouseDblClick,({element:o,index:t,browserEvent:i})=>({element:o===void 0?void 0:this._model.get(o),index:t,browserEvent:i}))}get onPointer(){return I.Event.map(this.list.onPointer,({element:o,index:t,browserEvent:i})=>({element:o===void 0?void 0:this._model.get(o),index:t,browserEvent:i}))}get onDidChangeSelection(){return I.Event.map(this.list.onDidChangeSelection,({elements:o,indexes:t,browserEvent:i})=>({elements:o.map(s=>this._model.get(s)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(o){this._model=o,this.list.splice(0,this.list.length,(0,d.range)(o.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(o=>this.model.get(o))}style(o){this.list.style(o)}dispose(){this.list.dispose()}}e.PagedList=p}),define(ne[357],se([1,0,5,93,173,86,13,33,6,2,141,163,19,474]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SplitView=e.Sizing=void 0;const t={separatorBorder:m.Color.transparent};class i{set size(u){this._size=u}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(u,C){if(u!==this.visible){u?(this.size=(0,p.clamp)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof C=="number"?C:this.size,this.size=0),this.container.classList.toggle("visible",u);try{this.view.setVisible?.(u)}catch(f){console.error("Splitview: Failed to set visible view"),console.error(f)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){return this.view.proportionalLayout??!0}get snap(){return!!this.view.snap}set enabled(u){this.container.style.pointerEvents=u?"":"none"}constructor(u,C,f,h){this.container=u,this.view=C,this.disposable=h,this._cachedVisibleSize=void 0,typeof f=="number"?(this._size=f,this._cachedVisibleSize=void 0,u.classList.add("visible")):(this._size=0,this._cachedVisibleSize=f.cachedVisibleSize)}layout(u,C){this.layoutContainer(u);try{this.view.layout(this.size,u,C)}catch(f){console.error("Splitview: Failed to layout view"),console.error(f)}}dispose(){this.disposable.dispose()}}class s extends i{layoutContainer(u){this.container.style.top=`${u}px`,this.container.style.height=`${this.size}px`}}class g extends i{layoutContainer(u){this.container.style.left=`${u}px`,this.container.style.width=`${this.size}px`}}var c;(function(r){r[r.Idle=0]="Idle",r[r.Busy=1]="Busy"})(c||(c={}));var l;(function(r){r.Distribute={type:"distribute"};function u(h){return{type:"split",index:h}}r.Split=u;function C(h){return{type:"auto",index:h}}r.Auto=C;function f(h){return{type:"invisible",cachedVisibleSize:h}}r.Invisible=f})(l||(e.Sizing=l={}));class a extends b.Disposable{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(u){for(const C of this.sashItems)C.sash.orthogonalStartSash=u;this._orthogonalStartSash=u}set orthogonalEndSash(u){for(const C of this.sashItems)C.sash.orthogonalEndSash=u;this._orthogonalEndSash=u}set startSnappingEnabled(u){this._startSnappingEnabled!==u&&(this._startSnappingEnabled=u,this.updateSashEnablement())}set endSnappingEnabled(u){this._endSnappingEnabled!==u&&(this._endSnappingEnabled=u,this.updateSashEnablement())}constructor(u,C={}){super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=c.Idle,this._onDidSashChange=this._register(new _.Emitter),this._onDidSashReset=this._register(new _.Emitter),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=C.orientation??0,this.inverseAltBehavior=C.inverseAltBehavior??!1,this.proportionalLayout=C.proportionalLayout??!0,this.getSashOrthogonalSize=C.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),u.appendChild(this.el),this.sashContainer=(0,d.append)(this.el,(0,d.$)(".sash-container")),this.viewContainer=(0,d.$)(".split-view-container"),this.scrollable=this._register(new n.Scrollable({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:h=>(0,d.scheduleAtNextAnimationFrame)((0,d.getWindow)(this.el),h)})),this.scrollableElement=this._register(new E.SmoothScrollableElement(this.viewContainer,{vertical:this.orientation===0?C.scrollbarVisibility??1:2,horizontal:this.orientation===1?C.scrollbarVisibility??1:2},this.scrollable));const f=this._register(new k.DomEmitter(this.viewContainer,"scroll")).event;this._register(f(h=>{const v=this.scrollableElement.getScrollPosition(),w=Math.abs(this.viewContainer.scrollLeft-v.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,S=Math.abs(this.viewContainer.scrollTop-v.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(w!==void 0||S!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:w,scrollTop:S})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(h=>{h.scrollTopChanged&&(this.viewContainer.scrollTop=h.scrollTop),h.scrollLeftChanged&&(this.viewContainer.scrollLeft=h.scrollLeft)})),(0,d.append)(this.el,this.scrollableElement.getDomNode()),this.style(C.styles||t),C.descriptor&&(this.size=C.descriptor.size,C.descriptor.views.forEach((h,v)=>{const w=o.isUndefined(h.visible)||h.visible?h.size:{type:"invisible",cachedVisibleSize:h.size},S=h.view;this.doAddView(S,w,v,!0)}),this._contentSize=this.viewItems.reduce((h,v)=>h+v.size,0),this.saveProportions())}style(u){u.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",u.separatorBorder.toString()))}addView(u,C,f=this.viewItems.length,h){this.doAddView(u,C,f,h)}layout(u,C){const f=Math.max(this.size,this._contentSize);if(this.size=u,this.layoutContext=C,this.proportions){let h=0;for(let v=0;v0&&(w.size=(0,p.clamp)(Math.round(S*u/h),w.minimumSize,w.maximumSize))}}else{const h=(0,y.range)(this.viewItems.length),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);this.resize(this.viewItems.length-1,u-f,void 0,v,w)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(u=>u.proportionalLayout&&u.visible?u.size/this._contentSize:void 0))}onSashStart({sash:u,start:C,alt:f}){for(const S of this.viewItems)S.enabled=!1;const h=this.sashItems.findIndex(S=>S.sash===u),v=(0,b.combinedDisposable)((0,d.addDisposableListener)(this.el.ownerDocument.body,"keydown",S=>w(this.sashDragState.current,S.altKey)),(0,d.addDisposableListener)(this.el.ownerDocument.body,"keyup",()=>w(this.sashDragState.current,!1))),w=(S,L)=>{const D=this.viewItems.map(N=>N.size);let T=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(L=!L),L)if(h===this.sashItems.length-1){const O=this.viewItems[h];T=(O.minimumSize-O.size)/2,M=(O.maximumSize-O.size)/2}else{const O=this.viewItems[h+1];T=(O.size-O.maximumSize)/2,M=(O.size-O.minimumSize)/2}let A,P;if(!L){const N=(0,y.range)(h,-1),O=(0,y.range)(h+1,this.viewItems.length),F=N.reduce((j,Y)=>j+(this.viewItems[Y].minimumSize-D[Y]),0),x=N.reduce((j,Y)=>j+(this.viewItems[Y].viewMaximumSize-D[Y]),0),W=O.length===0?Number.POSITIVE_INFINITY:O.reduce((j,Y)=>j+(D[Y]-this.viewItems[Y].minimumSize),0),V=O.length===0?Number.NEGATIVE_INFINITY:O.reduce((j,Y)=>j+(D[Y]-this.viewItems[Y].viewMaximumSize),0),q=Math.max(F,V),H=Math.min(W,x),z=this.findFirstSnapIndex(N),U=this.findFirstSnapIndex(O);if(typeof z=="number"){const j=this.viewItems[z],Y=Math.floor(j.viewMinimumSize/2);A={index:z,limitDelta:j.visible?q-Y:q+Y,size:j.size}}if(typeof U=="number"){const j=this.viewItems[U],Y=Math.floor(j.viewMinimumSize/2);P={index:U,limitDelta:j.visible?H+Y:H-Y,size:j.size}}}this.sashDragState={start:S,current:S,index:h,sizes:D,minDelta:T,maxDelta:M,alt:L,snapBefore:A,snapAfter:P,disposable:v}};w(C,f)}onSashChange({current:u}){const{index:C,start:f,sizes:h,alt:v,minDelta:w,maxDelta:S,snapBefore:L,snapAfter:D}=this.sashDragState;this.sashDragState.current=u;const T=u-f,M=this.resize(C,T,h,void 0,void 0,w,S,L,D);if(v){const A=C===this.sashItems.length-1,P=this.viewItems.map(V=>V.size),N=A?C:C+1,O=this.viewItems[N],F=O.size-O.maximumSize,x=O.size-O.minimumSize,W=A?C-1:C+1;this.resize(W,-M,P,void 0,void 0,F,x)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(u){this._onDidSashChange.fire(u),this.sashDragState.disposable.dispose(),this.saveProportions();for(const C of this.viewItems)C.enabled=!0}onViewChange(u,C){const f=this.viewItems.indexOf(u);f<0||f>=this.viewItems.length||(C=typeof C=="number"?C:u.size,C=(0,p.clamp)(C,u.minimumSize,u.maximumSize),this.inverseAltBehavior&&f>0?(this.resize(f-1,Math.floor((u.size-C)/2)),this.distributeEmptySpace(),this.layoutViews()):(u.size=C,this.relayout([f],void 0)))}resizeView(u,C){if(!(u<0||u>=this.viewItems.length)){if(this.state!==c.Idle)throw new Error("Cant modify splitview");this.state=c.Busy;try{const f=(0,y.range)(this.viewItems.length).filter(S=>S!==u),h=[...f.filter(S=>this.viewItems[S].priority===1),u],v=f.filter(S=>this.viewItems[S].priority===2),w=this.viewItems[u];C=Math.round(C),C=(0,p.clamp)(C,w.minimumSize,Math.min(w.maximumSize,this.size)),w.size=C,this.relayout(h,v)}finally{this.state=c.Idle}}}distributeViewSizes(){const u=[];let C=0;for(const S of this.viewItems)S.maximumSize-S.minimumSize>0&&(u.push(S),C+=S.size);const f=Math.floor(C/u.length);for(const S of u)S.size=(0,p.clamp)(f,S.minimumSize,S.maximumSize);const h=(0,y.range)(this.viewItems.length),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);this.relayout(v,w)}getViewSize(u){return u<0||u>=this.viewItems.length?-1:this.viewItems[u].size}doAddView(u,C,f=this.viewItems.length,h){if(this.state!==c.Idle)throw new Error("Cant modify splitview");this.state=c.Busy;try{const v=(0,d.$)(".split-view-view");f===this.viewItems.length?this.viewContainer.appendChild(v):this.viewContainer.insertBefore(v,this.viewContainer.children.item(f));const w=u.onDidChange(A=>this.onViewChange(T,A)),S=(0,b.toDisposable)(()=>v.remove()),L=(0,b.combinedDisposable)(w,S);let D;typeof C=="number"?D=C:(C.type==="auto"&&(this.areViewsDistributed()?C={type:"distribute"}:C={type:"split",index:C.index}),C.type==="split"?D=this.getViewSize(C.index)/2:C.type==="invisible"?D={cachedVisibleSize:C.cachedVisibleSize}:D=u.minimumSize);const T=this.orientation===0?new s(v,u,D,L):new g(v,u,D,L);if(this.viewItems.splice(f,0,T),this.viewItems.length>1){const A={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},P=this.orientation===0?new I.Sash(this.sashContainer,{getHorizontalSashTop:j=>this.getSashPosition(j),getHorizontalSashWidth:this.getSashOrthogonalSize},{...A,orientation:1}):new I.Sash(this.sashContainer,{getVerticalSashLeft:j=>this.getSashPosition(j),getVerticalSashHeight:this.getSashOrthogonalSize},{...A,orientation:0}),N=this.orientation===0?j=>({sash:P,start:j.startY,current:j.currentY,alt:j.altKey}):j=>({sash:P,start:j.startX,current:j.currentX,alt:j.altKey}),F=_.Event.map(P.onDidStart,N)(this.onSashStart,this),W=_.Event.map(P.onDidChange,N)(this.onSashChange,this),q=_.Event.map(P.onDidEnd,()=>this.sashItems.findIndex(j=>j.sash===P))(this.onSashEnd,this),H=P.onDidReset(()=>{const j=this.sashItems.findIndex(J=>J.sash===P),Y=(0,y.range)(j,-1),G=(0,y.range)(j+1,this.viewItems.length),K=this.findFirstSnapIndex(Y),R=this.findFirstSnapIndex(G);typeof K=="number"&&!this.viewItems[K].visible||typeof R=="number"&&!this.viewItems[R].visible||this._onDidSashReset.fire(j)}),z=(0,b.combinedDisposable)(F,W,q,H,P),U={sash:P,disposable:z};this.sashItems.splice(f-1,0,U)}v.appendChild(u.element);let M;typeof C!="number"&&C.type==="split"&&(M=[C.index]),h||this.relayout([f],M),!h&&typeof C!="number"&&C.type==="distribute"&&this.distributeViewSizes()}finally{this.state=c.Idle}}relayout(u,C){const f=this.viewItems.reduce((h,v)=>h+v.size,0);this.resize(this.viewItems.length-1,this.size-f,void 0,u,C),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(u,C,f=this.viewItems.map(T=>T.size),h,v,w=Number.NEGATIVE_INFINITY,S=Number.POSITIVE_INFINITY,L,D){if(u<0||u>=this.viewItems.length)return 0;const T=(0,y.range)(u,-1),M=(0,y.range)(u+1,this.viewItems.length);if(v)for(const U of v)(0,y.pushToStart)(T,U),(0,y.pushToStart)(M,U);if(h)for(const U of h)(0,y.pushToEnd)(T,U),(0,y.pushToEnd)(M,U);const A=T.map(U=>this.viewItems[U]),P=T.map(U=>f[U]),N=M.map(U=>this.viewItems[U]),O=M.map(U=>f[U]),F=T.reduce((U,j)=>U+(this.viewItems[j].minimumSize-f[j]),0),x=T.reduce((U,j)=>U+(this.viewItems[j].maximumSize-f[j]),0),W=M.length===0?Number.POSITIVE_INFINITY:M.reduce((U,j)=>U+(f[j]-this.viewItems[j].minimumSize),0),V=M.length===0?Number.NEGATIVE_INFINITY:M.reduce((U,j)=>U+(f[j]-this.viewItems[j].maximumSize),0),q=Math.max(F,V,w),H=Math.min(W,x,S);let z=!1;if(L){const U=this.viewItems[L.index],j=C>=L.limitDelta;z=j!==U.visible,U.setVisible(j,L.size)}if(!z&&D){const U=this.viewItems[D.index],j=CS+L.size,0);let f=this.size-C;const h=(0,y.range)(this.viewItems.length-1,-1),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);for(const S of w)(0,y.pushToStart)(h,S);for(const S of v)(0,y.pushToEnd)(h,S);typeof u=="number"&&(0,y.pushToEnd)(h,u);for(let S=0;f!==0&&SC+f.size,0);let u=0;for(const C of this.viewItems)C.layout(u,this.layoutContext),u+=C.size;this.sashItems.forEach(C=>C.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let u=!1;const C=this.viewItems.map(L=>u=L.size-L.minimumSize>0||u);u=!1;const f=this.viewItems.map(L=>u=L.maximumSize-L.size>0||u),h=[...this.viewItems].reverse();u=!1;const v=h.map(L=>u=L.size-L.minimumSize>0||u).reverse();u=!1;const w=h.map(L=>u=L.maximumSize-L.size>0||u).reverse();let S=0;for(let L=0;L0||this.startSnappingEnabled)?D.state=1:W&&C[L]&&(S0)return;if(!f.visible&&f.snap)return C}}areViewsDistributed(){let u,C;for(const f of this.viewItems)if(u=u===void 0?f.size:Math.min(u,f.size),C=C===void 0?f.size:Math.max(C,f.size),C-u>2)return!1;return!0}dispose(){this.sashDragState?.disposable.dispose(),(0,b.dispose)(this.viewItems),this.viewItems=[],this.sashItems.forEach(u=>u.disposable.dispose()),this.sashItems=[],super.dispose()}}e.SplitView=a}),define(ne[638],se([1,0,5,81,44,115,357,6,2,475]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Table=void 0;class b{static{this.TemplateId="row"}constructor(i,s,g){this.columns=i,this.getColumnSize=g,this.templateId=b.TemplateId,this.renderedTemplates=new Set;const c=new Map(s.map(l=>[l.templateId,l]));this.renderers=[];for(const l of i){const a=c.get(l.templateId);if(!a)throw new Error(`Table cell renderer for template id ${l.templateId} not found.`);this.renderers.push(a)}}renderTemplate(i){const s=(0,d.append)(i,(0,d.$)(".monaco-table-tr")),g=[],c=[];for(let a=0;athis.disposables.add(new n(f,h))),u={size:r.reduce((f,h)=>f+h.column.weight,0),views:r.map(f=>({size:f.column.weight,view:f}))};this.splitview=this.disposables.add(new y.SplitView(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:u})),this.splitview.el.style.height=`${g.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${g.headerRowHeight}px`;const C=new b(c,l,f=>this.splitview.getViewSize(f));this.list=this.disposables.add(new E.List(i,this.domNode,p(g),[C],a)),m.Event.any(...r.map(f=>f.onDidLayout))(([f,h])=>C.layoutColumn(f,h),null,this.disposables),this.splitview.onDidSashReset(f=>{const h=c.reduce((w,S)=>w+S.weight,0),v=c[f].weight/h*this.cachedWidth;this.splitview.resizeView(f,v)},null,this.disposables),this.styleElement=(0,d.createStyleSheet)(this.domNode),this.style(E.unthemedListStyles)}updateOptions(i){this.list.updateOptions(i)}splice(i,s,g=[]){this.list.splice(i,s,g)}getHTMLElement(){return this.domNode}style(i){const s=[];s.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { - top: ${this.virtualDelegate.headerRowHeight+1}px; - height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); - }`),this.styleElement.textContent=s.join(` -`),this.list.style(i)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}e.Table=o}),define(ne[175],se([1,0,85,30,6,44,81,476]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Toggle=e.unthemedToggleStyles=void 0,e.unthemedToggleStyles={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class m extends d.Widget{constructor(b){super(),this._onChange=this._register(new I.Emitter),this.onChange=this._onChange.event,this._onKeyDown=this._register(new I.Emitter),this.onKeyDown=this._onKeyDown.event,this._opts=b,this._checked=this._opts.isChecked;const p=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,p.push(...k.ThemeIcon.asClassNameArray(this._icon))),this._opts.actionClassName&&p.push(...this._opts.actionClassName.split(" ")),this._checked&&p.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register((0,y.getBaseLayerHoverDelegate)().setupManagedHover(b.hoverDelegate??(0,E.getDefaultHoverDelegate)("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...p),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,n=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),n.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,n=>{if(n.keyCode===10||n.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),n.preventDefault(),n.stopPropagation();return}this._onKeyDown.fire(n)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(b){this._checked=b,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}e.Toggle=m}),define(ne[358],se([1,0,44,175,26,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RegexToggle=e.WholeWordsToggle=e.CaseSensitiveToggle=void 0;const y=E.localize(2,"Match Case"),m=E.localize(3,"Match Whole Word"),_=E.localize(4,"Use Regular Expression");class b extends k.Toggle{constructor(t){super({icon:I.Codicon.caseSensitive,title:y+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.CaseSensitiveToggle=b;class p extends k.Toggle{constructor(t){super({icon:I.Codicon.wholeWord,title:m+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.WholeWordsToggle=p;class n extends k.Toggle{constructor(t){super({icon:I.Codicon.regex,title:_+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.RegexToggle=n}),define(ne[48],se([1,0,251,42,99,16,11,22]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataUri=e.addTrailingPathSeparator=e.removeTrailingPathSeparator=e.hasTrailingPathSeparator=e.isEqualAuthority=e.isAbsolutePath=e.resolvePath=e.relativePath=e.normalizePath=e.joinPath=e.dirname=e.extname=e.basename=e.basenameOrAuthority=e.getComparisonKey=e.isEqualOrParent=e.isEqual=e.extUriIgnorePathCase=e.extUriBiasedIgnorePathCase=e.extUri=e.ExtUri=void 0,e.originalFSPath=_;function _(n){return(0,m.uriToFsPath)(n,!0)}class b{constructor(o){this._ignorePathCasing=o}compare(o,t,i=!1){return o===t?0:(0,y.compare)(this.getComparisonKey(o,i),this.getComparisonKey(t,i))}isEqual(o,t,i=!1){return o===t?!0:!o||!t?!1:this.getComparisonKey(o,i)===this.getComparisonKey(t,i)}getComparisonKey(o,t=!1){return o.with({path:this._ignorePathCasing(o)?o.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(o,t,i=!1){if(o.scheme===t.scheme){if(o.scheme===k.Schemas.file)return d.isEqualOrParent(_(o),_(t),this._ignorePathCasing(o))&&o.query===t.query&&(i||o.fragment===t.fragment);if((0,e.isEqualAuthority)(o.authority,t.authority))return d.isEqualOrParent(o.path,t.path,this._ignorePathCasing(o),"/")&&o.query===t.query&&(i||o.fragment===t.fragment)}return!1}joinPath(o,...t){return m.URI.joinPath(o,...t)}basenameOrAuthority(o){return(0,e.basename)(o)||o.authority}basename(o){return I.posix.basename(o.path)}extname(o){return I.posix.extname(o.path)}dirname(o){if(o.path.length===0)return o;let t;return o.scheme===k.Schemas.file?t=m.URI.file(I.dirname(_(o))).path:(t=I.posix.dirname(o.path),o.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${o.toString})) resulted in a relative path`),t="/")),o.with({path:t})}normalizePath(o){if(!o.path.length)return o;let t;return o.scheme===k.Schemas.file?t=m.URI.file(I.normalize(_(o))).path:t=I.posix.normalize(o.path),o.with({path:t})}relativePath(o,t){if(o.scheme!==t.scheme||!(0,e.isEqualAuthority)(o.authority,t.authority))return;if(o.scheme===k.Schemas.file){const g=I.relative(_(o),_(t));return E.isWindows?d.toSlashes(g):g}let i=o.path||"/";const s=t.path||"/";if(this._ignorePathCasing(o)){let g=0;for(const c=Math.min(i.length,s.length);gd.getRoot(i).length&&i[i.length-1]===t}else{const i=o.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(o.fsPath)}}removeTrailingPathSeparator(o,t=I.sep){return(0,e.hasTrailingPathSeparator)(o,t)?o.with({path:o.path.substr(0,o.path.length-1)}):o}addTrailingPathSeparator(o,t=I.sep){let i=!1;if(o.scheme===k.Schemas.file){const s=_(o);i=s!==void 0&&s.length===d.getRoot(s).length&&s[s.length-1]===t}else{t="/";const s=o.path;i=s.length===1&&s.charCodeAt(s.length-1)===47}return!i&&!(0,e.hasTrailingPathSeparator)(o,t)?o.with({path:o.path+"/"}):o}}e.ExtUri=b,e.extUri=new b(()=>!1),e.extUriBiasedIgnorePathCase=new b(n=>n.scheme===k.Schemas.file?!E.isLinux:!0),e.extUriIgnorePathCase=new b(n=>!0),e.isEqual=e.extUri.isEqual.bind(e.extUri),e.isEqualOrParent=e.extUri.isEqualOrParent.bind(e.extUri),e.getComparisonKey=e.extUri.getComparisonKey.bind(e.extUri),e.basenameOrAuthority=e.extUri.basenameOrAuthority.bind(e.extUri),e.basename=e.extUri.basename.bind(e.extUri),e.extname=e.extUri.extname.bind(e.extUri),e.dirname=e.extUri.dirname.bind(e.extUri),e.joinPath=e.extUri.joinPath.bind(e.extUri),e.normalizePath=e.extUri.normalizePath.bind(e.extUri),e.relativePath=e.extUri.relativePath.bind(e.extUri),e.resolvePath=e.extUri.resolvePath.bind(e.extUri),e.isAbsolutePath=e.extUri.isAbsolutePath.bind(e.extUri),e.isEqualAuthority=e.extUri.isEqualAuthority.bind(e.extUri),e.hasTrailingPathSeparator=e.extUri.hasTrailingPathSeparator.bind(e.extUri),e.removeTrailingPathSeparator=e.extUri.removeTrailingPathSeparator.bind(e.extUri),e.addTrailingPathSeparator=e.extUri.addTrailingPathSeparator.bind(e.extUri);var p;(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function o(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(c=>{const[l,a]=c.split(":");l&&a&&i.set(l,a)});const g=t.path.substring(0,t.path.indexOf(";"));return g&&i.set(n.META_DATA_MIME,g),i}n.parseMetaData=o})(p||(e.DataUri=p={}))}),define(ne[57],se([1,0,8,142,48,11,22]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownString=void 0,e.isEmptyMarkdownString=_,e.isMarkdownString=b,e.markdownStringEqual=p,e.escapeMarkdownSyntaxTokens=n,e.appendEscapedMarkdownCodeBlockFence=o,e.escapeDoubleQuotes=t,e.removeMarkdownEscapes=i,e.parseHrefAndDimensions=s;class m{constructor(c="",l=!1){if(this.value=c,typeof this.value!="string")throw(0,d.illegalArgument)("value");typeof l=="boolean"?(this.isTrusted=l,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=l.isTrusted??void 0,this.supportThemeIcons=l.supportThemeIcons??!1,this.supportHtml=l.supportHtml??!1)}appendText(c,l=0){return this.value+=n(this.supportThemeIcons?(0,k.escapeIcons)(c):c).replace(/([ \t]+)/g,(a,r)=>" ".repeat(r.length)).replace(/\>/gm,"\\>").replace(/\n/g,l===1?`\\ -`:` - -`),this}appendMarkdown(c){return this.value+=c,this}appendCodeblock(c,l){return this.value+=` -${o(l,c)} -`,this}appendLink(c,l,a){return this.value+="[",this.value+=this._escape(l,"]"),this.value+="](",this.value+=this._escape(String(c),")"),a&&(this.value+=` "${this._escape(this._escape(a,'"'),")")}"`),this.value+=")",this}_escape(c,l){const a=new RegExp((0,E.escapeRegExpCharacters)(l),"g");return c.replace(a,(r,u)=>c.charAt(u-1)!=="\\"?`\\${r}`:r)}}e.MarkdownString=m;function _(g){return b(g)?!g.value:Array.isArray(g)?g.every(_):!0}function b(g){return g instanceof m?!0:g&&typeof g=="object"?typeof g.value=="string"&&(typeof g.isTrusted=="boolean"||typeof g.isTrusted=="object"||g.isTrusted===void 0)&&(typeof g.supportThemeIcons=="boolean"||g.supportThemeIcons===void 0):!1}function p(g,c){return g===c?!0:!g||!c?!1:g.value===c.value&&g.isTrusted===c.isTrusted&&g.supportThemeIcons===c.supportThemeIcons&&g.supportHtml===c.supportHtml&&(g.baseUri===c.baseUri||!!g.baseUri&&!!c.baseUri&&(0,I.isEqual)(y.URI.from(g.baseUri),y.URI.from(c.baseUri)))}function n(g){return g.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function o(g,c){const l=g.match(/^`+/gm)?.reduce((r,u)=>r.length>u.length?r:u).length??0,a=l>=3?l+1:3;return[`${"`".repeat(a)}${c}`,g,`${"`".repeat(a)}`].join(` -`)}function t(g){return g.replace(/"/g,""")}function i(g){return g&&g.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function s(g){const c=[],l=g.split("|").map(r=>r.trim());g=l[0];const a=l[1];if(a){const r=/height=(\d+)/.exec(a),u=/width=(\d+)/.exec(a),C=r?r[1]:"",f=u?u[1]:"",h=isFinite(parseInt(f)),v=isFinite(parseInt(C));h&&c.push(`width="${f}"`),v&&c.push(`height="${C}"`)}return{href:g,dimensions:c}}}),define(ne[207],se([1,0,5,351,93,352,47,77,114,8,6,57,142,187,98,2,447,252,42,60,48,11,22]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.allowedMarkdownAttr=void 0,e.renderMarkdown=h,e.renderStringAsPlaintext=T,e.renderMarkdownAsPlaintext=M,e.fillInIncompleteTokens=z;const f=Object.freeze({image:({href:ee,title:de,text:ge})=>{let X=[],B=[];return ee&&({href:ee,dimensions:X}=(0,n.parseHrefAndDimensions)(ee),B.push(`src="${(0,n.escapeDoubleQuotes)(ee)}"`)),ge&&B.push(`alt="${(0,n.escapeDoubleQuotes)(ge)}"`),de&&B.push(`title="${(0,n.escapeDoubleQuotes)(de)}"`),X.length&&(B=B.concat(X)),""},paragraph({tokens:ee}){return`

    ${this.parser.parseInline(ee)}

    `},link({href:ee,title:de,tokens:ge}){let X=this.parser.parseInline(ge);return typeof ee!="string"?"":(ee===X&&(X=(0,n.removeMarkdownEscapes)(X)),de=typeof de=="string"?(0,n.escapeDoubleQuotes)((0,n.removeMarkdownEscapes)(de)):"",ee=(0,n.removeMarkdownEscapes)(ee),ee=ee.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),`
    ${X}`)}});function h(ee,de={},ge={}){const X=new s.DisposableStore;let B=!1;const $=(0,E.createElement)(de),Q=function(Ee){let Me;try{Me=(0,c.parse)(decodeURIComponent(Ee))}catch{}return Me?(Me=(0,a.cloneAndChange)(Me,Ae=>{if(ee.uris&&ee.uris[Ae])return C.URI.revive(ee.uris[Ae])}),encodeURIComponent(JSON.stringify(Me))):Ee},Z=function(Ee,Me){const Ae=ee.uris&&ee.uris[Ee];let Ne=C.URI.revive(Ae);return Me?Ee.startsWith(l.Schemas.data+":")?Ee:(Ne||(Ne=C.URI.parse(Ee)),l.FileAccess.uriToBrowserUri(Ne).toString(!0)):!Ne||C.URI.parse(Ee).toString()===Ne.toString()?Ee:(Ne.query&&(Ne=Ne.with({query:Q(Ne.query)})),Ne.toString())},te=new g.Renderer;te.image=f.image,te.link=f.link,te.paragraph=f.paragraph;const re=[],le=[];if(de.codeBlockRendererSync?te.code=({text:Ee,lang:Me})=>{const Ae=t.defaultGenerator.nextId(),Ne=de.codeBlockRendererSync(v(Me),Ee);return le.push([Ae,Ne]),`
    ${(0,u.escape)(Ee)}
    `}:de.codeBlockRenderer&&(te.code=({text:Ee,lang:Me})=>{const Ae=t.defaultGenerator.nextId(),Ne=de.codeBlockRenderer(v(Me),Ee);return re.push(Ne.then(Ke=>[Ae,Ke])),`
    ${(0,u.escape)(Ee)}
    `}),de.actionHandler){const Ee=function(Ne){let Ke=Ne.target;if(!(Ke.tagName!=="A"&&(Ke=Ke.parentElement,!Ke||Ke.tagName!=="A")))try{let ze=Ke.dataset.href;ze&&(ee.baseUri&&(ze=w(C.URI.from(ee.baseUri),ze)),de.actionHandler.callback(ze,Ne))}catch(ze){(0,b.onUnexpectedError)(ze)}finally{Ne.preventDefault()}},Me=de.actionHandler.disposables.add(new I.DomEmitter($,"click")),Ae=de.actionHandler.disposables.add(new I.DomEmitter($,"auxclick"));de.actionHandler.disposables.add(p.Event.any(Me.event,Ae.event)(Ne=>{const Ke=new m.StandardMouseEvent(d.getWindow($),Ne);!Ke.leftButton&&!Ke.middleButton||Ee(Ke)})),de.actionHandler.disposables.add(d.addDisposableListener($,"keydown",Ne=>{const Ke=new y.StandardKeyboardEvent(Ne);!Ke.equals(10)&&!Ke.equals(3)||Ee(Ke)}))}ee.supportHtml||(te.html=({text:Ee})=>de.sanitizerOptions?.replaceWithPlaintext?(0,u.escape)(Ee):(ee.isTrusted?Ee.match(/^(]+>)|(<\/\s*span>)$/):void 0)?Ee:""),ge.renderer=te;let me=ee.value??"";me.length>1e5&&(me=`${me.substr(0,1e5)}\u2026`),ee.supportThemeIcons&&(me=(0,o.markdownEscapeEscapedIcons)(me));let Ce;if(de.fillInIncompleteTokens){const Ee={...g.defaults,...ge},Me=g.lexer(me,Ee),Ae=z(Me);Ce=g.parser(Ae,Ee)}else Ce=g.parse(me,{...ge,async:!1});ee.supportThemeIcons&&(Ce=(0,_.renderLabelWithIcons)(Ce).map(Me=>typeof Me=="string"?Me:Me.outerHTML).join(""));const Le=new DOMParser().parseFromString(L({isTrusted:ee.isTrusted,...de.sanitizerOptions},Ce),"text/html");if(Le.body.querySelectorAll("img, audio, video, source").forEach(Ee=>{const Me=Ee.getAttribute("src");if(Me){let Ae=Me;try{ee.baseUri&&(Ae=w(C.URI.from(ee.baseUri),Ae))}catch{}if(Ee.setAttribute("src",Z(Ae,!0)),de.remoteImageIsAllowed){const Ne=C.URI.parse(Ae);Ne.scheme!==l.Schemas.file&&Ne.scheme!==l.Schemas.data&&!de.remoteImageIsAllowed(Ne)&&Ee.replaceWith(d.$("",void 0,Ee.outerHTML))}}}),Le.body.querySelectorAll("a").forEach(Ee=>{const Me=Ee.getAttribute("href");if(Ee.setAttribute("href",""),!Me||/^data:|javascript:/i.test(Me)||/^command:/i.test(Me)&&!ee.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(Me))Ee.replaceWith(...Ee.childNodes);else{let Ae=Z(Me,!1);ee.baseUri&&(Ae=w(C.URI.from(ee.baseUri),Me)),Ee.dataset.href=Ae}}),$.innerHTML=L({isTrusted:ee.isTrusted,...de.sanitizerOptions},Le.body.innerHTML),re.length>0)Promise.all(re).then(Ee=>{if(B)return;const Me=new Map(Ee),Ae=$.querySelectorAll("div[data-code]");for(const Ne of Ae){const Ke=Me.get(Ne.dataset.code??"");Ke&&d.reset(Ne,Ke)}de.asyncRenderCallback?.()});else if(le.length>0){const Ee=new Map(le),Me=$.querySelectorAll("div[data-code]");for(const Ae of Me){const Ne=Ee.get(Ae.dataset.code??"");Ne&&d.reset(Ae,Ne)}}if(de.asyncRenderCallback)for(const Ee of $.getElementsByTagName("img")){const Me=X.add(d.addDisposableListener(Ee,"load",()=>{Me.dispose(),de.asyncRenderCallback()}))}return{element:$,dispose:()=>{B=!0,X.dispose()}}}function v(ee){if(!ee)return"";const de=ee.split(/[\s+|:|,|\{|\?]/,1);return de.length?de[0]:ee}function w(ee,de){return/^\w[\w\d+.-]*:/.test(de)?de:ee.path.endsWith("/")?(0,r.resolvePath)(ee,de).toString():(0,r.resolvePath)((0,r.dirname)(ee),de).toString()}const S=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function L(ee,de){const{config:ge,allowedSchemes:X}=D(ee),B=new s.DisposableStore;B.add(ae("uponSanitizeAttribute",($,Q)=>{if(Q.attrName==="style"||Q.attrName==="class"){if($.tagName==="SPAN"){if(Q.attrName==="style"){Q.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(border-radius:[0-9]+px;)?$/.test(Q.attrValue);return}else if(Q.attrName==="class"){Q.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(Q.attrValue);return}}Q.keepAttr=!1;return}else if($.tagName==="INPUT"&&$.attributes.getNamedItem("type")?.value==="checkbox"){if(Q.attrName==="type"&&Q.attrValue==="checkbox"||Q.attrName==="disabled"||Q.attrName==="checked"){Q.keepAttr=!0;return}Q.keepAttr=!1}})),B.add(ae("uponSanitizeElement",($,Q)=>{if(Q.tagName==="input"&&($.attributes.getNamedItem("type")?.value==="checkbox"?$.setAttribute("disabled",""):ee.replaceWithPlaintext||$.remove()),ee.replaceWithPlaintext&&!Q.allowedTags[Q.tagName]&&Q.tagName!=="body"&&$.parentElement){let Z,te;if(Q.tagName==="#comment")Z=``;else{const Ce=S.includes(Q.tagName),ye=$.attributes.length?" "+Array.from($.attributes).map(Le=>`${Le.name}="${Le.value}"`).join(" "):"";Z=`<${Q.tagName}${ye}>`,Ce||(te=``)}const re=document.createDocumentFragment(),le=$.parentElement.ownerDocument.createTextNode(Z);re.appendChild(le);const me=te?$.parentElement.ownerDocument.createTextNode(te):void 0;for(;$.firstChild;)re.appendChild($.firstChild);me&&re.appendChild(me),$.nodeType===Node.COMMENT_NODE?$.parentElement.insertBefore(re,$):$.parentElement.replaceChild(re,$)}})),B.add(d.hookDomPurifyHrefAndSrcSanitizer(X));try{return k.sanitize(de,{...ge,RETURN_TRUSTED_TYPE:!0})}finally{B.dispose()}}e.allowedMarkdownAttr=["align","autoplay","alt","checked","class","colspan","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","rowspan","src","style","target","title","type","width","start"];function D(ee){const de=[l.Schemas.http,l.Schemas.https,l.Schemas.mailto,l.Schemas.data,l.Schemas.file,l.Schemas.vscodeFileResource,l.Schemas.vscodeRemote,l.Schemas.vscodeRemoteResource];return ee.isTrusted&&de.push(l.Schemas.command),{config:{ALLOWED_TAGS:ee.allowedTags??[...d.basicMarkupHtmlTags],ALLOWED_ATTR:e.allowedMarkdownAttr,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:de}}function T(ee){return typeof ee=="string"?ee:M(ee)}function M(ee,de){let ge=ee.value??"";ge.length>1e5&&(ge=`${ge.substr(0,1e5)}\u2026`);const X=g.parse(ge,{async:!1,renderer:de?O.value:N.value}).replace(/&(#\d+|[a-zA-Z]+);/g,B=>A.get(B)??B);return L({isTrusted:!1},X).toString()}const A=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]);function P(){const ee=new g.Renderer;return ee.code=({text:de})=>de,ee.blockquote=({text:de})=>de+` -`,ee.html=de=>"",ee.heading=function({tokens:de}){return this.parser.parseInline(de)+` -`},ee.hr=()=>"",ee.list=function({items:de}){return de.map(ge=>this.listitem(ge)).join(` -`)+` -`},ee.listitem=({text:de})=>de+` -`,ee.paragraph=function({tokens:de}){return this.parser.parseInline(de)+` -`},ee.table=function({header:de,rows:ge}){return de.map(X=>this.tablecell(X)).join(" ")+` -`+ge.map(X=>X.map(B=>this.tablecell(B)).join(" ")).join(` -`)+` -`},ee.tablerow=({text:de})=>de,ee.tablecell=function({tokens:de}){return this.parser.parseInline(de)},ee.strong=({text:de})=>de,ee.em=({text:de})=>de,ee.codespan=({text:de})=>de,ee.br=de=>` -`,ee.del=({text:de})=>de,ee.image=de=>"",ee.text=({text:de})=>de,ee.link=({text:de})=>de,ee}const N=new i.Lazy(ee=>P()),O=new i.Lazy(()=>{const ee=P();return ee.code=({text:de})=>` -\`\`\` -${de} -\`\`\` -`,ee});function F(ee){let de="";return ee.forEach(ge=>{de+=ge.raw}),de}function x(ee){if(ee.tokens)for(let de=ee.tokens.length-1;de>=0;de--){const ge=ee.tokens[de];if(ge.type==="text"){const X=ge.raw.split(` -`),B=X[X.length-1];if(B.includes("`"))return j(ee);if(B.includes("**"))return ie(ee);if(B.match(/\*\w/))return Y(ee);if(B.match(/(^|\s)__\w/))return ue(ee);if(B.match(/(^|\s)_\w/))return G(ee);if(W(B)||V(B)&&ee.tokens.slice(0,de).some($=>$.type==="text"&&$.raw.match(/\[[^\]]*$/))){const $=ee.tokens.slice(de+1);return $[0]?.type==="link"&&$[1]?.type==="text"&&$[1].raw.match(/^ *"[^"]*$/)||B.match(/^[^"]* +"[^"]*$/)?R(ee):K(ee)}else if(B.match(/(^|\s)\[\w*/))return J(ee)}}}function W(ee){return!!ee.match(/(^|\s)\[.*\]\(\w*/)}function V(ee){return!!ee.match(/^[^\[]*\]\([^\)]*$/)}function q(ee){const de=ee.items[ee.items.length-1],ge=de.tokens?de.tokens[de.tokens.length-1]:void 0;let X;if(ge?.type==="text"&&!("inRawBlock"in de)&&(X=x(ge)),!X||X.type!=="paragraph")return;const B=F(ee.items.slice(0,-1)),$=de.raw.match(/^(\s*(-|\d+\.|\*) +)/)?.[0];if(!$)return;const Q=$+F(de.tokens.slice(0,-1))+X.raw,Z=g.lexer(B+Q)[0];if(Z.type==="list")return Z}const H=3;function z(ee){for(let de=0;de"u"&&Q.match(/^\s*\|/)){const Z=Q.match(/(\|[^\|]+)(?=\||$)/g);Z&&(X=Z.length)}else if(typeof X=="number")if(Q.match(/^\s*\|/)){if($!==ge.length-1)return;B=!0}else return}if(typeof X=="number"&&X>0){const $=B?ge.slice(0,-1).join(` -`):de,Q=!!$.match(/\|\s*$/),Z=$+(Q?"":"|")+` -|${" --- |".repeat(X)}`;return g.lexer(Z)}}function ae(ee,de){return k.addHook(ee,de),(0,s.toDisposable)(()=>k.removeHook(ee))}}),define(ne[258],se([1,0,5,351,47,207,69,44,114,33,6,57,2,30,81,459]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Button=e.unthemedButtonStyles=void 0,e.unthemedButtonStyles={buttonBackground:"#0E639C",buttonHoverBackground:"#006BB3",buttonSeparator:b.Color.white.toString(),buttonForeground:b.Color.white.toString(),buttonBorder:void 0,buttonSecondaryBackground:void 0,buttonSecondaryForeground:void 0,buttonSecondaryHoverBackground:void 0};class s extends o.Disposable{get onDidClick(){return this._onDidClick.event}constructor(c,l){super(),this._label="",this._onDidClick=this._register(new p.Emitter),this._onDidEscape=this._register(new p.Emitter),this.options=l,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!l.secondary);const a=l.secondary?l.buttonSecondaryBackground:l.buttonBackground,r=l.secondary?l.buttonSecondaryForeground:l.buttonForeground;this._element.style.color=r||"",this._element.style.backgroundColor=a||"",l.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof l.title=="string"&&this.setTitle(l.title),typeof l.ariaLabel=="string"&&this._element.setAttribute("aria-label",l.ariaLabel),c.appendChild(this._element),this._register(y.Gesture.addTarget(this._element)),[d.EventType.CLICK,y.EventType.Tap].forEach(u=>{this._register((0,d.addDisposableListener)(this._element,u,C=>{if(!this.enabled){d.EventHelper.stop(C);return}this._onDidClick.fire(C)}))}),this._register((0,d.addDisposableListener)(this._element,d.EventType.KEY_DOWN,u=>{const C=new I.StandardKeyboardEvent(u);let f=!1;this.enabled&&(C.equals(3)||C.equals(10))?(this._onDidClick.fire(u),f=!0):C.equals(9)&&(this._onDidEscape.fire(u),this._element.blur(),f=!0),f&&d.EventHelper.stop(C,!0)})),this._register((0,d.addDisposableListener)(this._element,d.EventType.MOUSE_OVER,u=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register((0,d.addDisposableListener)(this._element,d.EventType.MOUSE_OUT,u=>{this.updateBackground(!1)})),this.focusTracker=this._register((0,d.trackFocus)(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(c){const l=[];for(let a of(0,_.renderLabelWithIcons)(c))if(typeof a=="string"){if(a=a.trim(),a==="")continue;const r=document.createElement("span");r.textContent=a,l.push(r)}else l.push(a);return l}updateBackground(c){let l;this.options.secondary?l=c?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:l=c?this.options.buttonHoverBackground:this.options.buttonBackground,l&&(this._element.style.backgroundColor=l)}get element(){return this._element}set label(c){if(this._label===c||(0,n.isMarkdownString)(this._label)&&(0,n.isMarkdownString)(c)&&(0,n.markdownStringEqual)(this._label,c))return;this._element.classList.add("monaco-text-button");const l=this.options.supportShortLabel?this._labelElement:this._element;if((0,n.isMarkdownString)(c)){const r=(0,E.renderMarkdown)(c,{inline:!0});r.dispose();const u=r.element.querySelector("p")?.innerHTML;if(u){const C=(0,k.sanitize)(u,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});l.innerHTML=C}else(0,d.reset)(l)}else this.options.supportIcons?(0,d.reset)(l,...this.getContentElements(c)):l.textContent=c;let a="";typeof this.options.title=="string"?a=this.options.title:this.options.title&&(a=(0,E.renderStringAsPlaintext)(c)),this.setTitle(a),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",a),this._label=c}get label(){return this._label}set icon(c){this._element.classList.add(...t.ThemeIcon.asClassNameArray(c))}set enabled(c){c?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(c){!this._hover&&c!==""?this._hover=this._register((0,i.getBaseLayerHoverDelegate)().setupManagedHover(this.options.hoverDelegate??(0,m.getDefaultHoverDelegate)("mouse"),this._element,c)):this._hover&&this._hover.update(c)}}e.Button=s}),define(ne[639],se([1,0,5,93,47,207,81,44,115,13,6,72,2,16,3,473]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectBoxList=void 0;const s=d.$,g="selectOption.entry.template";class c{get templateId(){return g}renderTemplate(r){const u=Object.create(null);return u.root=r,u.text=d.append(r,s(".option-text")),u.detail=d.append(r,s(".option-detail")),u.decoratorRight=d.append(r,s(".option-decorator-right")),u}renderElement(r,u,C){const f=C,h=r.text,v=r.detail,w=r.decoratorRight,S=r.isDisabled;f.text.textContent=h,f.detail.textContent=v||"",f.decoratorRight.innerText=w||"",S?f.root.classList.add("option-disabled"):f.root.classList.remove("option-disabled")}disposeTemplate(r){}}class l extends o.Disposable{static{this.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32}static{this.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2}static{this.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3}constructor(r,u,C,f,h){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=f,this.selectBoxOptions=h||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=l.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new p.Emitter,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(C),this.selected=u||0,r&&this.setOptions(r,u),this.initStyleSheet()}setTitle(r){!this._hover&&r?this._hover=this._register((0,y.getBaseLayerHoverDelegate)().setupManagedHover((0,m.getDefaultHoverDelegate)("mouse"),this.selectElement,r)):this._hover&&this._hover.update(r)}getHeight(){return 22}getTemplateId(){return g}constructSelectDropDown(r){this.contextViewProvider=r,this.selectDropDownContainer=d.$(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=d.append(this.selectDropDownContainer,s(".select-box-details-pane"));const u=d.append(this.selectDropDownContainer,s(".select-box-dropdown-container-width-control")),C=d.append(u,s(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",d.append(C,this.widthControlElement),this._dropDownPosition=0,this.styleElement=d.createStyleSheet(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(d.addDisposableListener(this.selectDropDownContainer,d.EventType.DRAG_START,f=>{d.EventHelper.stop(f,!0)}))}registerListeners(){this._register(d.addStandardDisposableListener(this.selectElement,"change",u=>{this.selected=u.target.selectedIndex,this._onDidSelect.fire({index:u.target.selectedIndex,selected:u.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)})),this._register(d.addDisposableListener(this.selectElement,d.EventType.CLICK,u=>{d.EventHelper.stop(u),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(d.addDisposableListener(this.selectElement,d.EventType.MOUSE_DOWN,u=>{d.EventHelper.stop(u)}));let r;this._register(d.addDisposableListener(this.selectElement,"touchstart",u=>{r=this._isVisible})),this._register(d.addDisposableListener(this.selectElement,"touchend",u=>{d.EventHelper.stop(u),r?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(d.addDisposableListener(this.selectElement,d.EventType.KEY_DOWN,u=>{const C=new I.StandardKeyboardEvent(u);let f=!1;t.isMacintosh?(C.keyCode===18||C.keyCode===16||C.keyCode===10||C.keyCode===3)&&(f=!0):(C.keyCode===18&&C.altKey||C.keyCode===16&&C.altKey||C.keyCode===10||C.keyCode===3)&&(f=!0),f&&(this.showSelectDropDown(),d.EventHelper.stop(u,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(r,u){b.equals(this.options,r)||(this.options=r,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((C,f)=>{this.selectElement.add(this.createOption(C.text,f,C.isDisabled)),typeof C.description=="string"&&(this._hasDetails=!0)})),u!==void 0&&(this.select(u),this._currentSelection=this.selected)}setOptionsList(){this.selectList?.splice(0,this.selectList.length,this.options)}select(r){r>=0&&rthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(r){this.selectElement.tabIndex=r?0:-1}render(r){this.container=r,r.classList.add("select-container"),r.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const r=[];this.styles.listFocusBackground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(r.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),r.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),r.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=r.join(` -`)}styleSelectElement(){const r=this.styles.selectBackground??"",u=this.styles.selectForeground??"",C=this.styles.selectBorder??"";this.selectElement.style.backgroundColor=r,this.selectElement.style.color=u,this.selectElement.style.borderColor=C}styleList(){const r=this.styles.selectBackground??"",u=d.asCssValueWithDefault(this.styles.selectListBackground,r);this.selectDropDownListContainer.style.backgroundColor=u,this.selectionDetailsPane.style.backgroundColor=u;const C=this.styles.focusBorder??"";this.selectDropDownContainer.style.outlineColor=C,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(r,u,C){const f=document.createElement("option");return f.value=r,f.text=r,f.disabled=!!C,f}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:r=>this.renderSelectDropDown(r,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:r=>this.renderSelectDropDown(r),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(r){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),r&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(r,u){return r.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(u),{dispose:()=>{this.selectDropDownContainer.remove()}}}measureMaxDetailsHeight(){let r=0;return this.options.forEach((u,C)=>{this.updateDetail(C),this.selectionDetailsPane.offsetHeight>r&&(r=this.selectionDetailsPane.offsetHeight)}),r}layoutSelectDropDown(r){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const u=d.getWindow(this.selectElement),C=d.getDomNodePagePosition(this.selectElement),f=d.getWindow(this.selectElement).getComputedStyle(this.selectElement),h=parseFloat(f.getPropertyValue("--dropdown-padding-top"))+parseFloat(f.getPropertyValue("--dropdown-padding-bottom")),v=u.innerHeight-C.top-C.height-(this.selectBoxOptions.minBottomMargin||0),w=C.top-l.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,S=this.selectElement.offsetWidth,L=this.setWidthControlElement(this.widthControlElement),D=Math.max(L,Math.round(S)).toString()+"px";this.selectDropDownContainer.style.width=D,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let T=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const M=this._hasDetails?this._cachedMaxDetailsHeight:0,A=T+h+M,P=Math.floor((v-h-M)/this.getHeight()),N=Math.floor((w-h-M)/this.getHeight());if(r)return C.top+C.height>u.innerHeight-22||C.topP&&this.options.length>P?(this._dropDownPosition=1,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(C.top+C.height>u.innerHeight-22||C.topv&&(T=P*this.getHeight())}else A>w&&(T=N*this.getHeight());return this.selectList.layout(T),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=T+h+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=T+h+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=D,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(r){let u=0;if(r){let C=0,f=0;this.options.forEach((h,v)=>{const w=h.detail?h.detail.length:0,S=h.decoratorRight?h.decoratorRight.length:0,L=h.text.length+w+S;L>f&&(C=v,f=L)}),r.textContent=this.options[C].text+(this.options[C].decoratorRight?this.options[C].decoratorRight+" ":""),u=d.getTotalWidth(r)}return u}createSelectList(r){if(this.selectList)return;this.selectDropDownListContainer=d.append(r,s(".select-box-dropdown-list-container")),this.listRenderer=new c,this.selectList=this._register(new _.List("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:f=>{let h=f.text;return f.detail&&(h+=`. ${f.detail}`),f.decoratorRight&&(h+=`. ${f.decoratorRight}`),f.description&&(h+=`. ${f.description}`),h},getWidgetAriaLabel:()=>(0,i.localize)(16,"Select Box"),getRole:()=>t.isMacintosh?"":"option",getWidgetRole:()=>"listbox"}})),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const u=this._register(new k.DomEmitter(this.selectDropDownListContainer,"keydown")),C=p.Event.chain(u.event,f=>f.filter(()=>this.selectList.length>0).map(h=>new I.StandardKeyboardEvent(h)));this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===3))(this.onEnter,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===2))(this.onEnter,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===9))(this.onEscape,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===16))(this.onUpArrow,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===18))(this.onDownArrow,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===12))(this.onPageDown,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===11))(this.onPageUp,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===14))(this.onHome,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===13))(this.onEnd,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode>=21&&h.keyCode<=56||h.keyCode>=85&&h.keyCode<=113))(this.onCharacter,this)),this._register(d.addDisposableListener(this.selectList.getHTMLElement(),d.EventType.POINTER_UP,f=>this.onPointerUp(f))),this._register(this.selectList.onMouseOver(f=>typeof f.index<"u"&&this.selectList.setFocus([f.index]))),this._register(this.selectList.onDidChangeFocus(f=>this.onListFocus(f))),this._register(d.addDisposableListener(this.selectDropDownContainer,d.EventType.FOCUS_OUT,f=>{!this._isVisible||d.isAncestor(f.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(r){if(!this.selectList.length)return;d.EventHelper.stop(r);const u=r.target;if(!u||u.classList.contains("slider"))return;const C=u.closest(".monaco-list-row");if(!C)return;const f=Number(C.getAttribute("data-index")),h=C.classList.contains("option-disabled");f>=0&&f{for(let v=0;vthis.selected+2)this.selected+=2;else{if(u)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(r){this.selected>0&&(d.EventHelper.stop(r,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(r){d.EventHelper.stop(r),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(r){d.EventHelper.stop(r),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(r){d.EventHelper.stop(r),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(r){const u=n.KeyCodeUtils.toString(r.keyCode);let C=-1;for(let f=0;f{this.element&&this.handleActionChangeEvent(u)}))}handleActionChangeEvent(l){l.enabled!==void 0&&this.updateEnabled(),l.checked!==void 0&&this.updateChecked(),l.class!==void 0&&this.updateClass(),l.label!==void 0&&(this.updateLabel(),this.updateTooltip()),l.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new _.ActionRunner)),this._actionRunner}set actionRunner(l){this._actionRunner=l}isEnabled(){return this._action.enabled}setActionContext(l){this._context=l}render(l){const a=this.element=l;this._register(E.Gesture.addTarget(l));const r=this.options&&this.options.draggable;r&&(l.draggable=!0,d.isFirefox&&this._register((0,I.addDisposableListener)(l,I.EventType.DRAG_START,u=>u.dataTransfer?.setData(k.DataTransfers.TEXT,this._action.label)))),this._register((0,I.addDisposableListener)(a,E.EventType.Tap,u=>this.onClick(u,!0))),this._register((0,I.addDisposableListener)(a,I.EventType.MOUSE_DOWN,u=>{r||I.EventHelper.stop(u,!0),this._action.enabled&&u.button===0&&a.classList.add("active")})),p.isMacintosh&&this._register((0,I.addDisposableListener)(a,I.EventType.CONTEXT_MENU,u=>{u.button===0&&u.ctrlKey===!0&&this.onClick(u)})),this._register((0,I.addDisposableListener)(a,I.EventType.CLICK,u=>{I.EventHelper.stop(u,!0),this.options&&this.options.isMenu||this.onClick(u)})),this._register((0,I.addDisposableListener)(a,I.EventType.DBLCLICK,u=>{I.EventHelper.stop(u,!0)})),[I.EventType.MOUSE_UP,I.EventType.MOUSE_OUT].forEach(u=>{this._register((0,I.addDisposableListener)(a,u,C=>{I.EventHelper.stop(C),a.classList.remove("active")}))})}onClick(l,a=!1){I.EventHelper.stop(l,!0);const r=n.isUndefinedOrNull(this._context)?this.options?.useEventAsContext?l:{preserveFocus:a}:this._context;this.actionRunner.run(this._action,r)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(l){this.element&&(this.element.tabIndex=l?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){if(!this.element)return;const l=this.getTooltip()??"";if(this.updateAriaLabel(),this.options.hoverDelegate?.showNativeHover)this.element.title=l;else if(!this.customHover&&l!==""){const a=this.options.hoverDelegate??(0,y.getDefaultHoverDelegate)("element");this.customHover=this._store.add((0,t.getBaseLayerHoverDelegate)().setupManagedHover(a,this.element,l))}else this.customHover&&this.customHover.update(l)}updateAriaLabel(){if(this.element){const l=this.getTooltip()??"";this.element.setAttribute("aria-label",l)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}e.BaseActionViewItem=i;class s extends i{constructor(l,a,r){super(l,a,r),this.options=r,this.options.icon=r.icon!==void 0?r.icon:!1,this.options.label=r.label!==void 0?r.label:!0,this.cssClass=""}render(l){super.render(l),n.assertType(this.element);const a=document.createElement("a");if(a.classList.add("action-label"),a.setAttribute("role",this.getDefaultAriaRole()),this.label=a,this.element.appendChild(a),this.options.label&&this.options.keybinding){const r=document.createElement("span");r.classList.add("keybinding"),r.textContent=this.options.keybinding,this.element.appendChild(r)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===_.Separator.ID?"presentation":this.options.isMenu?"menuitem":this.options.isTabList?"tab":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(l){this.label&&(this.label.tabIndex=l?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let l=null;return this.action.tooltip?l=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(l=this.action.label,this.options.keybinding&&(l=o.localize(0,"{0} ({1})",l,this.options.keybinding))),l??void 0}updateClass(){this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):this.label?.classList.remove("codicon")}updateEnabled(){this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),this.element?.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),this.element?.classList.add("disabled"))}updateAriaLabel(){if(this.label){const l=this.getTooltip()??"";this.label.setAttribute("aria-label",l)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.options.isTabList?this.label.setAttribute("aria-selected",this.action.checked?"true":"false"):(this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox"))):(this.label.classList.remove("checked"),this.label.removeAttribute(this.options.isTabList?"aria-selected":"aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}e.ActionViewItem=s;class g extends i{constructor(l,a,r,u,C,f,h){super(l,a),this.selectBox=new m.SelectBox(r,u,C,f,h),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(l){this.selectBox.select(l)}registerListeners(){this._register(this.selectBox.onDidSelect(l=>this.runAction(l.selected,l.index)))}runAction(l,a){this.actionRunner.run(this._action,this.getActionContext(l,a))}getActionContext(l,a){return l}setFocusable(l){this.selectBox.setFocusable(l)}focus(){this.selectBox?.focus()}blur(){this.selectBox?.blur()}render(l){this.selectBox.render(l)}}e.SelectActionViewItem=g}),define(ne[87],se([1,0,5,47,151,44,41,6,2,19,302]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionBar=void 0;class p extends _.Disposable{constructor(o,t={}){super(),this._actionRunnerDisposables=this._register(new _.DisposableStore),this.viewItemDisposables=this._register(new _.DisposableMap),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new m.Emitter),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new m.Emitter({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new m.Emitter),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new m.Emitter),this.onWillRun=this._onWillRun.event,this.options=t,this._context=t.context??null,this._orientation=this.options.orientation??0,this._triggerKeys={keyDown:this.options.triggerKeys?.keyDown??!1,keys:this.options.triggerKeys?.keys??[3,10]},this._hoverDelegate=t.hoverDelegate??this._register((0,E.createInstantHoverDelegate)()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new y.ActionRunner,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(g=>this._onDidRun.fire(g))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(g=>this._onWillRun.fire(g))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let i,s;switch(this._orientation){case 0:i=[15],s=[17];break;case 1:i=[16],s=[18],this.domNode.className+=" vertical";break}this._register(d.addDisposableListener(this.domNode,d.EventType.KEY_DOWN,g=>{const c=new k.StandardKeyboardEvent(g);let l=!0;const a=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;i&&(c.equals(i[0])||c.equals(i[1]))?l=this.focusPrevious():s&&(c.equals(s[0])||c.equals(s[1]))?l=this.focusNext():c.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():c.equals(14)?l=this.focusFirst():c.equals(13)?l=this.focusLast():c.equals(2)&&a instanceof I.BaseActionViewItem&&a.trapsArrowNavigation?l=this.focusNext(void 0,!0):this.isTriggerKeyEvent(c)?this._triggerKeys.keyDown?this.doTrigger(c):this.triggerKeyDown=!0:l=!1,l&&(c.preventDefault(),c.stopPropagation())})),this._register(d.addDisposableListener(this.domNode,d.EventType.KEY_UP,g=>{const c=new k.StandardKeyboardEvent(g);this.isTriggerKeyEvent(c)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(c)),c.preventDefault(),c.stopPropagation()):(c.equals(2)||c.equals(1026)||c.equals(16)||c.equals(18)||c.equals(15)||c.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(d.trackFocus(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(d.getActiveElement()===this.domNode||!d.isAncestor(d.getActiveElement(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),o.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(o){if(this.focusable=o,this.focusable){const t=this.viewItems.find(i=>i instanceof I.BaseActionViewItem&&i.isEnabled());t instanceof I.BaseActionViewItem&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof I.BaseActionViewItem&&t.setFocusable(!1)})}isTriggerKeyEvent(o){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||o.equals(i)}),t}updateFocusedItem(){for(let o=0;ot.setActionContext(o))}get actionRunner(){return this._actionRunner}set actionRunner(o){this._actionRunner=o,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=o)}getContainer(){return this.domNode}getAction(o){if(typeof o=="number")return this.viewItems[o]?.action;if(d.isHTMLElement(o)){for(;o.parentElement!==this.actionsList;){if(!o.parentElement)return;o=o.parentElement}for(let t=0;t{const c=document.createElement("li");c.className="action-item",c.setAttribute("role","presentation");let l;const a={hoverDelegate:this._hoverDelegate,...t,isTabList:this.options.ariaRole==="tablist"};this.options.actionViewItemProvider&&(l=this.options.actionViewItemProvider(g,a)),l||(l=new I.ActionViewItem(this.context,g,a)),this.options.allowContextMenu||this.viewItemDisposables.set(l,d.addDisposableListener(c,d.EventType.CONTEXT_MENU,r=>{d.EventHelper.stop(r,!0)})),l.actionRunner=this._actionRunner,l.setActionContext(this.context),l.render(c),this.focusable&&l instanceof I.BaseActionViewItem&&this.viewItems.length===0&&l.setFocusable(!0),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(c),this.viewItems.push(l)):(this.actionsList.insertBefore(c,this.actionsList.children[s]),this.viewItems.splice(s,0,l),s++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=(0,_.dispose)(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),d.clearNode(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(o){let t=!1,i;if(o===void 0?t=!0:typeof o=="number"?i=o:typeof o=="boolean"&&(t=o),t&&typeof this.focusedItem>"u"){const s=this.viewItems.findIndex(g=>g.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(o,t){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let s;do{if(!o&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=i,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,s=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!s.isEnabled()||s.action.id===y.Separator.ID));return this.updateFocus(void 0,void 0,t),!0}focusPrevious(o){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!o&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===y.Separator.ID));return this.updateFocus(!0),!0}updateFocus(o,t,i=!1){typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&this.viewItems[this.previouslyFocusedItem]?.blur();const s=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(s){let g=!0;b.isFunction(s.focus)||(g=!1),this.options.focusOnlyEnabledItems&&b.isFunction(s.isEnabled)&&!s.isEnabled()&&(g=!1),s.action.id===y.Separator.ID&&(g=!1),g?(i||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(o),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),g&&s.showHover?.()}}doTrigger(o){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof I.BaseActionViewItem){const i=t._context===null||t._context===void 0?o:t._context;this.run(t._action,i)}}async run(o,t){await this._actionRunner.run(o,t)}dispose(){this._context=void 0,this.viewItems=(0,_.dispose)(this.viewItems),this.getContainer().remove(),super.dispose()}}e.ActionBar=p}),define(ne[359],se([1,0,5,151,631,6,44,81,303]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenuActionViewItem=void 0;class _ extends k.BaseActionViewItem{constructor(p,n,o,t=Object.create(null)){super(null,p,t),this.actionItem=null,this._onDidChangeVisibility=this._register(new E.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=n,this.contextMenuProvider=o,this.options=t,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(p){this.actionItem=p;const n=i=>{this.element=(0,d.append)(i,(0,d.$)("a.action-label"));let s=[];return typeof this.options.classNames=="string"?s=this.options.classNames.split(/\s+/g).filter(g=>!!g):this.options.classNames&&(s=this.options.classNames),s.find(g=>g==="icon")||s.push("codicon"),this.element.classList.add(...s),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register((0,m.getBaseLayerHoverDelegate)().setupManagedHover(this.options.hoverDelegate??(0,y.getDefaultHoverDelegate)("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},o=Array.isArray(this.menuActionsOrProvider),t={contextMenuProvider:this.contextMenuProvider,labelRenderer:n,menuAsChild:this.options.menuAsChild,actions:o?this.menuActionsOrProvider:void 0,actionProvider:o?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new I.DropdownMenu(p,t)),this._register(this.dropdownMenu.onDidChangeVisibility(i=>{this.element?.setAttribute("aria-expanded",`${i}`),this._onDidChangeVisibility.fire(i)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const i=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return i.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let p=null;return this.action.tooltip?p=this.action.tooltip:this.action.label&&(p=this.action.label),p??void 0}setActionContext(p){super.setActionContext(p),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=p:this.dropdownMenu.menuOptions={context:p})}show(){this.dropdownMenu?.show()}updateEnabled(){const p=!this.action.enabled;this.actionItem?.classList.toggle("disabled",p),this.element?.classList.toggle("disabled",p)}}e.DropdownMenuActionViewItem=_}),define(ne[259],se([1,0,5,93,352,87,46,81,44,86,85,6,450,60,3,466]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryInputBox=e.InputBox=e.unthemedInboxStyles=void 0;const s=d.$;e.unthemedInboxStyles={inputBackground:"#3C3C3C",inputForeground:"#CCCCCC",inputValidationInfoBorder:"#55AAFF",inputValidationInfoBackground:"#063B49",inputValidationWarningBorder:"#B89500",inputValidationWarningBackground:"#352A05",inputValidationErrorBorder:"#BE1100",inputValidationErrorBackground:"#5A1D1D",inputBorder:void 0,inputValidationErrorForeground:void 0,inputValidationInfoForeground:void 0,inputValidationWarningForeground:void 0};class g extends p.Widget{constructor(a,r,u){super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new n.Emitter),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new n.Emitter),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=r,this.options=u,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=this.options.tooltip??(this.placeholder||""),this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=d.append(a,s(".monaco-inputbox.idle"));const C=this.options.flexibleHeight?"textarea":"input",f=d.append(this.element,s(".ibwrapper"));if(this.input=d.append(f,s(C+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=d.append(f,s("div.mirror")),this.mirror.innerText="\xA0",this.scrollableElement=new b.ScrollableElement(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),d.append(a,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(w=>this.input.scrollTop=w.scrollTop));const h=this._register(new k.DomEmitter(a.ownerDocument,"selectionchange")),v=n.Event.filter(h.event,()=>a.ownerDocument.getSelection()?.anchorNode===f);this._register(v(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new E.ActionBar(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(a){this.placeholder=a,this.input.setAttribute("placeholder",a)}setTooltip(a){this.tooltip=a,this.hover?this.hover.update(a):this.hover=this._register((0,m.getBaseLayerHoverDelegate)().setupManagedHover((0,_.getDefaultHoverDelegate)("mouse"),this.input,a))}get inputElement(){return this.input}get value(){return this.input.value}set value(a){this.input.value!==a&&(this.input.value=a,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:d.getTotalHeight(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return d.isActiveElement(this.input)}select(a=null){this.input.select(),a&&(this.input.setSelectionRange(a.start,a.end),a.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){const a=this.input.selectionStart;if(a===null)return null;const r=this.input.selectionEnd??a;return{start:a,end:r}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(a){this.input.style.width=`calc(100% - ${a}px)`,this.mirror&&(this.mirror.style.paddingRight=a+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const a=this.cachedContentHeight,r=this.cachedHeight,u=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:a,height:r}),this.scrollableElement.setScrollPosition({scrollTop:u})}showMessage(a,r){if(this.state==="open"&&(0,t.equals)(this.message,a))return;this.message=a,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(a.type));const u=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${d.asCssValueWithDefault(u.border,"transparent")}`,this.message.content&&(this.hasFocus()||r)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let a=null;return this.validation&&(a=this.validation(this.value),a?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(a)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),a?.type}stylesForType(a){const r=this.options.inputBoxStyles;switch(a){case 1:return{border:r.inputValidationInfoBorder,background:r.inputValidationInfoBackground,foreground:r.inputValidationInfoForeground};case 2:return{border:r.inputValidationWarningBorder,background:r.inputValidationWarningBackground,foreground:r.inputValidationWarningForeground};default:return{border:r.inputValidationErrorBorder,background:r.inputValidationErrorBackground,foreground:r.inputValidationErrorForeground}}}classForType(a){switch(a){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let a;const r=()=>a.style.width=d.getTotalWidth(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:C=>{if(!this.message)return null;a=d.append(C,s(".monaco-inputbox-container")),r();const f={inline:!0,className:"monaco-inputbox-message"},h=this.message.formatContent?(0,I.renderFormattedText)(this.message.content,f):(0,I.renderText)(this.message.content,f);h.classList.add(this.classForType(this.message.type));const v=this.stylesForType(this.message.type);return h.style.backgroundColor=v.background??"",h.style.color=v.foreground??"",h.style.border=v.border?`1px solid ${v.border}`:"",d.append(a,h),null},onHide:()=>{this.state="closed"},layout:r});let u;this.message.type===3?u=i.localize(9,"Error: {0}",this.message.content):this.message.type===2?u=i.localize(10,"Warning: {0}",this.message.content):u=i.localize(11,"Info: {0}",this.message.content),y.alert(u),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const a=this.value,u=a.charCodeAt(a.length-1)===10?" ":"";(a+u).replace(/\u000c/g,"")?this.mirror.textContent=a+u:this.mirror.innerText="\xA0",this.layout()}applyStyles(){const a=this.options.inputBoxStyles,r=a.inputBackground??"",u=a.inputForeground??"",C=a.inputBorder??"";this.element.style.backgroundColor=r,this.element.style.color=u,this.input.style.backgroundColor="inherit",this.input.style.color=u,this.element.style.border=`1px solid ${d.asCssValueWithDefault(C,"transparent")}`}layout(){if(!this.mirror)return;const a=this.cachedContentHeight;this.cachedContentHeight=d.getTotalHeight(this.mirror),a!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(a){const r=this.inputElement,u=r.selectionStart,C=r.selectionEnd,f=r.value;u!==null&&C!==null&&(this.value=f.substr(0,u)+a+f.substr(C),r.setSelectionRange(u+1,u+1),this.layout())}dispose(){this._hideMessage(),this.message=null,this.actionbar?.dispose(),super.dispose()}}e.InputBox=g;class c extends g{constructor(a,r,u){const C=i.localize(12," or {0} for history","\u21C5"),f=i.localize(13," ({0} for history)","\u21C5");super(a,r,u),this._onDidFocus=this._register(new n.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new n.Emitter),this.onDidBlur=this._onDidBlur.event,this.history=new o.HistoryNavigator(u.history,100);const h=()=>{if(u.showHistoryHint&&u.showHistoryHint()&&!this.placeholder.endsWith(C)&&!this.placeholder.endsWith(f)&&this.history.getHistory().length){const v=this.placeholder.endsWith(")")?C:f,w=this.placeholder+v;u.showPlaceholderOnFocus&&!d.isActiveElement(this.input)?this.placeholder=w:this.setPlaceHolder(w)}};this.observer=new MutationObserver((v,w)=>{v.forEach(S=>{S.target.textContent||h()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>h()),this.onblur(this.input,()=>{const v=w=>{if(this.placeholder.endsWith(w)){const S=this.placeholder.slice(0,this.placeholder.length-w.length);return u.showPlaceholderOnFocus?this.placeholder=S:this.setPlaceHolder(S),!0}else return!1};v(f)||v(C)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(a){this.value&&(a||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let a=this.getNextValue();a&&(a=a===this.value?this.getNextValue():a),this.value=a??"",y.status(this.value?this.value:i.localize(14,"Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let a=this.getPreviousValue();a&&(a=a===this.value?this.getPreviousValue():a),a&&(this.value=a,y.status(this.value))}setPlaceHolder(a){super.setPlaceHolder(a),this.setTooltip(a)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let a=this.history.current();return a||(a=this.history.last(),this.history.next()),a}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}e.HistoryInputBox=c}),define(ne[260],se([1,0,5,358,259,85,6,3,2,44,304]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindInput=void 0;const p=m.localize(1,"input");class n extends E.Widget{constructor(t,i,s){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new _.MutableDisposable),this.additionalToggles=[],this._onDidOptionChange=this._register(new y.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new y.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new y.Emitter),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new y.Emitter),this._onKeyUp=this._register(new y.Emitter),this._onCaseSensitiveKeyDown=this._register(new y.Emitter),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new y.Emitter),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||p,this.showCommonFindToggles=!!s.showCommonFindToggles;const g=s.appendCaseSensitiveLabel||"",c=s.appendWholeWordsLabel||"",l=s.appendRegexLabel||"",a=s.history||[],r=!!s.flexibleHeight,u=!!s.flexibleWidth,C=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new I.HistoryInputBox(this.domNode,i,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:s.showHistoryHint,flexibleHeight:r,flexibleWidth:u,flexibleMaxHeight:C,inputBoxStyles:s.inputBoxStyles}));const f=this._register((0,b.createInstantHoverDelegate)());if(this.showCommonFindToggles){this.regex=this._register(new k.RegexToggle({appendTitle:l,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.regex.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(v=>{this._onRegexKeyDown.fire(v)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:c,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.wholeWords.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:g,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.caseSensitive.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(v=>{this._onCaseSensitiveKeyDown.fire(v)}));const h=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,v=>{if(v.equals(15)||v.equals(17)||v.equals(9)){const w=h.indexOf(this.domNode.ownerDocument.activeElement);if(w>=0){let S=-1;v.equals(17)?S=(w+1)%h.length:v.equals(15)&&(w===0?S=h.length-1:S=w-1),v.equals(9)?(h[w].blur(),this.inputBox.focus()):S>=0&&h[S].focus(),d.EventHelper.stop(v,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(s?.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),t?.appendChild(this.domNode),this._register(d.addDisposableListener(this.inputBox.inputElement,"compositionstart",h=>{this.imeSessionInProgress=!0})),this._register(d.addDisposableListener(this.inputBox.inputElement,"compositionend",h=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}get onDidChange(){return this.inputBox.onDidChange}layout(t){this.inputBox.layout(),this.updateInputBoxPadding(t.collapsedFindWidget)}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex?.enable(),this.wholeWords?.enable(),this.caseSensitive?.enable();for(const t of this.additionalToggles)t.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex?.disable(),this.wholeWords?.disable(),this.caseSensitive?.disable();for(const t of this.additionalToggles)t.disable()}setFocusInputOnOptionClick(t){this.fixFocusOnOptionClickEnabled=t}setEnabled(t){t?this.enable():this.disable()}setAdditionalToggles(t){for(const i of this.additionalToggles)i.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new _.DisposableStore;for(const i of t??[])this.additionalTogglesDisposables.value.add(i),this.controls.appendChild(i.domNode),this.additionalTogglesDisposables.value.add(i.onChange(s=>{this._onDidOptionChange.fire(s),!s&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(i);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(t=!1){t?this.inputBox.paddingRight=0:this.inputBox.paddingRight=(this.caseSensitive?.width()??0)+(this.wholeWords?.width()??0)+(this.regex?.width()??0)+this.additionalToggles.reduce((i,s)=>i+s.width(),0)}getValue(){return this.inputBox.value}setValue(t){this.inputBox.value!==t&&(this.inputBox.value=t)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){return this.caseSensitive?.checked??!1}setCaseSensitive(t){this.caseSensitive&&(this.caseSensitive.checked=t)}getWholeWords(){return this.wholeWords?.checked??!1}setWholeWords(t){this.wholeWords&&(this.wholeWords.checked=t)}getRegex(){return this.regex?.checked??!1}setRegex(t){this.regex&&(this.regex.checked=t,this.validate())}focusOnCaseSensitive(){this.caseSensitive?.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(t){this.inputBox.showMessage(t)}clearMessage(){this.inputBox.hideMessage()}}e.FindInput=n}),define(ne[641],se([1,0,5,175,259,85,26,6,3,44,304]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReplaceInput=void 0;const p=_.localize(5,"input"),n=_.localize(6,"Preserve Case");class o extends k.Toggle{constructor(s){super({icon:y.Codicon.preserveCase,title:n+s.appendTitle,isChecked:s.isChecked,hoverDelegate:s.hoverDelegate??(0,b.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})}}class t extends E.Widget{constructor(s,g,c,l){super(),this._showOptionButtons=c,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new m.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new m.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new m.Emitter),this._onInput=this._register(new m.Emitter),this._onKeyUp=this._register(new m.Emitter),this._onPreserveCaseKeyDown=this._register(new m.Emitter),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=g,this.placeholder=l.placeholder||"",this.validation=l.validation,this.label=l.label||p;const a=l.appendPreserveCaseLabel||"",r=l.history||[],u=!!l.flexibleHeight,C=!!l.flexibleWidth,f=l.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new I.HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:r,showHistoryHint:l.showHistoryHint,flexibleHeight:u,flexibleWidth:C,flexibleMaxHeight:f,inputBoxStyles:l.inputBoxStyles})),this.preserveCase=this._register(new o({appendTitle:a,isChecked:!1,...l.toggleStyles})),this._register(this.preserveCase.onChange(w=>{this._onDidOptionChange.fire(w),!w&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(w=>{this._onPreserveCaseKeyDown.fire(w)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const h=[this.preserveCase.domNode];this.onkeydown(this.domNode,w=>{if(w.equals(15)||w.equals(17)||w.equals(9)){const S=h.indexOf(this.domNode.ownerDocument.activeElement);if(S>=0){let L=-1;w.equals(17)?L=(S+1)%h.length:w.equals(15)&&(S===0?L=h.length-1:L=S-1),w.equals(9)?(h[S].blur(),this.inputBox.focus()):L>=0&&h[L].focus(),d.EventHelper.stop(w,!0)}}});const v=document.createElement("div");v.className="controls",v.style.display=this._showOptionButtons?"block":"none",v.appendChild(this.preserveCase.domNode),this.domNode.appendChild(v),s?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,w=>this._onKeyDown.fire(w)),this.onkeyup(this.inputBox.inputElement,w=>this._onKeyUp.fire(w)),this.oninput(this.inputBox.inputElement,w=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,w=>this._onMouseDown.fire(w))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(s){s?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(s){this.preserveCase.checked=s}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(s){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=s+"px"}dispose(){super.dispose()}}e.ReplaceInput=t}),define(ne[642],se([1,0,64,69,5,47,77,87,151,353,86,41,14,26,191,30,142,2,16,11]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Menu=e.VerticalDirection=e.HorizontalDirection=e.MENU_ESCAPED_MNEMONIC_REGEX=e.MENU_MNEMONIC_REGEX=void 0,e.cleanMnemonic=w,e.formatRule=S,e.MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,e.MENU_ESCAPED_MNEMONIC_REGEX=/(&)?(&)([^\s&])/g;var r;(function(D){D[D.Right=0]="Right",D[D.Left=1]="Left"})(r||(e.HorizontalDirection=r={}));var u;(function(D){D[D.Above=0]="Above",D[D.Below=1]="Below"})(u||(e.VerticalDirection=u={}));class C extends m.ActionBar{constructor(T,M,A,P){T.classList.add("monaco-menu-container"),T.setAttribute("role","presentation");const N=document.createElement("div");N.classList.add("monaco-menu"),N.setAttribute("role","presentation"),super(N,{orientation:1,actionViewItemProvider:W=>this.doGetActionViewItem(W,A,O),context:A.context,actionRunner:A.actionRunner,ariaLabel:A.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...l.isMacintosh||l.isLinux?[10]:[]],keyDown:!0}}),this.menuStyles=P,this.menuElement=N,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(T,P),this._register(k.Gesture.addTarget(N)),this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{new E.StandardKeyboardEvent(W).equals(2)&&W.preventDefault()})),A.enableMnemonics&&this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{const V=W.key.toLocaleLowerCase();if(this.mnemonics.has(V)){I.EventHelper.stop(W,!0);const q=this.mnemonics.get(V);if(q.length===1&&(q[0]instanceof h&&q[0].container&&this.focusItemByElement(q[0].container),q[0].onClick(W)),q.length>1){const H=q.shift();H&&H.container&&(this.focusItemByElement(H.container),q.push(H)),this.mnemonics.set(V,q)}}})),l.isLinux&&this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{const V=new E.StandardKeyboardEvent(W);V.equals(14)||V.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),I.EventHelper.stop(W,!0)):(V.equals(13)||V.equals(12))&&(this.focusedItem=0,this.focusPrevious(),I.EventHelper.stop(W,!0))})),this._register((0,I.addDisposableListener)(this.domNode,I.EventType.MOUSE_OUT,W=>{const V=W.relatedTarget;(0,I.isAncestor)(V,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),W.stopPropagation())})),this._register((0,I.addDisposableListener)(this.actionsList,I.EventType.MOUSE_OVER,W=>{let V=W.target;if(!(!V||!(0,I.isAncestor)(V,this.actionsList)||V===this.actionsList)){for(;V.parentElement!==this.actionsList&&V.parentElement!==null;)V=V.parentElement;if(V.classList.contains("action-item")){const q=this.focusedItem;this.setFocusedItem(V),q!==this.focusedItem&&this.updateFocus()}}})),this._register(k.Gesture.addTarget(this.actionsList)),this._register((0,I.addDisposableListener)(this.actionsList,k.EventType.Tap,W=>{let V=W.initialTarget;if(!(!V||!(0,I.isAncestor)(V,this.actionsList)||V===this.actionsList)){for(;V.parentElement!==this.actionsList&&V.parentElement!==null;)V=V.parentElement;if(V.classList.contains("action-item")){const q=this.focusedItem;this.setFocusedItem(V),q!==this.focusedItem&&this.updateFocus()}}}));const O={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new p.DomScrollableElement(N,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const F=this.scrollableElement.getDomNode();F.style.position="",this.styleScrollElement(F,P),this._register((0,I.addDisposableListener)(N,k.EventType.Change,W=>{I.EventHelper.stop(W,!0);const V=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:V-W.translationY})})),this._register((0,I.addDisposableListener)(F,I.EventType.MOUSE_UP,W=>{W.preventDefault()}));const x=(0,I.getWindow)(T);N.style.maxHeight=`${Math.max(10,x.innerHeight-T.getBoundingClientRect().top-35)}px`,M=M.filter((W,V)=>A.submenuIds?.has(W.id)?(console.warn(`Found submenu cycle: ${W.id}`),!1):!(W instanceof n.Separator&&(V===M.length-1||V===0||M[V-1]instanceof n.Separator))),this.push(M,{icon:!0,label:!0,isMenu:!0}),T.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(W=>!(W instanceof v)).forEach((W,V,q)=>{W.updatePositionInSet(V+1,q.length)})}initializeOrUpdateStyleSheet(T,M){this.styleSheet||((0,I.isInShadowDOM)(T)?this.styleSheet=(0,I.createStyleSheet)(T):(C.globalStyleSheet||(C.globalStyleSheet=(0,I.createStyleSheet)()),this.styleSheet=C.globalStyleSheet)),this.styleSheet.textContent=L(M,(0,I.isInShadowDOM)(T))}styleScrollElement(T,M){const A=M.foregroundColor??"",P=M.backgroundColor??"",N=M.borderColor?`1px solid ${M.borderColor}`:"",O="5px",F=M.shadowColor?`0 2px 8px ${M.shadowColor}`:"";T.style.outline=N,T.style.borderRadius=O,T.style.color=A,T.style.backgroundColor=P,T.style.boxShadow=F}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(T){const M=this.focusedItem;this.setFocusedItem(T),M!==this.focusedItem&&this.updateFocus()}setFocusedItem(T){for(let M=0;M{this.element&&(this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_UP,N=>{if(I.EventHelper.stop(N,!0),d.isFirefox){if(new y.StandardMouseEvent((0,I.getWindow)(this.element),N).rightButton)return;this.onClick(N)}else setTimeout(()=>{this.onClick(N)},0)})),this._register((0,I.addDisposableListener)(this.element,I.EventType.CONTEXT_MENU,N=>{I.EventHelper.stop(N,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(T){super.render(T),this.element&&(this.container=T,this.item=(0,I.append)(this.element,(0,I.$)("a.action-menu-item")),this._action.id===n.Separator.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=(0,I.append)(this.item,(0,I.$)("span.menu-item-check"+s.ThemeIcon.asCSSSelector(t.Codicon.menuSelection))),this.check.setAttribute("role","none"),this.label=(0,I.append)(this.item,(0,I.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,I.append)(this.item,(0,I.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){super.focus(),this.item?.focus(),this.applyStyle()}updatePositionInSet(T,M){this.item&&(this.item.setAttribute("aria-posinset",`${T}`),this.item.setAttribute("aria-setsize",`${M}`))}updateLabel(){if(this.label&&this.options.label){(0,I.clearNode)(this.label);let T=(0,g.stripIcons)(this.action.label);if(T){const M=w(T);this.options.enableMnemonics||(T=M),this.label.setAttribute("aria-label",M.replace(/&&/g,"&"));const A=e.MENU_MNEMONIC_REGEX.exec(T);if(A){T=a.escape(T),e.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let P=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(T);for(;P&&P[1];)P=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(T);const N=O=>O.replace(/&&/g,"&");P?this.label.append(a.ltrim(N(T.substr(0,P.index))," "),(0,I.$)("u",{"aria-hidden":"true"},P[3]),a.rtrim(N(T.substr(P.index+P[0].length))," ")):this.label.innerText=N(T).trim(),this.item?.setAttribute("aria-keyshortcuts",(A[1]?A[1]:A[3]).toLocaleLowerCase())}else this.label.innerText=T.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const T=this.action.checked;this.item.classList.toggle("checked",!!T),T!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",T?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const T=this.element&&this.element.classList.contains("focused"),M=T&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,A=T&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,P=T&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",N=T&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=M??"",this.item.style.backgroundColor=A??"",this.item.style.outline=P,this.item.style.outlineOffset=N),this.check&&(this.check.style.color=M??"")}}class h extends f{constructor(T,M,A,P,N){super(T,T,P,N),this.submenuActions=M,this.parentData=A,this.submenuOptions=P,this.mysubmenu=null,this.submenuDisposables=this._register(new c.DisposableStore),this.mouseOver=!1,this.expandDirection=P&&P.expandDirection!==void 0?P.expandDirection:{horizontal:r.Right,vertical:u.Below},this.showScheduler=new o.RunOnceScheduler(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new o.RunOnceScheduler(()=>{this.element&&!(0,I.isAncestor)((0,I.getActiveElement)(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(T){super.render(T),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,I.append)(this.item,(0,I.$)("span.submenu-indicator"+s.ThemeIcon.asCSSSelector(t.Codicon.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,I.addDisposableListener)(this.element,I.EventType.KEY_UP,M=>{const A=new E.StandardKeyboardEvent(M);(A.equals(17)||A.equals(3))&&(I.EventHelper.stop(M,!0),this.createSubmenu(!0))})),this._register((0,I.addDisposableListener)(this.element,I.EventType.KEY_DOWN,M=>{const A=new E.StandardKeyboardEvent(M);(0,I.getActiveElement)()===this.item&&(A.equals(17)||A.equals(3))&&I.EventHelper.stop(M,!0)})),this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_OVER,M=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_LEAVE,M=>{this.mouseOver=!1})),this._register((0,I.addDisposableListener)(this.element,I.EventType.FOCUS_OUT,M=>{this.element&&!(0,I.isAncestor)((0,I.getActiveElement)(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(T){I.EventHelper.stop(T,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(T){if(this.parentData.submenu&&(T||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(T,M,A,P){const N={top:0,left:0};return N.left=(0,b.layout)(T.width,M.width,{position:P.horizontal===r.Right?0:1,offset:A.left,size:A.width}),N.left>=A.left&&N.left{new E.StandardKeyboardEvent(V).equals(15)&&(I.EventHelper.stop(V,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add((0,I.addDisposableListener)(this.submenuContainer,I.EventType.KEY_DOWN,V=>{new E.StandardKeyboardEvent(V).equals(15)&&I.EventHelper.stop(V,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(T),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(T){this.item&&this.item?.setAttribute("aria-expanded",T)}applyStyle(){super.applyStyle();const M=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=M??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class v extends _.ActionViewItem{constructor(T,M,A,P){super(T,M,A),this.menuStyles=P}render(T){super.render(T),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function w(D){const T=e.MENU_MNEMONIC_REGEX,M=T.exec(D);if(!M)return D;const A=!M[1];return D.replace(T,A?"$2$3":"").trim()}function S(D){const T=(0,i.getCodiconFontCharacters)()[D.id];return`.codicon-${D.id}:before { content: '\\${T.toString(16)}'; }`}function L(D,T){let M=` -.monaco-menu { - font-size: 13px; - border-radius: 5px; - min-width: 160px; -} - -${S(t.Codicon.menuSelection)} -${S(t.Codicon.menuSubmenu)} - -.monaco-menu .monaco-action-bar { - text-align: right; - overflow: hidden; - white-space: nowrap; -} - -.monaco-menu .monaco-action-bar .actions-container { - display: flex; - margin: 0 auto; - padding: 0; - width: 100%; - justify-content: flex-end; -} - -.monaco-menu .monaco-action-bar.vertical .actions-container { - display: inline-block; -} - -.monaco-menu .monaco-action-bar.reverse .actions-container { - flex-direction: row-reverse; -} - -.monaco-menu .monaco-action-bar .action-item { - cursor: pointer; - display: inline-block; - transition: transform 50ms ease; - position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ -} - -.monaco-menu .monaco-action-bar .action-item.disabled { - cursor: default; -} - -.monaco-menu .monaco-action-bar .action-item .icon, -.monaco-menu .monaco-action-bar .action-item .codicon { - display: inline-block; -} - -.monaco-menu .monaco-action-bar .action-item .codicon { - display: flex; - align-items: center; -} - -.monaco-menu .monaco-action-bar .action-label { - font-size: 11px; - margin-right: 4px; -} - -.monaco-menu .monaco-action-bar .action-item.disabled .action-label, -.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { - color: var(--vscode-disabledForeground); -} - -/* Vertical actions */ - -.monaco-menu .monaco-action-bar.vertical { - text-align: left; -} - -.monaco-menu .monaco-action-bar.vertical .action-item { - display: block; -} - -.monaco-menu .monaco-action-bar.vertical .action-label.separator { - display: block; - border-bottom: 1px solid var(--vscode-menu-separatorBackground); - padding-top: 1px; - padding: 30px; -} - -.monaco-menu .secondary-actions .monaco-action-bar .action-label { - margin-left: 6px; -} - -/* Action Items */ -.monaco-menu .monaco-action-bar .action-item.select-container { - overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ - flex: 1; - max-width: 170px; - min-width: 60px; - display: flex; - align-items: center; - justify-content: center; - margin-right: 10px; -} - -.monaco-menu .monaco-action-bar.vertical { - margin-left: 0; - overflow: visible; -} - -.monaco-menu .monaco-action-bar.vertical .actions-container { - display: block; -} - -.monaco-menu .monaco-action-bar.vertical .action-item { - padding: 0; - transform: none; - display: flex; -} - -.monaco-menu .monaco-action-bar.vertical .action-item.active { - transform: none; -} - -.monaco-menu .monaco-action-bar.vertical .action-menu-item { - flex: 1 1 auto; - display: flex; - height: 2em; - align-items: center; - position: relative; - margin: 0 4px; - border-radius: 4px; -} - -.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, -.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { - opacity: unset; -} - -.monaco-menu .monaco-action-bar.vertical .action-label { - flex: 1 1 auto; - text-decoration: none; - padding: 0 1em; - background: none; - font-size: 12px; - line-height: 1; -} - -.monaco-menu .monaco-action-bar.vertical .keybinding, -.monaco-menu .monaco-action-bar.vertical .submenu-indicator { - display: inline-block; - flex: 2 1 auto; - padding: 0 1em; - text-align: right; - font-size: 12px; - line-height: 1; -} - -.monaco-menu .monaco-action-bar.vertical .submenu-indicator { - height: 100%; -} - -.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { - font-size: 16px !important; - display: flex; - align-items: center; -} - -.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { - margin-left: auto; - margin-right: -20px; -} - -.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, -.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { - opacity: 0.4; -} - -.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { - display: inline-block; - box-sizing: border-box; - margin: 0; -} - -.monaco-menu .monaco-action-bar.vertical .action-item { - position: static; - overflow: visible; -} - -.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { - position: absolute; -} - -.monaco-menu .monaco-action-bar.vertical .action-label.separator { - width: 100%; - height: 0px !important; - opacity: 1; -} - -.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { - padding: 0.7em 1em 0.1em 1em; - font-weight: bold; - opacity: 1; -} - -.monaco-menu .monaco-action-bar.vertical .action-label:hover { - color: inherit; -} - -.monaco-menu .monaco-action-bar.vertical .menu-item-check { - position: absolute; - visibility: hidden; - width: 1em; - height: 100%; -} - -.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { - visibility: visible; - display: flex; - align-items: center; - justify-content: center; -} - -/* Context Menu */ - -.context-view.monaco-menu-container { - outline: 0; - border: none; - animation: fadeIn 0.083s linear; - -webkit-app-region: no-drag; -} - -.context-view.monaco-menu-container :focus, -.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, -.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { - outline: 0; -} - -.hc-black .context-view.monaco-menu-container, -.hc-light .context-view.monaco-menu-container, -:host-context(.hc-black) .context-view.monaco-menu-container, -:host-context(.hc-light) .context-view.monaco-menu-container { - box-shadow: none; -} - -.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, -.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, -:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, -:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { - background: none; -} - -/* Vertical Action Bar Styles */ - -.monaco-menu .monaco-action-bar.vertical { - padding: 4px 0; -} - -.monaco-menu .monaco-action-bar.vertical .action-menu-item { - height: 2em; -} - -.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), -.monaco-menu .monaco-action-bar.vertical .keybinding { - font-size: inherit; - padding: 0 2em; - max-height: 100%; -} - -.monaco-menu .monaco-action-bar.vertical .menu-item-check { - font-size: inherit; - width: 2em; -} - -.monaco-menu .monaco-action-bar.vertical .action-label.separator { - font-size: inherit; - margin: 5px 0 !important; - padding: 0; - border-radius: 0; -} - -.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, -:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { - margin-left: 0; - margin-right: 0; -} - -.monaco-menu .monaco-action-bar.vertical .submenu-indicator { - font-size: 60%; - padding: 0 1.8em; -} - -.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, -:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { - height: 100%; - mask-size: 10px 10px; - -webkit-mask-size: 10px 10px; -} - -.monaco-menu .action-item { - cursor: default; -}`;if(T){M+=` - /* Arrows */ - .monaco-scrollable-element > .scrollbar > .scra { - cursor: pointer; - font-size: 11px !important; - } - - .monaco-scrollable-element > .visible { - opacity: 1; - - /* Background rule added for IE9 - to allow clicks on dom node */ - background:rgba(0,0,0,0); - - transition: opacity 100ms linear; - } - .monaco-scrollable-element > .invisible { - opacity: 0; - pointer-events: none; - } - .monaco-scrollable-element > .invisible.fade { - transition: opacity 800ms linear; - } - - /* Scrollable Content Inset Shadow */ - .monaco-scrollable-element > .shadow { - position: absolute; - display: none; - } - .monaco-scrollable-element > .shadow.top { - display: block; - top: 0; - left: 3px; - height: 3px; - width: 100%; - } - .monaco-scrollable-element > .shadow.left { - display: block; - top: 3px; - left: 0; - height: 100%; - width: 3px; - } - .monaco-scrollable-element > .shadow.top-left-corner { - display: block; - top: 0; - left: 0; - height: 3px; - width: 3px; - } - `;const A=D.scrollbarShadow;A&&(M+=` - .monaco-scrollable-element > .shadow.top { - box-shadow: ${A} 0 6px 6px -6px inset; - } - - .monaco-scrollable-element > .shadow.left { - box-shadow: ${A} 6px 0 6px -6px inset; - } - - .monaco-scrollable-element > .shadow.top.left { - box-shadow: ${A} 6px 6px 6px -6px inset; - } - `);const P=D.scrollbarSliderBackground;P&&(M+=` - .monaco-scrollable-element > .scrollbar > .slider { - background: ${P}; - } - `);const N=D.scrollbarSliderHoverBackground;N&&(M+=` - .monaco-scrollable-element > .scrollbar > .slider:hover { - background: ${N}; - } - `);const O=D.scrollbarSliderActiveBackground;O&&(M+=` - .monaco-scrollable-element > .scrollbar > .slider.active { - background: ${O}; - } - `)}return M}}),define(ne[643],se([1,0,87,359,41,26,30,6,2,3,44,477]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleMenuAction=e.ToolBar=void 0;class n extends _.Disposable{constructor(i,s,g={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new m.EventMultiplexer),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new _.DisposableStore),g.hoverDelegate=g.hoverDelegate??this._register((0,p.createInstantHoverDelegate)()),this.options=g,this.toggleMenuAction=this._register(new o(()=>this.toggleMenuActionViewItem?.show(),g.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",i.appendChild(this.element),this.actionBar=this._register(new d.ActionBar(this.element,{orientation:g.orientation,ariaLabel:g.ariaLabel,actionRunner:g.actionRunner,allowContextMenu:g.allowContextMenu,highlightToggledItems:g.highlightToggledItems,hoverDelegate:g.hoverDelegate,actionViewItemProvider:(c,l)=>{if(c.id===o.ID)return this.toggleMenuActionViewItem=new k.DropdownMenuActionViewItem(c,c.menuActions,s,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:y.ThemeIcon.asClassNameArray(g.moreIcon??E.Codicon.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(g.actionViewItemProvider){const a=g.actionViewItemProvider(c,l);if(a)return a}if(c instanceof I.SubmenuAction){const a=new k.DropdownMenuActionViewItem(c,c.actions,s,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:c.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return a.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(a),this.disposables.add(this._onDidChangeDropdownVisibility.add(a.onDidChangeVisibility)),a}}}))}set actionRunner(i){this.actionBar.actionRunner=i}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(i){return this.actionBar.getAction(i)}setActions(i,s){this.clear();const g=i?i.slice(0):[];this.hasSecondaryActions=!!(s&&s.length>0),this.hasSecondaryActions&&s&&(this.toggleMenuAction.menuActions=s.slice(0),g.push(this.toggleMenuAction)),g.forEach(c=>{this.actionBar.push(c,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(c)})})}getKeybindingLabel(i){return this.options.getKeyBinding?.(i)?.getLabel()??void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}e.ToolBar=n;class o extends I.Action{static{this.ID="toolbar.toggle.more"}constructor(i,s){s=s||b.localize(17,"More Actions..."),super(o.ID,s,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=i}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(i){this._menuActions=i}}e.ToggleMenuAction=o}),define(ne[176],se([1,0,5,93,47,87,260,259,257,115,175,249,159,41,13,14,26,30,45,6,82,2,141,19,3,44,21,46,478]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractTree=e.TreeFindMatchType=e.TreeFindMode=e.FuzzyToggle=e.ModeToggle=e.TreeRenderer=e.RenderIndentGuides=e.ComposedTreeDelegate=void 0;class L extends _.ElementsDragAndDropData{constructor(B){super(B.elements.map($=>$.element)),this.data=B}}function D(X){return X instanceof _.ElementsDragAndDropData?new L(X):X}class T{constructor(B,$){this.modelProvider=B,this.dnd=$,this.autoExpandDisposable=u.Disposable.None,this.disposables=new u.DisposableStore}getDragURI(B){return this.dnd.getDragURI(B.element)}getDragLabel(B,$){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(B.map(Q=>Q.element),$)}onDragStart(B,$){this.dnd.onDragStart?.(D(B),$)}onDragOver(B,$,Q,Z,te,re=!0){const le=this.dnd.onDragOver(D(B),$&&$.element,Q,Z,te),me=this.autoExpandNode!==$;if(me&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=$),typeof $>"u")return le;if(me&&typeof le!="boolean"&&le.autoExpand&&(this.autoExpandDisposable=(0,s.disposableTimeout)(()=>{const Me=this.modelProvider(),Ae=Me.getNodeLocation($);Me.isCollapsed(Ae)&&Me.setCollapsed(Ae,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof le=="boolean"||!le.accept||typeof le.bubble>"u"||le.feedback){if(!re){const Me=typeof le=="boolean"?le:le.accept,Ae=typeof le=="boolean"?void 0:le.effect;return{accept:Me,effect:Ae,feedback:[Q]}}return le}if(le.bubble===1){const Me=this.modelProvider(),Ae=Me.getNodeLocation($),Ne=Me.getParentNodeLocation(Ae),Ke=Me.getNode(Ne),ze=Ne&&Me.getListIndex(Ne);return this.onDragOver(B,Ke,ze,Z,te,!1)}const Ce=this.modelProvider(),ye=Ce.getNodeLocation($),Le=Ce.getListIndex(ye),Ee=Ce.getListRenderCount(ye);return{...le,feedback:(0,i.range)(Le,Le+Ee)}}drop(B,$,Q,Z,te){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(D(B),$&&$.element,Q,Z,te)}onDragEnd(B){this.dnd.onDragEnd?.(B)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function M(X,B){return B&&{...B,identityProvider:B.identityProvider&&{getId($){return B.identityProvider.getId($.element)}},dnd:B.dnd&&new T(X,B.dnd),multipleSelectionController:B.multipleSelectionController&&{isSelectionSingleChangeEvent($){return B.multipleSelectionController.isSelectionSingleChangeEvent({...$,element:$.element})},isSelectionRangeChangeEvent($){return B.multipleSelectionController.isSelectionRangeChangeEvent({...$,element:$.element})}},accessibilityProvider:B.accessibilityProvider&&{...B.accessibilityProvider,getSetSize($){const Q=X(),Z=Q.getNodeLocation($),te=Q.getParentNodeLocation(Z);return Q.getNode(te).visibleChildrenCount},getPosInSet($){return $.visibleChildIndex+1},isChecked:B.accessibilityProvider&&B.accessibilityProvider.isChecked?$=>B.accessibilityProvider.isChecked($.element):void 0,getRole:B.accessibilityProvider&&B.accessibilityProvider.getRole?$=>B.accessibilityProvider.getRole($.element):()=>"treeitem",getAriaLabel($){return B.accessibilityProvider.getAriaLabel($.element)},getWidgetAriaLabel(){return B.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:B.accessibilityProvider&&B.accessibilityProvider.getWidgetRole?()=>B.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:B.accessibilityProvider&&B.accessibilityProvider.getAriaLevel?$=>B.accessibilityProvider.getAriaLevel($.element):$=>$.depth,getActiveDescendantId:B.accessibilityProvider.getActiveDescendantId&&($=>B.accessibilityProvider.getActiveDescendantId($.element))},keyboardNavigationLabelProvider:B.keyboardNavigationLabelProvider&&{...B.keyboardNavigationLabelProvider,getKeyboardNavigationLabel($){return B.keyboardNavigationLabelProvider.getKeyboardNavigationLabel($.element)}}}}class A{constructor(B){this.delegate=B}getHeight(B){return this.delegate.getHeight(B.element)}getTemplateId(B){return this.delegate.getTemplateId(B.element)}hasDynamicHeight(B){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(B.element)}setDynamicHeight(B,$){this.delegate.setDynamicHeight?.(B.element,$)}}e.ComposedTreeDelegate=A;var P;(function(X){X.None="none",X.OnHover="onHover",X.Always="always"})(P||(e.RenderIndentGuides=P={}));class N{get elements(){return this._elements}constructor(B,$=[]){this._elements=$,this.disposables=new u.DisposableStore,this.onDidChange=a.Event.forEach(B,Q=>this._elements=Q,this.disposables)}dispose(){this.disposables.dispose()}}class O{static{this.DefaultIndent=8}constructor(B,$,Q,Z,te,re={}){this.renderer=B,this.modelProvider=$,this.activeNodes=Z,this.renderedIndentGuides=te,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=O.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=u.Disposable.None,this.disposables=new u.DisposableStore,this.templateId=B.templateId,this.updateOptions(re),a.Event.map(Q,le=>le.node)(this.onDidChangeNodeTwistieState,this,this.disposables),B.onDidChangeTwistieState?.(this.onDidChangeTwistieState,this,this.disposables)}updateOptions(B={}){if(typeof B.indent<"u"){const $=(0,C.clamp)(B.indent,0,40);if($!==this.indent){this.indent=$;for(const[Q,Z]of this.renderedNodes)this.renderTreeElement(Q,Z)}}if(typeof B.renderIndentGuides<"u"){const $=B.renderIndentGuides!==P.None;if($!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=$;for(const[Q,Z]of this.renderedNodes)this._renderIndentGuides(Q,Z);if(this.indentGuidesDisposable.dispose(),$){const Q=new u.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,Q),this.indentGuidesDisposable=Q,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof B.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=B.hideTwistiesOfChildlessElements)}renderTemplate(B){const $=(0,d.append)(B,(0,d.$)(".monaco-tl-row")),Q=(0,d.append)($,(0,d.$)(".monaco-tl-indent")),Z=(0,d.append)($,(0,d.$)(".monaco-tl-twistie")),te=(0,d.append)($,(0,d.$)(".monaco-tl-contents")),re=this.renderer.renderTemplate(te);return{container:B,indent:Q,twistie:Z,indentGuidesDisposable:u.Disposable.None,templateData:re}}renderElement(B,$,Q,Z){this.renderedNodes.set(B,Q),this.renderedElements.set(B.element,B),this.renderTreeElement(B,Q),this.renderer.renderElement(B,$,Q.templateData,Z)}disposeElement(B,$,Q,Z){Q.indentGuidesDisposable.dispose(),this.renderer.disposeElement?.(B,$,Q.templateData,Z),typeof Z=="number"&&(this.renderedNodes.delete(B),this.renderedElements.delete(B.element))}disposeTemplate(B){this.renderer.disposeTemplate(B.templateData)}onDidChangeTwistieState(B){const $=this.renderedElements.get(B);$&&this.onDidChangeNodeTwistieState($)}onDidChangeNodeTwistieState(B){const $=this.renderedNodes.get(B);$&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(B,$))}renderTreeElement(B,$){const Q=O.DefaultIndent+(B.depth-1)*this.indent;$.twistie.style.paddingLeft=`${Q}px`,$.indent.style.width=`${Q+this.indent-16}px`,B.collapsible?$.container.setAttribute("aria-expanded",String(!B.collapsed)):$.container.removeAttribute("aria-expanded"),$.twistie.classList.remove(...c.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded));let Z=!1;this.renderer.renderTwistie&&(Z=this.renderer.renderTwistie(B.element,$.twistie)),B.collapsible&&(!this.hideTwistiesOfChildlessElements||B.visibleChildrenCount>0)?(Z||$.twistie.classList.add(...c.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded)),$.twistie.classList.add("collapsible"),$.twistie.classList.toggle("collapsed",B.collapsed)):$.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(B,$)}_renderIndentGuides(B,$){if((0,d.clearNode)($.indent),$.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const Q=new u.DisposableStore,Z=this.modelProvider();for(;;){const te=Z.getNodeLocation(B),re=Z.getParentNodeLocation(te);if(!re)break;const le=Z.getNode(re),me=(0,d.$)(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(le)&&me.classList.add("active"),$.indent.childElementCount===0?$.indent.appendChild(me):$.indent.insertBefore(me,$.indent.firstElementChild),this.renderedIndentGuides.add(le,me),Q.add((0,u.toDisposable)(()=>this.renderedIndentGuides.delete(le,me))),B=le}$.indentGuidesDisposable=Q}_onDidChangeActiveNodes(B){if(!this.shouldRenderIndentGuides)return;const $=new Set,Q=this.modelProvider();B.forEach(Z=>{const te=Q.getNodeLocation(Z);try{const re=Q.getParentNodeLocation(te);Z.collapsible&&Z.children.length>0&&!Z.collapsed?$.add(Z):re&&$.add(Q.getNode(re))}catch{}}),this.activeIndentNodes.forEach(Z=>{$.has(Z)||this.renderedIndentGuides.forEach(Z,te=>te.classList.remove("active"))}),$.forEach(Z=>{this.activeIndentNodes.has(Z)||this.renderedIndentGuides.forEach(Z,te=>te.classList.add("active"))}),this.activeIndentNodes=$}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,u.dispose)(this.disposables)}}e.TreeRenderer=O;class F{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(B,$,Q){this.tree=B,this.keyboardNavigationLabelProvider=$,this._filter=Q,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new u.DisposableStore,B.onWillRefilter(this.reset,this,this.disposables)}filter(B,$){let Q=1;if(this._filter){const re=this._filter.filter(B,$);if(typeof re=="boolean"?Q=re?1:0:(0,n.isFilterResult)(re)?Q=(0,n.getVisibleState)(re.visibility):Q=re,Q===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:r.FuzzyScore.Default,visibility:Q};const Z=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(B),te=Array.isArray(Z)?Z:[Z];for(const re of te){const le=re&&re.toString();if(typeof le>"u")return{data:r.FuzzyScore.Default,visibility:Q};let me;if(this.tree.findMatchType===H.Contiguous){const Ce=le.toLowerCase().indexOf(this._lowercasePattern);if(Ce>-1){me=[Number.MAX_SAFE_INTEGER,0];for(let ye=this._lowercasePattern.length;ye>0;ye--)me.push(Ce+ye-1)}}else me=(0,r.fuzzyScore)(this._pattern,this._lowercasePattern,0,le,le.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(me)return this._matchCount++,te.length===1?{data:me,visibility:Q}:{data:{label:le,score:me},visibility:Q}}return this.tree.findMode===q.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(B):2:{data:r.FuzzyScore.Default,visibility:Q}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,u.dispose)(this.disposables)}}class x extends p.Toggle{constructor(B){super({icon:g.Codicon.listFilter,title:(0,h.localize)(18,"Filter"),isChecked:B.isChecked??!1,hoverDelegate:B.hoverDelegate??(0,v.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:B.inputActiveOptionBorder,inputActiveOptionForeground:B.inputActiveOptionForeground,inputActiveOptionBackground:B.inputActiveOptionBackground})}}e.ModeToggle=x;class W extends p.Toggle{constructor(B){super({icon:g.Codicon.searchFuzzy,title:(0,h.localize)(19,"Fuzzy Match"),isChecked:B.isChecked??!1,hoverDelegate:B.hoverDelegate??(0,v.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:B.inputActiveOptionBorder,inputActiveOptionForeground:B.inputActiveOptionForeground,inputActiveOptionBackground:B.inputActiveOptionBackground})}}e.FuzzyToggle=W;const V={inputBoxStyles:m.unthemedInboxStyles,toggleStyles:p.unthemedToggleStyles,listFilterWidgetBackground:void 0,listFilterWidgetNoMatchesOutline:void 0,listFilterWidgetOutline:void 0,listFilterWidgetShadow:void 0};var q;(function(X){X[X.Highlight=0]="Highlight",X[X.Filter=1]="Filter"})(q||(e.TreeFindMode=q={}));var H;(function(X){X[X.Fuzzy=0]="Fuzzy",X[X.Contiguous=1]="Contiguous"})(H||(e.TreeFindMatchType=H={}));class z extends u.Disposable{set mode(B){this.modeToggle.checked=B===q.Filter,this.findInput.inputBox.setPlaceHolder(B===q.Filter?(0,h.localize)(20,"Type to filter"):(0,h.localize)(21,"Type to search"))}set matchType(B){this.matchTypeToggle.checked=B===H.Fuzzy}constructor(B,$,Q,Z,te,re){super(),this.tree=$,this.elements=(0,d.h)(".monaco-tree-type-filter",[(0,d.h)(".monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab",{tabIndex:0}),(0,d.h)(".monaco-tree-type-filter-input@findInput"),(0,d.h)(".monaco-tree-type-filter-actionbar@actionbar")]),this.width=0,this.right=0,this.top=0,this._onDidDisable=new a.Emitter,B.appendChild(this.elements.root),this._register((0,u.toDisposable)(()=>this.elements.root.remove()));const le=re?.styles??V;le.listFilterWidgetBackground&&(this.elements.root.style.backgroundColor=le.listFilterWidgetBackground),le.listFilterWidgetShadow&&(this.elements.root.style.boxShadow=`0 0 8px 2px ${le.listFilterWidgetShadow}`);const me=this._register((0,v.createInstantHoverDelegate)());this.modeToggle=this._register(new x({...le.toggleStyles,isChecked:Z===q.Filter,hoverDelegate:me})),this.matchTypeToggle=this._register(new W({...le.toggleStyles,isChecked:te===H.Fuzzy,hoverDelegate:me})),this.onDidChangeMode=a.Event.map(this.modeToggle.onChange,()=>this.modeToggle.checked?q.Filter:q.Highlight,this._store),this.onDidChangeMatchType=a.Event.map(this.matchTypeToggle.onChange,()=>this.matchTypeToggle.checked?H.Fuzzy:H.Contiguous,this._store),this.findInput=this._register(new y.FindInput(this.elements.findInput,Q,{label:(0,h.localize)(22,"Type to search"),additionalToggles:[this.modeToggle,this.matchTypeToggle],showCommonFindToggles:!1,inputBoxStyles:le.inputBoxStyles,toggleStyles:le.toggleStyles,history:re?.history})),this.actionbar=this._register(new E.ActionBar(this.elements.actionbar)),this.mode=Z;const Ce=this._register(new k.DomEmitter(this.findInput.inputBox.inputElement,"keydown")),ye=a.Event.chain(Ce.event,Ae=>Ae.map(Ne=>new I.StandardKeyboardEvent(Ne)));this._register(ye(Ae=>{if(Ae.equals(3)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.addToHistory(),this.tree.domFocus();return}if(Ae.equals(18)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.isAtLastInHistory()||this.findInput.inputBox.isNowhereInHistory()?(this.findInput.inputBox.addToHistory(),this.tree.domFocus()):this.findInput.inputBox.showNextValue();return}if(Ae.equals(16)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.showPreviousValue();return}}));const Le=this._register(new t.Action("close",(0,h.localize)(23,"Close"),"codicon codicon-close",!0,()=>this.dispose()));this.actionbar.push(Le,{icon:!0,label:!1});const Ee=this._register(new k.DomEmitter(this.elements.grab,"mousedown"));this._register(Ee.event(Ae=>{const Ne=new u.DisposableStore,Ke=Ne.add(new k.DomEmitter((0,d.getWindow)(Ae),"mousemove")),ze=Ne.add(new k.DomEmitter((0,d.getWindow)(Ae),"mouseup")),Ge=this.right,it=Ae.pageX,Oe=this.top,Fe=Ae.pageY;this.elements.grab.classList.add("grabbing");const fe=this.elements.root.style.transition;this.elements.root.style.transition="unset";const _e=xe=>{const be=xe.pageX-it;this.right=Ge-be;const ve=xe.pageY-Fe;this.top=Oe+ve,this.layout()};Ne.add(Ke.event(_e)),Ne.add(ze.event(xe=>{_e(xe),this.elements.grab.classList.remove("grabbing"),this.elements.root.style.transition=fe,Ne.dispose()}))}));const Me=a.Event.chain(this._register(new k.DomEmitter(this.elements.grab,"keydown")).event,Ae=>Ae.map(Ne=>new I.StandardKeyboardEvent(Ne)));this._register(Me(Ae=>{let Ne,Ke;if(Ae.keyCode===15?Ne=Number.POSITIVE_INFINITY:Ae.keyCode===17?Ne=0:Ae.keyCode===10&&(Ne=this.right===0?Number.POSITIVE_INFINITY:0),Ae.keyCode===16?Ke=0:Ae.keyCode===18&&(Ke=Number.POSITIVE_INFINITY),Ne!==void 0&&(Ae.preventDefault(),Ae.stopPropagation(),this.right=Ne,this.layout()),Ke!==void 0){Ae.preventDefault(),Ae.stopPropagation(),this.top=Ke;const ze=this.elements.root.style.transition;this.elements.root.style.transition="unset",this.layout(),setTimeout(()=>{this.elements.root.style.transition=ze},0)}})),this.onDidChangeValue=this.findInput.onDidChange}layout(B=this.width){this.width=B,this.right=(0,C.clamp)(this.right,0,Math.max(0,B-212)),this.elements.root.style.right=`${this.right}px`,this.top=(0,C.clamp)(this.top,0,24),this.elements.root.style.top=`${this.top}px`}showMessage(B){this.findInput.showMessage(B)}clearMessage(){this.findInput.clearMessage()}async dispose(){this._onDidDisable.fire(),this.elements.root.classList.add("disabled"),await(0,s.timeout)(300),super.dispose()}}class U{get pattern(){return this._pattern}get mode(){return this._mode}set mode(B){B!==this._mode&&(this._mode=B,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(B))}get matchType(){return this._matchType}set matchType(B){B!==this._matchType&&(this._matchType=B,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(B))}constructor(B,$,Q,Z,te,re={}){this.tree=B,this.view=Q,this.filter=Z,this.contextViewProvider=te,this.options=re,this._pattern="",this.width=0,this._onDidChangeMode=new a.Emitter,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new a.Emitter,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new a.Emitter,this._onDidChangeOpenState=new a.Emitter,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new u.DisposableStore,this.disposables=new u.DisposableStore,this._mode=B.options.defaultFindMode??q.Highlight,this._matchType=B.options.defaultFindMatchType??H.Fuzzy,$.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(B={}){B.defaultFindMode!==void 0&&(this.mode=B.defaultFindMode),B.defaultFindMatchType!==void 0&&(this.matchType=B.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){const B=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&B?((0,S.alert)((0,h.localize)(24,"No results")),this.tree.options.showNotFoundMessage??!0?this.widget?.showMessage({type:2,content:(0,h.localize)(25,"No elements found.")}):this.widget?.showMessage({type:2})):(this.widget?.clearMessage(),this.pattern&&(0,S.alert)((0,h.localize)(26,"{0} results",this.filter.matchCount)))}shouldAllowFocus(B){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!r.FuzzyScore.isDefault(B.filterData)}layout(B){this.width=B,this.widget?.layout(B)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function j(X,B){return X.position===B.position&&Y(X,B)}function Y(X,B){return X.node.element===B.node.element&&X.startIndex===B.startIndex&&X.height===B.height&&X.endIndex===B.endIndex}class G{constructor(B=[]){this.stickyNodes=B}get count(){return this.stickyNodes.length}equal(B){return(0,i.equals)(this.stickyNodes,B.stickyNodes,j)}lastNodePartiallyVisible(){if(this.count===0)return!1;const B=this.stickyNodes[this.count-1];if(this.count===1)return B.position!==0;const $=this.stickyNodes[this.count-2];return $.position+$.height!==B.position}animationStateChanged(B){if(!(0,i.equals)(this.stickyNodes,B.stickyNodes,Y)||this.count===0)return!1;const $=this.stickyNodes[this.count-1],Q=B.stickyNodes[B.count-1];return $.position!==Q.position}}class K{constrainStickyScrollNodes(B,$,Q){for(let Z=0;ZQ||Z>=$)return B.slice(0,Z)}return B}}class R extends u.Disposable{constructor(B,$,Q,Z,te,re={}){super(),this.tree=B,this.model=$,this.view=Q,this.treeDelegate=te,this.maxWidgetViewRatio=.4;const le=this.validateStickySettings(re);this.stickyScrollMaxItemCount=le.stickyScrollMaxItemCount,this.stickyScrollDelegate=re.stickyScrollDelegate??new K,this._widget=this._register(new J(Q.getScrollableElement(),Q,B,Z,te,re.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(Q.onDidScroll(()=>this.update())),this._register(Q.onDidChangeContentHeight(()=>this.update())),this._register(B.onDidChangeCollapseState(()=>this.update())),this.update()}get height(){return this._widget.height}getNodeAtHeight(B){let $;if(B===0?$=this.view.firstVisibleIndex:$=this.view.indexAt(B+this.view.scrollTop),!($<0||$>=this.view.length))return this.view.element($)}update(){const B=this.getNodeAtHeight(0);if(!B||this.tree.scrollTop===0){this._widget.setState(void 0);return}const $=this.findStickyState(B);this._widget.setState($)}findStickyState(B){const $=[];let Q=B,Z=0,te=this.getNextStickyNode(Q,void 0,Z);for(;te&&($.push(te),Z+=te.height,!($.length<=this.stickyScrollMaxItemCount&&(Q=this.getNextVisibleNode(te),!Q)));)te=this.getNextStickyNode(Q,te.node,Z);const re=this.constrainStickyNodes($);return re.length?new G(re):void 0}getNextVisibleNode(B){return this.getNodeAtHeight(B.position+B.height)}getNextStickyNode(B,$,Q){const Z=this.getAncestorUnderPrevious(B,$);if(Z&&!(Z===B&&(!this.nodeIsUncollapsedParent(B)||this.nodeTopAlignsWithStickyNodesBottom(B,Q))))return this.createStickyScrollNode(Z,Q)}nodeTopAlignsWithStickyNodesBottom(B,$){const Q=this.getNodeIndex(B),Z=this.view.getElementTop(Q),te=$;return this.view.scrollTop===Z-te}createStickyScrollNode(B,$){const Q=this.treeDelegate.getHeight(B),{startIndex:Z,endIndex:te}=this.getNodeRange(B),re=this.calculateStickyNodePosition(te,$,Q);return{node:B,position:re,height:Q,startIndex:Z,endIndex:te}}getAncestorUnderPrevious(B,$=void 0){let Q=B,Z=this.getParentNode(Q);for(;Z;){if(Z===$)return Q;Q=Z,Z=this.getParentNode(Q)}if($===void 0)return Q}calculateStickyNodePosition(B,$,Q){let Z=this.view.getRelativeTop(B);if(Z===null&&this.view.firstVisibleIndex===B&&B+1me&&$<=me?me-Q:$}constrainStickyNodes(B){if(B.length===0)return[];const $=this.view.renderHeight*this.maxWidgetViewRatio,Q=B[B.length-1];if(B.length<=this.stickyScrollMaxItemCount&&Q.position+Q.height<=$)return B;const Z=this.stickyScrollDelegate.constrainStickyScrollNodes(B,this.stickyScrollMaxItemCount,$);if(!Z.length)return[];const te=Z[Z.length-1];if(Z.length>this.stickyScrollMaxItemCount||te.position+te.height>$)throw new Error("stickyScrollDelegate violates constraints");return Z}getParentNode(B){const $=this.model.getNodeLocation(B),Q=this.model.getParentNodeLocation($);return Q?this.model.getNode(Q):void 0}nodeIsUncollapsedParent(B){const $=this.model.getNodeLocation(B);return this.model.getListRenderCount($)>1}getNodeIndex(B){const $=this.model.getNodeLocation(B);return this.model.getListIndex($)}getNodeRange(B){const $=this.model.getNodeLocation(B),Q=this.model.getListIndex($);if(Q<0)throw new Error("Node not found in tree");const Z=this.model.getListRenderCount($),te=Q+Z-1;return{startIndex:Q,endIndex:te}}nodePositionTopBelowWidget(B){const $=[];let Q=this.getParentNode(B);for(;Q;)$.push(Q),Q=this.getParentNode(Q);let Z=0;for(let te=0;te<$.length&&te0,Q=!!B&&B.count>0;if(!$&&!Q||$&&Q&&this._previousState.equal(B))return;if($!==Q&&this.setVisible(Q),!Q){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const Z=B.stickyNodes[B.count-1];if(this._previousState&&B.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${Z.position}px`;else{this._previousStateDisposables.clear();const te=Array(B.count);for(let re=B.count-1;re>=0;re--){const le=B.stickyNodes[re],{element:me,disposable:Ce}=this.createElement(le,re,B.count);te[re]=me,this._rootDomNode.appendChild(me),this._previousStateDisposables.add(Ce)}this.stickyScrollFocus.updateElements(te,B),this._previousElements=te}this._previousState=B,this._rootDomNode.style.height=`${Z.position+Z.height}px`}createElement(B,$,Q){const Z=B.startIndex,te=document.createElement("div");te.style.top=`${B.position}px`,this.tree.options.setRowHeight!==!1&&(te.style.height=`${B.height}px`),this.tree.options.setRowLineHeight!==!1&&(te.style.lineHeight=`${B.height}px`),te.classList.add("monaco-tree-sticky-row"),te.classList.add("monaco-list-row"),te.setAttribute("data-index",`${Z}`),te.setAttribute("data-parity",Z%2===0?"even":"odd"),te.setAttribute("id",this.view.getElementID(Z));const re=this.setAccessibilityAttributes(te,B.node.element,$,Q),le=this.treeDelegate.getTemplateId(B.node),me=this.treeRenderers.find(Ee=>Ee.templateId===le);if(!me)throw new Error(`No renderer found for template id ${le}`);let Ce=B.node;Ce===this.tree.getNode(this.tree.getNodeLocation(B.node))&&(Ce=new Proxy(B.node,{}));const ye=me.renderTemplate(te);me.renderElement(Ce,B.startIndex,ye,B.height);const Le=(0,u.toDisposable)(()=>{re.dispose(),me.disposeElement(Ce,B.startIndex,ye,B.height),me.disposeTemplate(ye),te.remove()});return{element:te,disposable:Le}}setAccessibilityAttributes(B,$,Q,Z){if(!this.accessibilityProvider)return u.Disposable.None;this.accessibilityProvider.getSetSize&&B.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize($,Q,Z))),this.accessibilityProvider.getPosInSet&&B.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet($,Q))),this.accessibilityProvider.getRole&&B.setAttribute("role",this.accessibilityProvider.getRole($)??"treeitem");const te=this.accessibilityProvider.getAriaLabel($),re=te&&typeof te!="string"?te:(0,w.constObservable)(te),le=(0,w.autorun)(Ce=>{const ye=Ce.readObservable(re);ye?B.setAttribute("aria-label",ye):B.removeAttribute("aria-label")});typeof te=="string"||te&&B.setAttribute("aria-label",te.get());const me=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel($);return typeof me=="number"&&B.setAttribute("aria-level",`${me}`),B.setAttribute("aria-selected",String(!1)),le}setVisible(B){this._rootDomNode.classList.toggle("empty",!B),B||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}}class ie extends u.Disposable{get domHasFocus(){return this._domHasFocus}set domHasFocus(B){B!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(B),this._domHasFocus=B)}constructor(B,$){super(),this.container=B,this.view=$,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new a.Emitter,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new a.Emitter,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this._register((0,d.addDisposableListener)(this.container,"focus",()=>this.onFocus())),this._register((0,d.addDisposableListener)(this.container,"blur",()=>this.onBlur())),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(Q=>this.onKeyDown(Q))),this._register(this.view.onMouseDown(Q=>this.onMouseDown(Q))),this._register(this.view.onContextMenu(Q=>this.handleContextMenu(Q)))}handleContextMenu(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){this.focusedLast()&&this.view.domFocus();return}if(!(0,d.isKeyboardEvent)(B.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const re=this.state.stickyNodes.findIndex(le=>le.node.element===B.element?.element);if(re===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(re);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const Z=this.state.stickyNodes[this.focusedIndex].node.element,te=this.elements[this.focusedIndex];this._onContextMenu.fire({element:Z,anchor:te,browserEvent:B.browserEvent,isStickyScroll:!0})}onKeyDown(B){if(this.domHasFocus&&this.state){if(B.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),B.preventDefault(),B.stopPropagation();else if(B.key==="ArrowDown"||B.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const $=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([$]),this.scrollNodeUnderWidget($,this.state)}else this.setFocusedElement(this.focusedIndex+1);B.preventDefault(),B.stopPropagation()}}}onMouseDown(B){const $=B.browserEvent.target;!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)||(B.browserEvent.preventDefault(),B.browserEvent.stopPropagation())}updateElements(B,$){if($&&$.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if($&&$.count!==B.length)throw new Error("Sticky scroll focus received illigel state");const Q=this.focusedIndex;if(this.removeFocus(),this.elements=B,this.state=$,$){const Z=(0,C.clamp)(Q,0,$.count-1);this.setFocus(Z)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=$?0:-1}setFocusedElement(B){const $=this.state;if(!$)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(B),!(B<$.count-1)&&$.lastNodePartiallyVisible()){const Q=$.stickyNodes[B];this.scrollNodeUnderWidget(Q.endIndex+1,$)}}scrollNodeUnderWidget(B,$){const Q=$.stickyNodes[$.count-1],Z=$.count>1?$.stickyNodes[$.count-2]:void 0,te=this.view.getElementTop(B),re=Z?Z.position+Z.height+Q.height:Q.height;this.view.scrollTop=te-re}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(B){if(0>B)throw new Error("addFocus() can not remove focus");if(!this.state&&B>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&B>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const $=this.focusedIndex;$>=0&&this.toggleElementFocus(this.elements[$],!1),B>=0&&this.toggleElementFocus(this.elements[B],!0),this.focusedIndex=B}toggleElementFocus(B,$){this.toggleElementActiveFocus(B,$&&this.domHasFocus),this.toggleElementPassiveFocus(B,$)}toggleCurrentElementActiveFocus(B){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],B)}toggleElementActiveFocus(B,$){B.classList.toggle("focused",$)}toggleElementPassiveFocus(B,$){B.classList.toggle("passive-focused",$)}toggleStickyScrollFocused(B){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",B)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function ue(X){let B=o.TreeMouseEventTarget.Unknown;return(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?B=o.TreeMouseEventTarget.Twistie:(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?B=o.TreeMouseEventTarget.Element:(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(B=o.TreeMouseEventTarget.Filter),{browserEvent:X.browserEvent,element:X.element?X.element.element:null,target:B}}function he(X){const B=(0,b.isStickyScrollContainer)(X.browserEvent.target);return{element:X.element?X.element.element:null,browserEvent:X.browserEvent,anchor:X.anchor,isStickyScroll:B}}function pe(X,B){B(X),X.children.forEach($=>pe($,B))}class ae{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(B,$){this.getFirstViewElementWithTrait=B,this.identityProvider=$,this.nodes=[],this._onDidChange=new a.Emitter,this.onDidChange=this._onDidChange.event}set(B,$){!$?.__forceEvent&&(0,i.equals)(this.nodes,B)||this._set(B,!1,$)}_set(B,$,Q){if(this.nodes=[...B],this.elements=void 0,this._nodeSet=void 0,!$){const Z=this;this._onDidChange.fire({get elements(){return Z.get()},browserEvent:Q})}}get(){return this.elements||(this.elements=this.nodes.map(B=>B.element)),[...this.elements]}getNodes(){return this.nodes}has(B){return this.nodeSet.has(B)}onDidModelSplice({insertedNodes:B,deletedNodes:$}){if(!this.identityProvider){const me=this.createNodeSet(),Ce=ye=>me.delete(ye);$.forEach(ye=>pe(ye,Ce)),this.set([...me.values()]);return}const Q=new Set,Z=me=>Q.add(this.identityProvider.getId(me.element).toString());$.forEach(me=>pe(me,Z));const te=new Map,re=me=>te.set(this.identityProvider.getId(me.element).toString(),me);B.forEach(me=>pe(me,re));const le=[];for(const me of this.nodes){const Ce=this.identityProvider.getId(me.element).toString();if(!Q.has(Ce))le.push(me);else{const Le=te.get(Ce);Le&&Le.visible&&le.push(Le)}}if(this.nodes.length>0&&le.length===0){const me=this.getFirstViewElementWithTrait();me&&le.push(me)}this._set(le,!0)}createNodeSet(){const B=new Set;for(const $ of this.nodes)B.add($);return B}}class ee extends b.MouseController{constructor(B,$,Q){super(B),this.tree=$,this.stickyScrollProvider=Q}onViewPointer(B){if((0,b.isButton)(B.browserEvent.target)||(0,b.isInputElement)(B.browserEvent.target)||(0,b.isMonacoEditor)(B.browserEvent.target)||B.browserEvent.isHandledByList)return;const $=B.element;if(!$)return super.onViewPointer(B);if(this.isSelectionRangeChangeEvent(B)||this.isSelectionSingleChangeEvent(B))return super.onViewPointer(B);const Q=B.browserEvent.target,Z=Q.classList.contains("monaco-tl-twistie")||Q.classList.contains("monaco-icon-label")&&Q.classList.contains("folder-icon")&&B.browserEvent.offsetX<16,te=(0,b.isStickyScrollElement)(B.browserEvent.target);let re=!1;if(te?re=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?re=this.tree.expandOnlyOnTwistieClick($.element):re=!!this.tree.expandOnlyOnTwistieClick,te)this.handleStickyScrollMouseEvent(B,$);else{if(re&&!Z&&B.browserEvent.detail!==2)return super.onViewPointer(B);if(!this.tree.expandOnDoubleClick&&B.browserEvent.detail===2)return super.onViewPointer(B)}if($.collapsible&&(!te||Z)){const le=this.tree.getNodeLocation($),me=B.browserEvent.altKey;if(this.tree.setFocus([le]),this.tree.toggleCollapsed(le,me),Z){B.browserEvent.isHandledByList=!0;return}}te||super.onViewPointer(B)}handleStickyScrollMouseEvent(B,$){if((0,b.isMonacoCustomToggle)(B.browserEvent.target)||(0,b.isActionItem)(B.browserEvent.target))return;const Q=this.stickyScrollProvider();if(!Q)throw new Error("Sticky scroll controller not found");const Z=this.list.indexOf($),te=this.list.getElementTop(Z),re=Q.nodePositionTopBelowWidget($);this.tree.scrollTop=te-re,this.list.domFocus(),this.list.setFocus([Z]),this.list.setSelection([Z])}onDoubleClick(B){B.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||B.browserEvent.isHandledByList||super.onDoubleClick(B)}onMouseDown(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){super.onMouseDown(B);return}}onContextMenu(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){super.onContextMenu(B);return}}}class de extends b.List{constructor(B,$,Q,Z,te,re,le,me){super(B,$,Q,Z,me),this.focusTrait=te,this.selectionTrait=re,this.anchorTrait=le}createMouseController(B){return new ee(this,B.tree,B.stickyScrollProvider)}splice(B,$,Q=[]){if(super.splice(B,$,Q),Q.length===0)return;const Z=[],te=[];let re;Q.forEach((le,me)=>{this.focusTrait.has(le)&&Z.push(B+me),this.selectionTrait.has(le)&&te.push(B+me),this.anchorTrait.has(le)&&(re=B+me)}),Z.length>0&&super.setFocus((0,i.distinct)([...super.getFocus(),...Z])),te.length>0&&super.setSelection((0,i.distinct)([...super.getSelection(),...te])),typeof re=="number"&&super.setAnchor(re)}setFocus(B,$,Q=!1){super.setFocus(B,$),Q||this.focusTrait.set(B.map(Z=>this.element(Z)),$)}setSelection(B,$,Q=!1){super.setSelection(B,$),Q||this.selectionTrait.set(B.map(Z=>this.element(Z)),$)}setAnchor(B,$=!1){super.setAnchor(B),$||(typeof B>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(B)]))}}class ge{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return a.Event.filter(a.Event.map(this.view.onMouseDblClick,ue),B=>B.target!==o.TreeMouseEventTarget.Filter)}get onMouseOver(){return a.Event.map(this.view.onMouseOver,ue)}get onMouseOut(){return a.Event.map(this.view.onMouseOut,ue)}get onContextMenu(){return a.Event.any(a.Event.filter(a.Event.map(this.view.onContextMenu,he),B=>!B.isStickyScroll),this.stickyScrollController?.onContextMenu??a.Event.None)}get onPointer(){return a.Event.map(this.view.onPointer,ue)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return a.Event.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){return this.findController?.mode??q.Highlight}set findMode(B){this.findController&&(this.findController.mode=B)}get findMatchType(){return this.findController?.matchType??H.Fuzzy}set findMatchType(B){this.findController&&(this.findController.matchType=B)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(B,$,Q,Z,te={}){this._user=B,this._options=te,this.eventBufferer=new a.EventBufferer,this.onDidChangeFindOpenState=a.Event.None,this.onDidChangeStickyScrollFocused=a.Event.None,this.disposables=new u.DisposableStore,this._onWillRefilter=new a.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new a.Emitter,this.treeDelegate=new A(Q);const re=new a.Relay,le=new a.Relay,me=this.disposables.add(new N(le.event)),Ce=new l.SetMap;this.renderers=Z.map(Ae=>new O(Ae,()=>this.model,re.event,me,Ce,te));for(const Ae of this.renderers)this.disposables.add(Ae);let ye;te.keyboardNavigationLabelProvider&&(ye=new F(this,te.keyboardNavigationLabelProvider,te.filter),te={...te,filter:ye},this.disposables.add(ye)),this.focus=new ae(()=>this.view.getFocusedElements()[0],te.identityProvider),this.selection=new ae(()=>this.view.getSelectedElements()[0],te.identityProvider),this.anchor=new ae(()=>this.view.getAnchorElement(),te.identityProvider),this.view=new de(B,$,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...M(()=>this.model,te),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(B,this.view,te),re.input=this.model.onDidChangeCollapseState;const Le=a.Event.forEach(this.model.onDidSplice,Ae=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(Ae),this.selection.onDidModelSplice(Ae)})},this.disposables);Le(()=>null,null,this.disposables);const Ee=this.disposables.add(new a.Emitter),Me=this.disposables.add(new s.Delayer(0));if(this.disposables.add(a.Event.any(Le,this.focus.onDidChange,this.selection.onDidChange)(()=>{Me.trigger(()=>{const Ae=new Set;for(const Ne of this.focus.getNodes())Ae.add(Ne);for(const Ne of this.selection.getNodes())Ae.add(Ne);Ee.fire([...Ae.values()])})})),le.input=Ee.event,te.keyboardSupport!==!1){const Ae=a.Event.chain(this.view.onKeyDown,Ne=>Ne.filter(Ke=>!(0,b.isInputElement)(Ke.target)).map(Ke=>new I.StandardKeyboardEvent(Ke)));a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===15))(this.onLeftArrow,this,this.disposables),a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===17))(this.onRightArrow,this,this.disposables),a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===10))(this.onSpace,this,this.disposables)}if((te.findWidgetEnabled??!0)&&te.keyboardNavigationLabelProvider&&te.contextViewProvider){const Ae=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new U(this,this.model,this.view,ye,te.contextViewProvider,Ae),this.focusNavigationFilter=Ne=>this.findController.shouldAllowFocus(Ne),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=a.Event.None,this.onDidChangeFindMatchType=a.Event.None;te.enableStickyScroll&&(this.stickyScrollController=new R(this,this.model,this.view,this.renderers,this.treeDelegate,te),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=(0,d.createStyleSheet)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===P.Always)}updateOptions(B={}){this._options={...this._options,...B};for(const $ of this.renderers)$.updateOptions(B);this.view.updateOptions(this._options),this.findController?.updateOptions(B),this.updateStickyScroll(B),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===P.Always)}get options(){return this._options}updateStickyScroll(B){!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new R(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=a.Event.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),this.stickyScrollController?.updateOptions(B)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(B){this.view.scrollTop=B}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(B){this.view.ariaLabel=B}domFocus(){this.stickyScrollController?.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(B,$){this.view.layout(B,$),(0,f.isNumber)($)&&this.findController?.layout($)}style(B){const $=`.${this.view.domId}`,Q=[];B.treeIndentGuidesStroke&&(Q.push(`.monaco-list${$}:hover .monaco-tl-indent > .indent-guide, .monaco-list${$}.always .monaco-tl-indent > .indent-guide { border-color: ${B.treeInactiveIndentGuidesStroke}; }`),Q.push(`.monaco-list${$} .monaco-tl-indent > .indent-guide.active { border-color: ${B.treeIndentGuidesStroke}; }`));const Z=B.treeStickyScrollBackground??B.listBackground;Z&&(Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${Z}; }`),Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${Z}; }`)),B.treeStickyScrollBorder&&Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${B.treeStickyScrollBorder}; }`),B.treeStickyScrollShadow&&Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${B.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),B.listFocusForeground&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${B.listFocusForeground}; }`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const te=(0,d.asCssValueWithDefault)(B.listFocusAndSelectionOutline,(0,d.asCssValueWithDefault)(B.listSelectionOutline,B.listFocusOutline??""));te&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${te}; outline-offset: -1px;}`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),B.listFocusOutline&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${B.listFocusOutline}; outline-offset: -1px; }`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${B.listFocusOutline}; outline-offset: -1px; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=Q.join(` -`),this.view.style(B)}getParentElement(B){const $=this.model.getParentNodeLocation(B);return this.model.getNode($).element}getFirstElementChild(B){return this.model.getFirstElementChild(B)}getNode(B){return this.model.getNode(B)}getNodeLocation(B){return this.model.getNodeLocation(B)}collapse(B,$=!1){return this.model.setCollapsed(B,!0,$)}expand(B,$=!1){return this.model.setCollapsed(B,!1,$)}toggleCollapsed(B,$=!1){return this.model.setCollapsed(B,void 0,$)}isCollapsible(B){return this.model.isCollapsible(B)}setCollapsible(B,$){return this.model.setCollapsible(B,$)}isCollapsed(B){return this.model.isCollapsed(B)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(B,$){this.eventBufferer.bufferEvents(()=>{const Q=B.map(te=>this.model.getNode(te));this.selection.set(Q,$);const Z=B.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setSelection(Z,$,!0)})}getSelection(){return this.selection.get()}setFocus(B,$){this.eventBufferer.bufferEvents(()=>{const Q=B.map(te=>this.model.getNode(te));this.focus.set(Q,$);const Z=B.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setFocus(Z,$,!0)})}focusNext(B=1,$=!1,Q,Z=(0,d.isKeyboardEvent)(Q)&&Q.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(B,$,Q,Z)}focusPrevious(B=1,$=!1,Q,Z=(0,d.isKeyboardEvent)(Q)&&Q.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(B,$,Q,Z)}focusNextPage(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(B,$)}focusPreviousPage(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(B,$,()=>this.stickyScrollController?.height??0)}focusLast(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){this.view.focusLast(B,$)}focusFirst(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(B,$)}getFocus(){return this.focus.get()}reveal(B,$){this.model.expandTo(B);const Q=this.model.getListIndex(B);if(Q!==-1)if(!this.stickyScrollController)this.view.reveal(Q,$);else{const Z=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(B));this.view.reveal(Q,$,Z)}}onLeftArrow(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q);if(!this.model.setCollapsed(Z,!0)){const re=this.model.getParentNodeLocation(Z);if(!re)return;const le=this.model.getListIndex(re);this.view.reveal(le),this.view.setFocus([le])}}onRightArrow(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q);if(!this.model.setCollapsed(Z,!1)){if(!Q.children.some(me=>me.visible))return;const[re]=this.view.getFocus(),le=re+1;this.view.reveal(le),this.view.setFocus([le])}}onSpace(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q),te=B.browserEvent.altKey;this.model.setCollapsed(Z,void 0,te)}dispose(){(0,u.dispose)(this.disposables),this.stickyScrollController?.dispose(),this.view.dispose()}}e.AbstractTree=ge}),define(ne[644],se([1,0,176,250]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTree=void 0;class I extends d.AbstractTree{constructor(y,m,_,b,p,n={}){super(y,m,_,b,n),this.user=y,this.dataSource=p,this.identityProvider=n.identityProvider}createModel(y,m,_){return new k.ObjectTreeModel(y,m,_)}}e.DataTree=I}),define(ne[360],se([1,0,176,627,250,126,53]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTree=e.ObjectTree=void 0;class m extends d.AbstractTree{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(t,i,s,g,c={}){super(t,i,s,g,c),this.user=t}setChildren(t,i=y.Iterable.empty(),s){this.model.setChildren(t,i,s)}rerender(t){if(t===void 0){this.view.rerender();return}this.model.rerender(t)}hasElement(t){return this.model.has(t)}createModel(t,i,s){return new I.ObjectTreeModel(t,i,s)}}e.ObjectTree=m;class _{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(t,i,s){this._compressedTreeNodeProvider=t,this.stickyScrollDelegate=i,this.renderer=s,this.templateId=s.templateId,s.onDidChangeTwistieState&&(this.onDidChangeTwistieState=s.onDidChangeTwistieState)}renderTemplate(t){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(t)}}renderElement(t,i,s,g){let c=this.stickyScrollDelegate.getCompressedNode(t);c||(c=this.compressedTreeNodeProvider.getCompressedTreeNode(t.element)),c.element.elements.length===1?(s.compressedTreeNode=void 0,this.renderer.renderElement(t,i,s.data,g)):(s.compressedTreeNode=c,this.renderer.renderCompressedElements(c,i,s.data,g))}disposeElement(t,i,s,g){s.compressedTreeNode?this.renderer.disposeCompressedElements?.(s.compressedTreeNode,i,s.data,g):this.renderer.disposeElement?.(t,i,s.data,g)}disposeTemplate(t){this.renderer.disposeTemplate(t.data)}renderTwistie(t,i){return this.renderer.renderTwistie?this.renderer.renderTwistie(t,i):!1}}ke([E.memoize],_.prototype,"compressedTreeNodeProvider",null);class b{constructor(t){this.modelProvider=t,this.compressedStickyNodes=new Map}getCompressedNode(t){return this.compressedStickyNodes.get(t)}constrainStickyScrollNodes(t,i,s){if(this.compressedStickyNodes.clear(),t.length===0)return[];for(let g=0;gs||g>=i-1&&ithis,a=new b(()=>this.model),r=g.map(u=>new _(l,a,u));super(t,i,s,r,{...p(l,c),stickyScrollDelegate:a})}setChildren(t,i=y.Iterable.empty(),s){this.model.setChildren(t,i,s)}createModel(t,i,s){return new k.CompressibleObjectTreeModel(t,i,s)}updateOptions(t={}){super.updateOptions(t),typeof t.compressionEnabled<"u"&&this.model.setCompressionEnabled(t.compressionEnabled)}getCompressedTreeNode(t=null){return this.model.getCompressedTreeNode(t)}}e.CompressibleObjectTree=n}),define(ne[645],se([1,0,257,176,249,360,159,14,26,30,8,6,53,2,19]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleAsyncDataTree=e.AsyncDataTree=void 0;function s(P){return{...P,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function g(P,N){return N.parent?N.parent===P?!0:g(P,N.parent):!1}function c(P,N){return P===N||g(P,N)||g(N,P)}class l{get element(){return this.node.element.element}get children(){return this.node.children.map(N=>new l(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class a{constructor(N,O,F){this.renderer=N,this.nodeMapper=O,this.onDidChangeTwistieState=F,this.renderedNodes=new Map,this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,O,F,x){this.renderer.renderElement(this.nodeMapper.map(N),O,F.templateData,x)}renderTwistie(N,O){return N.slow?(O.classList.add(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!0):(O.classList.remove(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!1)}disposeElement(N,O,F,x){this.renderer.disposeElement?.(this.nodeMapper.map(N),O,F.templateData,x)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear()}}function r(P){return{browserEvent:P.browserEvent,elements:P.elements.map(N=>N.element)}}function u(P){return{browserEvent:P.browserEvent,element:P.element&&P.element.element,target:P.target}}class C extends d.ElementsDragAndDropData{constructor(N){super(N.elements.map(O=>O.element)),this.data=N}}function f(P){return P instanceof d.ElementsDragAndDropData?new C(P):P}class h{constructor(N){this.dnd=N}getDragURI(N){return this.dnd.getDragURI(N.element)}getDragLabel(N,O){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(N.map(F=>F.element),O)}onDragStart(N,O){this.dnd.onDragStart?.(f(N),O)}onDragOver(N,O,F,x,W,V=!0){return this.dnd.onDragOver(f(N),O&&O.element,F,x,W)}drop(N,O,F,x,W){this.dnd.drop(f(N),O&&O.element,F,x,W)}onDragEnd(N){this.dnd.onDragEnd?.(N)}dispose(){this.dnd.dispose()}}function v(P){return P&&{...P,collapseByDefault:!0,identityProvider:P.identityProvider&&{getId(N){return P.identityProvider.getId(N.element)}},dnd:P.dnd&&new h(P.dnd),multipleSelectionController:P.multipleSelectionController&&{isSelectionSingleChangeEvent(N){return P.multipleSelectionController.isSelectionSingleChangeEvent({...N,element:N.element})},isSelectionRangeChangeEvent(N){return P.multipleSelectionController.isSelectionRangeChangeEvent({...N,element:N.element})}},accessibilityProvider:P.accessibilityProvider&&{...P.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:P.accessibilityProvider.getRole?N=>P.accessibilityProvider.getRole(N.element):()=>"treeitem",isChecked:P.accessibilityProvider.isChecked?N=>!!P.accessibilityProvider?.isChecked(N.element):void 0,getAriaLabel(N){return P.accessibilityProvider.getAriaLabel(N.element)},getWidgetAriaLabel(){return P.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:P.accessibilityProvider.getWidgetRole?()=>P.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:P.accessibilityProvider.getAriaLevel&&(N=>P.accessibilityProvider.getAriaLevel(N.element)),getActiveDescendantId:P.accessibilityProvider.getActiveDescendantId&&(N=>P.accessibilityProvider.getActiveDescendantId(N.element))},filter:P.filter&&{filter(N,O){return P.filter.filter(N.element,O)}},keyboardNavigationLabelProvider:P.keyboardNavigationLabelProvider&&{...P.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(N){return P.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(N.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof P.expandOnlyOnTwistieClick>"u"?void 0:typeof P.expandOnlyOnTwistieClick!="function"?P.expandOnlyOnTwistieClick:N=>P.expandOnlyOnTwistieClick(N.element),defaultFindVisibility:N=>N.hasChildren&&N.stale?1:typeof P.defaultFindVisibility=="number"?P.defaultFindVisibility:typeof P.defaultFindVisibility>"u"?2:P.defaultFindVisibility(N.element)}}function w(P,N){N(P),P.children.forEach(O=>w(O,N))}class S{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return n.Event.map(this.tree.onDidChangeFocus,r)}get onDidChangeSelection(){return n.Event.map(this.tree.onDidChangeSelection,r)}get onMouseDblClick(){return n.Event.map(this.tree.onMouseDblClick,u)}get onPointer(){return n.Event.map(this.tree.onPointer,u)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(N,O,F,x,W,V={}){this.user=N,this.dataSource=W,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new n.Emitter,this._onDidChangeNodeSlowState=new n.Emitter,this.nodeMapper=new y.WeakMapper(q=>new l(q)),this.disposables=new t.DisposableStore,this.identityProvider=V.identityProvider,this.autoExpandSingleChildren=typeof V.autoExpandSingleChildren>"u"?!1:V.autoExpandSingleChildren,this.sorter=V.sorter,this.getDefaultCollapseState=q=>V.collapseByDefault?V.collapseByDefault(q)?y.ObjectTreeElementCollapseState.PreserveOrCollapsed:y.ObjectTreeElementCollapseState.PreserveOrExpanded:void 0,this.tree=this.createTree(N,O,F,x,V),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=s({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(N,O,F,x,W){const V=new k.ComposedTreeDelegate(F),q=x.map(z=>new a(z,this.nodeMapper,this._onDidChangeNodeSlowState.event)),H=v(W)||{};return new E.ObjectTree(N,O,V,q,H)}updateOptions(N={}){this.tree.updateOptions(N)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(N){this.tree.scrollTop=N}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(N,O){this.tree.layout(N,O)}style(N){this.tree.style(N)}getInput(){return this.root.element}async setInput(N,O){this.refreshPromises.forEach(x=>x.cancel()),this.refreshPromises.clear(),this.root.element=N;const F=O&&{viewState:O,focus:[],selection:[]};await this._updateChildren(N,!0,!1,F),F&&(this.tree.setFocus(F.focus),this.tree.setSelection(F.selection)),O&&typeof O.scrollTop=="number"&&(this.scrollTop=O.scrollTop)}async _updateChildren(N=this.root.element,O=!0,F=!1,x,W){if(typeof this.root.element>"u")throw new y.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event));const V=this.getDataNode(N);if(await this.refreshAndRenderNode(V,O,x,W),F)try{this.tree.rerender(V)}catch{}}rerender(N){if(N===void 0||N===this.root.element){this.tree.rerender();return}const O=this.getDataNode(N);this.tree.rerender(O)}getNode(N=this.root.element){const O=this.getDataNode(N),F=this.tree.getNode(O===this.root?null:O);return this.nodeMapper.map(F)}collapse(N,O=!1){const F=this.getDataNode(N);return this.tree.collapse(F===this.root?null:F,O)}async expand(N,O=!1){if(typeof this.root.element>"u")throw new y.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event));const F=this.getDataNode(N);if(this.tree.hasElement(F)&&!this.tree.isCollapsible(F)||(F.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event)),F!==this.root&&!F.refreshPromise&&!this.tree.isCollapsed(F)))return!1;const x=this.tree.expand(F===this.root?null:F,O);return F.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event)),x}setSelection(N,O){const F=N.map(x=>this.getDataNode(x));this.tree.setSelection(F,O)}getSelection(){return this.tree.getSelection().map(O=>O.element)}setFocus(N,O){const F=N.map(x=>this.getDataNode(x));this.tree.setFocus(F,O)}getFocus(){return this.tree.getFocus().map(O=>O.element)}reveal(N,O){this.tree.reveal(this.getDataNode(N),O)}getParentElement(N){const O=this.tree.getParentElement(this.getDataNode(N));return O&&O.element}getFirstElementChild(N=this.root.element){const O=this.getDataNode(N),F=this.tree.getFirstElementChild(O===this.root?null:O);return F&&F.element}getDataNode(N){const O=this.nodes.get(N===this.root.element?null:N);if(!O)throw new y.TreeError(this.user,`Data tree node not found: ${N}`);return O}async refreshAndRenderNode(N,O,F,x){await this.refreshNode(N,O,F),!this.disposables.isDisposed&&this.render(N,F,x)}async refreshNode(N,O,F){let x;if(this.subTreeRefreshPromises.forEach((W,V)=>{!x&&c(V,N)&&(x=W.then(()=>this.refreshNode(N,O,F)))}),x)return x;if(N!==this.root&&this.tree.getNode(N).collapsed){N.hasChildren=!!this.dataSource.hasChildren(N.element),N.stale=!0,this.setChildren(N,[],O,F);return}return this.doRefreshSubTree(N,O,F)}async doRefreshSubTree(N,O,F){let x;N.refreshPromise=new Promise(W=>x=W),this.subTreeRefreshPromises.set(N,N.refreshPromise),N.refreshPromise.finally(()=>{N.refreshPromise=void 0,this.subTreeRefreshPromises.delete(N)});try{const W=await this.doRefreshNode(N,O,F);N.stale=!1,await m.Promises.settled(W.map(V=>this.doRefreshSubTree(V,O,F)))}finally{x()}}async doRefreshNode(N,O,F){N.hasChildren=!!this.dataSource.hasChildren(N.element);let x;if(!N.hasChildren)x=Promise.resolve(o.Iterable.empty());else{const W=this.doGetChildren(N);if((0,i.isIterable)(W))x=Promise.resolve(W);else{const V=(0,m.timeout)(800);V.then(()=>{N.slow=!0,this._onDidChangeNodeSlowState.fire(N)},q=>null),x=W.finally(()=>V.cancel())}}try{const W=await x;return this.setChildren(N,W,O,F)}catch(W){if(N!==this.root&&this.tree.hasElement(N)&&this.tree.collapse(N),(0,p.isCancellationError)(W))return[];throw W}finally{N.slow&&(N.slow=!1,this._onDidChangeNodeSlowState.fire(N))}}doGetChildren(N){let O=this.refreshPromises.get(N);if(O)return O;const F=this.dataSource.getChildren(N.element);return(0,i.isIterable)(F)?this.processChildren(F):(O=(0,m.createCancelablePromise)(async()=>this.processChildren(await F)),this.refreshPromises.set(N,O),O.finally(()=>{this.refreshPromises.delete(N)}))}_onDidChangeCollapseState({node:N,deep:O}){N.element!==null&&!N.collapsed&&N.element.stale&&(O?this.collapse(N.element.element):this.refreshAndRenderNode(N.element,!1).catch(p.onUnexpectedError))}setChildren(N,O,F,x){const W=[...O];if(N.children.length===0&&W.length===0)return[];const V=new Map,q=new Map;for(const U of N.children)V.set(U.element,U),this.identityProvider&&q.set(U.id,{node:U,collapsed:this.tree.hasElement(U)&&this.tree.isCollapsed(U)});const H=[],z=W.map(U=>{const j=!!this.dataSource.hasChildren(U);if(!this.identityProvider){const R=s({element:U,parent:N,hasChildren:j,defaultCollapseState:this.getDefaultCollapseState(U)});return j&&R.defaultCollapseState===y.ObjectTreeElementCollapseState.PreserveOrExpanded&&H.push(R),R}const Y=this.identityProvider.getId(U).toString(),G=q.get(Y);if(G){const R=G.node;return V.delete(R.element),this.nodes.delete(R.element),this.nodes.set(U,R),R.element=U,R.hasChildren=j,F?G.collapsed?(R.children.forEach(J=>w(J,ie=>this.nodes.delete(ie.element))),R.children.splice(0,R.children.length),R.stale=!0):H.push(R):j&&!G.collapsed&&H.push(R),R}const K=s({element:U,parent:N,id:Y,hasChildren:j,defaultCollapseState:this.getDefaultCollapseState(U)});return x&&x.viewState.focus&&x.viewState.focus.indexOf(Y)>-1&&x.focus.push(K),x&&x.viewState.selection&&x.viewState.selection.indexOf(Y)>-1&&x.selection.push(K),(x&&x.viewState.expanded&&x.viewState.expanded.indexOf(Y)>-1||j&&K.defaultCollapseState===y.ObjectTreeElementCollapseState.PreserveOrExpanded)&&H.push(K),K});for(const U of V.values())w(U,j=>this.nodes.delete(j.element));for(const U of z)this.nodes.set(U.element,U);return N.children.splice(0,N.children.length,...z),N!==this.root&&this.autoExpandSingleChildren&&z.length===1&&H.length===0&&(z[0].forceExpanded=!0,H.push(z[0])),H}render(N,O,F){const x=N.children.map(V=>this.asTreeElement(V,O)),W=F&&{...F,diffIdentityProvider:F.diffIdentityProvider&&{getId(V){return F.diffIdentityProvider.getId(V.element)}}};this.tree.setChildren(N===this.root?null:N,x,W),N!==this.root&&this.tree.setCollapsible(N,N.hasChildren),this._onDidRender.fire()}asTreeElement(N,O){if(N.stale)return{element:N,collapsible:N.hasChildren,collapsed:!0};let F;return O&&O.viewState.expanded&&N.id&&O.viewState.expanded.indexOf(N.id)>-1?F=!1:N.forceExpanded?(F=!1,N.forceExpanded=!1):F=N.defaultCollapseState,{element:N,children:N.hasChildren?o.Iterable.map(N.children,x=>this.asTreeElement(x,O)):[],collapsible:N.hasChildren,collapsed:F}}processChildren(N){return this.sorter&&(N=[...N].sort(this.sorter.compare.bind(this.sorter))),N}dispose(){this.disposables.dispose(),this.tree.dispose()}}e.AsyncDataTree=S;class L{get element(){return{elements:this.node.element.elements.map(N=>N.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(N=>new L(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class D{constructor(N,O,F,x){this.renderer=N,this.nodeMapper=O,this.compressibleNodeMapperProvider=F,this.onDidChangeTwistieState=x,this.renderedNodes=new Map,this.disposables=[],this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,O,F,x){this.renderer.renderElement(this.nodeMapper.map(N),O,F.templateData,x)}renderCompressedElements(N,O,F,x){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(N),O,F.templateData,x)}renderTwistie(N,O){return N.slow?(O.classList.add(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!0):(O.classList.remove(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!1)}disposeElement(N,O,F,x){this.renderer.disposeElement?.(this.nodeMapper.map(N),O,F.templateData,x)}disposeCompressedElements(N,O,F,x){this.renderer.disposeCompressedElements?.(this.compressibleNodeMapperProvider().map(N),O,F.templateData,x)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,t.dispose)(this.disposables)}}function T(P){const N=P&&v(P);return N&&{...N,keyboardNavigationLabelProvider:N.keyboardNavigationLabelProvider&&{...N.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(O){return P.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(O.map(F=>F.element))}}}}class M extends S{constructor(N,O,F,x,W,V,q={}){super(N,O,F,W,V,q),this.compressionDelegate=x,this.compressibleNodeMapper=new y.WeakMapper(H=>new L(H)),this.filter=q.filter}createTree(N,O,F,x,W){const V=new k.ComposedTreeDelegate(F),q=x.map(z=>new D(z,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),H=T(W)||{};return new E.CompressibleObjectTree(N,O,V,q,H)}asTreeElement(N,O){return{incompressible:this.compressionDelegate.isIncompressible(N.element),...super.asTreeElement(N,O)}}updateOptions(N={}){this.tree.updateOptions(N)}render(N,O,F){if(!this.identityProvider)return super.render(N,O);const x=G=>this.identityProvider.getId(G).toString(),W=G=>{const K=new Set;for(const R of G){const J=this.tree.getCompressedTreeNode(R===this.root?null:R);if(J.element)for(const ie of J.element.elements)K.add(x(ie.element))}return K},V=W(this.tree.getSelection()),q=W(this.tree.getFocus());super.render(N,O,F);const H=this.getSelection();let z=!1;const U=this.getFocus();let j=!1;const Y=G=>{const K=G.element;if(K)for(let R=0;R{const F=this.filter.filter(O,1),x=A(F);if(x===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return x===1})),super.processChildren(N)}}e.CompressibleAsyncDataTree=M;function A(P){return typeof P=="boolean"?P?1:0:(0,I.isFilterResult)(P)?(0,I.getVisibleState)(P.visibility):(0,I.getVisibleState)(P)}}),define(ne[361],se([1,0,8,6,2,42,16,11]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleWorkerServer=e.SimpleWorkerClient=void 0,e.logOnceWebWorkerWarning=o,e.create=f;const _=!1,b="default",p="$initialize";let n=!1;function o(h){y.isWeb&&(n||(n=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(h.message))}class t{constructor(v,w,S,L,D){this.vsWorker=v,this.req=w,this.channel=S,this.method=L,this.args=D,this.type=0}}class i{constructor(v,w,S,L){this.vsWorker=v,this.seq=w,this.res=S,this.err=L,this.type=1}}class s{constructor(v,w,S,L,D){this.vsWorker=v,this.req=w,this.channel=S,this.eventName=L,this.arg=D,this.type=2}}class g{constructor(v,w,S){this.vsWorker=v,this.req=w,this.event=S,this.type=3}}class c{constructor(v,w){this.vsWorker=v,this.req=w,this.type=4}}class l{constructor(v){this._workerId=-1,this._handler=v,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(v){this._workerId=v}sendMessage(v,w,S){const L=String(++this._lastSentReq);return new Promise((D,T)=>{this._pendingReplies[L]={resolve:D,reject:T},this._send(new t(this._workerId,L,v,w,S))})}listen(v,w,S){let L=null;const D=new k.Emitter({onWillAddFirstListener:()=>{L=String(++this._lastSentReq),this._pendingEmitters.set(L,D),this._send(new s(this._workerId,L,v,w,S))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(L),this._send(new c(this._workerId,L)),L=null}});return D.event}handleMessage(v){!v||!v.vsWorker||this._workerId!==-1&&v.vsWorker!==this._workerId||this._handleMessage(v)}createProxyToRemoteChannel(v,w){const S={get:(L,D)=>(typeof D=="string"&&!L[D]&&(u(D)?L[D]=T=>this.listen(v,D,T):r(D)?L[D]=this.listen(v,D,void 0):D.charCodeAt(0)===36&&(L[D]=async(...T)=>(await w?.(),this.sendMessage(v,D,T)))),L[D])};return new Proxy(Object.create(null),S)}_handleMessage(v){switch(v.type){case 1:return this._handleReplyMessage(v);case 0:return this._handleRequestMessage(v);case 2:return this._handleSubscribeEventMessage(v);case 3:return this._handleEventMessage(v);case 4:return this._handleUnsubscribeEventMessage(v)}}_handleReplyMessage(v){if(!this._pendingReplies[v.seq]){console.warn("Got reply to unknown seq");return}const w=this._pendingReplies[v.seq];if(delete this._pendingReplies[v.seq],v.err){let S=v.err;v.err.$isError&&(S=new Error,S.name=v.err.name,S.message=v.err.message,S.stack=v.err.stack),w.reject(S);return}w.resolve(v.res)}_handleRequestMessage(v){const w=v.req;this._handler.handleMessage(v.channel,v.method,v.args).then(L=>{this._send(new i(this._workerId,w,L,void 0))},L=>{L.detail instanceof Error&&(L.detail=(0,d.transformErrorForSerialization)(L.detail)),this._send(new i(this._workerId,w,void 0,(0,d.transformErrorForSerialization)(L)))})}_handleSubscribeEventMessage(v){const w=v.req,S=this._handler.handleEvent(v.channel,v.eventName,v.arg)(L=>{this._send(new g(this._workerId,w,L))});this._pendingEvents.set(w,S)}_handleEventMessage(v){if(!this._pendingEmitters.has(v.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(v.req).fire(v.event)}_handleUnsubscribeEventMessage(v){if(!this._pendingEvents.has(v.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(v.req).dispose(),this._pendingEvents.delete(v.req)}_send(v){const w=[];if(v.type===0)for(let S=0;S{this._protocol.handleMessage(D)},D=>{(0,d.onUnexpectedError)(D)})),this._protocol=new l({sendMessage:(D,T)=>{this._worker.postMessage(D,T)},handleMessage:(D,T,M)=>this._handleMessage(D,T,M),handleEvent:(D,T,M)=>this._handleEvent(D,T,M)}),this._protocol.setWorkerId(this._worker.getId());let S=null;const L=globalThis.require;typeof L<"u"&&typeof L.getConfig=="function"?S=L.getConfig():typeof globalThis.requirejs<"u"&&(S=globalThis.requirejs.s.contexts._.config),this._onModuleLoaded=this._protocol.sendMessage(b,p,[this._worker.getId(),JSON.parse(JSON.stringify(S)),w.amdModuleId]),this.proxy=this._protocol.createProxyToRemoteChannel(b,async()=>{await this._onModuleLoaded}),this._onModuleLoaded.catch(D=>{this._onError("Worker failed to load "+w.amdModuleId,D)})}_handleMessage(v,w,S){const L=this._localChannels.get(v);if(!L)return Promise.reject(new Error(`Missing channel ${v} on main thread`));if(typeof L[w]!="function")return Promise.reject(new Error(`Missing method ${w} on main thread channel ${v}`));try{return Promise.resolve(L[w].apply(L,S))}catch(D){return Promise.reject(D)}}_handleEvent(v,w,S){const L=this._localChannels.get(v);if(!L)throw new Error(`Missing channel ${v} on main thread`);if(u(w)){const D=L[w].call(L,S);if(typeof D!="function")throw new Error(`Missing dynamic event ${w} on main thread channel ${v}.`);return D}if(r(w)){const D=L[w];if(typeof D!="function")throw new Error(`Missing event ${w} on main thread channel ${v}.`);return D}throw new Error(`Malformed event name ${w}`)}setChannel(v,w){this._localChannels.set(v,w)}_onError(v,w){console.error(v),console.info(w)}}e.SimpleWorkerClient=a;function r(h){return h[0]==="o"&&h[1]==="n"&&m.isUpperAsciiLetter(h.charCodeAt(2))}function u(h){return/^onDynamic/.test(h)&&m.isUpperAsciiLetter(h.charCodeAt(9))}class C{constructor(v,w){this._localChannels=new Map,this._remoteChannels=new Map,this._requestHandlerFactory=w,this._requestHandler=null,this._protocol=new l({sendMessage:(S,L)=>{v(S,L)},handleMessage:(S,L,D)=>this._handleMessage(S,L,D),handleEvent:(S,L,D)=>this._handleEvent(S,L,D)})}onmessage(v){this._protocol.handleMessage(v)}_handleMessage(v,w,S){if(v===b&&w===p)return this.initialize(S[0],S[1],S[2]);const L=v===b?this._requestHandler:this._localChannels.get(v);if(!L)return Promise.reject(new Error(`Missing channel ${v} on worker thread`));if(typeof L[w]!="function")return Promise.reject(new Error(`Missing method ${w} on worker thread channel ${v}`));try{return Promise.resolve(L[w].apply(L,S))}catch(D){return Promise.reject(D)}}_handleEvent(v,w,S){const L=v===b?this._requestHandler:this._localChannels.get(v);if(!L)throw new Error(`Missing channel ${v} on worker thread`);if(u(w)){const D=L[w].call(L,S);if(typeof D!="function")throw new Error(`Missing dynamic event ${w} on request handler.`);return D}if(r(w)){const D=L[w];if(typeof D!="function")throw new Error(`Missing event ${w} on request handler.`);return D}throw new Error(`Malformed event name ${w}`)}getChannel(v){if(!this._remoteChannels.has(v)){const w=this._protocol.createProxyToRemoteChannel(v);this._remoteChannels.set(v,w)}return this._remoteChannels.get(v)}async initialize(v,w,S){if(this._protocol.setWorkerId(v),this._requestHandlerFactory){this._requestHandler=this._requestHandlerFactory(this);return}if(w&&(typeof w.baseUrl<"u"&&delete w.baseUrl,typeof w.paths<"u"&&typeof w.paths.vs<"u"&&delete w.paths.vs,typeof w.trustedTypesPolicy<"u"&&delete w.trustedTypesPolicy,w.catchError=!0,globalThis.require.config(w)),_){const L=E.FileAccess.asBrowserUri(`${S}.js`).toString(!0);return new Promise((D,T)=>{oe([`${L}`],D,T)}).then(D=>{if(this._requestHandler=D.create(this),!this._requestHandler)throw new Error("No RequestHandler!")})}return new Promise((L,D)=>{(globalThis.require||oe)([S],M=>{if(this._requestHandler=M.create(this),!this._requestHandler){D(new Error("No RequestHandler!"));return}L()},D)})}}e.SimpleWorkerServer=C;function f(h){return new C(h,null)}}),define(ne[646],se([1,0,103,8,42,361,2,13,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkerDescriptor=void 0,e.createWebWorker=l;const b=!1;let p;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?p=globalThis.workerttPolicy:p=(0,d.createTrustedTypesPolicy)("defaultWorkerFactory",{createScriptURL:a=>a});function n(a,r){const u=globalThis.MonacoEnvironment;if(u){if(typeof u.getWorker=="function")return u.getWorker("workerMain.js",r);if(typeof u.getWorkerUrl=="function"){const C=u.getWorkerUrl("workerMain.js",r);return new Worker(p?p.createScriptURL(C):C,{name:r,type:b?"module":void 0})}}if(typeof oe=="function"){const C=oe.toUrl("vs/base/worker/workerMain.js"),f="vs/base/worker/defaultWorkerFactory.js",h=oe.toUrl(f).slice(0,-f.length),v=o(r,C,h);return new Worker(p?p.createScriptURL(v):v,{name:r,type:b?"module":void 0})}if(a){const C=o(r,a.toString(!0)),f=new Worker(p?p.createScriptURL(C):C,{name:r,type:b?"module":void 0});return b?t(f):f}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function o(a,r,u){const C=/^((http:)|(https:)|(file:)|(vscode-file:))/.test(r);if(!(C&&r.substring(0,globalThis.origin.length)!==globalThis.origin)){const h=r.lastIndexOf("?"),v=r.lastIndexOf("#",h),w=h>0?new URLSearchParams(r.substring(h+1,~v?v:void 0)):new URLSearchParams;I.COI.addSearchParam(w,!0,!0),w.toString()?r=`${r}?${w.toString()}#${a}`:r=`${r}#${a}`}!b&&!C&&(r=new URL(r,globalThis.origin).toString());const f=new Blob([(0,m.coalesce)([`/*${a}*/`,u?`globalThis.MonacoEnvironment = { baseUrl: '${u}' };`:void 0,`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify((0,_.getNLSMessages)())};`,`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify((0,_.getNLSLanguage)())};`,`globalThis._VSCODE_FILE_ROOT = '${globalThis._VSCODE_FILE_ROOT}';`,"const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });","globalThis.workerttPolicy = ttPolicy;",b?`await import(ttPolicy?.createScriptURL('${r}') ?? '${r}');`:`importScripts(ttPolicy?.createScriptURL('${r}') ?? '${r}');`,b?"globalThis.postMessage({ type: 'vscode-worker-ready' });":void 0,`/*${a}*/`]).join("")],{type:"application/javascript"});return URL.createObjectURL(f)}function t(a){return new Promise((r,u)=>{a.onmessage=function(C){C.data.type==="vscode-worker-ready"&&(a.onmessage=null,r(a))},a.onerror=u})}function i(a){return typeof a.then=="function"}class s extends y.Disposable{constructor(r,u,C,f,h,v){super(),this.id=C,this.label=f;const w=n(r,f);i(w)?this.worker=w:this.worker=Promise.resolve(w),this.postMessage(u,[]),this.worker.then(S=>{S.onmessage=function(L){h(L.data)},S.onmessageerror=v,typeof S.addEventListener=="function"&&S.addEventListener("error",v)}),this._register((0,y.toDisposable)(()=>{this.worker?.then(S=>{S.onmessage=null,S.onmessageerror=null,S.removeEventListener("error",v),S.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(r,u){this.worker?.then(C=>{try{C.postMessage(r,u)}catch(f){(0,k.onUnexpectedError)(f),(0,k.onUnexpectedError)(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:f}))}})}}class g{constructor(r,u){this.amdModuleId=r,this.label=u,this.esmModuleLocation=b?I.FileAccess.asBrowserUri(`${r}.esm.js`):void 0}}e.WorkerDescriptor=g;class c{static{this.LAST_WORKER_ID=0}constructor(){this._webWorkerFailedBeforeError=!1}create(r,u,C){const f=++c.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new s(r.esmModuleLocation,r.amdModuleId,f,r.label||"anonymous"+f,u,h=>{(0,E.logOnceWebWorkerWarning)(h),this._webWorkerFailedBeforeError=h,C(h)})}}function l(a,r){const u=typeof a=="string"?new g(a,r):a;return new E.SimpleWorkerClient(new c,u)}}),define(ne[647],se([1,0,14,6,2,252,19]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageDatabase=e.Storage=e.StorageState=e.StorageHint=void 0;var m;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",n[n.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(m||(e.StorageHint=m={}));var _;(function(n){n[n.None=0]="None",n[n.Initialized=1]="Initialized",n[n.Closed=2]="Closed"})(_||(e.StorageState=_={}));class b extends I.Disposable{static{this.DEFAULT_FLUSH_DELAY=100}constructor(o,t=Object.create(null)){super(),this.database=o,this.options=t,this._onDidChangeStorage=this._register(new k.PauseableEmitter),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=_.None,this.cache=new Map,this.flushDelayer=this._register(new d.ThrottledDelayer(b.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(o=>this.onDidChangeItemsExternal(o)))}onDidChangeItemsExternal(o){this._onDidChangeStorage.pause();try{o.changed?.forEach((t,i)=>this.acceptExternal(i,t)),o.deleted?.forEach(t=>this.acceptExternal(t,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(o,t){if(this.state===_.Closed)return;let i=!1;(0,y.isUndefinedOrNull)(t)?i=this.cache.delete(o):this.cache.get(o)!==t&&(this.cache.set(o,t),i=!0),i&&this._onDidChangeStorage.fire({key:o,external:!0})}get(o,t){const i=this.cache.get(o);return(0,y.isUndefinedOrNull)(i)?t:i}getBoolean(o,t){const i=this.get(o);return(0,y.isUndefinedOrNull)(i)?t:i==="true"}getNumber(o,t){const i=this.get(o);return(0,y.isUndefinedOrNull)(i)?t:parseInt(i,10)}async set(o,t,i=!1){if(this.state===_.Closed)return;if((0,y.isUndefinedOrNull)(t))return this.delete(o,i);const s=(0,y.isObject)(t)||Array.isArray(t)?(0,E.stringify)(t):String(t);if(this.cache.get(o)!==s)return this.cache.set(o,s),this.pendingInserts.set(o,s),this.pendingDeletes.delete(o),this._onDidChangeStorage.fire({key:o,external:i}),this.doFlush()}async delete(o,t=!1){if(!(this.state===_.Closed||!this.cache.delete(o)))return this.pendingDeletes.has(o)||this.pendingDeletes.add(o),this.pendingInserts.delete(o),this._onDidChangeStorage.fire({key:o,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const o={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(o).finally(()=>{if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)this.whenFlushedCallbacks.pop()?.()})}async doFlush(o){return this.options.hint===m.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),o)}}e.Storage=b;class p{constructor(){this.onDidChangeItemsExternal=k.Event.None,this.items=new Map}async updateItems(o){o.insert?.forEach((t,i)=>this.items.set(i,t)),o.delete?.forEach(t=>this.items.delete(t))}}e.InMemoryStorageDatabase=p}),define(ne[362],se([1,0,2,6,5]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ElementSizeObserver=void 0;class E extends d.Disposable{constructor(m,_){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._referenceDomElement=m,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,_)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let m=null;const _=()=>{m?this.observe({width:m.width,height:m.height}):this.observe()};let b=!1,p=!1;const n=()=>{if(b&&!p)try{b=!1,p=!0,_()}finally{(0,I.scheduleAtNextAnimationFrame)((0,I.getWindow)(this._referenceDomElement),()=>{p=!1,n()})}};this._resizeObserver=new ResizeObserver(o=>{o&&o[0]&&o[0].contentRect?m={width:o[0].contentRect.width,height:o[0].contentRect.height}:m=null,b=!0,n()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(m){this.measureReferenceDomElement(!0,m)}measureReferenceDomElement(m,_){let b=0,p=0;_?(b=_.width,p=_.height):this._referenceDomElement&&(b=this._referenceDomElement.clientWidth,p=this._referenceDomElement.clientHeight),b=Math.max(5,b),p=Math.max(5,p),(this._width!==b||this._height!==p)&&(this._width=b,this._height=p,m&&this._onDidChange.fire())}}e.ElementSizeObserver=E}),define(ne[648],se([1,0,5,18,57,19,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ManagedHoverWidget=void 0;class m{constructor(b,p,n){this.hoverDelegate=b,this.target=p,this.fadeInAnimation=n}async update(b,p,n){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(b===void 0||(0,E.isString)(b)||(0,d.isHTMLElement)(b))o=b;else if(!(0,E.isFunction)(b.markdown))o=b.markdown??b.markdownNotSupportedFallback;else{this._hoverWidget||this.show((0,y.localize)(69,"Loading..."),p,n),this._cancellationTokenSource=new k.CancellationTokenSource;const t=this._cancellationTokenSource.token;if(o=await b.markdown(t),o===void 0&&(o=b.markdownNotSupportedFallback),this.isDisposed||t.isCancellationRequested)return}this.show(o,p,n)}show(b,p,n){const o=this._hoverWidget;if(this.hasContent(b)){const t={content:b,target:this.target,actions:n?.actions,linkHandler:n?.linkHandler,trapFocus:n?.trapFocus,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!o,showHoverHint:n?.appearance?.showHoverHint},position:{hoverPosition:2}};this._hoverWidget=this.hoverDelegate.showHover(t,p)}o?.dispose()}hasContent(b){return b?(0,I.isMarkdownString)(b)?!!b.value:!0:!1}get isDisposed(){return this._hoverWidget?.isDisposed}dispose(){this._hoverWidget?.dispose(),this._cancellationTokenSource?.dispose(!0),this._cancellationTokenSource=void 0}}e.ManagedHoverWidget=m}),define(ne[649],se([1,0,5,39,56]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContentWidgets=void 0;class E extends I.ViewPart{constructor(o,t){super(o),this._viewDomNode=t,this._widgets={},this.domNode=(0,k.createFastDomNode)(document.createElement("div")),I.PartFingerprints.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=(0,k.createFastDomNode)(document.createElement("div")),I.PartFingerprints.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(o);return!0}onDecorationsChanged(o){return!0}onFlushed(o){return!0}onLineMappingChanged(o){return this._updateAnchorsViewPositions(),!0}onLinesChanged(o){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(o){return this._updateAnchorsViewPositions(),!0}onLinesInserted(o){return this._updateAnchorsViewPositions(),!0}onScrollChanged(o){return!0}onZonesChanged(o){return!0}_updateAnchorsViewPositions(){const o=Object.keys(this._widgets);for(const t of o)this._widgets[t].updateAnchorViewPosition()}addWidget(o){const t=new y(this._context,this._viewDomNode,o);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(o,t,i,s,g){this._widgets[o.getId()].setPosition(t,i,s,g),this.setShouldRender()}removeWidget(o){const t=o.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const s=i.domNode.domNode;s.remove(),s.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(o){return this._widgets.hasOwnProperty(o)?this._widgets[o].suppressMouseDown:!1}onBeforeRender(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(o)}prepareRender(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(o)}render(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(o)}}e.ViewContentWidgets=E;class y{constructor(o,t,i){this._primaryAnchor=new m(null,null),this._secondaryAnchor=new m(null,null),this._context=o,this._viewDomNode=t,this._actual=i,this.domNode=(0,k.createFastDomNode)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const s=this._context.configuration.options,g=s.get(146);this._fixedOverflowWidgets=s.get(42),this._contentWidth=g.contentWidth,this._contentLeft=g.contentLeft,this._lineHeight=s.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(o){const t=this._context.configuration.options;if(this._lineHeight=t.get(67),o.hasChanged(146)){const i=t.get(146);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(o,t,i){this._affinity=o,this._primaryAnchor=s(t,this._context.viewModel,this._affinity),this._secondaryAnchor=s(i,this._context.viewModel,this._affinity);function s(g,c,l){if(!g)return new m(null,null);const a=c.model.validatePosition(g);if(c.coordinatesConverter.modelPositionIsVisible(a)){const r=c.coordinatesConverter.convertModelPositionToViewPosition(a,l??void 0);return new m(g,r)}return new m(g,null)}}_getMaxWidth(){const o=this.domNode.domNode.ownerDocument,t=o.defaultView;return this.allowEditorOverflow?t?.innerWidth||o.documentElement.offsetWidth||o.body.offsetWidth:this._contentWidth}setPosition(o,t,i,s){this._setPosition(s,o,t),this._preference=i,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(o,t,i,s){const g=o.top,c=g,l=o.top+o.height,a=s.viewportHeight-l,r=g-i,u=c>=i,C=l,f=a>=i;let h=o.left;return h+t>s.scrollLeft+s.viewportWidth&&(h=s.scrollLeft+s.viewportWidth-t),ha){const f=C-(a-s);C-=f,i-=f}if(C=w,D=C+i<=f.height-S;return this._fixedOverflowWidgets?{fitsAbove:L,aboveTop:Math.max(u,w),fitsBelow:D,belowTop:C,left:v}:{fitsAbove:L,aboveTop:g,fitsBelow:D,belowTop:c,left:h}}_prepareRenderWidgetAtExactPositionOverflowing(o){return new _(o.top,o.left+this._contentLeft)}_getAnchorsCoordinates(o){const t=g(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),i=this._secondaryAnchor.viewPosition?.lineNumber===this._primaryAnchor.viewPosition?.lineNumber?this._secondaryAnchor.viewPosition:null,s=g(i,this._affinity,this._lineHeight);return{primary:t,secondary:s};function g(c,l,a){if(!c)return null;const r=o.visibleRangeForPosition(c);if(!r)return null;const u=c.column===1&&l===3?0:r.left,C=o.getVerticalOffsetForLineNumber(c.lineNumber)-o.scrollTop;return new b(C,u,a)}}_reduceAnchorCoordinates(o,t,i){if(!t)return o;const s=this._context.configuration.options.get(50);let g=t.left;return go.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(o){this._renderData=this._prepareRenderWidget(o)}render(o){if(!this._renderData||this._renderData.kind==="offViewport"){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this._renderData?.kind==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&p(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+o.scrollTop-o.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&p(this._actual.afterRender,this._actual,this._renderData.position)}}class m{constructor(o,t){this.modelPosition=o,this.viewPosition=t}}class _{constructor(o,t){this.top=o,this.left=t,this._coordinateBrand=void 0}}class b{constructor(o,t,i){this.top=o,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function p(n,o,...t){try{return n.call(o,...t)}catch{return null}}}),define(ne[650],se([1,0,39,56,5,492]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewOverlayWidgets=void 0;class E extends k.ViewPart{constructor(m,_){super(m),this._viewDomNode=_;const p=this._context.configuration.options.get(146);this._widgets={},this._verticalScrollbarWidth=p.verticalScrollbarWidth,this._minimapWidth=p.minimap.minimapWidth,this._horizontalScrollbarHeight=p.horizontalScrollbarHeight,this._editorHeight=p.height,this._editorWidth=p.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=(0,d.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=(0,d.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(m){const b=this._context.configuration.options.get(146);return this._verticalScrollbarWidth=b.verticalScrollbarWidth,this._minimapWidth=b.minimap.minimapWidth,this._horizontalScrollbarHeight=b.horizontalScrollbarHeight,this._editorHeight=b.height,this._editorWidth=b.width,!0}addWidget(m){const _=(0,d.createFastDomNode)(m.getDomNode());this._widgets[m.getId()]={widget:m,preference:null,domNode:_},_.setPosition("absolute"),_.setAttribute("widgetId",m.getId()),m.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(_):this._domNode.appendChild(_),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(m,_){const b=this._widgets[m.getId()],p=_?_.preference:null,n=_?.stackOridinal;return b.preference===p&&b.stack===n?(this._updateMaxMinWidth(),!1):(b.preference=p,b.stack=n,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(m){const _=m.getId();if(this._widgets.hasOwnProperty(_)){const p=this._widgets[_].domNode.domNode;delete this._widgets[_],p.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){let m=0;const _=Object.keys(this._widgets);for(let b=0,p=_.length;b0);_.sort((p,n)=>(this._widgets[p].stack||0)-(this._widgets[n].stack||0));for(let p=0,n=_.length;p{this._instantiateSome(1)})),this._register((0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register((0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const m={};for(const[_,b]of this._instances)typeof b.saveViewState=="function"&&(m[_]=b.saveViewState());return m}restoreViewState(m){for(const[_,b]of this._instances)typeof b.restoreViewState=="function"&&b.restoreViewState(m[_])}get(m){return this._instantiateById(m),this._instances.get(m)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){return(0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor?.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(m){if(this._finishedInstantiation[m])return;this._finishedInstantiation[m]=!0;const _=this._findPendingContributionsByInstantiation(m);for(const b of _)this._instantiateById(b.id)}_findPendingContributionsByInstantiation(m){const _=[];for(const[,b]of this._pending)b.instantiation===m&&_.push(b);return _}_instantiateById(m){const _=this._pending.get(m);if(_){if(this._pending.delete(m),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const b=this._instantiationService.createInstance(_.ctor,this._editor);this._instances.set(_.id,b),typeof b.restoreViewState=="function"&&_.instantiation!==0&&console.warn(`Editor contribution '${_.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(b){(0,k.onUnexpectedError)(b)}}}}e.CodeEditorContributions=E}),define(ne[363],se([1,0,173,2,21,65]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorSash=e.SashLayout=void 0;class y{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(b,p){this._options=b,this.dimensions=p,this.sashLeft=(0,E.derivedWithSetter)(this,n=>{const o=this._sashRatio.read(n)??this._options.splitViewDefaultRatio.read(n);return this._computeSashLeft(o,n)},(n,o)=>{const t=this.dimensions.width.get();this._sashRatio.set(n/t,o)}),this._sashRatio=(0,I.observableValue)(this,void 0)}_computeSashLeft(b,p){const n=this.dimensions.width.read(p),o=Math.floor(this._options.splitViewDefaultRatio.read(p)*n),t=this._options.enableSplitViewResizing.read(p)?Math.floor(b*n):o,i=100;return n<=i*2?o:tn-i?n-i:t}}e.SashLayout=y;class m extends k.Disposable{constructor(b,p,n,o,t,i){super(),this._domNode=b,this._dimensions=p,this._enabled=n,this._boundarySashes=o,this.sashLeft=t,this._resetSash=i,this._sash=this._register(new d.Sash(this._domNode,{getVerticalSashTop:s=>0,getVerticalSashLeft:s=>this.sashLeft.get(),getVerticalSashHeight:s=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(s=>{this.sashLeft.set(this._startSashPosition+(s.currentX-s.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register((0,I.autorun)(s=>{const g=this._boundarySashes.read(s);g&&(this._sash.orthogonalEndSash=g.bottom)})),this._register((0,I.autorun)(s=>{const g=this._enabled.read(s);this._sash.state=g?3:0,this.sashLeft.read(s),this._dimensions.height.read(s),this._sash.layout()}))}}e.DiffEditorSash=m}),define(ne[652],se([1,0,5,41,26,2,16,30,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineDiffDeletedCodeMargin=void 0;class b extends E.Disposable{get visibility(){return this._visibility}set visibility(n){this._visibility!==n&&(this._visibility=n,this._diffActions.style.visibility=n?"visible":"hidden")}constructor(n,o,t,i,s,g,c,l,a){super(),this._getViewZoneId=n,this._marginDomNode=o,this._modifiedEditor=t,this._diff=i,this._editor=s,this._viewLineCounts=g,this._originalTextModel=c,this._contextMenuService=l,this._clipboardService=a,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=m.ThemeIcon.asClassName(I.Codicon.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const r=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${r}px`,this._diffActions.style.lineHeight=`${r}px`,this._marginDomNode.appendChild(this._diffActions);let u=0;const C=t.getOption(128)&&!y.isIOS,f=(h,v)=>{this._contextMenuService.showContextMenu({domForShadowRoot:C?t.getDomNode()??void 0:void 0,getAnchor:()=>({x:h,y:v}),getActions:()=>{const w=[],S=i.modified.isEmpty;return w.push(new k.Action("diff.clipboard.copyDeletedContent",S?i.original.length>1?(0,_.localize)(99,"Copy deleted lines"):(0,_.localize)(100,"Copy deleted line"):i.original.length>1?(0,_.localize)(101,"Copy changed lines"):(0,_.localize)(102,"Copy changed line"),void 0,!0,async()=>{const D=this._originalTextModel.getValueInRange(i.original.toExclusiveRange());await this._clipboardService.writeText(D)})),i.original.length>1&&w.push(new k.Action("diff.clipboard.copyDeletedLineContent",S?(0,_.localize)(103,"Copy deleted line ({0})",i.original.startLineNumber+u):(0,_.localize)(104,"Copy changed line ({0})",i.original.startLineNumber+u),void 0,!0,async()=>{let D=this._originalTextModel.getLineContent(i.original.startLineNumber+u);D===""&&(D=this._originalTextModel.getEndOfLineSequence()===0?` -`:`\r -`),await this._clipboardService.writeText(D)})),t.getOption(92)||w.push(new k.Action("diff.inline.revertChange",(0,_.localize)(105,"Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),w},autoSelectFirstItem:!0})};this._register((0,d.addStandardDisposableListener)(this._diffActions,"mousedown",h=>{if(!h.leftButton)return;const{top:v,height:w}=(0,d.getDomNodePagePosition)(this._diffActions),S=Math.floor(r/3);h.preventDefault(),f(h.posx,v+w+S)})),this._register(t.onMouseMove(h=>{(h.target.type===8||h.target.type===5)&&h.target.detail.viewZoneId===this._getViewZoneId()?(u=this._updateLightBulbPosition(this._marginDomNode,h.event.browserEvent.y,r),this.visibility=!0):this.visibility=!1})),this._register(t.onMouseDown(h=>{h.event.leftButton&&(h.target.type===8||h.target.type===5)&&h.target.detail.viewZoneId===this._getViewZoneId()&&(h.event.preventDefault(),u=this._updateLightBulbPosition(this._marginDomNode,h.event.browserEvent.y,r),f(h.event.posx,h.event.posy+r))}))}_updateLightBulbPosition(n,o,t){const{top:i}=(0,d.getDomNodePagePosition)(n),s=o-i,g=Math.floor(s/t),c=g*t;if(this._diffActions.style.top=`${c}px`,this._viewLineCounts){let l=0;for(let a=0;a{const C=this._diffModel.read(r)?.diff.read(r);if(!C)return o;const f=this._editors.modifiedSelections.read(r);if(f.every(S=>S.isEmpty()))return o;const h=new m.LineRangeSet(f.map(S=>m.LineRange.fromRangeInclusive(S))),w=C.mappings.filter(S=>S.lineRangeMapping.innerChanges&&h.intersects(S.lineRangeMapping.modified)).map(S=>({mapping:S,rangeMappings:S.lineRangeMapping.innerChanges.filter(L=>f.some(D=>_.Range.areIntersecting(L.modifiedRange,D)))}));return w.length===0||w.every(S=>S.rangeMappings.length===0)?o:w}),this._register((0,y.autorunWithStore)((r,u)=>{if(!this._options.shouldRenderOldRevertArrows.read(r))return;const C=this._diffModel.read(r),f=C?.diff.read(r);if(!C||!f||C.movedTextToCompare.read(r))return;const h=[],v=this._selectedDiffs.read(r),w=new Set(v.map(S=>S.mapping));if(v.length>0){const S=this._editors.modifiedSelections.read(r),L=u.add(new i(S[S.length-1].positionLineNumber,this._widget,v.flatMap(D=>D.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(L),h.push(L)}for(const S of f.mappings)if(!w.has(S)&&!S.lineRangeMapping.modified.isEmpty&&S.lineRangeMapping.innerChanges){const L=u.add(new i(S.lineRangeMapping.modified.startLineNumber,this._widget,S.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(L),h.push(L)}u.add((0,E.toDisposable)(()=>{for(const S of h)this._editors.modified.removeGlyphMarginWidget(S)}))}))}}e.RevertButtonsFeature=t;class i extends E.Disposable{static{this.counter=0}getId(){return this._id}constructor(g,c,l,a){super(),this._lineNumber=g,this._widget=c,this._diffs=l,this._revertSelection=a,this._id=`revertButton${i.counter++}`,this._domNode=(0,d.h)("div.revertButton",{title:this._revertSelection?(0,n.localize)(122,"Revert Selected Changes"):(0,n.localize)(123,"Revert Change")},[(0,k.renderIcon)(I.Codicon.arrowRight)]).root,this._register((0,d.addDisposableListener)(this._domNode,d.EventType.MOUSE_DOWN,r=>{r.button!==2&&(r.stopPropagation(),r.preventDefault())})),this._register((0,d.addDisposableListener)(this._domNode,d.EventType.MOUSE_UP,r=>{r.stopPropagation(),r.preventDefault()})),this._register((0,d.addDisposableListener)(this._domNode,d.EventType.CLICK,r=>{this._diffs instanceof b.LineRangeMapping?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),r.stopPropagation(),r.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:p.GlyphMarginLane.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}e.RevertButton=i}),define(ne[88],se([1,0,67,18,2,21,362,9,4,113]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RefCounted=e.DisposableCancellationTokenSource=e.ManagedOverlayWidget=e.PlaceholderViewZone=e.ViewZoneOverlayWidget=e.ObservableElementSizeObserver=void 0,e.joinCombine=p,e.applyObservableDecorations=n,e.appendRemoveOnDispose=o,e.prependRemoveOnDispose=t,e.animatedObservable=s,e.applyStyle=r,e.applyViewZones=u,e.translatePosition=f,e.filterWithPrevious=v;function p(D,T,M,A){if(D.length===0)return T;if(T.length===0)return D;const P=[];let N=0,O=0;for(;NV?(P.push(x),O++):(P.push(A(F,x)),N++,O++)}for(;N`Apply decorations from ${T.debugName}`},P=>{const N=T.read(P);A.set(N)})),M.add({dispose:()=>{A.clear()}}),M}function o(D,T){return D.appendChild(T),(0,I.toDisposable)(()=>{T.remove()})}function t(D,T){return D.prepend(T),(0,I.toDisposable)(()=>{T.remove()})}class i extends I.Disposable{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(T,M){super(),this._automaticLayout=!1,this.elementSizeObserver=this._register(new y.ElementSizeObserver(T,M)),this._width=(0,E.observableValue)(this,this.elementSizeObserver.getWidth()),this._height=(0,E.observableValue)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(A=>(0,E.transaction)(P=>{this._width.set(this.elementSizeObserver.getWidth(),P),this._height.set(this.elementSizeObserver.getHeight(),P)})))}observe(T){this.elementSizeObserver.observe(T)}setAutomaticLayout(T){this._automaticLayout=T,T?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}e.ObservableElementSizeObserver=i;function s(D,T,M){let A=T.get(),P=A,N=A;const O=(0,E.observableValue)("animatedValue",A);let F=-1;const x=300;let W;M.add((0,E.autorunHandleChanges)({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(q,H)=>(q.didChange(T)&&(H.animate=H.animate||q.change),!0)},(q,H)=>{W!==void 0&&(D.cancelAnimationFrame(W),W=void 0),P=N,A=T.read(q),F=Date.now()-(H.animate?0:x),V()}));function V(){const q=Date.now()-F;N=Math.floor(g(q,P,A-P,x)),q{this._actualTop.set(A,void 0)},this.onComputedHeight=A=>{this._actualHeight.set(A,void 0)}}}e.PlaceholderViewZone=l;class a{static{this._counter=0}constructor(T,M){this._editor=T,this._domElement=M,this._overlayWidgetId=`managedOverlayWidget-${a._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}e.ManagedOverlayWidget=a;function r(D,T){return(0,E.autorun)(M=>{for(let[A,P]of Object.entries(T))P&&typeof P=="object"&&"read"in P&&(P=P.read(M)),typeof P=="number"&&(P=`${P}px`),A=A.replace(/[A-Z]/g,N=>"-"+N.toLowerCase()),D.style[A]=P})}function u(D,T,M,A){const P=new I.DisposableStore,N=[];return P.add((0,E.autorunWithStore)((O,F)=>{const x=T.read(O),W=new Map,V=new Map;M&&M(!0),D.changeViewZones(q=>{for(const H of N)q.removeZone(H),A?.delete(H);N.length=0;for(const H of x){const z=q.addZone(H);H.setZoneId&&H.setZoneId(z),N.push(z),A?.add(z),W.set(H,z)}}),M&&M(!1),F.add((0,E.autorunHandleChanges)({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(q,H){const z=V.get(q.changedObservable);return z!==void 0&&H.zoneIds.push(z),!0}},(q,H)=>{for(const z of x)z.onChange&&(V.set(z.onChange,W.get(z)),z.onChange.read(q));M&&M(!0),D.changeViewZones(z=>{for(const U of H.zoneIds)z.layoutZone(U)}),M&&M(!1)}))})),P.add({dispose(){M&&M(!0),D.changeViewZones(O=>{for(const F of N)O.removeZone(F)}),A?.clear(),M&&M(!1)}}),P}class C extends k.CancellationTokenSource{dispose(){super.dispose(!0)}}e.DisposableCancellationTokenSource=C;function f(D,T){const M=(0,d.findLast)(T,P=>P.original.startLineNumber<=D.lineNumber);if(!M)return _.Range.fromPositions(D);if(M.original.endLineNumberExclusive<=D.lineNumber){const P=D.lineNumber-M.original.endLineNumberExclusive+M.modified.endLineNumberExclusive;return _.Range.fromPositions(new m.Position(P,D.column))}if(!M.innerChanges)return _.Range.fromPositions(new m.Position(M.modified.startLineNumber,1));const A=(0,d.findLast)(M.innerChanges,P=>P.originalRange.getStartPosition().isBeforeOrEqual(D));if(!A){const P=D.lineNumber-M.original.startLineNumber+M.modified.startLineNumber;return _.Range.fromPositions(new m.Position(P,D.column))}if(A.originalRange.containsPosition(D))return A.modifiedRange;{const P=h(A.originalRange.getEndPosition(),D);return _.Range.fromPositions(P.addToPosition(A.modifiedRange.getEndPosition()))}}function h(D,T){return D.lineNumber===T.lineNumber?new b.TextLength(0,T.column-D.column):new b.TextLength(T.lineNumber-D.lineNumber,T.column-1)}function v(D,T){let M;return D.filter(A=>{const P=T(A,M);return M=A,P})}class w{static create(T,M=void 0){return new S(T,T,M)}static createWithDisposable(T,M,A=void 0){const P=new I.DisposableStore;return P.add(M),P.add(T),new S(T,P,A)}}e.RefCounted=w;class S extends w{constructor(T,M,A){super(),this.object=T,this._disposable=M,this._debugOwner=A,this._refCount=1,this._isDisposed=!1,this._owners=[],A&&this._addOwner(A)}_addOwner(T){T&&this._owners.push(T)}createNewRef(T){return this._refCount++,T&&this._addOwner(T),new L(this,T)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(T){if(this._refCount--,this._refCount===0&&this._disposable.dispose(),T){const M=this._owners.indexOf(T);M!==-1&&this._owners.splice(M,1)}}}class L extends w{constructor(T,M){super(),this._base=T,this._debugOwner=M,this._isDisposed=!1}get object(){return this._base.object}createNewRef(T){return this._base.createNewRef(T)}dispose(){this._isDisposed||(this._isDisposed=!0,this._base._decreaseRefCount(this._debugOwner))}}}),define(ne[364],se([1,0,5,87,41,13,67,26,2,21,30,88,68,3]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MovedBlocksLinesFeature=void 0;class i extends _.Disposable{static{this.movedCodeBlockPadding=4}constructor(l,a,r,u,C){super(),this._rootElement=l,this._diffModel=a,this._originalEditorLayoutInfo=r,this._modifiedEditorLayoutInfo=u,this._editors=C,this._originalScrollTop=(0,b.observableFromEvent)(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,b.observableFromEvent)(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=(0,b.observableSignalFromEvent)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,b.observableValue)(this,0),this._modifiedViewZonesChangedSignal=(0,b.observableSignalFromEvent)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,b.observableSignalFromEvent)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,b.derivedWithStore)(this,(S,L)=>{this._element.replaceChildren();const D=this._diffModel.read(S),T=D?.diff.read(S)?.movedTexts;if(!T||T.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(S);const M=this._originalEditorLayoutInfo.read(S),A=this._modifiedEditorLayoutInfo.read(S);if(!M||!A){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(S),this._originalViewZonesChangedSignal.read(S);const P=T.map(q=>{function H(ie,ue){const he=ue.getTopForLineNumber(ie.startLineNumber,!0),pe=ue.getTopForLineNumber(ie.endLineNumberExclusive,!0);return(he+pe)/2}const z=H(q.lineRangeMapping.original,this._editors.original),U=this._originalScrollTop.read(S),j=H(q.lineRangeMapping.modified,this._editors.modified),Y=this._modifiedScrollTop.read(S),G=z-U,K=j-Y,R=Math.min(z,j),J=Math.max(z,j);return{range:new o.OffsetRange(R,J),from:G,to:K,fromWithoutScroll:z,toWithoutScroll:j,move:q}});P.sort((0,E.tieBreakComparators)((0,E.compareBy)(q=>q.fromWithoutScroll>q.toWithoutScroll,E.booleanComparator),(0,E.compareBy)(q=>q.fromWithoutScroll>q.toWithoutScroll?q.fromWithoutScroll:-q.toWithoutScroll,E.numberComparator)));const N=s.compute(P.map(q=>q.range)),O=10,F=M.verticalScrollbarWidth,x=(N.getTrackCount()-1)*10+O*2,W=F+x+(A.contentLeft-i.movedCodeBlockPadding);let V=0;for(const q of P){const H=N.getTrack(V),z=F+O+H*10,U=15,j=15,Y=W,G=A.glyphMarginWidth+A.lineNumbersWidth,K=18,R=document.createElementNS("http://www.w3.org/2000/svg","rect");R.classList.add("arrow-rectangle"),R.setAttribute("x",`${Y-G}`),R.setAttribute("y",`${q.to-K/2}`),R.setAttribute("width",`${G}`),R.setAttribute("height",`${K}`),this._element.appendChild(R);const J=document.createElementNS("http://www.w3.org/2000/svg","g"),ie=document.createElementNS("http://www.w3.org/2000/svg","path");ie.setAttribute("d",`M 0 ${q.from} L ${z} ${q.from} L ${z} ${q.to} L ${Y-j} ${q.to}`),ie.setAttribute("fill","none"),J.appendChild(ie);const ue=document.createElementNS("http://www.w3.org/2000/svg","polygon");ue.classList.add("arrow"),L.add((0,b.autorun)(he=>{ie.classList.toggle("currentMove",q.move===D.activeMovedText.read(he)),ue.classList.toggle("currentMove",q.move===D.activeMovedText.read(he))})),ue.setAttribute("points",`${Y-j},${q.to-U/2} ${Y},${q.to} ${Y-j},${q.to+U/2}`),J.appendChild(ue),this._element.appendChild(J),V++}this.width.set(x,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,_.toDisposable)(()=>this._element.remove())),this._register((0,b.autorun)(S=>{const L=this._originalEditorLayoutInfo.read(S),D=this._modifiedEditorLayoutInfo.read(S);!L||!D||(this._element.style.left=`${L.width-L.verticalScrollbarWidth}px`,this._element.style.height=`${L.height}px`,this._element.style.width=`${L.verticalScrollbarWidth+L.contentLeft-i.movedCodeBlockPadding+this.width.read(S)}px`)})),this._register((0,b.recomputeInitiallyAndOnChange)(this._state));const f=(0,b.derived)(S=>{const D=this._diffModel.read(S)?.diff.read(S);return D?D.movedTexts.map(T=>({move:T,original:new n.PlaceholderViewZone((0,b.constObservable)(T.lineRangeMapping.original.startLineNumber-1),18),modified:new n.PlaceholderViewZone((0,b.constObservable)(T.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register((0,n.applyViewZones)(this._editors.original,f.map(S=>S.map(L=>L.original)))),this._register((0,n.applyViewZones)(this._editors.modified,f.map(S=>S.map(L=>L.modified)))),this._register((0,b.autorunWithStore)((S,L)=>{const D=f.read(S);for(const T of D)L.add(new g(this._editors.original,T.original,T.move,"original",this._diffModel.get())),L.add(new g(this._editors.modified,T.modified,T.move,"modified",this._diffModel.get()))}));const h=(0,b.observableSignalFromEvent)("original.onDidFocusEditorWidget",S=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>S(void 0),0))),v=(0,b.observableSignalFromEvent)("modified.onDidFocusEditorWidget",S=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>S(void 0),0)));let w="modified";this._register((0,b.autorunHandleChanges)({createEmptyChangeSummary:()=>{},handleChange:(S,L)=>(S.didChange(h)&&(w="original"),S.didChange(v)&&(w="modified"),!0)},S=>{h.read(S),v.read(S);const L=this._diffModel.read(S);if(!L)return;const D=L.diff.read(S);let T;if(D&&w==="original"){const M=this._editors.originalCursor.read(S);M&&(T=D.movedTexts.find(A=>A.lineRangeMapping.original.contains(M.lineNumber)))}if(D&&w==="modified"){const M=this._editors.modifiedCursor.read(S);M&&(T=D.movedTexts.find(A=>A.lineRangeMapping.modified.contains(M.lineNumber)))}T!==L.movedTextToCompare.get()&&L.movedTextToCompare.set(void 0,void 0),L.setActiveMovedText(T)}))}}e.MovedBlocksLinesFeature=i;class s{static compute(l){const a=[],r=[];for(const u of l){let C=a.findIndex(f=>!f.intersectsStrict(u));C===-1&&(a.length>=6?C=(0,y.findMaxIdx)(a,(0,E.compareBy)(h=>h.intersectWithRangeLength(u),E.numberComparator)):(C=a.length,a.push(new o.OffsetRangeSet))),a[C].addRange(u),r.push(C)}return new s(a.length,r)}constructor(l,a){this._trackCount=l,this.trackPerLineIdx=a}getTrack(l){return this.trackPerLineIdx[l]}getTrackCount(){return this._trackCount}}class g extends n.ViewZoneOverlayWidget{constructor(l,a,r,u,C){const f=(0,d.h)("div.diff-hidden-lines-widget");super(l,a,f.root),this._editor=l,this._move=r,this._kind=u,this._diffModel=C,this._nodes=(0,d.h)("div.diff-moved-code-block",{style:{marginRight:"4px"}},[(0,d.h)("div.text-content@textContent"),(0,d.h)("div.action-bar@actionBar")]),f.root.appendChild(this._nodes.root);const h=(0,b.observableFromEvent)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register((0,n.applyStyle)(this._nodes.root,{paddingRight:h.map(D=>D.verticalScrollbarWidth)}));let v;r.changes.length>0?v=this._kind==="original"?(0,t.localize)(118,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,t.localize)(119,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):v=this._kind==="original"?(0,t.localize)(120,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,t.localize)(121,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const w=this._register(new k.ActionBar(this._nodes.actionBar,{highlightToggledItems:!0})),S=new I.Action("",v,"",!1);w.push(S,{icon:!1,label:!0});const L=new I.Action("","Compare",p.ThemeIcon.asClassName(m.Codicon.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===r?void 0:this._move,void 0)});this._register((0,b.autorun)(D=>{const T=this._diffModel.movedTextToCompare.read(D)===r;L.checked=T})),w.push(L,{icon:!1,label:!0})}}}),define(ne[654],se([1,0,5,2,21,55,68]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorGutter=void 0;class m extends k.Disposable{constructor(p,n,o){super(),this._editor=p,this._domNode=n,this.itemProvider=o,this.scrollTop=(0,I.observableFromEvent)(this,this._editor.onDidScrollChange,s=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(s=>s===0),this.modelAttached=(0,I.observableFromEvent)(this,this._editor.onDidChangeModel,s=>this._editor.hasModel()),this.editorOnDidChangeViewZones=(0,I.observableSignalFromEvent)("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=(0,I.observableSignalFromEvent)("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=(0,I.observableSignal)("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const t=this._domNode.appendChild((0,d.h)("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),i=new ResizeObserver(()=>{(0,I.transaction)(s=>{this.domNodeSizeChanged.trigger(s)})});i.observe(this._domNode),this._register((0,k.toDisposable)(()=>i.disconnect())),this._register((0,I.autorun)(s=>{t.className=this.isScrollTopZero.read(s)?"":"scroll-decoration"})),this._register((0,I.autorun)(s=>this.render(s)))}dispose(){super.dispose(),(0,d.reset)(this._domNode)}render(p){if(!this.modelAttached.read(p))return;this.domNodeSizeChanged.read(p),this.editorOnDidChangeViewZones.read(p),this.editorOnDidContentSizeChange.read(p);const n=this.scrollTop.read(p),o=this._editor.getVisibleRanges(),t=new Set(this.views.keys()),i=y.OffsetRange.ofStartAndLength(0,this._domNode.clientHeight);if(!i.isEmpty)for(const s of o){const g=new E.LineRange(s.startLineNumber,s.endLineNumber+1),c=this.itemProvider.getIntersectingGutterItems(g,p);(0,I.transaction)(l=>{for(const a of c){if(!a.range.intersect(g))continue;t.delete(a.id);let r=this.views.get(a.id);if(r)r.item.set(a,l);else{const h=document.createElement("div");this._domNode.appendChild(h);const v=(0,I.observableValue)("item",a),w=this.itemProvider.createView(v,h);r=new _(v,w,h),this.views.set(a.id,r)}const u=a.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(a.range.startLineNumber,!0)-n:this._editor.getBottomForLineNumber(a.range.startLineNumber-1,!1)-n,f=(a.range.endLineNumberExclusive===1?Math.max(u,this._editor.getTopForLineNumber(a.range.startLineNumber,!1)-n):Math.max(u,this._editor.getBottomForLineNumber(a.range.endLineNumberExclusive-1,!0)-n))-u;r.domNode.style.top=`${u}px`,r.domNode.style.height=`${f}px`,r.gutterItemView.layout(y.OffsetRange.ofStartAndLength(u,f),i)}})}for(const s of t){const g=this.views.get(s);g.gutterItemView.dispose(),g.domNode.remove(),this.views.delete(s)}}}e.EditorGutter=m;class _{constructor(p,n,o){this.item=p,this.gutterItemView=n,this.domNode=o}}}),define(ne[365],se([1,0,41]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionRunnerWithContext=void 0;class k extends d.ActionRunner{constructor(E){super(),this._getContext=E}runAction(E,y){const m=this._getContext();return super.runAction(E,m)}}e.ActionRunnerWithContext=k}),define(ne[37],se([1,0,13,60,16,197,147,3]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOptions=e.editorOptionsRegistry=e.EDITOR_FONT_DEFAULTS=e.unicodeHighlightConfigKeys=e.inUntrustedWorkspace=e.ShowLightbulbIconMode=e.EditorLayoutInfoComputer=e.EditorFontVariations=e.EditorFontLigatures=e.TextEditorCursorStyle=e.ApplyUpdateResult=e.ComputeOptionsMemory=e.ConfigurationChangedEvent=e.MINIMAP_GUTTER_WIDTH=void 0,e.boolean=s,e.clampedInt=c,e.clampedFloat=a,e.stringSet=C,e.filterValidationDecorations=ge,e.MINIMAP_GUTTER_WIDTH=8;class _{constructor(fe){this._values=fe}hasChanged(fe){return this._values[fe]}}e.ConfigurationChangedEvent=_;class b{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}e.ComputeOptionsMemory=b;class p{constructor(fe,_e,xe,be){this.id=fe,this.name=_e,this.defaultValue=xe,this.schema=be}applyUpdate(fe,_e){return o(fe,_e)}compute(fe,_e,xe){return xe}}class n{constructor(fe,_e){this.newValue=fe,this.didChange=_e}}e.ApplyUpdateResult=n;function o(Fe,fe){if(typeof Fe!="object"||typeof fe!="object"||!Fe||!fe)return new n(fe,Fe!==fe);if(Array.isArray(Fe)||Array.isArray(fe)){const xe=Array.isArray(Fe)&&Array.isArray(fe)&&d.equals(Fe,fe);return new n(fe,!xe)}let _e=!1;for(const xe in fe)if(fe.hasOwnProperty(xe)){const be=o(Fe[xe],fe[xe]);be.didChange&&(Fe[xe]=be.newValue,_e=!0)}return new n(Fe,_e)}class t{constructor(fe){this.schema=void 0,this.id=fe,this.name="_never_",this.defaultValue=void 0}applyUpdate(fe,_e){return o(fe,_e)}validate(fe){return this.defaultValue}}class i{constructor(fe,_e,xe,be){this.id=fe,this.name=_e,this.defaultValue=xe,this.schema=be}applyUpdate(fe,_e){return o(fe,_e)}validate(fe){return typeof fe>"u"?this.defaultValue:fe}compute(fe,_e,xe){return xe}}function s(Fe,fe){return typeof Fe>"u"?fe:Fe==="false"?!1:!!Fe}class g extends i{constructor(fe,_e,xe,be=void 0){typeof be<"u"&&(be.type="boolean",be.default=xe),super(fe,_e,xe,be)}validate(fe){return s(fe,this.defaultValue)}}function c(Fe,fe,_e,xe){if(typeof Fe>"u")return fe;let be=parseInt(Fe,10);return isNaN(be)?fe:(be=Math.max(_e,be),be=Math.min(xe,be),be|0)}class l extends i{static clampedInt(fe,_e,xe,be){return c(fe,_e,xe,be)}constructor(fe,_e,xe,be,ve,we=void 0){typeof we<"u"&&(we.type="integer",we.default=xe,we.minimum=be,we.maximum=ve),super(fe,_e,xe,we),this.minimum=be,this.maximum=ve}validate(fe){return l.clampedInt(fe,this.defaultValue,this.minimum,this.maximum)}}function a(Fe,fe,_e,xe){if(typeof Fe>"u")return fe;const be=r.float(Fe,fe);return r.clamp(be,_e,xe)}class r extends i{static clamp(fe,_e,xe){return fe<_e?_e:fe>xe?xe:fe}static float(fe,_e){if(typeof fe=="number")return fe;if(typeof fe>"u")return _e;const xe=parseFloat(fe);return isNaN(xe)?_e:xe}constructor(fe,_e,xe,be,ve){typeof ve<"u"&&(ve.type="number",ve.default=xe),super(fe,_e,xe,ve),this.validationFn=be}validate(fe){return this.validationFn(r.float(fe,this.defaultValue))}}class u extends i{static string(fe,_e){return typeof fe!="string"?_e:fe}constructor(fe,_e,xe,be=void 0){typeof be<"u"&&(be.type="string",be.default=xe),super(fe,_e,xe,be)}validate(fe){return u.string(fe,this.defaultValue)}}function C(Fe,fe,_e,xe){return typeof Fe!="string"?fe:xe&&Fe in xe?xe[Fe]:_e.indexOf(Fe)===-1?fe:Fe}class f extends i{constructor(fe,_e,xe,be,ve=void 0){typeof ve<"u"&&(ve.type="string",ve.enum=be,ve.default=xe),super(fe,_e,xe,ve),this._allowedValues=be}validate(fe){return C(fe,this.defaultValue,this._allowedValues)}}class h extends p{constructor(fe,_e,xe,be,ve,we,Te=void 0){typeof Te<"u"&&(Te.type="string",Te.enum=ve,Te.default=be),super(fe,_e,xe,Te),this._allowedValues=ve,this._convert=we}validate(fe){return typeof fe!="string"?this.defaultValue:this._allowedValues.indexOf(fe)===-1?this.defaultValue:this._convert(fe)}}function v(Fe){switch(Fe){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class w extends p{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[m.localize(183,"Use platform APIs to detect when a Screen Reader is attached."),m.localize(184,"Optimize for usage with a Screen Reader."),m.localize(185,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:m.localize(186,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(fe){switch(fe){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(fe,_e,xe){return xe===0?fe.accessibilitySupport:xe}}class S extends p{constructor(){const fe={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",fe,{"editor.comments.insertSpace":{type:"boolean",default:fe.insertSpace,description:m.localize(187,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:fe.ignoreEmptyLines,description:m.localize(188,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{insertSpace:s(_e.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:s(_e.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function L(Fe){switch(Fe){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var D;(function(Fe){Fe[Fe.Line=1]="Line",Fe[Fe.Block=2]="Block",Fe[Fe.Underline=3]="Underline",Fe[Fe.LineThin=4]="LineThin",Fe[Fe.BlockOutline=5]="BlockOutline",Fe[Fe.UnderlineThin=6]="UnderlineThin"})(D||(e.TextEditorCursorStyle=D={}));function T(Fe){switch(Fe){case"line":return D.Line;case"block":return D.Block;case"underline":return D.Underline;case"line-thin":return D.LineThin;case"block-outline":return D.BlockOutline;case"underline-thin":return D.UnderlineThin}}class M extends t{constructor(){super(143)}compute(fe,_e,xe){const be=["monaco-editor"];return _e.get(39)&&be.push(_e.get(39)),fe.extraEditorClassName&&be.push(fe.extraEditorClassName),_e.get(74)==="default"?be.push("mouse-default"):_e.get(74)==="copy"&&be.push("mouse-copy"),_e.get(112)&&be.push("showUnused"),_e.get(141)&&be.push("showDeprecated"),be.join(" ")}}class A extends g{constructor(){super(37,"emptySelectionClipboard",!0,{description:m.localize(189,"Controls whether copying without a selection copies the current line.")})}compute(fe,_e,xe){return xe&&fe.emptySelectionClipboard}}class P extends p{constructor(){const fe={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",fe,{"editor.find.cursorMoveOnType":{type:"boolean",default:fe.cursorMoveOnType,description:m.localize(190,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:fe.seedSearchStringFromSelection,enumDescriptions:[m.localize(191,"Never seed search string from the editor selection."),m.localize(192,"Always seed search string from the editor selection, including word at cursor position."),m.localize(193,"Only seed search string from the editor selection.")],description:m.localize(194,"Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:fe.autoFindInSelection,enumDescriptions:[m.localize(195,"Never turn on Find in Selection automatically (default)."),m.localize(196,"Always turn on Find in Selection automatically."),m.localize(197,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:m.localize(198,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:fe.globalFindClipboard,description:m.localize(199,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:I.isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:fe.addExtraSpaceOnTop,description:m.localize(200,"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:fe.loop,description:m.localize(201,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{cursorMoveOnType:s(_e.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof fe.seedSearchStringFromSelection=="boolean"?fe.seedSearchStringFromSelection?"always":"never":C(_e.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof fe.autoFindInSelection=="boolean"?fe.autoFindInSelection?"always":"never":C(_e.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:s(_e.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:s(_e.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:s(_e.loop,this.defaultValue.loop)}}}class N extends p{static{this.OFF='"liga" off, "calt" off'}static{this.ON='"liga" on, "calt" on'}constructor(){super(51,"fontLigatures",N.OFF,{anyOf:[{type:"boolean",description:m.localize(202,"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:m.localize(203,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:m.localize(204,"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe==="false"||fe.length===0?N.OFF:fe==="true"?N.ON:fe:fe?N.ON:N.OFF}}e.EditorFontLigatures=N;class O extends p{static{this.OFF="normal"}static{this.TRANSLATE="translate"}constructor(){super(54,"fontVariations",O.OFF,{anyOf:[{type:"boolean",description:m.localize(205,"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:m.localize(206,"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:m.localize(207,"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe==="false"?O.OFF:fe==="true"?O.TRANSLATE:fe:fe?O.TRANSLATE:O.OFF}compute(fe,_e,xe){return fe.fontInfo.fontVariationSettings}}e.EditorFontVariations=O;class F extends t{constructor(){super(50)}compute(fe,_e,xe){return fe.fontInfo}}class x extends i{constructor(){super(52,"fontSize",e.EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:e.EDITOR_FONT_DEFAULTS.fontSize,description:m.localize(208,"Controls the font size in pixels.")})}validate(fe){const _e=r.float(fe,this.defaultValue);return _e===0?e.EDITOR_FONT_DEFAULTS.fontSize:r.clamp(_e,6,100)}compute(fe,_e,xe){return fe.fontInfo.fontSize}}class W extends p{static{this.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"]}static{this.MINIMUM_VALUE=1}static{this.MAXIMUM_VALUE=1e3}constructor(){super(53,"fontWeight",e.EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:W.MINIMUM_VALUE,maximum:W.MAXIMUM_VALUE,errorMessage:m.localize(209,'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:W.SUGGESTION_VALUES}],default:e.EDITOR_FONT_DEFAULTS.fontWeight,description:m.localize(210,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(fe){return fe==="normal"||fe==="bold"?fe:String(l.clampedInt(fe,e.EDITOR_FONT_DEFAULTS.fontWeight,W.MINIMUM_VALUE,W.MAXIMUM_VALUE))}}class V extends p{constructor(){const fe={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},_e={type:"string",enum:["peek","gotoAndPeek","goto"],default:fe.multiple,enumDescriptions:[m.localize(211,"Show Peek view of the results (default)"),m.localize(212,"Go to the primary result and show a Peek view"),m.localize(213,"Go to the primary result and enable Peek-less navigation to others")]},xe=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",fe,{"editor.gotoLocation.multiple":{deprecationMessage:m.localize(214,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:m.localize(215,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleTypeDefinitions":{description:m.localize(216,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleDeclarations":{description:m.localize(217,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleImplementations":{description:m.localize(218,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleReferences":{description:m.localize(219,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),..._e},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:fe.alternativeDefinitionCommand,enum:xe,description:m.localize(220,"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:fe.alternativeTypeDefinitionCommand,enum:xe,description:m.localize(221,"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:fe.alternativeDeclarationCommand,enum:xe,description:m.localize(222,"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:fe.alternativeImplementationCommand,enum:xe,description:m.localize(223,"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:fe.alternativeReferenceCommand,enum:xe,description:m.localize(224,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{multiple:C(_e.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:_e.multipleDefinitions??C(_e.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:_e.multipleTypeDefinitions??C(_e.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:_e.multipleDeclarations??C(_e.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:_e.multipleImplementations??C(_e.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:_e.multipleReferences??C(_e.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:_e.multipleTests??C(_e.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:u.string(_e.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:u.string(_e.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:u.string(_e.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:u.string(_e.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:u.string(_e.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:u.string(_e.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}}class q extends p{constructor(){const fe={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",fe,{"editor.hover.enabled":{type:"boolean",default:fe.enabled,description:m.localize(225,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:fe.delay,minimum:0,maximum:1e4,description:m.localize(226,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:fe.sticky,description:m.localize(227,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:fe.hidingDelay,description:m.localize(228,"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:fe.above,description:m.localize(229,"Prefer showing hovers above the line, if there's space.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),delay:l.clampedInt(_e.delay,this.defaultValue.delay,0,1e4),sticky:s(_e.sticky,this.defaultValue.sticky),hidingDelay:l.clampedInt(_e.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:s(_e.above,this.defaultValue.above)}}}class H extends t{constructor(){super(146)}compute(fe,_e,xe){return H.computeLayout(_e,{memory:fe.memory,outerWidth:fe.outerWidth,outerHeight:fe.outerHeight,isDominatedByLongLines:fe.isDominatedByLongLines,lineHeight:fe.fontInfo.lineHeight,viewLineCount:fe.viewLineCount,lineNumbersDigitCount:fe.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:fe.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:fe.fontInfo.maxDigitWidth,pixelRatio:fe.pixelRatio,glyphMarginDecorationLaneCount:fe.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(fe){const _e=fe.height/fe.lineHeight,xe=Math.floor(fe.paddingTop/fe.lineHeight);let be=Math.floor(fe.paddingBottom/fe.lineHeight);fe.scrollBeyondLastLine&&(be=Math.max(be,_e-1));const ve=(xe+fe.viewLineCount+be)/(fe.pixelRatio*fe.height),we=Math.floor(fe.viewLineCount/ve);return{typicalViewportLineCount:_e,extraLinesBeforeFirstLine:xe,extraLinesBeyondLastLine:be,desiredRatio:ve,minimapLineCount:we}}static _computeMinimapLayout(fe,_e){const xe=fe.outerWidth,be=fe.outerHeight,ve=fe.pixelRatio;if(!fe.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(ve*be),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:be};const we=_e.stableMinimapLayoutInput,Te=we&&fe.outerHeight===we.outerHeight&&fe.lineHeight===we.lineHeight&&fe.typicalHalfwidthCharacterWidth===we.typicalHalfwidthCharacterWidth&&fe.pixelRatio===we.pixelRatio&&fe.scrollBeyondLastLine===we.scrollBeyondLastLine&&fe.paddingTop===we.paddingTop&&fe.paddingBottom===we.paddingBottom&&fe.minimap.enabled===we.minimap.enabled&&fe.minimap.side===we.minimap.side&&fe.minimap.size===we.minimap.size&&fe.minimap.showSlider===we.minimap.showSlider&&fe.minimap.renderCharacters===we.minimap.renderCharacters&&fe.minimap.maxColumn===we.minimap.maxColumn&&fe.minimap.scale===we.minimap.scale&&fe.verticalScrollbarWidth===we.verticalScrollbarWidth&&fe.isViewportWrapping===we.isViewportWrapping,Pe=fe.lineHeight,Be=fe.typicalHalfwidthCharacterWidth,He=fe.scrollBeyondLastLine,$e=fe.minimap.renderCharacters;let je=ve>=2?Math.round(fe.minimap.scale*2):fe.minimap.scale;const Xe=fe.minimap.maxColumn,et=fe.minimap.size,dt=fe.minimap.side,at=fe.verticalScrollbarWidth,st=fe.viewLineCount,pt=fe.remainingWidth,bt=fe.isViewportWrapping,De=$e?2:3;let Ie=Math.floor(ve*be);const Re=Ie/ve;let Se=!1,We=!1,qe=De*je,Ue=je/ve,Je=1;if(et==="fill"||et==="fit"){const{typicalViewportLineCount:Ve,extraLinesBeforeFirstLine:Ye,extraLinesBeyondLastLine:Ze,desiredRatio:nt,minimapLineCount:ct}=H.computeContainedMinimapLineCount({viewLineCount:st,scrollBeyondLastLine:He,paddingTop:fe.paddingTop,paddingBottom:fe.paddingBottom,height:be,lineHeight:Pe,pixelRatio:ve});if(st/ct>1)Se=!0,We=!0,je=1,qe=1,Ue=je/ve;else{let ft=!1,gt=je+1;if(et==="fit"){const mt=Math.ceil((Ye+st+Ze)*qe);bt&&Te&&pt<=_e.stableFitRemainingWidth?(ft=!0,gt=_e.stableFitMaxMinimapScale):ft=mt>Ie}if(et==="fill"||ft){Se=!0;const mt=je;qe=Math.min(Pe*ve,Math.max(1,Math.floor(1/nt))),bt&&Te&&pt<=_e.stableFitRemainingWidth&&(gt=_e.stableFitMaxMinimapScale),je=Math.min(gt,Math.max(1,Math.floor(qe/De))),je>mt&&(Je=Math.min(2,je/mt)),Ue=je/ve/Je,Ie=Math.ceil(Math.max(Ve,Ye+st+Ze)*qe),bt?(_e.stableMinimapLayoutInput=fe,_e.stableFitRemainingWidth=pt,_e.stableFitMaxMinimapScale=je):(_e.stableMinimapLayoutInput=null,_e.stableFitRemainingWidth=0)}}}const tt=Math.floor(Xe*Ue),Qe=Math.min(tt,Math.max(0,Math.floor((pt-at-2)*Ue/(Be+Ue)))+e.MINIMAP_GUTTER_WIDTH);let rt=Math.floor(ve*Qe);const Ct=rt/ve;rt=Math.floor(rt*Je);const ut=$e?1:2,ot=dt==="left"?0:xe-Qe-at;return{renderMinimap:ut,minimapLeft:ot,minimapWidth:Qe,minimapHeightIsEditorHeight:Se,minimapIsSampling:We,minimapScale:je,minimapLineHeight:qe,minimapCanvasInnerWidth:rt,minimapCanvasInnerHeight:Ie,minimapCanvasOuterWidth:Ct,minimapCanvasOuterHeight:Re}}static computeLayout(fe,_e){const xe=_e.outerWidth|0,be=_e.outerHeight|0,ve=_e.lineHeight|0,we=_e.lineNumbersDigitCount|0,Te=_e.typicalHalfwidthCharacterWidth,Pe=_e.maxDigitWidth,Be=_e.pixelRatio,He=_e.viewLineCount,$e=fe.get(138),je=$e==="inherit"?fe.get(137):$e,Xe=je==="inherit"?fe.get(133):je,et=fe.get(136),dt=_e.isDominatedByLongLines,at=fe.get(57),st=fe.get(68).renderType!==0,pt=fe.get(69),bt=fe.get(106),De=fe.get(84),Ie=fe.get(73),Re=fe.get(104),Se=Re.verticalScrollbarSize,We=Re.verticalHasArrows,qe=Re.arrowSize,Ue=Re.horizontalScrollbarSize,Je=fe.get(43),tt=fe.get(111)!=="never";let Qe=fe.get(66);Je&&tt&&(Qe+=16);let rt=0;if(st){const Dt=Math.max(we,pt);rt=Math.round(Dt*Pe)}let Ct=0;at&&(Ct=ve*_e.glyphMarginDecorationLaneCount);let ut=0,ot=ut+Ct,Ve=ot+rt,Ye=Ve+Qe;const Ze=xe-Ct-rt-Qe;let nt=!1,ct=!1,ht=-1;je==="inherit"&&dt?(nt=!0,ct=!0):Xe==="on"||Xe==="bounded"?ct=!0:Xe==="wordWrapColumn"&&(ht=et);const ft=H._computeMinimapLayout({outerWidth:xe,outerHeight:be,lineHeight:ve,typicalHalfwidthCharacterWidth:Te,pixelRatio:Be,scrollBeyondLastLine:bt,paddingTop:De.top,paddingBottom:De.bottom,minimap:Ie,verticalScrollbarWidth:Se,viewLineCount:He,remainingWidth:Ze,isViewportWrapping:ct},_e.memory||new b);ft.renderMinimap!==0&&ft.minimapLeft===0&&(ut+=ft.minimapWidth,ot+=ft.minimapWidth,Ve+=ft.minimapWidth,Ye+=ft.minimapWidth);const gt=Ze-ft.minimapWidth,mt=Math.max(1,Math.floor((gt-Se-2)/Te)),vt=We?qe:0;return ct&&(ht=Math.max(1,mt),Xe==="bounded"&&(ht=Math.min(ht,et))),{width:xe,height:be,glyphMarginLeft:ut,glyphMarginWidth:Ct,glyphMarginDecorationLaneCount:_e.glyphMarginDecorationLaneCount,lineNumbersLeft:ot,lineNumbersWidth:rt,decorationsLeft:Ve,decorationsWidth:Qe,contentLeft:Ye,contentWidth:gt,minimap:ft,viewportColumn:mt,isWordWrapMinified:nt,isViewportWrapping:ct,wrappingColumn:ht,verticalScrollbarWidth:Se,horizontalScrollbarHeight:Ue,overviewRuler:{top:vt,width:Se,height:be-2*vt,right:0}}}}e.EditorLayoutInfoComputer=H;class z extends p{constructor(){super(140,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[m.localize(230,"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),m.localize(231,"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:m.localize(232,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(fe){return C(fe,"simple",["simple","advanced"])}compute(fe,_e,xe){return _e.get(2)===2?"advanced":xe}}var U;(function(Fe){Fe.Off="off",Fe.OnCode="onCode",Fe.On="on"})(U||(e.ShowLightbulbIconMode=U={}));class j extends p{constructor(){const fe={enabled:U.OnCode};super(65,"lightbulb",fe,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[U.Off,U.OnCode,U.On],default:fe.enabled,enumDescriptions:[m.localize(233,"Disable the code action menu."),m.localize(234,"Show the code action menu when the cursor is on lines with code."),m.localize(235,"Show the code action menu when the cursor is on lines with code or on empty lines.")],description:m.localize(236,"Enables the Code Action lightbulb in the editor.")}})}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:{enabled:C(fe.enabled,this.defaultValue.enabled,[U.Off,U.OnCode,U.On])}}}class Y extends p{constructor(){const fe={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(116,"stickyScroll",fe,{"editor.stickyScroll.enabled":{type:"boolean",default:fe.enabled,description:m.localize(237,"Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:fe.maxLineCount,minimum:1,maximum:20,description:m.localize(238,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:fe.defaultModel,description:m.localize(239,"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:fe.scrollWithEditor,description:m.localize(240,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),maxLineCount:l.clampedInt(_e.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:C(_e.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:s(_e.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class G extends p{constructor(){const fe={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(142,"inlayHints",fe,{"editor.inlayHints.enabled":{type:"string",default:fe.enabled,description:m.localize(241,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[m.localize(242,"Inlay hints are enabled"),m.localize(243,"Inlay hints are showing by default and hide when holding {0}",I.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),m.localize(244,"Inlay hints are hidden by default and show when holding {0}",I.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),m.localize(245,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:fe.fontSize,markdownDescription:m.localize(246,"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:fe.fontFamily,markdownDescription:m.localize(247,"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:fe.padding,description:m.localize(248,"Enables the padding around the inlay hints in the editor.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return typeof _e.enabled=="boolean"&&(_e.enabled=_e.enabled?"on":"off"),{enabled:C(_e.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:l.clampedInt(_e.fontSize,this.defaultValue.fontSize,0,100),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily),padding:s(_e.padding,this.defaultValue.padding)}}}class K extends p{constructor(){super(66,"lineDecorationsWidth",10)}validate(fe){return typeof fe=="string"&&/^\d+(\.\d+)?ch$/.test(fe)?-parseFloat(fe.substring(0,fe.length-2)):l.clampedInt(fe,this.defaultValue,0,1e3)}compute(fe,_e,xe){return xe<0?l.clampedInt(-xe*fe.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):xe}}class R extends r{constructor(){super(67,"lineHeight",e.EDITOR_FONT_DEFAULTS.lineHeight,fe=>r.clamp(fe,0,150),{markdownDescription:m.localize(249,`Controls the line height. - - Use 0 to automatically compute the line height from the font size. - - Values between 0 and 8 will be used as a multiplier with the font size. - - Values greater than or equal to 8 will be used as effective values.`)})}compute(fe,_e,xe){return fe.fontInfo.lineHeight}}class J extends p{constructor(){const fe={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(73,"minimap",fe,{"editor.minimap.enabled":{type:"boolean",default:fe.enabled,description:m.localize(250,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:fe.autohide,description:m.localize(251,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[m.localize(252,"The minimap has the same size as the editor contents (and might scroll)."),m.localize(253,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),m.localize(254,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:fe.size,description:m.localize(255,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:fe.side,description:m.localize(256,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:fe.showSlider,description:m.localize(257,"Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:fe.scale,minimum:1,maximum:3,enum:[1,2,3],description:m.localize(258,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:fe.renderCharacters,description:m.localize(259,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:fe.maxColumn,description:m.localize(260,"Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:fe.showRegionSectionHeaders,description:m.localize(261,"Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:fe.showMarkSectionHeaders,description:m.localize(262,"Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:fe.sectionHeaderFontSize,description:m.localize(263,"Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:fe.sectionHeaderLetterSpacing,description:m.localize(264,"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),autohide:s(_e.autohide,this.defaultValue.autohide),size:C(_e.size,this.defaultValue.size,["proportional","fill","fit"]),side:C(_e.side,this.defaultValue.side,["right","left"]),showSlider:C(_e.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:s(_e.renderCharacters,this.defaultValue.renderCharacters),scale:l.clampedInt(_e.scale,1,1,3),maxColumn:l.clampedInt(_e.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:s(_e.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:s(_e.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:r.clamp(_e.sectionHeaderFontSize??this.defaultValue.sectionHeaderFontSize,4,32),sectionHeaderLetterSpacing:r.clamp(_e.sectionHeaderLetterSpacing??this.defaultValue.sectionHeaderLetterSpacing,0,5)}}}function ie(Fe){return Fe==="ctrlCmd"?I.isMacintosh?"metaKey":"ctrlKey":"altKey"}class ue extends p{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:m.localize(265,"Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:m.localize(266,"Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{top:l.clampedInt(_e.top,0,0,1e3),bottom:l.clampedInt(_e.bottom,0,0,1e3)}}}class he extends p{constructor(){const fe={enabled:!0,cycle:!0};super(86,"parameterHints",fe,{"editor.parameterHints.enabled":{type:"boolean",default:fe.enabled,description:m.localize(267,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:fe.cycle,description:m.localize(268,"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),cycle:s(_e.cycle,this.defaultValue.cycle)}}}class pe extends t{constructor(){super(144)}compute(fe,_e,xe){return fe.pixelRatio}}class ae extends p{constructor(){super(88,"placeholder",void 0)}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe:this.defaultValue}}class ee extends p{constructor(){const fe={other:"on",comments:"off",strings:"off"},_e=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[m.localize(269,"Quick suggestions show inside the suggest widget"),m.localize(270,"Quick suggestions show as ghost text"),m.localize(271,"Quick suggestions are disabled")]}];super(90,"quickSuggestions",fe,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:_e,default:fe.strings,description:m.localize(272,"Enable quick suggestions inside strings.")},comments:{anyOf:_e,default:fe.comments,description:m.localize(273,"Enable quick suggestions inside comments.")},other:{anyOf:_e,default:fe.other,description:m.localize(274,"Enable quick suggestions outside of strings and comments.")}},default:fe,markdownDescription:m.localize(275,"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the {0}-setting which controls if suggestions are triggered by special characters.","`#editor.suggestOnTriggerCharacters#`")}),this.defaultValue=fe}validate(fe){if(typeof fe=="boolean"){const Be=fe?"on":"off";return{comments:Be,strings:Be,other:Be}}if(!fe||typeof fe!="object")return this.defaultValue;const{other:_e,comments:xe,strings:be}=fe,ve=["on","inline","off"];let we,Te,Pe;return typeof _e=="boolean"?we=_e?"on":"off":we=C(_e,this.defaultValue.other,ve),typeof xe=="boolean"?Te=xe?"on":"off":Te=C(xe,this.defaultValue.comments,ve),typeof be=="boolean"?Pe=be?"on":"off":Pe=C(be,this.defaultValue.strings,ve),{other:we,comments:Te,strings:Pe}}}class de extends p{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[m.localize(276,"Line numbers are not rendered."),m.localize(277,"Line numbers are rendered as absolute number."),m.localize(278,"Line numbers are rendered as distance in lines to cursor position."),m.localize(279,"Line numbers are rendered every 10 lines.")],default:"on",description:m.localize(280,"Controls the display of line numbers.")})}validate(fe){let _e=this.defaultValue.renderType,xe=this.defaultValue.renderFn;return typeof fe<"u"&&(typeof fe=="function"?(_e=4,xe=fe):fe==="interval"?_e=3:fe==="relative"?_e=2:fe==="on"?_e=1:_e=0),{renderType:_e,renderFn:xe}}}function ge(Fe){const fe=Fe.get(99);return fe==="editable"?Fe.get(92):fe!=="on"}class X extends p{constructor(){const fe=[],_e={type:"number",description:m.localize(281,"Number of monospace characters at which this editor ruler will render.")};super(103,"rulers",fe,{type:"array",items:{anyOf:[_e,{type:["object"],properties:{column:_e,color:{type:"string",description:m.localize(282,"Color of this editor ruler."),format:"color-hex"}}}]},default:fe,description:m.localize(283,"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(fe){if(Array.isArray(fe)){const _e=[];for(const xe of fe)if(typeof xe=="number")_e.push({column:l.clampedInt(xe,0,0,1e4),color:null});else if(xe&&typeof xe=="object"){const be=xe;_e.push({column:l.clampedInt(be.column,0,0,1e4),color:be.color})}return _e.sort((xe,be)=>xe.column-be.column),_e}return this.defaultValue}}class B extends p{constructor(){super(93,"readOnlyMessage",void 0)}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:fe}}function $(Fe,fe){if(typeof Fe!="string")return fe;switch(Fe){case"hidden":return 2;case"visible":return 3;default:return 1}}class Q extends p{constructor(){const fe={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(104,"scrollbar",fe,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[m.localize(284,"The vertical scrollbar will be visible only when necessary."),m.localize(285,"The vertical scrollbar will always be visible."),m.localize(286,"The vertical scrollbar will always be hidden.")],default:"auto",description:m.localize(287,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[m.localize(288,"The horizontal scrollbar will be visible only when necessary."),m.localize(289,"The horizontal scrollbar will always be visible."),m.localize(290,"The horizontal scrollbar will always be hidden.")],default:"auto",description:m.localize(291,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:fe.verticalScrollbarSize,description:m.localize(292,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:fe.horizontalScrollbarSize,description:m.localize(293,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:fe.scrollByPage,description:m.localize(294,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:fe.ignoreHorizontalScrollbarInContentHeight,description:m.localize(295,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe,xe=l.clampedInt(_e.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),be=l.clampedInt(_e.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:l.clampedInt(_e.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:$(_e.vertical,this.defaultValue.vertical),horizontal:$(_e.horizontal,this.defaultValue.horizontal),useShadows:s(_e.useShadows,this.defaultValue.useShadows),verticalHasArrows:s(_e.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:s(_e.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:s(_e.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:s(_e.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:xe,horizontalSliderSize:l.clampedInt(_e.horizontalSliderSize,xe,0,1e3),verticalScrollbarSize:be,verticalSliderSize:l.clampedInt(_e.verticalSliderSize,be,0,1e3),scrollByPage:s(_e.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:s(_e.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}e.inUntrustedWorkspace="inUntrustedWorkspace",e.unicodeHighlightConfigKeys={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class Z extends p{constructor(){const fe={nonBasicASCII:e.inUntrustedWorkspace,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:e.inUntrustedWorkspace,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(126,"unicodeHighlight",fe,{[e.unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.nonBasicASCII,description:m.localize(296,"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[e.unicodeHighlightConfigKeys.invisibleCharacters]:{restricted:!0,type:"boolean",default:fe.invisibleCharacters,description:m.localize(297,"Controls whether characters that just reserve space or have no width at all are highlighted.")},[e.unicodeHighlightConfigKeys.ambiguousCharacters]:{restricted:!0,type:"boolean",default:fe.ambiguousCharacters,description:m.localize(298,"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[e.unicodeHighlightConfigKeys.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.includeComments,description:m.localize(299,"Controls whether characters in comments should also be subject to Unicode highlighting.")},[e.unicodeHighlightConfigKeys.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.includeStrings,description:m.localize(300,"Controls whether characters in strings should also be subject to Unicode highlighting.")},[e.unicodeHighlightConfigKeys.allowedCharacters]:{restricted:!0,type:"object",default:fe.allowedCharacters,description:m.localize(301,"Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[e.unicodeHighlightConfigKeys.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:fe.allowedLocales,description:m.localize(302,"Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(fe,_e){let xe=!1;_e.allowedCharacters&&fe&&(k.equals(fe.allowedCharacters,_e.allowedCharacters)||(fe={...fe,allowedCharacters:_e.allowedCharacters},xe=!0)),_e.allowedLocales&&fe&&(k.equals(fe.allowedLocales,_e.allowedLocales)||(fe={...fe,allowedLocales:_e.allowedLocales},xe=!0));const be=super.applyUpdate(fe,_e);return xe?new n(be.newValue,!0):be}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{nonBasicASCII:Ce(_e.nonBasicASCII,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),invisibleCharacters:s(_e.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:s(_e.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:Ce(_e.includeComments,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),includeStrings:Ce(_e.includeStrings,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),allowedCharacters:this.validateBooleanMap(fe.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(fe.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(fe,_e){if(typeof fe!="object"||!fe)return _e;const xe={};for(const[be,ve]of Object.entries(fe))ve===!0&&(xe[be]=!0);return xe}}class te extends p{constructor(){const fe={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",fe,{"editor.inlineSuggest.enabled":{type:"boolean",default:fe.enabled,description:m.localize(303,"Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:fe.showToolbar,enum:["always","onHover","never"],enumDescriptions:[m.localize(304,"Show the inline suggestion toolbar whenever an inline suggestion is shown."),m.localize(305,"Show the inline suggestion toolbar when hovering over an inline suggestion."),m.localize(306,"Never show the inline suggestion toolbar.")],description:m.localize(307,"Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:fe.suppressSuggestions,description:m.localize(308,"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:fe.fontFamily,description:m.localize(309,"Controls the font family of the inline suggestions.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),mode:C(_e.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:C(_e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:s(_e.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:s(_e.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily)}}}class re extends p{constructor(){const fe={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1};super(63,"experimentalInlineEdit",fe,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:fe.enabled,description:m.localize(310,"Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:fe.showToolbar,enum:["always","onHover","never"],enumDescriptions:[m.localize(311,"Show the inline edit toolbar whenever an inline suggestion is shown."),m.localize(312,"Show the inline edit toolbar when hovering over an inline suggestion."),m.localize(313,"Never show the inline edit toolbar.")],description:m.localize(314,"Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:fe.fontFamily,description:m.localize(315,"Controls the font family of the inline edit.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showToolbar:C(_e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily),keepOnBlur:s(_e.keepOnBlur,this.defaultValue.keepOnBlur)}}}class le extends p{constructor(){const fe={enabled:E.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:E.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",fe,{"editor.bracketPairColorization.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(316,"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:fe.independentColorPoolPerBracketType,description:m.localize(317,"Controls whether each bracket type has its own independent color pool.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:s(_e.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class me extends p{constructor(){const fe={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",fe,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[m.localize(318,"Enables bracket pair guides."),m.localize(319,"Enables bracket pair guides only for the active bracket pair."),m.localize(320,"Disables bracket pair guides.")],default:fe.bracketPairs,description:m.localize(321,"Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[m.localize(322,"Enables horizontal guides as addition to vertical bracket pair guides."),m.localize(323,"Enables horizontal guides only for the active bracket pair."),m.localize(324,"Disables horizontal bracket pair guides.")],default:fe.bracketPairsHorizontal,description:m.localize(325,"Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:fe.highlightActiveBracketPair,description:m.localize(326,"Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:fe.indentation,description:m.localize(327,"Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[m.localize(328,"Highlights the active indent guide."),m.localize(329,"Highlights the active indent guide even if bracket guides are highlighted."),m.localize(330,"Do not highlight the active indent guide.")],default:fe.highlightActiveIndentation,description:m.localize(331,"Controls whether the editor should highlight the active indent guide.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{bracketPairs:Ce(_e.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:Ce(_e.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:s(_e.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:s(_e.indentation,this.defaultValue.indentation),highlightActiveIndentation:Ce(_e.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function Ce(Fe,fe,_e){const xe=_e.indexOf(Fe);return xe===-1?fe:_e[xe]}class ye extends p{constructor(){const fe={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(119,"suggest",fe,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[m.localize(332,"Insert suggestion without overwriting text right of the cursor."),m.localize(333,"Insert suggestion and overwrite text right of the cursor.")],default:fe.insertMode,description:m.localize(334,"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:fe.filterGraceful,description:m.localize(335,"Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:fe.localityBonus,description:m.localize(336,"Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:fe.shareSuggestSelections,markdownDescription:m.localize(337,"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[m.localize(338,"Always select a suggestion when automatically triggering IntelliSense."),m.localize(339,"Never select a suggestion when automatically triggering IntelliSense."),m.localize(340,"Select a suggestion only when triggering IntelliSense from a trigger character."),m.localize(341,"Select a suggestion only when triggering IntelliSense as you type.")],default:fe.selectionMode,markdownDescription:m.localize(342,"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions ({0} and {1}) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.","`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:fe.snippetsPreventQuickSuggestions,description:m.localize(343,"Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:fe.showIcons,description:m.localize(344,"Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:fe.showStatusBar,description:m.localize(345,"Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:fe.preview,description:m.localize(346,"Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:fe.showInlineDetails,description:m.localize(347,"Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:m.localize(348,"This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:m.localize(349,"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:m.localize(350,"When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:m.localize(351,"When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:m.localize(352,"When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:m.localize(353,"When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:m.localize(354,"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:m.localize(355,"When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:m.localize(356,"When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:m.localize(357,"When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:m.localize(358,"When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:m.localize(359,"When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:m.localize(360,"When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:m.localize(361,"When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:m.localize(362,"When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:m.localize(363,"When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:m.localize(364,"When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:m.localize(365,"When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:m.localize(366,"When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:m.localize(367,"When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:m.localize(368,"When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:m.localize(369,"When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:m.localize(370,"When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:m.localize(371,"When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:m.localize(372,"When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:m.localize(373,"When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:m.localize(374,"When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:m.localize(375,"When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:m.localize(376,"When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:m.localize(377,"When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:m.localize(378,"When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:m.localize(379,"When enabled IntelliSense shows `issues`-suggestions.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{insertMode:C(_e.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:s(_e.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:s(_e.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:s(_e.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:s(_e.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:C(_e.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:s(_e.showIcons,this.defaultValue.showIcons),showStatusBar:s(_e.showStatusBar,this.defaultValue.showStatusBar),preview:s(_e.preview,this.defaultValue.preview),previewMode:C(_e.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:s(_e.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:s(_e.showMethods,this.defaultValue.showMethods),showFunctions:s(_e.showFunctions,this.defaultValue.showFunctions),showConstructors:s(_e.showConstructors,this.defaultValue.showConstructors),showDeprecated:s(_e.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:s(_e.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:s(_e.showFields,this.defaultValue.showFields),showVariables:s(_e.showVariables,this.defaultValue.showVariables),showClasses:s(_e.showClasses,this.defaultValue.showClasses),showStructs:s(_e.showStructs,this.defaultValue.showStructs),showInterfaces:s(_e.showInterfaces,this.defaultValue.showInterfaces),showModules:s(_e.showModules,this.defaultValue.showModules),showProperties:s(_e.showProperties,this.defaultValue.showProperties),showEvents:s(_e.showEvents,this.defaultValue.showEvents),showOperators:s(_e.showOperators,this.defaultValue.showOperators),showUnits:s(_e.showUnits,this.defaultValue.showUnits),showValues:s(_e.showValues,this.defaultValue.showValues),showConstants:s(_e.showConstants,this.defaultValue.showConstants),showEnums:s(_e.showEnums,this.defaultValue.showEnums),showEnumMembers:s(_e.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:s(_e.showKeywords,this.defaultValue.showKeywords),showWords:s(_e.showWords,this.defaultValue.showWords),showColors:s(_e.showColors,this.defaultValue.showColors),showFiles:s(_e.showFiles,this.defaultValue.showFiles),showReferences:s(_e.showReferences,this.defaultValue.showReferences),showFolders:s(_e.showFolders,this.defaultValue.showFolders),showTypeParameters:s(_e.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:s(_e.showSnippets,this.defaultValue.showSnippets),showUsers:s(_e.showUsers,this.defaultValue.showUsers),showIssues:s(_e.showIssues,this.defaultValue.showIssues)}}}class Le extends p{constructor(){super(114,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:m.localize(380,"Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:m.localize(381,"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:s(fe.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:s(fe.selectSubwords,this.defaultValue.selectSubwords)}}}class Ee extends p{constructor(){const fe=[];super(131,"wordSegmenterLocales",fe,{anyOf:[{description:m.localize(382,"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"string"},{description:m.localize(383,"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"}}]})}validate(fe){if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const _e=[];for(const xe of fe)if(typeof xe=="string")try{Intl.Segmenter.supportedLocalesOf(xe).length>0&&_e.push(xe)}catch{}return _e}return this.defaultValue}}class Me extends p{constructor(){super(139,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[m.localize(384,"No indentation. Wrapped lines begin at column 1."),m.localize(385,"Wrapped lines get the same indentation as the parent."),m.localize(386,"Wrapped lines get +1 indentation toward the parent."),m.localize(387,"Wrapped lines get +2 indentation toward the parent.")],description:m.localize(388,"Controls the indentation of wrapped lines."),default:"same"}})}validate(fe){switch(fe){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(fe,_e,xe){return _e.get(2)===2?0:xe}}class Ae extends t{constructor(){super(147)}compute(fe,_e,xe){const be=_e.get(146);return{isDominatedByLongLines:fe.isDominatedByLongLines,isWordWrapMinified:be.isWordWrapMinified,isViewportWrapping:be.isViewportWrapping,wrappingColumn:be.wrappingColumn}}}class Ne extends p{constructor(){const fe={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",fe,{"editor.dropIntoEditor.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(389,"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:m.localize(390,"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[m.localize(391,"Show the drop selector widget after a file is dropped into the editor."),m.localize(392,"Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showDropSelector:C(_e.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class Ke extends p{constructor(){const fe={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",fe,{"editor.pasteAs.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(393,"Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:m.localize(394,"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[m.localize(395,"Show the paste selector widget after content is pasted into the editor."),m.localize(396,"Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showPasteSelector:C(_e.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const ze="Consolas, 'Courier New', monospace",Ge="Menlo, Monaco, 'Courier New', monospace",it="'Droid Sans Mono', 'monospace', monospace";e.EDITOR_FONT_DEFAULTS={fontFamily:I.isMacintosh?Ge:I.isLinux?it:ze,fontWeight:"normal",fontSize:I.isMacintosh?12:14,lineHeight:0,letterSpacing:0},e.editorOptionsRegistry=[];function Oe(Fe){return e.editorOptionsRegistry[Fe.id]=Fe,Fe}e.EditorOptions={acceptSuggestionOnCommitCharacter:Oe(new g(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:m.localize(397,"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Oe(new f(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",m.localize(398,"Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:m.localize(399,"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Oe(new w),accessibilityPageSize:Oe(new l(3,"accessibilityPageSize",10,1,1073741824,{description:m.localize(400,"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Oe(new u(4,"ariaLabel",m.localize(401,"Editor content"))),ariaRequired:Oe(new g(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Oe(new g(8,"screenReaderAnnounceInlineSuggestion",!0,{description:m.localize(402,"Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Oe(new f(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(403,"Use language configurations to determine when to autoclose brackets."),m.localize(404,"Autoclose brackets only when the cursor is to the left of whitespace."),""],description:m.localize(405,"Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Oe(new f(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(406,"Use language configurations to determine when to autoclose comments."),m.localize(407,"Autoclose comments only when the cursor is to the left of whitespace."),""],description:m.localize(408,"Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Oe(new f(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",m.localize(409,"Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:m.localize(410,"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Oe(new f(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",m.localize(411,"Type over closing quotes or brackets only if they were automatically inserted."),""],description:m.localize(412,"Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Oe(new f(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(413,"Use language configurations to determine when to autoclose quotes."),m.localize(414,"Autoclose quotes only when the cursor is to the left of whitespace."),""],description:m.localize(415,"Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Oe(new h(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],v,{enumDescriptions:[m.localize(416,"The editor will not insert indentation automatically."),m.localize(417,"The editor will keep the current line's indentation."),m.localize(418,"The editor will keep the current line's indentation and honor language defined brackets."),m.localize(419,"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),m.localize(420,"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:m.localize(421,"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Oe(new g(13,"automaticLayout",!1)),autoSurround:Oe(new f(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[m.localize(422,"Use language configurations to determine when to automatically surround selections."),m.localize(423,"Surround with quotes but not brackets."),m.localize(424,"Surround with brackets but not quotes."),""],description:m.localize(425,"Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Oe(new le),bracketPairGuides:Oe(new me),stickyTabStops:Oe(new g(117,"stickyTabStops",!1,{description:m.localize(426,"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Oe(new g(17,"codeLens",!0,{description:m.localize(427,"Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Oe(new u(18,"codeLensFontFamily","",{description:m.localize(428,"Controls the font family for CodeLens.")})),codeLensFontSize:Oe(new l(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:m.localize(429,"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Oe(new g(20,"colorDecorators",!0,{description:m.localize(430,"Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Oe(new f(149,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[m.localize(431,"Make the color picker appear both on click and hover of the color decorator"),m.localize(432,"Make the color picker appear on hover of the color decorator"),m.localize(433,"Make the color picker appear on click of the color decorator")],description:m.localize(434,"Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Oe(new l(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:m.localize(435,"Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Oe(new g(22,"columnSelection",!1,{description:m.localize(436,"Enable that the selection with the mouse and keys is doing column selection.")})),comments:Oe(new S),contextmenu:Oe(new g(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Oe(new g(25,"copyWithSyntaxHighlighting",!0,{description:m.localize(437,"Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Oe(new h(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],L,{description:m.localize(438,"Control the cursor animation style.")})),cursorSmoothCaretAnimation:Oe(new f(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[m.localize(439,"Smooth caret animation is disabled."),m.localize(440,"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),m.localize(441,"Smooth caret animation is always enabled.")],description:m.localize(442,"Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Oe(new h(28,"cursorStyle",D.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],T,{description:m.localize(443,"Controls the cursor style.")})),cursorSurroundingLines:Oe(new l(29,"cursorSurroundingLines",0,0,1073741824,{description:m.localize(444,"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Oe(new f(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[m.localize(445,"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),m.localize(446,"`cursorSurroundingLines` is enforced always.")],markdownDescription:m.localize(447,"Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:Oe(new l(31,"cursorWidth",0,0,1073741824,{markdownDescription:m.localize(448,"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Oe(new g(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Oe(new g(33,"disableMonospaceOptimizations",!1)),domReadOnly:Oe(new g(34,"domReadOnly",!1)),dragAndDrop:Oe(new g(35,"dragAndDrop",!0,{description:m.localize(449,"Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Oe(new A),dropIntoEditor:Oe(new Ne),stickyScroll:Oe(new Y),experimentalWhitespaceRendering:Oe(new f(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[m.localize(450,"Use a new rendering method with svgs."),m.localize(451,"Use a new rendering method with font characters."),m.localize(452,"Use the stable rendering method.")],description:m.localize(453,"Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Oe(new u(39,"extraEditorClassName","")),fastScrollSensitivity:Oe(new r(40,"fastScrollSensitivity",5,Fe=>Fe<=0?5:Fe,{markdownDescription:m.localize(454,"Scrolling speed multiplier when pressing `Alt`.")})),find:Oe(new P),fixedOverflowWidgets:Oe(new g(42,"fixedOverflowWidgets",!1)),folding:Oe(new g(43,"folding",!0,{description:m.localize(455,"Controls whether the editor has code folding enabled.")})),foldingStrategy:Oe(new f(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[m.localize(456,"Use a language-specific folding strategy if available, else the indentation-based one."),m.localize(457,"Use the indentation-based folding strategy.")],description:m.localize(458,"Controls the strategy for computing folding ranges.")})),foldingHighlight:Oe(new g(45,"foldingHighlight",!0,{description:m.localize(459,"Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Oe(new g(46,"foldingImportsByDefault",!1,{description:m.localize(460,"Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Oe(new l(47,"foldingMaximumRegions",5e3,10,65e3,{description:m.localize(461,"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Oe(new g(48,"unfoldOnClickAfterEndOfLine",!1,{description:m.localize(462,"Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Oe(new u(49,"fontFamily",e.EDITOR_FONT_DEFAULTS.fontFamily,{description:m.localize(463,"Controls the font family.")})),fontInfo:Oe(new F),fontLigatures2:Oe(new N),fontSize:Oe(new x),fontWeight:Oe(new W),fontVariations:Oe(new O),formatOnPaste:Oe(new g(55,"formatOnPaste",!1,{description:m.localize(464,"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Oe(new g(56,"formatOnType",!1,{description:m.localize(465,"Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Oe(new g(57,"glyphMargin",!0,{description:m.localize(466,"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Oe(new V),hideCursorInOverviewRuler:Oe(new g(59,"hideCursorInOverviewRuler",!1,{description:m.localize(467,"Controls whether the cursor should be hidden in the overview ruler.")})),hover:Oe(new q),inDiffEditor:Oe(new g(61,"inDiffEditor",!1)),letterSpacing:Oe(new r(64,"letterSpacing",e.EDITOR_FONT_DEFAULTS.letterSpacing,Fe=>r.clamp(Fe,-5,20),{description:m.localize(468,"Controls the letter spacing in pixels.")})),lightbulb:Oe(new j),lineDecorationsWidth:Oe(new K),lineHeight:Oe(new R),lineNumbers:Oe(new de),lineNumbersMinChars:Oe(new l(69,"lineNumbersMinChars",5,1,300)),linkedEditing:Oe(new g(70,"linkedEditing",!1,{description:m.localize(469,"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Oe(new g(71,"links",!0,{description:m.localize(470,"Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Oe(new f(72,"matchBrackets","always",["always","near","never"],{description:m.localize(471,"Highlight matching brackets.")})),minimap:Oe(new J),mouseStyle:Oe(new f(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Oe(new r(75,"mouseWheelScrollSensitivity",1,Fe=>Fe===0?1:Fe,{markdownDescription:m.localize(472,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Oe(new g(76,"mouseWheelZoom",!1,{markdownDescription:I.isMacintosh?m.localize(473,"Zoom the font of the editor when using mouse wheel and holding `Cmd`."):m.localize(474,"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Oe(new g(77,"multiCursorMergeOverlapping",!0,{description:m.localize(475,"Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Oe(new h(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],ie,{markdownEnumDescriptions:[m.localize(476,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),m.localize(477,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:m.localize(478,"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Oe(new f(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[m.localize(479,"Each cursor pastes a single line of the text."),m.localize(480,"Each cursor pastes the full text.")],markdownDescription:m.localize(481,"Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Oe(new l(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:m.localize(482,"Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Oe(new f(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[m.localize(483,"Does not highlight occurrences."),m.localize(484,"Highlights occurrences only in the current file."),m.localize(485,"Experimental: Highlights occurrences across all valid open files.")],markdownDescription:m.localize(486,"Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Oe(new g(82,"overviewRulerBorder",!0,{description:m.localize(487,"Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Oe(new l(83,"overviewRulerLanes",3,0,3)),padding:Oe(new ue),pasteAs:Oe(new Ke),parameterHints:Oe(new he),peekWidgetDefaultFocus:Oe(new f(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[m.localize(488,"Focus the tree when opening peek"),m.localize(489,"Focus the editor when opening peek")],description:m.localize(490,"Controls whether to focus the inline editor or the tree in the peek widget.")})),placeholder:Oe(new ae),definitionLinkOpensInPeek:Oe(new g(89,"definitionLinkOpensInPeek",!1,{description:m.localize(491,"Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Oe(new ee),quickSuggestionsDelay:Oe(new l(91,"quickSuggestionsDelay",10,0,1073741824,{description:m.localize(492,"Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Oe(new g(92,"readOnly",!1)),readOnlyMessage:Oe(new B),renameOnType:Oe(new g(94,"renameOnType",!1,{description:m.localize(493,"Controls whether the editor auto renames on type."),markdownDeprecationMessage:m.localize(494,"Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Oe(new g(95,"renderControlCharacters",!0,{description:m.localize(495,"Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Oe(new f(96,"renderFinalNewline",I.isLinux?"dimmed":"on",["off","on","dimmed"],{description:m.localize(496,"Render last line number when the file ends with a newline.")})),renderLineHighlight:Oe(new f(97,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",m.localize(497,"Highlights both the gutter and the current line.")],description:m.localize(498,"Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Oe(new g(98,"renderLineHighlightOnlyWhenFocus",!1,{description:m.localize(499,"Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Oe(new f(99,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Oe(new f(100,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",m.localize(500,"Render whitespace characters except for single spaces between words."),m.localize(501,"Render whitespace characters only on selected text."),m.localize(502,"Render only trailing whitespace characters."),""],description:m.localize(503,"Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Oe(new l(101,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Oe(new g(102,"roundedSelection",!0,{description:m.localize(504,"Controls whether selections should have rounded corners.")})),rulers:Oe(new X),scrollbar:Oe(new Q),scrollBeyondLastColumn:Oe(new l(105,"scrollBeyondLastColumn",4,0,1073741824,{description:m.localize(505,"Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Oe(new g(106,"scrollBeyondLastLine",!0,{description:m.localize(506,"Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Oe(new g(107,"scrollPredominantAxis",!0,{description:m.localize(507,"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Oe(new g(108,"selectionClipboard",!0,{description:m.localize(508,"Controls whether the Linux primary clipboard should be supported."),included:I.isLinux})),selectionHighlight:Oe(new g(109,"selectionHighlight",!0,{description:m.localize(509,"Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Oe(new g(110,"selectOnLineNumbers",!0)),showFoldingControls:Oe(new f(111,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[m.localize(510,"Always show the folding controls."),m.localize(511,"Never show the folding controls and reduce the gutter size."),m.localize(512,"Only show the folding controls when the mouse is over the gutter.")],description:m.localize(513,"Controls when the folding controls on the gutter are shown.")})),showUnused:Oe(new g(112,"showUnused",!0,{description:m.localize(514,"Controls fading out of unused code.")})),showDeprecated:Oe(new g(141,"showDeprecated",!0,{description:m.localize(515,"Controls strikethrough deprecated variables.")})),inlayHints:Oe(new G),snippetSuggestions:Oe(new f(113,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[m.localize(516,"Show snippet suggestions on top of other suggestions."),m.localize(517,"Show snippet suggestions below other suggestions."),m.localize(518,"Show snippets suggestions with other suggestions."),m.localize(519,"Do not show snippet suggestions.")],description:m.localize(520,"Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Oe(new Le),smoothScrolling:Oe(new g(115,"smoothScrolling",!1,{description:m.localize(521,"Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Oe(new l(118,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Oe(new ye),inlineSuggest:Oe(new te),inlineEdit:Oe(new re),inlineCompletionsAccessibilityVerbose:Oe(new g(150,"inlineCompletionsAccessibilityVerbose",!1,{description:m.localize(522,"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Oe(new l(120,"suggestFontSize",0,0,1e3,{markdownDescription:m.localize(523,"Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Oe(new l(121,"suggestLineHeight",0,0,1e3,{markdownDescription:m.localize(524,"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Oe(new g(122,"suggestOnTriggerCharacters",!0,{description:m.localize(525,"Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Oe(new f(123,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[m.localize(526,"Always select the first suggestion."),m.localize(527,"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),m.localize(528,"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:m.localize(529,"Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Oe(new f(124,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[m.localize(530,"Tab complete will insert the best matching suggestion when pressing tab."),m.localize(531,"Disable tab completions."),m.localize(532,"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:m.localize(533,"Enables tab completions.")})),tabIndex:Oe(new l(125,"tabIndex",0,-1,1073741824)),unicodeHighlight:Oe(new Z),unusualLineTerminators:Oe(new f(127,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[m.localize(534,"Unusual line terminators are automatically removed."),m.localize(535,"Unusual line terminators are ignored."),m.localize(536,"Unusual line terminators prompt to be removed.")],description:m.localize(537,"Remove unusual line terminators that might cause problems.")})),useShadowDOM:Oe(new g(128,"useShadowDOM",!0)),useTabStops:Oe(new g(129,"useTabStops",!0,{description:m.localize(538,"Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:Oe(new f(130,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[m.localize(539,"Use the default line break rule."),m.localize(540,"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:m.localize(541,"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:Oe(new Ee),wordSeparators:Oe(new u(132,"wordSeparators",y.USUAL_WORD_SEPARATORS,{description:m.localize(542,"Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Oe(new f(133,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[m.localize(543,"Lines will never wrap."),m.localize(544,"Lines will wrap at the viewport width."),m.localize(545,"Lines will wrap at `#editor.wordWrapColumn#`."),m.localize(546,"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:m.localize(547,"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Oe(new u(134,"wordWrapBreakAfterCharacters"," })]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:Oe(new u(135,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:Oe(new l(136,"wordWrapColumn",80,1,1073741824,{markdownDescription:m.localize(548,"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Oe(new f(137,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Oe(new f(138,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Oe(new M),defaultColorDecorators:Oe(new g(148,"defaultColorDecorators",!1,{markdownDescription:m.localize(549,"Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Oe(new pe),tabFocusMode:Oe(new g(145,"tabFocusMode",!1,{markdownDescription:m.localize(550,"Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Oe(new H),wrappingInfo:Oe(new Ae),wrappingIndent:Oe(new Me),wrappingStrategy:Oe(new z)}}),define(ne[655],se([1,0,5,39,11,74,37,9,4,226]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursor=e.CursorPlurality=void 0;class p{constructor(i,s,g,c,l,a,r){this.top=i,this.left=s,this.paddingLeft=g,this.width=c,this.height=l,this.textContent=a,this.textContentClassName=r}}var n;(function(t){t[t.Single=0]="Single",t[t.MultiPrimary=1]="MultiPrimary",t[t.MultiSecondary=2]="MultiSecondary"})(n||(e.CursorPlurality=n={}));class o{constructor(i,s){this._context=i;const g=this._context.configuration.options,c=g.get(50);this._cursorStyle=g.get(28),this._lineHeight=g.get(67),this._typicalHalfwidthCharacterWidth=c.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(g.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,k.createFastDomNode)(document.createElement("div")),this._domNode.setClassName(`cursor ${b.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),(0,E.applyFontInfo)(this._domNode,c),this._domNode.setDisplay("none"),this._position=new m.Position(1,1),this._pluralityClass="",this.setPlurality(s),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(i){switch(i){default:case n.Single:this._pluralityClass="";break;case n.MultiPrimary:this._pluralityClass="cursor-primary";break;case n.MultiSecondary:this._pluralityClass="cursor-secondary";break}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(i){const s=this._context.configuration.options,g=s.get(50);return this._cursorStyle=s.get(28),this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=g.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(s.get(31),this._typicalHalfwidthCharacterWidth),(0,E.applyFontInfo)(this._domNode,g),!0}onCursorPositionChanged(i,s){return s?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=i,!0}_getGraphemeAwarePosition(){const{lineNumber:i,column:s}=this._position,g=this._context.viewModel.getLineContent(i),[c,l]=I.getCharContainingOffset(g,s-1);return[new m.Position(i,c+1),g.substring(c,l)]}_prepareRender(i){let s="",g="";const[c,l]=this._getGraphemeAwarePosition();if(this._cursorStyle===y.TextEditorCursorStyle.Line||this._cursorStyle===y.TextEditorCursorStyle.LineThin){const v=i.visibleRangeForPosition(c);if(!v||v.outsideRenderedLine)return null;const w=d.getWindow(this._domNode.domNode);let S;this._cursorStyle===y.TextEditorCursorStyle.Line?(S=d.computeScreenAwareSize(w,this._lineCursorWidth>0?this._lineCursorWidth:2),S>2&&(s=l,g=this._getTokenClassName(c))):S=d.computeScreenAwareSize(w,1);let L=v.left,D=0;S>=2&&L>=1&&(D=1,L-=D);const T=i.getVerticalOffsetForLineNumber(c.lineNumber)-i.bigNumbersDelta;return new p(T,L,D,S,this._lineHeight,s,g)}const a=i.linesVisibleRangesForRange(new _.Range(c.lineNumber,c.column,c.lineNumber,c.column+l.length),!1);if(!a||a.length===0)return null;const r=a[0];if(r.outsideRenderedLine||r.ranges.length===0)return null;const u=r.ranges[0],C=l===" "?this._typicalHalfwidthCharacterWidth:u.width<1?this._typicalHalfwidthCharacterWidth:u.width;this._cursorStyle===y.TextEditorCursorStyle.Block&&(s=l,g=this._getTokenClassName(c));let f=i.getVerticalOffsetForLineNumber(c.lineNumber)-i.bigNumbersDelta,h=this._lineHeight;return(this._cursorStyle===y.TextEditorCursorStyle.Underline||this._cursorStyle===y.TextEditorCursorStyle.UnderlineThin)&&(f+=this._lineHeight-2,h=2),new p(f,u.left,0,C,h,s,g)}_getTokenClassName(i){const s=this._context.viewModel.getViewLineData(i.lineNumber),g=s.tokens.findTokenIndexAtOffset(i.column-1);return s.tokens.getClassName(g)}prepareRender(i){this._renderData=this._prepareRender(i)}render(i){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${b.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}e.ViewCursor=o}),define(ne[261],se([1,0,16,37,165]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FontInfo=e.SERIALIZED_FONT_INFO_VERSION=e.BareFontInfo=void 0;const E=d.isMacintosh?1.5:1.35,y=8;class m{static createFromValidatedSettings(p,n,o){const t=p.get(49),i=p.get(53),s=p.get(52),g=p.get(51),c=p.get(54),l=p.get(67),a=p.get(64);return m._create(t,i,s,g,c,l,a,n,o)}static _create(p,n,o,t,i,s,g,c,l){s===0?s=E*o:s{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(o)},5e3))}_evictUntrustedReadings(o){const t=this._ensureCache(o),i=t.getValues();let s=!1;for(const g of i)g.isTrusted||(s=!0,t.remove(g));s&&this._onDidChange.fire()}readFontInfo(o,t){const i=this._ensureCache(o);if(!i.has(t)){let s=this._actualReadFontInfo(o,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new _.FontInfo({pixelRatio:k.PixelRatio.getInstance(o).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(o,t,s)}return i.get(t)}_createRequest(o,t,i,s){const g=new y.CharWidthRequest(o,t);return i.push(g),s?.push(g),g}_actualReadFontInfo(o,t){const i=[],s=[],g=this._createRequest("n",0,i,s),c=this._createRequest("\uFF4D",0,i,null),l=this._createRequest(" ",0,i,s),a=this._createRequest("0",0,i,s),r=this._createRequest("1",0,i,s),u=this._createRequest("2",0,i,s),C=this._createRequest("3",0,i,s),f=this._createRequest("4",0,i,s),h=this._createRequest("5",0,i,s),v=this._createRequest("6",0,i,s),w=this._createRequest("7",0,i,s),S=this._createRequest("8",0,i,s),L=this._createRequest("9",0,i,s),D=this._createRequest("\u2192",0,i,s),T=this._createRequest("\uFFEB",0,i,null),M=this._createRequest("\xB7",0,i,s),A=this._createRequest("\u2E31",0,i,null),P="|/-_ilm%";for(let W=0,V=P.length;W.001){O=!1;break}}let x=!0;return O&&T.width!==F&&(x=!1),T.width>D.width&&(x=!1),new _.FontInfo({pixelRatio:k.PixelRatio.getInstance(o).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:O,typicalHalfwidthCharacterWidth:g.width,typicalFullwidthCharacterWidth:c.width,canUseHalfwidthRightwardsArrow:x,spaceWidth:l.width,middotWidth:M.width,wsmiddotWidth:A.width,maxDigitWidth:N},!0)}}e.FontMeasurementsImpl=b;class p{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(o){const t=o.getId();return!!this._values[t]}get(o){const t=o.getId();return this._values[t]}put(o,t){const i=o.getId();this._keys[i]=o,this._values[i]=t}remove(o){const t=o.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(o=>this._values[o])}}e.FontMeasurements=new b}),define(ne[116],se([1,0,11,16,160]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringBuilder=void 0,e.getPlatformTextDecoder=p,e.decodeUTF16LE=n;let E;function y(){return E||(E=new TextDecoder("UTF-16LE")),E}let m;function _(){return m||(m=new TextDecoder("UTF-16BE")),m}let b;function p(){return b||(b=k.isLittleEndian()?y():_()),b}function n(i,s,g){const c=new Uint16Array(i.buffer,s,g);return g>0&&(c[0]===65279||c[0]===65534)?o(i,s,g):y().decode(c)}function o(i,s,g){const c=[];let l=0;for(let a=0;a=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=s;return}for(let c=0;cg});class p{static create(c){return new p(new WeakRef(c))}constructor(c){this.targetWindow=c}createLineBreaksComputer(c,l,a,r,u){const C=[],f=[];return{addRequest:(h,v,w)=>{C.push(h),f.push(v)},finalize:()=>n((0,I.assertIsDefined)(this.targetWindow.deref()),C,c,l,a,r,u,f)}}}e.DOMLineBreaksComputerFactory=p;function n(g,c,l,a,r,u,C,f){function h(H){const z=f[H];if(z){const U=_.LineInjectedText.applyInjectedText(c[H],z),j=z.map(G=>G.options),Y=z.map(G=>G.column-1);return new m.ModelLineProjectionData(Y,j,[U.length],[],0)}else return null}if(r===-1){const H=[];for(let z=0,U=c.length;zv?(U=0,j=0):Y=v-R}const G=z.substr(U),K=o(G,j,a,Y,T,L);M[H]=U,A[H]=j,P[H]=G,N[H]=K[0],O[H]=K[1]}const F=T.build(),x=b?.createHTML(F)??F;D.innerHTML=x,D.style.position="absolute",D.style.top="10000",C==="keepAll"?(D.style.wordBreak="keep-all",D.style.overflowWrap="anywhere"):(D.style.wordBreak="inherit",D.style.overflowWrap="break-word"),g.document.body.appendChild(D);const W=document.createRange(),V=Array.prototype.slice.call(D.children,0),q=[];for(let H=0;Hue.options),J=ie.map(ue=>ue.column-1)):(R=null,J=null),q[H]=new m.ModelLineProjectionData(J,R,U,K,Y)}return D.remove(),q}function o(g,c,l,a,r,u){if(u!==0){const L=String(u);r.appendString('
    ');const C=g.length;let f=c,h=0;const v=[],w=[];let S=0");for(let L=0;L"),v[L]=h,w[L]=f;const D=S;S=L+1"),v[g.length]=h,w[g.length]=f,r.appendString("
    "),[v,w]}function t(g,c,l,a){if(l.length<=1)return null;const r=Array.prototype.slice.call(c.children,0),u=[];try{i(g,r,a,0,null,l.length-1,null,u)}catch(C){return console.log(C),null}return u.length===0?null:(u.push(l.length),u)}function i(g,c,l,a,r,u,C,f){if(a===u||(r=r||s(g,c,l[a],l[a+1]),C=C||s(g,c,l[u],l[u+1]),Math.abs(r[0].top-C[0].top)<=.1))return;if(a+1===u){f.push(u);return}const h=a+(u-a)/2|0,v=s(g,c,l[h],l[h+1]);i(g,c,l,a,r,h,v,f),i(g,c,l,h,v,u,C,f)}function s(g,c,l,a){return g.setStart(c[l/16384|0].firstChild,l%16384),g.setEnd(c[a/16384|0].firstChild,a%16384),g.getClientRects()}}),define(ne[262],se([1,0,39,103,8,116]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleLinesCollection=e.RenderedLinesCollection=void 0;class y{constructor(p){this._lineFactory=p,this._set(1,[])}flush(){this._set(1,[])}_set(p,n){this._lines=n,this._rendLineNumberStart=p}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(p){const n=p-this._rendLineNumberStart;if(n<0||n>=this._lines.length)throw new I.BugIndicatingError("Illegal value for lineNumber");return this._lines[n]}onLinesDeleted(p,n){if(this.getCount()===0)return null;const o=this.getStartLineNumber(),t=this.getEndLineNumber();if(nt)return null;let i=0,s=0;for(let c=o;c<=t;c++){const l=c-this._rendLineNumberStart;p<=c&&c<=n&&(s===0?(i=l,s=1):s++)}if(p=t&&g<=i&&(this._lines[g-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(p,n){if(this.getCount()===0)return null;const o=n-p+1,t=this.getStartLineNumber(),i=this.getEndLineNumber();if(p<=t)return this._rendLineNumberStart+=o,null;if(p>i)return null;if(o+p>i)return this._lines.splice(p-this._rendLineNumberStart,i-p+1);const s=[];for(let r=0;ro)continue;const c=Math.max(n,g.fromLineNumber),l=Math.min(o,g.toLineNumber);for(let a=c;a<=l;a++){const r=a-this._rendLineNumberStart;this._lines[r].onTokensChanged(),t=!0}}return t}}e.RenderedLinesCollection=y;class m{constructor(p){this._lineFactory=p,this.domNode=this._createDomNode(),this._linesCollection=new y(this._lineFactory)}_createDomNode(){const p=(0,d.createFastDomNode)(document.createElement("div"));return p.setClassName("view-layer"),p.setPosition("absolute"),p.domNode.setAttribute("role","presentation"),p.domNode.setAttribute("aria-hidden","true"),p}onConfigurationChanged(p){return!!p.hasChanged(146)}onFlushed(p){return this._linesCollection.flush(),!0}onLinesChanged(p){return this._linesCollection.onLinesChanged(p.fromLineNumber,p.count)}onLinesDeleted(p){const n=this._linesCollection.onLinesDeleted(p.fromLineNumber,p.toLineNumber);if(n)for(let o=0,t=n.length;op})}constructor(p,n,o){this._domNode=p,this._lineFactory=n,this._viewportData=o}render(p,n,o,t){const i={rendLineNumberStart:p.rendLineNumberStart,lines:p.lines.slice(0),linesLength:p.linesLength};if(i.rendLineNumberStart+i.linesLength-1n){const s=n,g=Math.min(o,i.rendLineNumberStart-1);s<=g&&(this._insertLinesBefore(i,s,g,t,n),i.linesLength+=g-s+1)}else if(i.rendLineNumberStart0&&(this._removeLinesBefore(i,s),i.linesLength-=s)}if(i.rendLineNumberStart=n,i.rendLineNumberStart+i.linesLength-1o){const s=Math.max(0,o-i.rendLineNumberStart+1),c=i.linesLength-1-s+1;c>0&&(this._removeLinesAfter(i,c),i.linesLength-=c)}return this._finishRendering(i,!1,t),i}_renderUntouchedLines(p,n,o,t,i){const s=p.rendLineNumberStart,g=p.lines;for(let c=n;c<=o;c++){const l=s+c;g[c].layoutLine(l,t[l-i],this._viewportData.lineHeight)}}_insertLinesBefore(p,n,o,t,i){const s=[];let g=0;for(let c=n;c<=o;c++)s[g++]=this._lineFactory.createLine();p.lines=s.concat(p.lines)}_removeLinesBefore(p,n){for(let o=0;o=0;g--){const c=p.lines[g];t[g]&&(c.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(p,n,o){const t=document.createElement("div");_._ttPolicy&&(n=_._ttPolicy.createHTML(n)),t.innerHTML=n;for(let i=0;inew m(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;const t=this._context.configuration.options.get(50);(0,k.applyFontInfo)(this.domNode,t),this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let n=0,o=this._dynamicOverlays.length;nt.shouldRender());for(let t=0,i=o.length;t'),s.appendString(g),s.appendString(""),!0)}layoutLine(n,o,t){this._domNode&&(this._domNode.setTop(o),this._domNode.setHeight(t))}}e.ViewOverlayLine=m;class _ extends y{constructor(n){super(n);const t=this._context.configuration.options.get(146);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(n){const t=this._context.configuration.options.get(146);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(n)||!0}onScrollChanged(n){return super.onScrollChanged(n)||n.scrollWidthChanged}_viewOverlaysRender(n){super._viewOverlaysRender(n),this.domNode.setWidth(Math.max(n.scrollWidth,this._contentWidth))}}e.ContentViewOverlays=_;class b extends y{constructor(n){super(n);const o=this._context.configuration.options,t=o.get(146);this._contentLeft=t.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),(0,k.applyFontInfo)(this.domNode,o.get(50))}onConfigurationChanged(n){const o=this._context.configuration.options;(0,k.applyFontInfo)(this.domNode,o.get(50));const t=o.get(146);return this._contentLeft=t.contentLeft,super.onConfigurationChanged(n)||!0}onScrollChanged(n){return super.onScrollChanged(n)||n.scrollHeightChanged}_viewOverlaysRender(n){super._viewOverlaysRender(n);const o=Math.min(n.scrollHeight,1e6);this.domNode.setHeight(o),this.domNode.setWidth(this._contentLeft)}}e.MarginViewOverlays=b}),define(ne[367],se([1,0,160,116]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextChange=void 0,e.compressConsecutiveTextChanges=y;function I(_){return _.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class E{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(b,p,n,o){this.oldPosition=b,this.oldText=p,this.newPosition=n,this.newText=o}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${I(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${I(this.oldText)}")`:`(replace@${this.oldPosition} "${I(this.oldText)}" with "${I(this.newText)}")`}static _writeStringSize(b){return 4+2*b.length}static _writeString(b,p,n){const o=p.length;d.writeUInt32BE(b,o,n),n+=4;for(let t=0;tn&&(n=t)}return n}else{if(typeof E=="string")return _?E==="*"?5:E===m?10:0:0;if(E){const{language:n,pattern:o,scheme:t,hasAccessToAllModels:i,notebookType:s}=E;if(!_&&!i)return 0;s&&b&&(y=b);let g=0;if(t)if(t===y.scheme)g=10;else if(t==="*")g=5;else return 0;if(n)if(n===m)g=10;else if(n==="*")g=Math.max(g,5);else return 0;if(s)if(s===p)g=10;else if(s==="*"&&p!==void 0)g=Math.max(g,5);else return 0;if(o){let c;if(typeof o=="string"?c=o:c={...o,base:(0,k.normalize)(o.base)},c===y.fsPath||(0,d.match)(c,y.fsPath))g=10;else return 0}return g}else return 0}}}),define(ne[658],se([1,0,6,2,40,368]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureRegistry=void 0;function y(p){return typeof p=="string"?!1:Array.isArray(p)?p.every(y):!!p.exclusive}class m{constructor(n,o,t,i,s){this.uri=n,this.languageId=o,this.notebookUri=t,this.notebookType=i,this.recursive=s}equals(n){return this.notebookType===n.notebookType&&this.languageId===n.languageId&&this.uri.toString()===n.uri.toString()&&this.notebookUri?.toString()===n.notebookUri?.toString()&&this.recursive===n.recursive}}class _{constructor(n){this._notebookInfoResolver=n,this._clock=0,this._entries=[],this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event}register(n,o){let t={selector:n,provider:o,_score:-1,_time:this._clock++};return this._entries.push(t),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,k.toDisposable)(()=>{if(t){const i=this._entries.indexOf(t);i>=0&&(this._entries.splice(i,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),t=void 0)}})}has(n){return this.all(n).length>0}all(n){if(!n)return[];this._updateScores(n,!1);const o=[];for(const t of this._entries)t._score>0&&o.push(t.provider);return o}ordered(n,o=!1){const t=[];return this._orderedForEach(n,o,i=>t.push(i.provider)),t}orderedGroups(n){const o=[];let t,i;return this._orderedForEach(n,!1,s=>{t&&i===s._score?t.push(s.provider):(i=s._score,t=[s.provider],o.push(t))}),o}_orderedForEach(n,o,t){this._updateScores(n,o);for(const i of this._entries)i._score>0&&t(i)}_updateScores(n,o){const t=this._notebookInfoResolver?.(n.uri),i=t?new m(n.uri,n.getLanguageId(),t.uri,t.type,o):new m(n.uri,n.getLanguageId(),void 0,void 0,o);if(!this._lastCandidate?.equals(i)){this._lastCandidate=i;for(const s of this._entries)if(s._score=(0,E.score)(s.selector,i.uri,i.languageId,(0,I.shouldSynchronizeModel)(n),i.notebookUri,i.notebookType),y(s.selector)&&s._score>0)if(o)s._score=0;else{for(const g of this._entries)g._score=0;s._score=1e3;break}this._entries.sort(_._compareByScoreAndTime)}}static _compareByScoreAndTime(n,o){return n._scoreo._score?-1:b(n.selector)&&!b(o.selector)?1:!b(n.selector)&&b(o.selector)?-1:n._timeo._time?-1:0}}e.LanguageFeatureRegistry=_;function b(p){return typeof p=="string"?!1:Array.isArray(p)?p.some(b):!!p.isBuiltin}}),define(ne[27],se([1,0,26,22,4,585,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditTriggerKind=e.TreeSitterTokenizationRegistry=e.TokenizationRegistry=e.LazyTokenizationSupport=e.InlayHintKind=e.Command=e.NewSymbolNameTriggerKind=e.NewSymbolNameTag=e.FoldingRangeKind=e.TextEdit=e.SymbolKinds=e.symbolKindNames=e.DocumentHighlightKind=e.SignatureHelpTriggerKind=e.DocumentPasteTriggerKind=e.SelectedSuggestionInfo=e.InlineCompletionTriggerKind=e.CompletionItemKinds=e.HoverVerbosityAction=e.EncodedTokenizationResult=e.TokenizationResult=e.Token=void 0,e.isLocationLink=c,e.getAriaLabelForSymbol=l;class m{constructor(D,T,M){this.offset=D,this.type=T,this.language=M,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}e.Token=m;class _{constructor(D,T){this.tokens=D,this.endState=T,this._tokenizationResultBrand=void 0}}e.TokenizationResult=_;class b{constructor(D,T){this.tokens=D,this.endState=T,this._encodedTokenizationResultBrand=void 0}}e.EncodedTokenizationResult=b;var p;(function(L){L[L.Increase=0]="Increase",L[L.Decrease=1]="Decrease"})(p||(e.HoverVerbosityAction=p={}));var n;(function(L){const D=new Map;D.set(0,d.Codicon.symbolMethod),D.set(1,d.Codicon.symbolFunction),D.set(2,d.Codicon.symbolConstructor),D.set(3,d.Codicon.symbolField),D.set(4,d.Codicon.symbolVariable),D.set(5,d.Codicon.symbolClass),D.set(6,d.Codicon.symbolStruct),D.set(7,d.Codicon.symbolInterface),D.set(8,d.Codicon.symbolModule),D.set(9,d.Codicon.symbolProperty),D.set(10,d.Codicon.symbolEvent),D.set(11,d.Codicon.symbolOperator),D.set(12,d.Codicon.symbolUnit),D.set(13,d.Codicon.symbolValue),D.set(15,d.Codicon.symbolEnum),D.set(14,d.Codicon.symbolConstant),D.set(15,d.Codicon.symbolEnum),D.set(16,d.Codicon.symbolEnumMember),D.set(17,d.Codicon.symbolKeyword),D.set(27,d.Codicon.symbolSnippet),D.set(18,d.Codicon.symbolText),D.set(19,d.Codicon.symbolColor),D.set(20,d.Codicon.symbolFile),D.set(21,d.Codicon.symbolReference),D.set(22,d.Codicon.symbolCustomColor),D.set(23,d.Codicon.symbolFolder),D.set(24,d.Codicon.symbolTypeParameter),D.set(25,d.Codicon.account),D.set(26,d.Codicon.issues);function T(P){let N=D.get(P);return N||(console.info("No codicon found for CompletionItemKind "+P),N=d.Codicon.symbolProperty),N}L.toIcon=T;const M=new Map;M.set("method",0),M.set("function",1),M.set("constructor",2),M.set("field",3),M.set("variable",4),M.set("class",5),M.set("struct",6),M.set("interface",7),M.set("module",8),M.set("property",9),M.set("event",10),M.set("operator",11),M.set("unit",12),M.set("value",13),M.set("constant",14),M.set("enum",15),M.set("enum-member",16),M.set("enumMember",16),M.set("keyword",17),M.set("snippet",27),M.set("text",18),M.set("color",19),M.set("file",20),M.set("reference",21),M.set("customcolor",22),M.set("folder",23),M.set("type-parameter",24),M.set("typeParameter",24),M.set("account",25),M.set("issue",26);function A(P,N){let O=M.get(P);return typeof O>"u"&&!N&&(O=9),O}L.fromString=A})(n||(e.CompletionItemKinds=n={}));var o;(function(L){L[L.Automatic=0]="Automatic",L[L.Explicit=1]="Explicit"})(o||(e.InlineCompletionTriggerKind=o={}));class t{constructor(D,T,M,A){this.range=D,this.text=T,this.completionKind=M,this.isSnippetText=A}equals(D){return I.Range.lift(this.range).equalsRange(D.range)&&this.text===D.text&&this.completionKind===D.completionKind&&this.isSnippetText===D.isSnippetText}}e.SelectedSuggestionInfo=t;var i;(function(L){L[L.Automatic=0]="Automatic",L[L.PasteAs=1]="PasteAs"})(i||(e.DocumentPasteTriggerKind=i={}));var s;(function(L){L[L.Invoke=1]="Invoke",L[L.TriggerCharacter=2]="TriggerCharacter",L[L.ContentChange=3]="ContentChange"})(s||(e.SignatureHelpTriggerKind=s={}));var g;(function(L){L[L.Text=0]="Text",L[L.Read=1]="Read",L[L.Write=2]="Write"})(g||(e.DocumentHighlightKind=g={}));function c(L){return L&&k.URI.isUri(L.uri)&&I.Range.isIRange(L.range)&&(I.Range.isIRange(L.originSelectionRange)||I.Range.isIRange(L.targetSelectionRange))}e.symbolKindNames={17:(0,y.localize)(669,"array"),16:(0,y.localize)(670,"boolean"),4:(0,y.localize)(671,"class"),13:(0,y.localize)(672,"constant"),8:(0,y.localize)(673,"constructor"),9:(0,y.localize)(674,"enumeration"),21:(0,y.localize)(675,"enumeration member"),23:(0,y.localize)(676,"event"),7:(0,y.localize)(677,"field"),0:(0,y.localize)(678,"file"),11:(0,y.localize)(679,"function"),10:(0,y.localize)(680,"interface"),19:(0,y.localize)(681,"key"),5:(0,y.localize)(682,"method"),1:(0,y.localize)(683,"module"),2:(0,y.localize)(684,"namespace"),20:(0,y.localize)(685,"null"),15:(0,y.localize)(686,"number"),18:(0,y.localize)(687,"object"),24:(0,y.localize)(688,"operator"),3:(0,y.localize)(689,"package"),6:(0,y.localize)(690,"property"),14:(0,y.localize)(691,"string"),22:(0,y.localize)(692,"struct"),25:(0,y.localize)(693,"type parameter"),12:(0,y.localize)(694,"variable")};function l(L,D){return(0,y.localize)(695,"{0} ({1})",L,e.symbolKindNames[D])}var a;(function(L){const D=new Map;D.set(0,d.Codicon.symbolFile),D.set(1,d.Codicon.symbolModule),D.set(2,d.Codicon.symbolNamespace),D.set(3,d.Codicon.symbolPackage),D.set(4,d.Codicon.symbolClass),D.set(5,d.Codicon.symbolMethod),D.set(6,d.Codicon.symbolProperty),D.set(7,d.Codicon.symbolField),D.set(8,d.Codicon.symbolConstructor),D.set(9,d.Codicon.symbolEnum),D.set(10,d.Codicon.symbolInterface),D.set(11,d.Codicon.symbolFunction),D.set(12,d.Codicon.symbolVariable),D.set(13,d.Codicon.symbolConstant),D.set(14,d.Codicon.symbolString),D.set(15,d.Codicon.symbolNumber),D.set(16,d.Codicon.symbolBoolean),D.set(17,d.Codicon.symbolArray),D.set(18,d.Codicon.symbolObject),D.set(19,d.Codicon.symbolKey),D.set(20,d.Codicon.symbolNull),D.set(21,d.Codicon.symbolEnumMember),D.set(22,d.Codicon.symbolStruct),D.set(23,d.Codicon.symbolEvent),D.set(24,d.Codicon.symbolOperator),D.set(25,d.Codicon.symbolTypeParameter);function T(M){let A=D.get(M);return A||(console.info("No codicon found for SymbolKind "+M),A=d.Codicon.symbolProperty),A}L.toIcon=T})(a||(e.SymbolKinds=a={}));class r{}e.TextEdit=r;class u{static{this.Comment=new u("comment")}static{this.Imports=new u("imports")}static{this.Region=new u("region")}static fromValue(D){switch(D){case"comment":return u.Comment;case"imports":return u.Imports;case"region":return u.Region}return new u(D)}constructor(D){this.value=D}}e.FoldingRangeKind=u;var C;(function(L){L[L.AIGenerated=1]="AIGenerated"})(C||(e.NewSymbolNameTag=C={}));var f;(function(L){L[L.Invoke=0]="Invoke",L[L.Automatic=1]="Automatic"})(f||(e.NewSymbolNameTriggerKind=f={}));var h;(function(L){function D(T){return!T||typeof T!="object"?!1:typeof T.id=="string"&&typeof T.title=="string"}L.is=D})(h||(e.Command=h={}));var v;(function(L){L[L.Type=1]="Type",L[L.Parameter=2]="Parameter"})(v||(e.InlayHintKind=v={}));class w{constructor(D){this.createSupport=D,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(D=>{D&&D.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}e.LazyTokenizationSupport=w,e.TokenizationRegistry=new E.TokenizationRegistry,e.TreeSitterTokenizationRegistry=new E.TokenizationRegistry;var S;(function(L){L[L.Invoke=0]="Invoke",L[L.Automatic=1]="Automatic"})(S||(e.InlineEditTriggerKind=S={}))}),define(ne[177],se([1,0,27]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NullState=void 0,e.nullTokenize=k,e.nullTokenizeEncoded=I,e.NullState=new class{clone(){return this}equals(E){return this===E}};function k(E,y){return new d.TokenizationResult([new d.Token(0,"",E)],y)}function I(E,y){const m=new Uint32Array(2);return m[0]=0,m[1]=(E<<0|0|0|32768|2<<24)>>>0,new d.EncodedTokenizationResult(m,y===null?e.NullState:y)}}),define(ne[208],se([1,0,11,116,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketsUtils=e.RichEditBrackets=e.RichEditBracket=void 0,e.createBracketOrRegExp=g;class E{constructor(r,u,C,f,h,v){this._richEditBracketBrand=void 0,this.languageId=r,this.index=u,this.open=C,this.close=f,this.forwardRegex=h,this.reversedRegex=v,this._openSet=E._toSet(this.open),this._closeSet=E._toSet(this.close)}isOpen(r){return this._openSet.has(r)}isClose(r){return this._closeSet.has(r)}static _toSet(r){const u=new Set;for(const C of r)u.add(C);return u}}e.RichEditBracket=E;function y(a){const r=a.length;a=a.map(v=>[v[0].toLowerCase(),v[1].toLowerCase()]);const u=[];for(let v=0;v{const[S,L]=v,[D,T]=w;return S===D||S===T||L===D||L===T},f=(v,w)=>{const S=Math.min(v,w),L=Math.max(v,w);for(let D=0;D0&&h.push({open:w,close:S})}return h}class m{constructor(r,u){this._richEditBracketsBrand=void 0;const C=y(u);this.brackets=C.map((f,h)=>new E(r,h,f.open,f.close,n(f.open,f.close,C,h),o(f.open,f.close,C,h))),this.forwardRegex=t(this.brackets),this.reversedRegex=i(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const f of this.brackets){for(const h of f.open)this.textIsBracket[h]=f,this.textIsOpenBracket[h]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,h.length);for(const h of f.close)this.textIsBracket[h]=f,this.textIsOpenBracket[h]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,h.length)}}}e.RichEditBrackets=m;function _(a,r,u,C){for(let f=0,h=r.length;f=0&&C.push(w);for(const w of v.close)w.indexOf(a)>=0&&C.push(w)}}function b(a,r){return a.length-r.length}function p(a){if(a.length<=1)return a;const r=[],u=new Set;for(const C of a)u.has(C)||(r.push(C),u.add(C));return r}function n(a,r,u,C){let f=[];f=f.concat(a),f=f.concat(r);for(let h=0,v=f.length;h=0;v--)f[h++]=C.charCodeAt(v);return k.getPlatformTextDecoder().decode(f)}let r=null,u=null;return function(f){return r!==f&&(r=f,u=a(r)),u}}();class l{static _findPrevBracketInText(r,u,C,f){const h=C.match(r);if(!h)return null;const v=C.length-(h.index||0),w=h[0].length,S=f+v;return new I.Range(u,S-w+1,u,S+1)}static findPrevBracketInRange(r,u,C,f,h){const w=c(C).substring(C.length-h,C.length-f);return this._findPrevBracketInText(r,u,w,f)}static findNextBracketInText(r,u,C,f){const h=C.match(r);if(!h)return null;const v=h.index||0,w=h[0].length;if(w===0)return null;const S=f+v;return new I.Range(u,S+1,u,S+1+w)}static findNextBracketInRange(r,u,C,f,h){const v=C.substring(f,h);return this.findNextBracketInText(r,u,v,f)}}e.BracketsUtils=l}),define(ne[659],se([1,0,13,169,208]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketElectricCharacterSupport=void 0;class E{constructor(m){this._richEditBrackets=m}getElectricCharacters(){const m=[];if(this._richEditBrackets)for(const _ of this._richEditBrackets.brackets)for(const b of _.close){const p=b.charAt(b.length-1);m.push(p)}return(0,d.distinct)(m)}onElectricCharacter(m,_,b){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const p=_.findTokenIndexAtOffset(b-1);if((0,k.ignoreBracketsInToken)(_.getStandardTokenType(p)))return null;const n=this._richEditBrackets.reversedRegex,o=_.getLineContent().substring(0,b-1)+m,t=I.BracketsUtils.findPrevBracketInRange(n,1,o,0,o.length);if(!t)return null;const i=o.substring(t.startColumn-1,t.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[i])return null;const g=_.getActualLineContentBefore(t.startColumn-1);return/^\s*$/.test(g)?{matchOpenBracket:i}:null}}e.BracketElectricCharacterSupport=E}),define(ne[660],se([1,0,297,208]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClosingBracketKind=e.OpeningBracketKind=e.BracketKindBase=e.LanguageBracketsConfiguration=void 0;class I{constructor(p,n){this.languageId=p;const o=n.brackets?E(n.brackets):[],t=new d.CachedFunction(g=>{const c=new Set;return{info:new m(this,g,c),closing:c}}),i=new d.CachedFunction(g=>{const c=new Set,l=new Set;return{info:new _(this,g,c,l),opening:c,openingColorized:l}});for(const[g,c]of o){const l=t.get(g),a=i.get(c);l.closing.add(a.info),a.opening.add(l.info)}const s=n.colorizedBracketPairs?E(n.colorizedBracketPairs):o.filter(g=>!(g[0]==="<"&&g[1]===">"));for(const[g,c]of s){const l=t.get(g),a=i.get(c);l.closing.add(a.info),a.openingColorized.add(l.info),a.opening.add(l.info)}this._openingBrackets=new Map([...t.cachedValues].map(([g,c])=>[g,c.info])),this._closingBrackets=new Map([...i.cachedValues].map(([g,c])=>[g,c.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(p){return this._openingBrackets.get(p)}getClosingBracketInfo(p){return this._closingBrackets.get(p)}getBracketInfo(p){return this.getOpeningBracketInfo(p)||this.getClosingBracketInfo(p)}getBracketRegExp(p){const n=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return(0,k.createBracketOrRegExp)(n,p)}}e.LanguageBracketsConfiguration=I;function E(b){return b.filter(([p,n])=>p!==""&&n!=="")}class y{constructor(p,n){this.config=p,this.bracketText=n}get languageId(){return this.config.languageId}}e.BracketKindBase=y;class m extends y{constructor(p,n,o){super(p,n),this.openedBrackets=o,this.isOpeningBracket=!0}}e.OpeningBracketKind=m;class _ extends y{constructor(p,n,o,t){super(p,n),this.openingBrackets=o,this.openingColorizedBrackets=t,this.isOpeningBracket=!1}closes(p){return p.config!==this.config?!1:this.openingBrackets.has(p)}closesColorized(p){return p.config!==this.config?!1:this.openingColorizedBrackets.has(p)}getOpeningBrackets(){return[...this.openingBrackets]}}e.ClosingBracketKind=_}),define(ne[369],se([1,0,11,83,27,177]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.tokenizeToString=m,e.tokenizeLineToHTML=_,e._tokenizeToString=b;const y={getInitialState:()=>E.NullState,tokenizeEncoded:(p,n,o)=>(0,E.nullTokenizeEncoded)(0,o)};async function m(p,n,o){if(!o)return b(n,p.languageIdCodec,y);const t=await I.TokenizationRegistry.getOrCreate(o);return b(n,p.languageIdCodec,t||y)}function _(p,n,o,t,i,s,g){let c="
    ",l=t,a=0,r=!0;for(let u=0,C=n.getCount();u0;)g&&r?(h+=" ",r=!1):(h+=" ",r=!0),w--;break}case 60:h+="<",r=!1;break;case 62:h+=">",r=!1;break;case 38:h+="&",r=!1;break;case 0:h+="�",r=!1;break;case 65279:case 8232:case 8233:case 133:h+="\uFFFD",r=!1;break;case 13:h+="​",r=!1;break;case 32:g&&r?(h+=" ",r=!1):(h+=" ",r=!0);break;default:h+=String.fromCharCode(v),r=!1}}if(c+=`${h}`,f>i||l>=i)break}return c+="
    ",c}function b(p,n,o){let t='
    ';const i=d.splitLines(p);let s=o.getInitialState();for(let g=0,c=i.length;g0&&(t+="
    ");const a=o.tokenizeEncoded(l,!0,s);k.LineTokens.convertToEndOffset(a.tokens,l.length);const u=new k.LineTokens(a.tokens,l,n).inflate();let C=0;for(let f=0,h=u.getCount();f${d.escape(l.substring(C,w))}`,C=w}s=a.endState}return t+="
    ",t}}),define(ne[661],se([1,0,13,6,2,4,169,208,584]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTextModelPart=void 0;class b extends I.Disposable{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(s,g){super(),this.textModel=s,this.languageConfigurationService=g,this.bracketPairsTree=this._register(new I.MutableDisposable),this.onDidChangeEmitter=new k.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1}handleLanguageConfigurationServiceChange(s){(!s.languageId||this.bracketPairsTree.value?.object.didLanguageChange(s.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}handleDidChangeOptions(s){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(s){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(s){this.bracketPairsTree.value?.object.handleContentChanged(s)}handleDidChangeBackgroundTokenizationState(){this.bracketPairsTree.value?.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(s){this.bracketPairsTree.value?.object.handleDidChangeTokens(s)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const s=new I.DisposableStore;this.bracketPairsTree.value=p(s.add(new _.BracketPairsTree(this.textModel,g=>this.languageConfigurationService.getLanguageConfiguration(g))),s),s.add(this.bracketPairsTree.value.object.onDidChange(g=>this.onDidChangeEmitter.fire(g))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(s){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(s,!1)||d.CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(s){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(s,!0)||d.CallbackIterable.empty}getBracketsInRange(s,g=!1){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketsInRange(s,g)||d.CallbackIterable.empty}findMatchingBracketUp(s,g,c){const l=this.textModel.validatePosition(g),a=this.textModel.getLanguageIdAtPosition(l.lineNumber,l.column);if(this.canBuildAST){const r=this.languageConfigurationService.getLanguageConfiguration(a).bracketsNew.getClosingBracketInfo(s);if(!r)return null;const u=this.getBracketPairsInRange(E.Range.fromPositions(g,g)).findLast(C=>r.closes(C.openingBracketInfo));return u?u.openingBracketRange:null}else{const r=s.toLowerCase(),u=this.languageConfigurationService.getLanguageConfiguration(a).brackets;if(!u)return null;const C=u.textIsBracket[r];return C?t(this._findMatchingBracketUp(C,l,n(c))):null}}matchBracket(s,g){if(this.canBuildAST){const c=this.getBracketPairsInRange(E.Range.fromPositions(s,s)).filter(l=>l.closingBracketRange!==void 0&&(l.openingBracketRange.containsPosition(s)||l.closingBracketRange.containsPosition(s))).findLastMaxBy((0,d.compareBy)(l=>l.openingBracketRange.containsPosition(s)?l.openingBracketRange:l.closingBracketRange,E.Range.compareRangesUsingStarts));return c?[c.openingBracketRange,c.closingBracketRange]:null}else{const c=n(g);return this._matchBracket(this.textModel.validatePosition(s),c)}}_establishBracketSearchOffsets(s,g,c,l){const a=g.getCount(),r=g.getLanguageId(l);let u=Math.max(0,s.column-1-c.maxBracketLength);for(let f=l-1;f>=0;f--){const h=g.getEndOffset(f);if(h<=u)break;if((0,y.ignoreBracketsInToken)(g.getStandardTokenType(f))||g.getLanguageId(f)!==r){u=h;break}}let C=Math.min(g.getLineContent().length,s.column-1+c.maxBracketLength);for(let f=l+1;f=C)break;if((0,y.ignoreBracketsInToken)(g.getStandardTokenType(f))||g.getLanguageId(f)!==r){C=h;break}}return{searchStartOffset:u,searchEndOffset:C}}_matchBracket(s,g){const c=s.lineNumber,l=this.textModel.tokenization.getLineTokens(c),a=this.textModel.getLineContent(c),r=l.findTokenIndexAtOffset(s.column-1);if(r<0)return null;const u=this.languageConfigurationService.getLanguageConfiguration(l.getLanguageId(r)).brackets;if(u&&!(0,y.ignoreBracketsInToken)(l.getStandardTokenType(r))){let{searchStartOffset:C,searchEndOffset:f}=this._establishBracketSearchOffsets(s,l,u,r),h=null;for(;;){const v=m.BracketsUtils.findNextBracketInRange(u.forwardRegex,c,a,C,f);if(!v)break;if(v.startColumn<=s.column&&s.column<=v.endColumn){const w=a.substring(v.startColumn-1,v.endColumn-1).toLowerCase(),S=this._matchFoundBracket(v,u.textIsBracket[w],u.textIsOpenBracket[w],g);if(S){if(S instanceof o)return null;h=S}}C=v.endColumn-1}if(h)return h}if(r>0&&l.getStartOffset(r)===s.column-1){const C=r-1,f=this.languageConfigurationService.getLanguageConfiguration(l.getLanguageId(C)).brackets;if(f&&!(0,y.ignoreBracketsInToken)(l.getStandardTokenType(C))){const{searchStartOffset:h,searchEndOffset:v}=this._establishBracketSearchOffsets(s,l,f,C),w=m.BracketsUtils.findPrevBracketInRange(f.reversedRegex,c,a,h,v);if(w&&w.startColumn<=s.column&&s.column<=w.endColumn){const S=a.substring(w.startColumn-1,w.endColumn-1).toLowerCase(),L=this._matchFoundBracket(w,f.textIsBracket[S],f.textIsOpenBracket[S],g);if(L)return L instanceof o?null:L}}}return null}_matchFoundBracket(s,g,c,l){if(!g)return null;const a=c?this._findMatchingBracketDown(g,s.getEndPosition(),l):this._findMatchingBracketUp(g,s.getStartPosition(),l);return a?a instanceof o?a:[s,a]:null}_findMatchingBracketUp(s,g,c){const l=s.languageId,a=s.reversedRegex;let r=-1,u=0;const C=(f,h,v,w)=>{for(;;){if(c&&++u%100===0&&!c())return o.INSTANCE;const S=m.BracketsUtils.findPrevBracketInRange(a,f,h,v,w);if(!S)break;const L=h.substring(S.startColumn-1,S.endColumn-1).toLowerCase();if(s.isOpen(L)?r++:s.isClose(L)&&r--,r===0)return S;w=S.startColumn-1}return null};for(let f=g.lineNumber;f>=1;f--){const h=this.textModel.tokenization.getLineTokens(f),v=h.getCount(),w=this.textModel.getLineContent(f);let S=v-1,L=w.length,D=w.length;f===g.lineNumber&&(S=h.findTokenIndexAtOffset(g.column-1),L=g.column-1,D=g.column-1);let T=!0;for(;S>=0;S--){const M=h.getLanguageId(S)===l&&!(0,y.ignoreBracketsInToken)(h.getStandardTokenType(S));if(M)T?L=h.getStartOffset(S):(L=h.getStartOffset(S),D=h.getEndOffset(S));else if(T&&L!==D){const A=C(f,w,L,D);if(A)return A}T=M}if(T&&L!==D){const M=C(f,w,L,D);if(M)return M}}return null}_findMatchingBracketDown(s,g,c){const l=s.languageId,a=s.forwardRegex;let r=1,u=0;const C=(h,v,w,S)=>{for(;;){if(c&&++u%100===0&&!c())return o.INSTANCE;const L=m.BracketsUtils.findNextBracketInRange(a,h,v,w,S);if(!L)break;const D=v.substring(L.startColumn-1,L.endColumn-1).toLowerCase();if(s.isOpen(D)?r++:s.isClose(D)&&r--,r===0)return L;w=L.endColumn-1}return null},f=this.textModel.getLineCount();for(let h=g.lineNumber;h<=f;h++){const v=this.textModel.tokenization.getLineTokens(h),w=v.getCount(),S=this.textModel.getLineContent(h);let L=0,D=0,T=0;h===g.lineNumber&&(L=v.findTokenIndexAtOffset(g.column-1),D=g.column-1,T=g.column-1);let M=!0;for(;L=1;r--){const u=this.textModel.tokenization.getLineTokens(r),C=u.getCount(),f=this.textModel.getLineContent(r);let h=C-1,v=f.length,w=f.length;if(r===g.lineNumber){h=u.findTokenIndexAtOffset(g.column-1),v=g.column-1,w=g.column-1;const L=u.getLanguageId(h);c!==L&&(c=L,l=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew)}let S=!0;for(;h>=0;h--){const L=u.getLanguageId(h);if(c!==L){if(l&&a&&S&&v!==w){const T=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(T)return this._toFoundBracket(a,T);S=!1}c=L,l=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew}const D=!!l&&!(0,y.ignoreBracketsInToken)(u.getStandardTokenType(h));if(D)S?v=u.getStartOffset(h):(v=u.getStartOffset(h),w=u.getEndOffset(h));else if(a&&l&&S&&v!==w){const T=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(T)return this._toFoundBracket(a,T)}S=D}if(a&&l&&S&&v!==w){const L=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(L)return this._toFoundBracket(a,L)}}return null}findNextBracket(s){const g=this.textModel.validatePosition(s);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getFirstBracketAfter(g)||null;const c=this.textModel.getLineCount();let l=null,a=null,r=null;for(let u=g.lineNumber;u<=c;u++){const C=this.textModel.tokenization.getLineTokens(u),f=C.getCount(),h=this.textModel.getLineContent(u);let v=0,w=0,S=0;if(u===g.lineNumber){v=C.findTokenIndexAtOffset(g.column-1),w=g.column-1,S=g.column-1;const D=C.getLanguageId(v);l!==D&&(l=D,a=this.languageConfigurationService.getLanguageConfiguration(l).brackets,r=this.languageConfigurationService.getLanguageConfiguration(l).bracketsNew)}let L=!0;for(;vD.closingBracketRange!==void 0&&D.range.strictContainsRange(S));return L?[L.openingBracketRange,L.closingBracketRange]:null}const l=n(g),a=this.textModel.getLineCount(),r=new Map;let u=[];const C=(S,L)=>{if(!r.has(S)){const D=[];for(let T=0,M=L?L.brackets.length:0;T{for(;;){if(l&&++f%100===0&&!l())return o.INSTANCE;const A=m.BracketsUtils.findNextBracketInRange(S.forwardRegex,L,D,T,M);if(!A)break;const P=D.substring(A.startColumn-1,A.endColumn-1).toLowerCase(),N=S.textIsBracket[P];if(N&&(N.isOpen(P)?u[N.index]++:N.isClose(P)&&u[N.index]--,u[N.index]===-1))return this._matchFoundBracket(A,N,!1,l);T=A.endColumn-1}return null};let v=null,w=null;for(let S=c.lineNumber;S<=a;S++){const L=this.textModel.tokenization.getLineTokens(S),D=L.getCount(),T=this.textModel.getLineContent(S);let M=0,A=0,P=0;if(S===c.lineNumber){M=L.findTokenIndexAtOffset(c.column-1),A=c.column-1,P=c.column-1;const O=L.getLanguageId(M);v!==O&&(v=O,w=this.languageConfigurationService.getLanguageConfiguration(v).brackets,C(v,w))}let N=!0;for(;Ms?.dispose()}}function n(i){if(typeof i>"u")return()=>!0;{const s=Date.now();return()=>Date.now()-s<=i}}class o{static{this.INSTANCE=new o}constructor(){this._searchCanceledBrand=void 0}}function t(i){return i instanceof o?null:i}}),define(ne[370],se([1,0,3,8,23,22,367,160,48]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditStack=e.MultiModelEditStackElement=e.SingleModelEditStackElement=e.SingleModelEditStackData=void 0,e.isEditStackElement=i;function b(g){return g.toString()}class p{static create(c,l){const a=c.getAlternativeVersionId(),r=t(c);return new p(a,a,r,r,l,l,[])}constructor(c,l,a,r,u,C,f){this.beforeVersionId=c,this.afterVersionId=l,this.beforeEOL=a,this.afterEOL=r,this.beforeCursorState=u,this.afterCursorState=C,this.changes=f}append(c,l,a,r,u){l.length>0&&(this.changes=(0,y.compressConsecutiveTextChanges)(this.changes,l)),this.afterEOL=a,this.afterVersionId=r,this.afterCursorState=u}static _writeSelectionsSize(c){return 4+4*4*(c?c.length:0)}static _writeSelections(c,l,a){if(m.writeUInt32BE(c,l?l.length:0,a),a+=4,l)for(const r of l)m.writeUInt32BE(c,r.selectionStartLineNumber,a),a+=4,m.writeUInt32BE(c,r.selectionStartColumn,a),a+=4,m.writeUInt32BE(c,r.positionLineNumber,a),a+=4,m.writeUInt32BE(c,r.positionColumn,a),a+=4;return a}static _readSelections(c,l,a){const r=m.readUInt32BE(c,l);l+=4;for(let u=0;ul.toString()).join(", ")}matchesResource(c){return(E.URI.isUri(this.model)?this.model:this.model.uri).toString()===c.toString()}setModel(c){this.model=c}canAppend(c){return this.model===c&&this._data instanceof p}append(c,l,a,r,u){this._data instanceof p&&this._data.append(c,l,a,r,u)}close(){this._data instanceof p&&(this._data=this._data.serialize())}open(){this._data instanceof p||(this._data=p.deserialize(this._data))}undo(){if(E.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());const c=p.deserialize(this._data);this.model._applyUndo(c.changes,c.beforeEOL,c.beforeVersionId,c.beforeCursorState)}redo(){if(E.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());const c=p.deserialize(this._data);this.model._applyRedo(c.changes,c.afterEOL,c.afterVersionId,c.afterCursorState)}heapSize(){return this._data instanceof p&&(this._data=this._data.serialize()),this._data.byteLength+168}}e.SingleModelEditStackElement=n;class o{get resources(){return this._editStackElementsArr.map(c=>c.resource)}constructor(c,l,a){this.label=c,this.code=l,this.type=1,this._isOpen=!0,this._editStackElementsArr=a.slice(0),this._editStackElementsMap=new Map;for(const r of this._editStackElementsArr){const u=b(r.resource);this._editStackElementsMap.set(u,r)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(c){const l=b(c);return this._editStackElementsMap.has(l)}setModel(c){const l=b(E.URI.isUri(c)?c:c.uri);this._editStackElementsMap.has(l)&&this._editStackElementsMap.get(l).setModel(c)}canAppend(c){if(!this._isOpen)return!1;const l=b(c.uri);return this._editStackElementsMap.has(l)?this._editStackElementsMap.get(l).canAppend(c):!1}append(c,l,a,r,u){const C=b(c.uri);this._editStackElementsMap.get(C).append(c,l,a,r,u)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const c of this._editStackElementsArr)c.undo()}redo(){for(const c of this._editStackElementsArr)c.redo()}heapSize(c){const l=b(c);return this._editStackElementsMap.has(l)?this._editStackElementsMap.get(l).heapSize():0}split(){return this._editStackElementsArr}toString(){const c=[];for(const l of this._editStackElementsArr)c.push(`${(0,_.basename)(l.resource)}: ${l}`);return`{${c.join(", ")}}`}}e.MultiModelEditStackElement=o;function t(g){return g.getEOL()===` -`?0:1}function i(g){return g?g instanceof n||g instanceof o:!1}class s{constructor(c,l){this._model=c,this._undoRedoService=l}pushStackElement(){const c=this._undoRedoService.getLastElement(this._model.uri);i(c)&&c.close()}popStackElement(){const c=this._undoRedoService.getLastElement(this._model.uri);i(c)&&c.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(c,l){const a=this._undoRedoService.getLastElement(this._model.uri);if(i(a)&&a.canAppend(this._model))return a;const r=new n(d.localize(697,"Typing"),"undoredo.textBufferEdit",this._model,c);return this._undoRedoService.pushElement(r,l),r}pushEOL(c){const l=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(c),l.append(this._model,[],t(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(c,l,a,r){const u=this._getOrCreateEditStackElement(c,r),C=this._model.applyEdits(l,!0),f=s._computeCursorState(a,C),h=C.map((v,w)=>({index:w,textChange:v.textChange}));return h.sort((v,w)=>v.textChange.oldPosition===w.textChange.oldPosition?v.index-w.index:v.textChange.oldPosition-w.textChange.oldPosition),u.append(this._model,h.map(v=>v.textChange),t(this._model),this._model.getAlternativeVersionId(),f),f}static _computeCursorState(c,l){try{return c?c(l):null}catch(a){return(0,k.onUnexpectedError)(a),null}}}e.EditStack=s}),define(ne[371],se([1,0,6,11,4,40,324,145,367,2]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBuffer=void 0;class p extends b.Disposable{constructor(o,t,i,s,g,c,l){super(),this._onDidChangeContent=this._register(new d.Emitter),this._BOM=t,this._mightContainNonBasicASCII=!c,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=g,this._pieceTree=new y.PieceTreeBase(o,i,l)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(o){return this._pieceTree.createSnapshot(o?this._BOM:"")}getOffsetAt(o,t){return this._pieceTree.getOffsetAt(o,t)}getPositionAt(o){return this._pieceTree.getPositionAt(o)}getRangeAt(o,t){const i=o+t,s=this.getPositionAt(o),g=this.getPositionAt(i);return new I.Range(s.lineNumber,s.column,g.lineNumber,g.column)}getValueInRange(o,t=0){if(o.isEmpty())return"";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(o,i)}getValueLengthInRange(o,t=0){if(o.isEmpty())return 0;if(o.startLineNumber===o.endLineNumber)return o.endColumn-o.startColumn;const i=this.getOffsetAt(o.startLineNumber,o.startColumn),s=this.getOffsetAt(o.endLineNumber,o.endColumn);let g=0;const c=this._getEndOfLine(t),l=this.getEOL();if(c.length!==l.length){const a=c.length-l.length,r=o.endLineNumber-o.startLineNumber;g=a*r}return s-i+g}getCharacterCountInRange(o,t=0){if(this._mightContainNonBasicASCII){let i=0;const s=o.startLineNumber,g=o.endLineNumber;for(let c=s;c<=g;c++){const l=this.getLineContent(c),a=c===s?o.startColumn-1:0,r=c===g?o.endColumn-1:l.length;for(let u=a;uS.sortIndex-L.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=g,this._mightContainNonBasicASCII=c;const h=this._doApplyEdits(a);let v=null;if(t&&C.length>0){C.sort((w,S)=>S.lineNumber-w.lineNumber),v=[];for(let w=0,S=C.length;w0&&C[w-1].lineNumber===L)continue;const D=C[w].oldContent,T=this.getLineContent(L);T.length===0||T===D||k.firstNonWhitespaceIndex(T)!==-1||v.push(L)}}return this._onDidChangeContent.fire(),new E.ApplyEditsResult(f,h,v)}_reduceOperations(o){return o.length<1e3?o:[this._toSingleEditOperation(o)]}_toSingleEditOperation(o){let t=!1;const i=o[0].range,s=o[o.length-1].range,g=new I.Range(i.startLineNumber,i.startColumn,s.endLineNumber,s.endColumn);let c=i.startLineNumber,l=i.startColumn;const a=[];for(let h=0,v=o.length;h0&&a.push(w.text),c=S.endLineNumber,l=S.endColumn}const r=a.join(""),[u,C,f]=(0,m.countEOL)(r);return{sortIndex:0,identifier:o[0].identifier,range:g,rangeOffset:this.getOffsetAt(g.startLineNumber,g.startColumn),rangeLength:this.getValueLengthInRange(g,0),text:r,eolCount:u,firstLineLength:C,lastLineLength:f,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(o){o.sort(p._sortOpsDescending);const t=[];for(let i=0;i0){const f=a.eolCount+1;f===1?C=new I.Range(r,u,r,u+a.firstLineLength):C=new I.Range(r,u,r+f-1,a.lastLineLength+1)}else C=new I.Range(r,u,r,u);i=C.endLineNumber,s=C.endColumn,t.push(C),g=a}return t}static _sortOpsAscending(o,t){const i=I.Range.compareRangesUsingEnds(o.range,t.range);return i===0?o.sortIndex-t.sortIndex:i}static _sortOpsDescending(o,t){const i=I.Range.compareRangesUsingEnds(o.range,t.range);return i===0?t.sortIndex-o.sortIndex:-i}}e.PieceTreeTextBuffer=p}),define(ne[662],se([1,0,11,324,371]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBufferBuilder=void 0;class E{constructor(_,b,p,n,o,t,i,s,g){this._chunks=_,this._bom=b,this._cr=p,this._lf=n,this._crlf=o,this._containsRTL=t,this._containsUnusualLineTerminators=i,this._isBasicASCII=s,this._normalizeEOL=g}_getEOL(_){const b=this._cr+this._lf+this._crlf,p=this._cr+this._crlf;return b===0?_===1?` -`:`\r -`:p>b/2?`\r -`:` -`}create(_){const b=this._getEOL(_),p=this._chunks;if(this._normalizeEOL&&(b===`\r -`&&(this._cr>0||this._lf>0)||b===` -`&&(this._cr>0||this._crlf>0)))for(let o=0,t=p.length;o=55296&&b<=56319?(this._acceptChunk1(_.substr(0,_.length-1),!1),this._hasPreviousChar=!0,this._previousChar=b):(this._acceptChunk1(_,!1),this._hasPreviousChar=!1,this._previousChar=b)}_acceptChunk1(_,b){!b&&_.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+_):this._acceptChunk2(_))}_acceptChunk2(_){const b=(0,k.createLineStarts)(this._tmpLineStarts,_);this.chunks.push(new k.StringBuffer(_,b.lineStarts)),this.cr+=b.cr,this.lf+=b.lf,this.crlf+=b.crlf,b.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=d.containsRTL(_)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=d.containsUnusualLineTerminators(_)))}finish(_=!0){return this._finish(),new E(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,_)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const _=this.chunks[this.chunks.length-1];_.buffer+=String.fromCharCode(this._previousChar);const b=(0,k.createLineStartsFast)(_.buffer);_.lineStarts=b,this._previousChar===13&&this.cr++}}}e.PieceTreeTextBufferBuilder=y}),define(ne[663],se([1,0,14,8,16,54,145,55,68,177,576,330,83]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultBackgroundTokenizer=e.RangePriorityQueueImpl=e.TokenizationStateStore=e.TrackingTokenizationStateStore=e.TokenizerWithStateStoreAndTextModel=e.TokenizerWithStateStore=void 0;class t{constructor(u,C){this.tokenizationSupport=C,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new s(u)}getStartState(u){return this.store.getStartState(u,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}e.TokenizerWithStateStore=t;class i extends t{constructor(u,C,f,h){super(u,C),this._textModel=f,this._languageIdCodec=h}updateTokensUntilLine(u,C){const f=this._textModel.getLanguageId();for(;;){const h=this.getFirstInvalidLine();if(!h||h.lineNumber>C)break;const v=this._textModel.getLineContent(h.lineNumber),w=l(this._languageIdCodec,f,this.tokenizationSupport,v,!0,h.startState);u.add(h.lineNumber,w.tokens),this.store.setEndState(h.lineNumber,w.endState)}}getTokenTypeIfInsertingCharacter(u,C){const f=this.getStartState(u.lineNumber);if(!f)return 0;const h=this._textModel.getLanguageId(),v=this._textModel.getLineContent(u.lineNumber),w=v.substring(0,u.column-1)+C+v.substring(u.column-1),S=l(this._languageIdCodec,h,this.tokenizationSupport,w,!0,f),L=new o.LineTokens(S.tokens,w,this._languageIdCodec);if(L.getCount()===0)return 0;const D=L.findTokenIndexAtOffset(u.column-1);return L.getStandardTokenType(D)}tokenizeLineWithEdit(u,C,f){const h=u.lineNumber,v=u.column,w=this.getStartState(h);if(!w)return null;const S=this._textModel.getLineContent(h),L=S.substring(0,v-1)+f+S.substring(v-1+C),D=this._textModel.getLanguageIdAtPosition(h,0),T=l(this._languageIdCodec,D,this.tokenizationSupport,L,!0,w);return new o.LineTokens(T.tokens,L,this._languageIdCodec)}hasAccurateTokensForLine(u){const C=this.store.getFirstInvalidEndStateLineNumberOrMax();return u1&&S>=1;S--){const L=this._textModel.getLineFirstNonWhitespaceColumn(S);if(L!==0&&L0&&f>0&&(f--,C--),this._lineEndStates.replace(u.startLineNumber,f,C)}}e.TokenizationStateStore=g;class c{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(u){const C=this._ranges.findIndex(f=>f.contains(u));if(C!==-1){const f=this._ranges[C];f.start===u?f.endExclusive===u+1?this._ranges.splice(C,1):this._ranges[C]=new _.OffsetRange(u+1,f.endExclusive):f.endExclusive===u+1?this._ranges[C]=new _.OffsetRange(f.start,u):this._ranges.splice(C,1,new _.OffsetRange(f.start,u),new _.OffsetRange(u+1,f.endExclusive))}}addRange(u){_.OffsetRange.addRange(u,this._ranges)}addRangeAndResize(u,C){let f=0;for(;!(f>=this._ranges.length||u.start<=this._ranges[f].endExclusive);)f++;let h=f;for(;!(h>=this._ranges.length||u.endExclusiveu.toString()).join(" + ")}}e.RangePriorityQueueImpl=c;function l(r,u,C,f,h,v){let w=null;if(C)try{w=C.tokenizeEncoded(f,h,v.clone())}catch(S){(0,k.onUnexpectedError)(S)}return w||(w=(0,b.nullTokenizeEncoded)(r.encodeLanguageId(u),v)),o.LineTokens.convertToEndOffset(w.tokens,f.length),w}class a{constructor(u,C){this._tokenizerWithStateStore=u,this._backgroundTokenStore=C,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,(0,d.runWhenGlobalIdle)(u=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(u)}))}_backgroundTokenizeWithDeadline(u){const C=Date.now()+u.timeRemaining(),f=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(C)>=u)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(C.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(u){const C=this._tokenizerWithStateStore?.getFirstInvalidLine();return C?(this._tokenizerWithStateStore.updateTokensUntilLine(u,C.lineNumber),C.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(u,C){this._tokenizerWithStateStore.store.invalidateEndStateRange(new m.LineRange(u,C))}}e.DefaultBackgroundTokenizer=a}),define(ne[263],se([1,0,13,14,6,2,55]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractTokens=e.AttachedViewHandler=e.AttachedViews=void 0;class m{constructor(){this._onDidChangeVisibleRanges=new I.Emitter,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const o=new _(t=>{this._onDidChangeVisibleRanges.fire({view:o,state:t})});return this._views.add(o),o}detachView(o){this._views.delete(o),this._onDidChangeVisibleRanges.fire({view:o,state:void 0})}}e.AttachedViews=m;class _{constructor(o){this.handleStateChange=o}setVisibleLines(o,t){const i=o.map(s=>new y.LineRange(s.startLineNumber,s.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}class b extends E.Disposable{get lineRanges(){return this._lineRanges}constructor(o){super(),this._refreshTokens=o,this.runner=this._register(new k.RunOnceScheduler(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,d.equals)(this._computedLineRanges,this._lineRanges,(o,t)=>o.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(o){this._lineRanges=o.visibleLineRanges,o.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}e.AttachedViewHandler=b;class p extends E.Disposable{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(o,t,i){super(),this._languageIdCodec=o,this._textModel=t,this.getLanguageId=i,this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new I.Emitter),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new I.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event}tokenizeIfCheap(o){this.isCheapToTokenize(o)&&this.forceTokenization(o)}}e.AbstractTokens=p}),define(ne[664],se([1,0,27,83,263]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TreeSitterTokens=void 0;class E extends I.AbstractTokens{constructor(m,_,b,p){super(_,b,p),this._treeSitterService=m,this._tokenizationSupport=null,this._initialize()}_initialize(){const m=this.getLanguageId();(!this._tokenizationSupport||this._lastLanguageId!==m)&&(this._lastLanguageId=m,this._tokenizationSupport=d.TreeSitterTokenizationRegistry.get(m))}getLineTokens(m){const _=this._textModel.getLineContent(m);if(this._tokenizationSupport){const b=this._tokenizationSupport.tokenizeEncoded(m,this._textModel);if(b)return new k.LineTokens(b,_,this._languageIdCodec)}return k.LineTokens.createEmpty(_,this._languageIdCodec)}resetTokenization(m=!0){m&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]}),this._initialize()}handleDidChangeAttached(){}handleDidChangeContent(m){m.isFlush&&this.resetTokenization(!1)}forceTokenization(m){}hasAccurateTokensForLine(m){return!0}isCheapToTokenize(m){return!0}getTokenTypeIfInsertingCharacter(m,_,b){return 0}tokenizeLineWithEdit(m,_,b){return null}get hasTokens(){return this._treeSitterService.getParseResult(this._textModel)!==void 0}}e.TreeSitterTokens=E}),define(ne[372],se([1,0,18,6,72,22,9,4,23,27,238]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeyMod=void 0,e.createMonacoBaseAPI=o;class n{static{this.CtrlCmd=2048}static{this.Shift=1024}static{this.Alt=512}static{this.WinCtrl=256}static chord(i,s){return(0,I.KeyChord)(i,s)}}e.KeyMod=n;function o(){return{editor:void 0,languages:void 0,CancellationTokenSource:d.CancellationTokenSource,Emitter:k.Emitter,KeyCode:p.KeyCode,KeyMod:n,Position:y.Position,Range:m.Range,Selection:_.Selection,SelectionDirection:p.SelectionDirection,MarkerSeverity:p.MarkerSeverity,MarkerTag:p.MarkerTag,Uri:E.URI,Token:b.Token}}}),define(ne[665],se([1,0,160,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.encodeSemanticTokensDto=y;function I(_){for(let b=0,p=_.length;bthis._checkStopModelSync(),Math.round(e.STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(g)}}dispose(){for(const t in this._syncedModels)(0,k.dispose)(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(t,i=!1){for(const s of t){const g=s.toString();this._syncedModels[g]||this._beginModelSync(s,i),this._syncedModels[g]&&(this._syncedModelsLastUsedTime[g]=new Date().getTime())}}_checkStopModelSync(){const t=new Date().getTime(),i=[];for(const s in this._syncedModelsLastUsedTime)t-this._syncedModelsLastUsedTime[s]>e.STOP_SYNC_MODEL_DELTA_TIME_MS&&i.push(s);for(const s of i)this._stopModelSync(s)}_beginModelSync(t,i){const s=this._modelService.getModel(t);if(!s||!i&&s.isTooLargeForSyncing())return;const g=t.toString();this._proxy.$acceptNewModel({url:s.uri.toString(),lines:s.getLinesContent(),EOL:s.getEOL(),versionId:s.getVersionId()});const c=new k.DisposableStore;c.add(s.onDidChangeContent(l=>{this._proxy.$acceptModelChanged(g.toString(),l)})),c.add(s.onWillDispose(()=>{this._stopModelSync(g)})),c.add((0,k.toDisposable)(()=>{this._proxy.$acceptRemovedModel(g)})),this._syncedModels[g]=c}_stopModelSync(t){const i=this._syncedModels[t];delete this._syncedModels[t],delete this._syncedModelsLastUsedTime[t],(0,k.dispose)(i)}}e.WorkerTextModelSyncClient=b;class p{constructor(){this._models=Object.create(null)}getModel(t){return this._models[t]}getModels(){const t=[];return Object.keys(this._models).forEach(i=>t.push(this._models[i])),t}$acceptNewModel(t){this._models[t.url]=new n(I.URI.parse(t.url),t.lines,t.EOL,t.versionId)}$acceptModelChanged(t,i){if(!this._models[t])return;this._models[t].onEvents(i)}$acceptRemovedModel(t){this._models[t]&&delete this._models[t]}}e.WorkerTextModelSyncServer=p;class n extends _.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(t){const i=[];for(let s=0;sthis._lines.length)i=this._lines.length,s=this._lines[i-1].length+1,g=!0;else{const c=this._lines[i-1].length+1;s<1?(s=1,g=!0):s>c&&(s=c,g=!0)}return g?{lineNumber:i,column:s}:t}}e.MirrorModel=n}),define(ne[666],se([1,0,190,4,564,570,372,326,54,328,561,60,42,563,582,373]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorSimpleWorker=e.BaseEditorSimpleWorker=void 0,e.create=a;const g=!1;class c{constructor(){this._workerTextModelSyncServer=new s.WorkerTextModelSyncServer}dispose(){}_getModel(u){return this._workerTextModelSyncServer.getModel(u)}_getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(u){this._workerTextModelSyncServer.$acceptNewModel(u)}$acceptModelChanged(u,C){this._workerTextModelSyncServer.$acceptModelChanged(u,C)}$acceptRemovedModel(u){this._workerTextModelSyncServer.$acceptRemovedModel(u)}async $computeUnicodeHighlights(u,C,f){const h=this._getModel(u);return h?b.UnicodeTextModelHighlighter.computeUnicodeHighlights(h,C,f):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async $findSectionHeaders(u,C){const f=this._getModel(u);return f?(0,i.findSectionHeaders)(f,C):[]}async $computeDiff(u,C,f,h){const v=this._getModel(u),w=this._getModel(C);return!v||!w?null:l.computeDiff(v,w,f,h)}static computeDiff(u,C,f,h){const v=h==="advanced"?p.linesDiffComputers.getDefault():p.linesDiffComputers.getLegacy(),w=u.getLinesContent(),S=C.getLinesContent(),L=v.computeDiff(w,S,f),D=L.changes.length>0?!1:this._modelsAreIdentical(u,C);function T(M){return M.map(A=>[A.original.startLineNumber,A.original.endLineNumberExclusive,A.modified.startLineNumber,A.modified.endLineNumberExclusive,A.innerChanges?.map(P=>[P.originalRange.startLineNumber,P.originalRange.startColumn,P.originalRange.endLineNumber,P.originalRange.endColumn,P.modifiedRange.startLineNumber,P.modifiedRange.startColumn,P.modifiedRange.endLineNumber,P.modifiedRange.endColumn])])}return{identical:D,quitEarly:L.hitTimeout,changes:T(L.changes),moves:L.moves.map(M=>[M.lineRangeMapping.original.startLineNumber,M.lineRangeMapping.original.endLineNumberExclusive,M.lineRangeMapping.modified.startLineNumber,M.lineRangeMapping.modified.endLineNumberExclusive,T(M.changes)])}}static _modelsAreIdentical(u,C){const f=u.getLineCount(),h=C.getLineCount();if(f!==h)return!1;for(let v=1;v<=f;v++){const w=u.getLineContent(v),S=C.getLineContent(v);if(w!==S)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(u,C,f){const h=this._getModel(u);if(!h)return C;const v=[];let w;C=C.slice(0).sort((L,D)=>{if(L.range&&D.range)return k.Range.compareRangesUsingStarts(L.range,D.range);const T=L.range?0:1,M=D.range?0:1;return T-M});let S=0;for(let L=1;Ll._diffLimit){v.push({range:L,text:D});continue}const A=(0,d.stringDiff)(M,D,f),P=h.offsetAt(k.Range.lift(L).getStartPosition());for(const N of A){const O=h.positionAt(P+N.originalStart),F=h.positionAt(P+N.originalStart+N.originalLength),x={text:D.substr(N.modifiedStart,N.modifiedLength),range:{startLineNumber:O.lineNumber,startColumn:O.column,endLineNumber:F.lineNumber,endColumn:F.column}};h.getValueInRange(x.range)!==x.text&&v.push(x)}}return typeof w=="number"&&v.push({eol:w,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),v}async $computeLinks(u){const C=this._getModel(u);return C?(0,I.computeLinks)(C):null}async $computeDefaultDocumentColors(u){const C=this._getModel(u);return C?(0,t.computeDefaultDocumentColors)(C):null}static{this._suggestionsLimit=1e4}async $textualSuggest(u,C,f,h){const v=new _.StopWatch,w=new RegExp(f,h),S=new Set;e:for(const L of u){const D=this._getModel(L);if(D){for(const T of D.words(w))if(!(T===C||!isNaN(Number(T)))&&(S.add(T),S.size>l._suggestionsLimit))break e}}return{words:Array.from(S),duration:v.elapsed()}}async $computeWordRanges(u,C,f,h){const v=this._getModel(u);if(!v)return Object.create(null);const w=new RegExp(f,h),S=Object.create(null);for(let L=C.startLineNumber;Lthis._host.$fhr(S,L),w={host:(0,n.createProxyObject)(f,h),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(w,C),Promise.resolve((0,n.getAllMethodNames)(this._foreignModule))):new Promise((S,L)=>{const D=T=>{this._foreignModule=T.create(w,C),S((0,n.getAllMethodNames)(this._foreignModule))};if(!g)oe([`${u}`],D,L);else{const T=o.FileAccess.asBrowserUri(`${u}.js`).toString(!0);new Promise((M,A)=>{oe([`${T}`],M,A)}).then(D).catch(L)}})}$fmr(u,C){if(!this._foreignModule||typeof this._foreignModule[u]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+u));try{return Promise.resolve(this._foreignModule[u].apply(this._foreignModule,C))}catch(f){return Promise.reject(f)}}}e.EditorSimpleWorker=l;function a(r){return new l(m.EditorWorkerHost.getChannel(r),null)}typeof importScripts=="function"&&(globalThis.monaco=(0,y.createMonacoBaseAPI)())}),define(ne[107],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServicesNLS=e.ToggleHighContrastNLS=e.StandaloneCodeEditorNLS=e.QuickOutlineNLS=e.QuickCommandNLS=e.QuickHelpNLS=e.GoToLineNLS=e.InspectTokensNLS=void 0;var k;(function(n){n.inspectTokensAction=d.localize(698,"Developer: Inspect Tokens")})(k||(e.InspectTokensNLS=k={}));var I;(function(n){n.gotoLineActionLabel=d.localize(699,"Go to Line/Column...")})(I||(e.GoToLineNLS=I={}));var E;(function(n){n.helpQuickAccessActionLabel=d.localize(700,"Show all Quick Access Providers")})(E||(e.QuickHelpNLS=E={}));var y;(function(n){n.quickCommandActionLabel=d.localize(701,"Command Palette"),n.quickCommandHelp=d.localize(702,"Show And Run Commands")})(y||(e.QuickCommandNLS=y={}));var m;(function(n){n.quickOutlineActionLabel=d.localize(703,"Go to Symbol..."),n.quickOutlineByCategoryActionLabel=d.localize(704,"Go to Symbol by Category...")})(m||(e.QuickOutlineNLS=m={}));var _;(function(n){n.editorViewAccessibleLabel=d.localize(705,"Editor content")})(_||(e.StandaloneCodeEditorNLS=_={}));var b;(function(n){n.toggleHighContrast=d.localize(706,"Toggle High Contrast Theme")})(b||(e.ToggleHighContrastNLS=b={}));var p;(function(n){n.bulkEditServiceSummary=d.localize(707,"Made {0} edits in {1} files")})(p||(e.StandaloneServicesNLS=p={}))}),define(ne[136],se([1,0,3,11,116,150,598]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderLineOutput2=e.RenderLineOutput=e.CharacterMapping=e.DomPosition=e.RenderLineInput=e.LineRange=void 0,e.renderViewLine=o,e.renderViewLine2=i;class m{constructor(S,L){this.startOffset=S,this.endOffset=L}equals(S){return this.startOffset===S.startOffset&&this.endOffset===S.endOffset}}e.LineRange=m;class _{constructor(S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j,Y){this.useMonospaceOptimizations=S,this.canUseHalfwidthRightwardsArrow=L,this.lineContent=D,this.continuesWithWrappedLine=T,this.isBasicASCII=M,this.containsRTL=A,this.fauxIndentLength=P,this.lineTokens=N,this.lineDecorations=O.sort(E.LineDecoration.compare),this.tabSize=F,this.startVisibleColumn=x,this.spaceWidth=W,this.stopRenderingLineAfter=H,this.renderWhitespace=z==="all"?4:z==="boundary"?1:z==="selection"?2:z==="trailing"?3:0,this.renderControlCharacters=U,this.fontLigatures=j,this.selectionsOnLine=Y&&Y.sort((R,J)=>R.startOffset>>16}static getCharIndex(S){return(S&65535)>>>0}constructor(S,L){this.length=S,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(S,L,D,T){const M=(L<<16|D<<0)>>>0;this._data[S-1]=M,this._horizontalOffset[S-1]=T}getHorizontalOffset(S){return this._horizontalOffset.length===0?0:this._horizontalOffset[S-1]}charOffsetToPartData(S){return this.length===0?0:S<0?this._data[0]:S>=this.length?this._data[this.length-1]:this._data[S]}getDomPosition(S){const L=this.charOffsetToPartData(S-1),D=p.getPartIndex(L),T=p.getCharIndex(L);return new b(D,T)}getColumn(S,L){return this.partDataToCharOffset(S.partIndex,L,S.charIndex)+1}partDataToCharOffset(S,L,D){if(this.length===0)return 0;const T=(S<<16|D<<0)>>>0;let M=0,A=this.length-1;for(;M+1>>1,z=this._data[H];if(z===T)return H;z>T?A=H:M=H}if(M===A)return M;const P=this._data[M],N=this._data[A];if(P===T)return M;if(N===T)return A;const O=p.getPartIndex(P),F=p.getCharIndex(P),x=p.getPartIndex(N);let W;O!==x?W=L:W=p.getCharIndex(N);const V=D-F,q=W-D;return V<=q?M:A}}e.CharacterMapping=p;class n{constructor(S,L,D){this._renderLineOutputBrand=void 0,this.characterMapping=S,this.containsRTL=L,this.containsForeignElements=D}}e.RenderLineOutput=n;function o(w,S){if(w.lineContent.length===0){if(w.lineDecorations.length>0){S.appendString("");let L=0,D=0,T=0;for(const A of w.lineDecorations)(A.type===1||A.type===2)&&(S.appendString(''),A.type===1&&(T|=1,L++),A.type===2&&(T|=2,D++));S.appendString("");const M=new p(1,L+D);return M.setColumnInfo(1,L,0,0),new n(M,!1,T)}return S.appendString(""),new n(new p(0,0),!1,0)}return f(g(w),S)}class t{constructor(S,L,D,T){this.characterMapping=S,this.html=L,this.containsRTL=D,this.containsForeignElements=T}}e.RenderLineOutput2=t;function i(w){const S=new I.StringBuilder(1e4),L=o(w,S);return new t(L.characterMapping,S.build(),L.containsRTL,L.containsForeignElements)}class s{constructor(S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z){this.fontIsMonospace=S,this.canUseHalfwidthRightwardsArrow=L,this.lineContent=D,this.len=T,this.isOverflowing=M,this.overflowingCharCount=A,this.parts=P,this.containsForeignElements=N,this.fauxIndentLength=O,this.tabSize=F,this.startVisibleColumn=x,this.containsRTL=W,this.spaceWidth=V,this.renderSpaceCharCode=q,this.renderWhitespace=H,this.renderControlCharacters=z}}function g(w){const S=w.lineContent;let L,D,T;w.stopRenderingLineAfter!==-1&&w.stopRenderingLineAfter0){for(let P=0,N=w.lineDecorations.length;P0&&(M[A++]=new y.LinePart(D,"",0,!1));let P=D;for(let N=0,O=L.getCount();N=T){const V=S?k.containsRTL(w.substring(P,T)):!1;M[A++]=new y.LinePart(T,x,0,V);break}const W=S?k.containsRTL(w.substring(P,F)):!1;M[A++]=new y.LinePart(F,x,0,W),P=F}return M}function l(w,S,L){let D=0;const T=[];let M=0;if(L)for(let A=0,P=S.length;A=50&&(T[M++]=new y.LinePart(V+1,F,x,W),q=V+1,V=-1);q!==O&&(T[M++]=new y.LinePart(O,F,x,W))}else T[M++]=N;D=O}else for(let A=0,P=S.length;A50){const x=N.type,W=N.metadata,V=N.containsRTL,q=Math.ceil(F/50);for(let H=1;H=8234&&w<=8238||w>=8294&&w<=8297||w>=8206&&w<=8207||w===1564}function r(w,S){const L=[];let D=new y.LinePart(0,"",0,!1),T=0;for(const M of S){const A=M.endIndex;for(;TD.endIndex&&(D=new y.LinePart(T,M.type,M.metadata,M.containsRTL),L.push(D)),D=new y.LinePart(T+1,"mtkcontrol",M.metadata,!1),L.push(D))}T>D.endIndex&&(D=new y.LinePart(A,M.type,M.metadata,M.containsRTL),L.push(D))}return L}function u(w,S,L,D){const T=w.continuesWithWrappedLine,M=w.fauxIndentLength,A=w.tabSize,P=w.startVisibleColumn,N=w.useMonospaceOptimizations,O=w.selectionsOnLine,F=w.renderWhitespace===1,x=w.renderWhitespace===3,W=w.renderSpaceWidth!==w.spaceWidth,V=[];let q=0,H=0,z=D[H].type,U=D[H].containsRTL,j=D[H].endIndex;const Y=D.length;let G=!1,K=k.firstNonWhitespaceIndex(S),R;K===-1?(G=!0,K=L,R=L):R=k.lastNonWhitespaceIndex(S);let J=!1,ie=0,ue=O&&O[ie],he=P%A;for(let ae=M;ae=ue.endOffset&&(ie++,ue=O&&O[ie]);let de;if(aeR)de=!0;else if(ee===9)de=!0;else if(ee===32)if(F)if(J)de=!0;else{const ge=ae+1ae),de&&x&&(de=G||ae>R),de&&U&&ae>=K&&ae<=R&&(de=!1),J){if(!de||!N&&he>=A){if(W){const ge=q>0?V[q-1].endIndex:M;for(let X=ge+1;X<=ae;X++)V[q++]=new y.LinePart(X,"mtkw",1,!1)}else V[q++]=new y.LinePart(ae,"mtkw",1,!1);he=he%A}}else(ae===j||de&&ae>M)&&(V[q++]=new y.LinePart(ae,z,0,U),he=he%A);for(ee===9?he=A:k.isFullWidthCharacter(ee)?he+=2:he++,J=de;ae===j&&(H++,H0?S.charCodeAt(L-1):0,ee=L>1?S.charCodeAt(L-2):0;ae===32&&ee!==32&&ee!==9||(pe=!0)}else pe=!0;if(pe)if(W){const ae=q>0?V[q-1].endIndex:M;for(let ee=ae+1;ee<=L;ee++)V[q++]=new y.LinePart(ee,"mtkw",1,!1)}else V[q++]=new y.LinePart(L,"mtkw",1,!1);else V[q++]=new y.LinePart(L,z,0,U);return V}function C(w,S,L,D){D.sort(E.LineDecoration.compare);const T=E.LineDecorationsNormalizer.normalize(w,D),M=T.length;let A=0;const P=[];let N=0,O=0;for(let x=0,W=L.length;xO&&(O=j.startOffset,P[N++]=new y.LinePart(O,H,z,U)),j.endOffset+1<=q)O=j.endOffset+1,P[N++]=new y.LinePart(O,H+" "+j.className,z|j.metadata,U),A++;else{O=q,P[N++]=new y.LinePart(O,H+" "+j.className,z|j.metadata,U);break}}q>O&&(O=q,P[N++]=new y.LinePart(O,H,z,U))}const F=L[L.length-1].endIndex;if(A'):S.appendString("");for(let ue=0,he=O.length;ue=F&&(Z+=re)}}for(X&&(S.appendString(' style="width:'),S.appendString(String(q*$)),S.appendString('px"')),S.appendASCIICharCode(62);G1?S.appendCharCode(8594):S.appendCharCode(65515);for(let re=2;re<=te;re++)S.appendCharCode(160)}else Z=2,te=1,S.appendCharCode(H),S.appendCharCode(8204);R+=Z,J+=te,G>=F&&(K+=te)}}else for(S.appendASCIICharCode(62);G=F&&(K+=Z)}B?ie++:ie=0,G>=A&&!Y&&pe.isPseudoAfter()&&(Y=!0,j.setColumnInfo(G+1,ue,R,J)),S.appendString("")}return Y||j.setColumnInfo(A+1,O.length-1,R,J),P&&(S.appendString(''),S.appendString(d.localize(708,"Show more ({0})",v(N))),S.appendString("")),S.appendString(""),new n(j,V,T)}function h(w){return w.toString(16).toUpperCase().padStart(4,"0")}function v(w){return w<1024?d.localize(709,"{0} chars",w):w<1024*1024?`${(w/1024).toFixed(1)} KB`:`${(w/1024/1024).toFixed(1)} MB`}}),define(ne[667],se([1,0,103,74,37,116,150,136,95]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderOptions=e.LineSource=void 0,e.renderLines=p;const b=(0,d.createTrustedTypesPolicy)("diffEditorWidget",{createHTML:i=>i});function p(i,s,g,c){(0,k.applyFontInfo)(c,s.fontInfo);const l=g.length>0,a=new E.StringBuilder(1e4);let r=0,u=0;const C=[];for(let w=0;w');const C=s.getLineContent(),f=_.ViewLineRenderingData.isBasicASCII(C,l),h=_.ViewLineRenderingData.containsRTL(C,f,a),v=(0,m.renderViewLine)(new m.RenderLineInput(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,C,!1,f,h,0,s,g,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==I.EditorFontLigatures.OFF,null),u);return u.appendString(""),v.characterMapping.getHorizontalOffset(v.characterMapping.length)}}),define(ne[374],se([1,0,6,2,311,27]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapTokensColorTracker=void 0;class y extends k.Disposable{static{this._INSTANCE=null}static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,k.markAsSingleton)(new y)),this._INSTANCE}constructor(){super(),this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(E.TokenizationRegistry.onDidChange(_=>{_.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const _=E.TokenizationRegistry.getColorMap();if(!_){this._colors=[I.RGBA8.Empty],this._backgroundIsLight=!0;return}this._colors=[I.RGBA8.Empty];for(let p=1;p<_.length;p++){const n=_[p].rgba;this._colors[p]=new I.RGBA8(n.r,n.g,n.b,Math.round(n.a*255))}const b=_[2].getRelativeLuminance();this._backgroundIsLight=b>=.5,this._onDidChange.fire(void 0)}getColor(_){return(_<1||_>=this._colors.length)&&(_=2),this._colors[_]}backgroundIsLight(){return this._backgroundIsLight}}e.MinimapTokensColorTracker=y}),define(ne[375],se([1,0,9,4,95,37]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModelDecorations=void 0,e.isModelDecorationVisible=m,e.isModelDecorationInComment=_,e.isModelDecorationInString=b;class y{constructor(o,t,i,s,g){this.editorId=o,this.model=t,this.configuration=i,this._linesCollection=s,this._coordinatesConverter=g,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(o){const t=o.id;let i=this._decorationsCache[t];if(!i){const s=o.range,g=o.options;let c;if(g.isWholeLine){const l=this._coordinatesConverter.convertModelPositionToViewPosition(new d.Position(s.startLineNumber,1),0,!1,!0),a=this._coordinatesConverter.convertModelPositionToViewPosition(new d.Position(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);c=new k.Range(l.lineNumber,l.column,a.lineNumber,a.column)}else c=this._coordinatesConverter.convertModelRangeToViewRange(s,1);i=new I.ViewModelDecoration(c,g),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(o){return this._getDecorationsInRange(o,!0,!1).decorations}getDecorationsViewportData(o){let t=this._cachedModelDecorationsResolver!==null;return t=t&&o.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(o,!1,!1),this._cachedModelDecorationsResolverViewRange=o),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(o,t=!1,i=!1){const s=new k.Range(o,this._linesCollection.getViewLineMinColumn(o),o,this._linesCollection.getViewLineMaxColumn(o));return this._getDecorationsInRange(s,t,i).inlineDecorations[0]}_getDecorationsInRange(o,t,i){const s=this._linesCollection.getDecorationsInRange(o,this.editorId,(0,E.filterValidationDecorations)(this.configuration.options),t,i),g=o.startLineNumber,c=o.endLineNumber,l=[];let a=0;const r=[];for(let u=g;u<=c;u++)r[u-g]=[];for(let u=0,C=s.length;ut===1)}function b(n,o){return p(n,o.range,t=>t===2)}function p(n,o,t){for(let i=o.startLineNumber;i<=o.endLineNumber;i++){const s=n.tokenization.getLineTokens(i),g=i===o.startLineNumber,c=i===o.endLineNumber;let l=g?s.findTokenIndexAtOffset(o.startColumn-1):0;for(;lo.endColumn-1);){if(!t(s.getStandardTokenType(l)))return!1;l++}}return!0}}),define(ne[209],se([1,0,6,2,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClickLinkGesture=e.ClickLinkOptions=e.ClickLinkKeyboardEvent=e.ClickLinkMouseEvent=void 0;function E(n,o){return!!n[o]}class y{constructor(o,t){this.target=o.target,this.isLeftClick=o.event.leftButton,this.isMiddleClick=o.event.middleButton,this.isRightClick=o.event.rightButton,this.hasTriggerModifier=E(o.event,t.triggerModifier),this.hasSideBySideModifier=E(o.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=o.event.detail<=1}}e.ClickLinkMouseEvent=y;class m{constructor(o,t){this.keyCodeIsTriggerKey=o.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=o.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=E(o,t.triggerModifier)}}e.ClickLinkKeyboardEvent=m;class _{constructor(o,t,i,s){this.triggerKey=o,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=s}equals(o){return this.triggerKey===o.triggerKey&&this.triggerModifier===o.triggerModifier&&this.triggerSideBySideKey===o.triggerSideBySideKey&&this.triggerSideBySideModifier===o.triggerSideBySideModifier}}e.ClickLinkOptions=_;function b(n){return n==="altKey"?I.isMacintosh?new _(57,"metaKey",6,"altKey"):new _(5,"ctrlKey",6,"altKey"):I.isMacintosh?new _(6,"altKey",57,"metaKey"):new _(6,"altKey",5,"ctrlKey")}class p extends k.Disposable{constructor(o,t){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new d.Emitter),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new d.Emitter),this.onExecute=this._onExecute.event,this._onCancel=this._register(new d.Emitter),this.onCancel=this._onCancel.event,this._editor=o,this._extractLineNumberFromMouseEvent=t?.extractLineNumberFromMouseEvent??(i=>i.target.position?i.target.position.lineNumber:0),this._opts=b(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(i=>{if(i.hasChanged(78)){const s=b(this._editor.getOption(78));if(this._opts.equals(s))return;this._opts=s,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(i=>this._onEditorMouseMove(new y(i,this._opts)))),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(new y(i,this._opts)))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(new y(i,this._opts)))),this._register(this._editor.onKeyDown(i=>this._onEditorKeyDown(new m(i,this._opts)))),this._register(this._editor.onKeyUp(i=>this._onEditorKeyUp(new m(i,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(i=>this._onDidChangeCursorSelection(i))),this._register(this._editor.onDidChangeModel(i=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(i=>{(i.scrollTopChanged||i.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(o){o.selection&&o.selection.startColumn!==o.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(o){this._lastMouseMoveEvent=o,this._onMouseMoveOrRelevantKeyDown.fire([o,null])}_onEditorMouseDown(o){this._hasTriggerKeyOnMouseDown=o.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(o)}_onEditorMouseUp(o){const t=this._extractLineNumberFromMouseEvent(o);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(o)}_onEditorKeyDown(o){this._lastMouseMoveEvent&&(o.keyCodeIsTriggerKey||o.keyCodeIsSideBySideKey&&o.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,o]):o.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(o){o.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}e.ClickLinkGesture=p}),define(ne[178],se([1,0,8,6,187,2,45,48,11,4,3]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesModel=e.FileReferences=e.FilePreview=e.OneReference=void 0;class n{constructor(g,c,l,a){this.isProviderFirst=g,this.parent=c,this.link=l,this._rangeCallback=a,this.id=I.defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(g){this._range=g,this._rangeCallback(this)}get ariaMessage(){const g=this.parent.getPreview(this)?.preview(this.range);return g?(0,p.localize)(996,"{0} in {1} on line {2} at column {3}",g.value,(0,m.basename)(this.uri),this.range.startLineNumber,this.range.startColumn):(0,p.localize)(995,"in {0} on line {1} at column {2}",(0,m.basename)(this.uri),this.range.startLineNumber,this.range.startColumn)}}e.OneReference=n;class o{constructor(g){this._modelReference=g}dispose(){this._modelReference.dispose()}preview(g,c=8){const l=this._modelReference.object.textEditorModel;if(!l)return;const{startLineNumber:a,startColumn:r,endLineNumber:u,endColumn:C}=g,f=l.getWordUntilPosition({lineNumber:a,column:r-c}),h=new b.Range(a,f.startColumn,a,r),v=new b.Range(u,C,u,1073741824),w=l.getValueInRange(h).replace(/^\s+/,""),S=l.getValueInRange(g),L=l.getValueInRange(v).replace(/\s+$/,"");return{value:w+S+L,highlight:{start:w.length,end:w.length+S.length}}}}e.FilePreview=o;class t{constructor(g,c){this.parent=g,this.uri=c,this.children=[],this._previews=new y.ResourceMap}dispose(){(0,E.dispose)(this._previews.values()),this._previews.clear()}getPreview(g){return this._previews.get(g.uri)}get ariaMessage(){const g=this.children.length;return g===1?(0,p.localize)(997,"1 symbol in {0}, full path {1}",(0,m.basename)(this.uri),this.uri.fsPath):(0,p.localize)(998,"{0} symbols in {1}, full path {2}",g,(0,m.basename)(this.uri),this.uri.fsPath)}async resolve(g){if(this._previews.size!==0)return this;for(const c of this.children)if(!this._previews.has(c.uri))try{const l=await g.createModelReference(c.uri);this._previews.set(c.uri,new o(l))}catch(l){(0,d.onUnexpectedError)(l)}return this}}e.FileReferences=t;class i{constructor(g,c){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new k.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=g,this._title=c;const[l]=g;g.sort(i._compareReferences);let a;for(const r of g)if((!a||!m.extUri.isEqual(a.uri,r.uri,!0))&&(a=new t(this,r.uri),this.groups.push(a)),a.children.length===0||i._compareReferences(r,a.children[a.children.length-1])!==0){const u=new n(l===r,a,r,C=>this._onDidChangeReferenceRange.fire(C));this.references.push(u),a.children.push(u)}}dispose(){(0,E.dispose)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new i(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?(0,p.localize)(999,"No results found"):this.references.length===1?(0,p.localize)(1e3,"Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?(0,p.localize)(1001,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,p.localize)(1002,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(g,c){const{parent:l}=g;let a=l.children.indexOf(g);const r=l.children.length,u=l.parent.groups.length;return u===1||c&&a+10?(c?a=(a+1)%r:a=(a+r-1)%r,l.children[a]):(a=l.parent.groups.indexOf(l),c?(a=(a+1)%u,l.parent.groups[a].children[0]):(a=(a+u-1)%u,l.parent.groups[a].children[l.parent.groups[a].children.length-1]))}nearestReference(g,c){const l=this.references.map((a,r)=>({idx:r,prefixLen:_.commonPrefixLength(a.uri.toString(),g.toString()),offsetDist:Math.abs(a.range.startLineNumber-c.lineNumber)*100+Math.abs(a.range.startColumn-c.column)})).sort((a,r)=>a.prefixLen>r.prefixLen?-1:a.prefixLenr.offsetDist?1:0)[0];if(l)return this.references[l.idx]}referenceAt(g,c){for(const l of this.references)if(l.uri.toString()===g.toString()&&b.Range.containsPosition(l.range,c))return l}firstReference(){for(const g of this.references)if(g.isProviderFirst)return g;return this.references[0]}static _compareReferences(g,c){return m.extUri.compare(g.uri,c.uri)||b.Range.compareRangesUsingStarts(g.range,c.range)}}e.ReferencesModel=i}),define(ne[668],se([1,0,13,14]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverComputer=void 0;class I{get anchor(){return this._anchor}set anchor(y){this._anchor=y}get shouldFocus(){return this._shouldFocus}set shouldFocus(y){this._shouldFocus=y}get source(){return this._source}set source(y){this._source=y}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(y){this._insistOnKeepingHoverVisible=y}constructor(y,m){this._editor=y,this._participants=m,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(y,m){if(m.type!==1&&!m.supportsMarkerHover)return[];const _=y.getModel(),b=m.range.startLineNumber;if(b>_.getLineCount())return[];const p=_.getLineMaxColumn(b);return y.getLineDecorations(b).filter(n=>{if(n.options.isWholeLine)return!0;const o=n.range.startLineNumber===b?n.range.startColumn:1,t=n.range.endLineNumber===b?n.range.endColumn:p;if(n.options.showIfCollapsed){if(o>m.range.startColumn+1||m.range.endColumn-1>t)return!1}else if(o>m.range.startColumn||m.range.endColumn>t)return!1;return!0})}computeAsync(y){const m=this._anchor;if(!this._editor.hasModel()||!m)return k.AsyncIterableObject.EMPTY;const _=I._getLineDecorations(this._editor,m);return k.AsyncIterableObject.merge(this._participants.map(b=>b.computeAsync?b.computeAsync(m,_,y):k.AsyncIterableObject.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const y=I._getLineDecorations(this._editor,this._anchor);let m=[];for(const _ of this._participants)m=m.concat(_.computeSync(this._anchor,y));return(0,d.coalesce)(m)}}e.ContentHoverComputer=I}),define(ne[264],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DECREASE_HOVER_VERBOSITY_ACTION_LABEL=e.DECREASE_HOVER_VERBOSITY_ACTION_ID=e.INCREASE_HOVER_VERBOSITY_ACTION_LABEL=e.INCREASE_HOVER_VERBOSITY_ACTION_ID=e.GO_TO_BOTTOM_HOVER_ACTION_ID=e.GO_TO_TOP_HOVER_ACTION_ID=e.PAGE_DOWN_HOVER_ACTION_ID=e.PAGE_UP_HOVER_ACTION_ID=e.SCROLL_RIGHT_HOVER_ACTION_ID=e.SCROLL_LEFT_HOVER_ACTION_ID=e.SCROLL_DOWN_HOVER_ACTION_ID=e.SCROLL_UP_HOVER_ACTION_ID=e.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID=e.SHOW_OR_FOCUS_HOVER_ACTION_ID=void 0,e.SHOW_OR_FOCUS_HOVER_ACTION_ID="editor.action.showHover",e.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID="editor.action.showDefinitionPreviewHover",e.SCROLL_UP_HOVER_ACTION_ID="editor.action.scrollUpHover",e.SCROLL_DOWN_HOVER_ACTION_ID="editor.action.scrollDownHover",e.SCROLL_LEFT_HOVER_ACTION_ID="editor.action.scrollLeftHover",e.SCROLL_RIGHT_HOVER_ACTION_ID="editor.action.scrollRightHover",e.PAGE_UP_HOVER_ACTION_ID="editor.action.pageUpHover",e.PAGE_DOWN_HOVER_ACTION_ID="editor.action.pageDownHover",e.GO_TO_TOP_HOVER_ACTION_ID="editor.action.goToTopHover",e.GO_TO_BOTTOM_HOVER_ACTION_ID="editor.action.goToBottomHover",e.INCREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.increaseHoverVerbosityLevel",e.INCREASE_HOVER_VERBOSITY_ACTION_LABEL=d.localize(1006,"Increase Hover Verbosity Level"),e.DECREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.decreaseHoverVerbosityLevel",e.DECREASE_HOVER_VERBOSITY_ACTION_LABEL=d.localize(1007,"Decrease Hover Verbosity Level")}),define(ne[376],se([1,0,14,8,6,2]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverOperation=e.HoverResult=void 0;class y{constructor(b,p,n){this.value=b,this.isComplete=p,this.hasLoadingMessage=n}}e.HoverResult=y;class m extends E.Disposable{constructor(b,p){super(),this._editor=b,this._computer=p,this._onResult=this._register(new I.Emitter),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(b,p=!0){this._state=b,p&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=(0,d.createCancelableAsyncIterable)(b=>this._computer.computeAsync(b)),(async()=>{try{for await(const b of this._asyncIterable)b&&(this._result.push(b),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(b){(0,k.onUnexpectedError)(b)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const b=this._state===0,p=this._state===4;this._onResult.fire(new y(this._result.slice(0),b,p))}start(b){if(b===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}e.HoverOperation=m}),define(ne[210],se([1,0,5]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isMousePositionWithinElement=k;function k(I,E,y){const m=d.getDomNodePagePosition(I);return!(Em.left+m.width||ym.top+m.height)}}),define(ne[669],se([1,0,13,57,40]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverComputer=void 0;class E{get lineNumber(){return this._lineNumber}set lineNumber(m){this._lineNumber=m}get lane(){return this._laneOrLine}set lane(m){this._laneOrLine=m}constructor(m){this._editor=m,this._lineNumber=-1,this._laneOrLine=I.GlyphMarginLane.Center}computeSync(){const m=n=>({value:n}),_=this._editor.getLineDecorations(this._lineNumber),b=[],p=this._laneOrLine==="lineNo";if(!_)return b;for(const n of _){const o=n.options.glyphMargin?.position??I.GlyphMarginLane.Center;if(!p&&o!==this._laneOrLine)continue;const t=p?n.options.lineNumberHoverMessage:n.options.glyphMarginHoverMessage;!t||(0,k.isEmptyMarkdownString)(t)||b.push(...(0,d.asArray)(t).map(m))}return b}}e.MarginHoverComputer=E}),define(ne[670],se([1,0,255,2,9,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableContentWidget=void 0;const y=30,m=24;class _ extends k.Disposable{constructor(p,n=new E.Dimension(10,10)){super(),this._editor=p,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new d.ResizableHTMLElement),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=E.Dimension.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(o=>{this._resize(new E.Dimension(o.dimension.width,o.dimension.height)),o.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?I.Position.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(p){const n=this._editor.getDomNode(),o=this._editor.getScrolledVisiblePosition(p);return!n||!o?void 0:E.getDomNodePagePosition(n).top+o.top-y}_availableVerticalSpaceBelow(p){const n=this._editor.getDomNode(),o=this._editor.getScrolledVisiblePosition(p);if(!n||!o)return;const t=E.getDomNodePagePosition(n),i=E.getClientArea(n.ownerDocument.body),s=t.top+o.top+o.height;return i.height-s-m}_findPositionPreference(p,n){const o=Math.min(this._availableVerticalSpaceBelow(n)??1/0,p),t=Math.min(this._availableVerticalSpaceAbove(n)??1/0,p),i=Math.min(Math.max(t,o),p),s=Math.min(p,i);let g;return this._editor.getOption(60).above?g=s<=t?1:2:g=s<=o?2:1,g===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),g}_resize(p){this._resizableNode.layout(p.height,p.width)}}e.ResizableContentWidget=_}),define(ne[377],se([1,0,8,2,9,4,42,22]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsFragments=e.InlayHintItem=e.InlayHintAnchor=void 0,e.asCommandLink=n;class _{constructor(t,i){this.range=t,this.direction=i}}e.InlayHintAnchor=_;class b{constructor(t,i,s){this.hint=t,this.anchor=i,this.provider=s,this._isResolved=!1}with(t){const i=new b(this.hint,t.anchor,this.provider);return i._isResolved=this._isResolved,i._currentResolve=this._currentResolve,i}async resolve(t){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,t.isCancellationRequested?void 0:this.resolve(t);this._isResolved||(this._currentResolve=this._doResolve(t).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(t){try{const i=await Promise.resolve(this.provider.resolveInlayHint(this.hint,t));this.hint.tooltip=i?.tooltip??this.hint.tooltip,this.hint.label=i?.label??this.hint.label,this.hint.textEdits=i?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(i){(0,d.onUnexpectedExternalError)(i),this._isResolved=!1}}}e.InlayHintItem=b;class p{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(t,i,s,g){const c=[],l=t.ordered(i).reverse().map(a=>s.map(async r=>{try{const u=await a.provideInlayHints(i,r,g);(u?.hints.length||a.onDidChangeInlayHints)&&c.push([u??p._emptyInlayHintList,a])}catch(u){(0,d.onUnexpectedExternalError)(u)}}));if(await Promise.all(l.flat()),g.isCancellationRequested||i.isDisposed())throw new d.CancellationError;return new p(s,c,i)}constructor(t,i,s){this._disposables=new k.DisposableStore,this.ranges=t,this.provider=new Set;const g=[];for(const[c,l]of i){this._disposables.add(c),this.provider.add(l);for(const a of c.hints){const r=s.validatePosition(a.position);let u="before";const C=p._getRangeAtPosition(s,r);let f;C.getStartPosition().isBefore(r)?(f=E.Range.fromPositions(C.getStartPosition(),r),u="after"):(f=E.Range.fromPositions(r,C.getEndPosition()),u="before"),g.push(new b(a,new _(f,u),l))}}this.items=g.sort((c,l)=>I.Position.compare(c.hint.position,l.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(t,i){const s=i.lineNumber,g=t.getWordAtPosition(i);if(g)return new E.Range(s,g.startColumn,s,g.endColumn);t.tokenization.tokenizeIfCheap(s);const c=t.tokenization.getLineTokens(s),l=i.column-1,a=c.findTokenIndexAtOffset(l);let r=c.getStartOffset(a),u=c.getEndOffset(a);return u-r===1&&(r===l&&a>1?(r=c.getStartOffset(a-1),u=c.getEndOffset(a-1)):u===l&&aq.toString?q.toString():""+q).join(" -> ")}`));const V=new k.DeferredPromise;return D.set(F,V.p),(async()=>{if(!W){const q=L(F);for(const H of q){const z=await A(H);if(z&&z.items.length>0)return}}try{return r instanceof m.Position?await F.provideInlineCompletions(u,r,C,f):await F.provideInlineEdits?.(u,r,C,f)}catch(q){(0,y.onUnexpectedExternalError)(q);return}})().then(q=>V.complete(q),q=>V.error(q)),V.p}const P=await Promise.all(w.map(async F=>({provider:F,completions:await A(F)}))),N=new Map,O=[];for(const F of P){const x=F.completions;if(!x)continue;const W=new s(x,F.provider);O.push(W);for(const V of x.items){const q=g.from(V,W,v,u,h);N.set(q.hash(),q)}}return new i(Array.from(N.values()),new Set(N.keys()),O)}class i{constructor(r,u,C){this.completions=r,this.hashs=u,this.providerResults=C}has(r){return this.hashs.has(r.hash())}dispose(){for(const r of this.providerResults)r.removeRef()}}e.InlineCompletionProviderResult=i;class s{constructor(r,u){this.inlineCompletions=r,this.provider=u,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}e.InlineCompletionList=s;class g{static from(r,u,C,f,h){let v,w,S=r.range?_.Range.lift(r.range):C;if(typeof r.insertText=="string"){if(v=r.insertText,h&&r.completeBracketPairs){v=l(v,S.getStartPosition(),f,h);const L=v.length-r.insertText.length;L!==0&&(S=new _.Range(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn+L))}w=void 0}else if("snippet"in r.insertText){const L=r.insertText.snippet.length;if(h&&r.completeBracketPairs){r.insertText.snippet=l(r.insertText.snippet,S.getStartPosition(),f,h);const T=r.insertText.snippet.length-L;T!==0&&(S=new _.Range(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn+T))}const D=new o.SnippetParser().parse(r.insertText.snippet);D.children.length===1&&D.children[0]instanceof o.Text?(v=D.children[0].value,w=void 0):(v=D.toString(),w={snippet:r.insertText.snippet,range:S})}else(0,d.assertNever)(r.insertText);return new g(v,r.command,S,v,w,r.additionalTextEdits||(0,n.getReadonlyEmptyArray)(),r,u)}constructor(r,u,C,f,h,v,w,S){this.filterText=r,this.command=u,this.range=C,this.insertText=f,this.snippetInfo=h,this.additionalTextEdits=v,this.sourceInlineCompletion=w,this.source=S,r=r.replace(/\r\n|\r/g,` -`),f=r.replace(/\r\n|\r/g,` -`)}withRange(r){return new g(this.filterText,this.command,r,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}toSingleTextEdit(){return new p.SingleTextEdit(this.range,this.insertText)}}e.InlineCompletionItem=g;function c(a,r){const u=r.getWordAtPosition(a),C=r.getLineMaxColumn(a.lineNumber);return u?new _.Range(a.lineNumber,u.startColumn,a.lineNumber,C):_.Range.fromPositions(a,a.with(void 0,C))}function l(a,r,u,C){const h=u.getLineContent(r.lineNumber).substring(0,r.column-1)+a,w=u.tokenization.tokenizeLineWithEdit(r,h.length-(r.column-1),a)?.sliceAndInflate(r.column-1,h.length,0);return w?(0,b.fixBracketsInLine)(w,C):a}}),define(ne[379],se([1,0,5,102,2,21,65,112]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PlaceholderTextContribution=void 0;class _ extends I.Disposable{static{this.ID="editor.contrib.placeholderText"}constructor(n){super(),this._editor=n,this._editorObs=(0,m.observableCodeEditor)(this._editor),this._placeholderText=this._editorObs.getOption(88),this._state=(0,E.derivedOpts)({owner:this,equalsFn:k.structuralEquals},o=>{const t=this._placeholderText.read(o);if(t&&this._editorObs.valueIsEmpty.read(o))return{placeholder:t}}),this._shouldViewBeAlive=b(this,o=>this._state.read(o)?.placeholder!==void 0),this._view=(0,y.derivedWithStore)((o,t)=>{if(!this._shouldViewBeAlive.read(o))return;const i=(0,d.h)("div.editorPlaceholder");t.add((0,E.autorun)(s=>{const g=this._state.read(s),c=g?.placeholder!==void 0;i.root.style.display=c?"block":"none",i.root.innerText=g?.placeholder??""})),t.add((0,E.autorun)(s=>{const g=this._editorObs.layoutInfo.read(s);i.root.style.left=`${g.contentLeft}px`,i.root.style.width=g.contentWidth-g.verticalScrollbarWidth+"px",i.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),t.add((0,E.autorun)(s=>{i.root.style.fontFamily=this._editorObs.getOption(49).read(s),i.root.style.fontSize=this._editorObs.getOption(52).read(s)+"px",i.root.style.lineHeight=this._editorObs.getOption(67).read(s)+"px"})),t.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:(0,E.constObservable)(0),position:(0,E.constObservable)(null),domNode:i.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}}e.PlaceholderTextContribution=_;function b(p,n){return(0,E.derivedObservableWithCache)(p,(o,t)=>t===!0?!0:n(o))}}),define(ne[380],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleViewRegistry=void 0,e.AccessibleViewRegistry=new class{constructor(){this._implementations=[]}register(k){return this._implementations.push(k),{dispose:()=>{const I=this._implementations.indexOf(k);I!==-1&&this._implementations.splice(I,1)}}}getImplementations(){return this._implementations}}}),define(ne[381],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isLocalizedString=d,e.isICommandActionToggleInfo=k;function d(I){return I&&typeof I=="object"&&typeof I.original=="string"&&typeof I.value=="string"}function k(I){return I?I.condition!==void 0:!1}}),define(ne[671],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Categories=void 0,e.Categories=Object.freeze({View:(0,d.localize2)(1477,"View"),Help:(0,d.localize2)(1478,"Help"),Test:(0,d.localize2)(1479,"Test"),File:(0,d.localize2)(1480,"File"),Preferences:(0,d.localize2)(1481,"Preferences"),Developer:(0,d.localize2)(1482,"Developer")})}),define(ne[672],se([1,0,8,3]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Scanner=void 0;function I(..._){switch(_.length){case 1:return(0,k.localize)(1532,"Did you mean {0}?",_[0]);case 2:return(0,k.localize)(1533,"Did you mean {0} or {1}?",_[0],_[1]);case 3:return(0,k.localize)(1534,"Did you mean {0}, {1} or {2}?",_[0],_[1],_[2]);default:return}}const E=(0,k.localize)(1535,"Did you forget to open or close the quote?"),y=(0,k.localize)(1536,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");class m{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(b){switch(b.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return b.isTripleEq?"===":"==";case 4:return b.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return b.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return b.lexeme;case 18:return b.lexeme;case 19:return b.lexeme;case 20:return"EOF";default:throw(0,d.illegalState)(`unhandled token type: ${JSON.stringify(b)}; have you forgotten to add a case?`)}}static{this._regexFlags=new Set(["i","g","s","m","y","u"].map(b=>b.charCodeAt(0)))}static{this._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}reset(b){return this._input=b,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const p=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:p})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const p=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:p})}else this._match(126)?this._addToken(9):this._error(I("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(I("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(I("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(b){return this._isAtEnd()||this._input.charCodeAt(this._current)!==b?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(b){this._tokens.push({type:b,offset:this._start})}_error(b){const p=this._start,n=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:n};this._errors.push({offset:p,lexeme:n,additionalInfo:b}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;const b=this.stringRe.exec(this._input);if(b){this._current=this._start+b[0].length;const p=this._input.substring(this._start,this._current),n=m._keywords.get(p);n?this._addToken(n):this._tokens.push({type:17,lexeme:p,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(E);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let b=this._current,p=!1,n=!1;for(;;){if(b>=this._input.length){this._current=b,this._error(y);return}const t=this._input.charCodeAt(b);if(p)p=!1;else if(t===47&&!n){b++;break}else t===91?n=!0:t===92?p=!0:t===93&&(n=!1);b++}for(;b=this._input.length}}e.Scanner=m}),define(ne[673],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOpenSource=void 0;var d;(function(k){k[k.API=0]="API",k[k.USER=1]="USER"})(d||(e.EditorOpenSource=d={}))}),define(ne[674],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensionIdentifierSet=e.ExtensionIdentifier=void 0;class d{constructor(E){this.value=E,this._lower=E.toLowerCase()}static toKey(E){return typeof E=="string"?E.toLowerCase():E._lower}}e.ExtensionIdentifier=d;class k{constructor(E){if(this._set=new Set,E)for(const y of E)this.add(y)}add(E){this._set.add(d.toKey(E))}has(E){return this._set.has(d.toKey(E))}}e.ExtensionIdentifierSet=k}),define(ne[382],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FileKind=void 0;var d;(function(k){k[k.FILE=0]="FILE",k[k.FOLDER=1]="FOLDER",k[k.ROOT_FOLDER=2]="ROOT_FOLDER"})(d||(e.FileKind=d={}))}),define(ne[675],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.showHistoryKeybindingHint=d;function d(k){return k.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&k.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}}),define(ne[265],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SyncDescriptor=void 0;class d{constructor(I,E=[],y=!1){this.ctor=I,this.staticArguments=E,this.supportsDelayedInstantiation=y}}e.SyncDescriptor=d}),define(ne[49],se([1,0,265]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.registerSingleton=I,e.getSingletonServiceDescriptors=E;const k=[];function I(y,m,_){m instanceof d.SyncDescriptor||(m=new d.SyncDescriptor(m,[],!!_)),k.push([y,m])}function E(){return k}}),define(ne[676],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Graph=e.Node=void 0;class d{constructor(E,y){this.key=E,this.data=y,this.incoming=new Map,this.outgoing=new Map}}e.Node=d;class k{constructor(E){this._hashFn=E,this._nodes=new Map}roots(){const E=[];for(const y of this._nodes.values())y.outgoing.size===0&&E.push(y);return E}insertEdge(E,y){const m=this.lookupOrInsertNode(E),_=this.lookupOrInsertNode(y);m.outgoing.set(_.key,_),_.incoming.set(m.key,m)}removeNode(E){const y=this._hashFn(E);this._nodes.delete(y);for(const m of this._nodes.values())m.outgoing.delete(y),m.incoming.delete(y)}lookupOrInsertNode(E){const y=this._hashFn(E);let m=this._nodes.get(y);return m||(m=new d(y,E),this._nodes.set(y,m)),m}isEmpty(){return this._nodes.size===0}toString(){const E=[];for(const[y,m]of this._nodes)E.push(`${y} - (-> incoming)[${[...m.incoming.keys()].join(", ")}] - (outgoing ->)[${[...m.outgoing.keys()].join(",")}] -`);return E.join(` -`)}findCycleSlow(){for(const[E,y]of this._nodes){const m=new Set([E]),_=this._findCycle(y,m);if(_)return _}}_findCycle(E,y){for(const[m,_]of E.outgoing){if(y.has(m))return[...y,m].join(" -> ");y.add(m);const b=this._findCycle(_,y);if(b)return b;y.delete(m)}}}e.Graph=k}),define(ne[7],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IInstantiationService=e._util=void 0,e.createDecorator=I;var d;(function(E){E.serviceIds=new Map,E.DI_TARGET="$di$target",E.DI_DEPENDENCIES="$di$dependencies";function y(m){return m[E.DI_DEPENDENCIES]||[]}E.getServiceDependencies=y})(d||(e._util=d={})),e.IInstantiationService=I("instantiationService");function k(E,y,m){y[d.DI_TARGET]===y?y[d.DI_DEPENDENCIES].push({id:E,index:m}):(y[d.DI_DEPENDENCIES]=[{id:E,index:m}],y[d.DI_TARGET]=y)}function I(E){if(d.serviceIds.has(E))return d.serviceIds.get(E);const y=function(m,_,b){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");k(y,m,b)};return y.toString=()=>E,d.serviceIds.set(E,y),y}}),define(ne[152],se([1,0,7,22,19]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResourceFileEdit=e.ResourceTextEdit=e.ResourceEdit=e.IBulkEditService=void 0,e.IBulkEditService=(0,d.createDecorator)("IWorkspaceEditService");class E{constructor(b){this.metadata=b}static convert(b){return b.edits.map(p=>{if(y.is(p))return y.lift(p);if(m.is(p))return m.lift(p);throw new Error("Unsupported edit")})}}e.ResourceEdit=E;class y extends E{static is(b){return b instanceof y?!0:(0,I.isObject)(b)&&k.URI.isUri(b.resource)&&(0,I.isObject)(b.textEdit)}static lift(b){return b instanceof y?b:new y(b.resource,b.textEdit,b.versionId,b.metadata)}constructor(b,p,n=void 0,o){super(o),this.resource=b,this.textEdit=p,this.versionId=n}}e.ResourceTextEdit=y;class m extends E{static is(b){return b instanceof m?!0:(0,I.isObject)(b)&&(!!b.newResource||!!b.oldResource)}static lift(b){return b instanceof m?b:new m(b.oldResource,b.newResource,b.options,b.metadata)}constructor(b,p,n={},o){super(o),this.oldResource=b,this.newResource=p,this.options=n}}e.ResourceFileEdit=m}),define(ne[34],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ICodeEditorService=void 0,e.ICodeEditorService=(0,d.createDecorator)("codeEditorService")});var ce=this&&this.__param||function(oe,e){return function(d,k){e(d,k,oe)}};define(ne[383],se([1,0,5,114,26,57,2,21,65,30,19,112,88,55,9,4,27,3,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.HideUnchangedRegionsFeature=void 0;let r=class extends y.Disposable{static{a=this}static{this._breadcrumbsSourceFactory=(0,m.observableValue)(a,()=>({dispose(){},getBreadcrumbItems(h,v){return[]}}))}static setBreadcrumbsSourceFactory(h){this._breadcrumbsSourceFactory.set(h,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(h,v,w,S){super(),this._editors=h,this._diffModel=v,this._options=w,this._instantiationService=S,this._modifiedOutlineSource=(0,_.derivedDisposable)(this,M=>{const A=this._editors.modifiedModel.read(M),P=a._breadcrumbsSourceFactory.read(M);return!A||!P?void 0:P(A,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(M=>{if(M.reason===1)return;const A=this._diffModel.get();(0,m.transaction)(P=>{for(const N of this._editors.original.getSelections()||[])A?.ensureOriginalLineIsVisible(N.getStartPosition().lineNumber,0,P),A?.ensureOriginalLineIsVisible(N.getEndPosition().lineNumber,0,P)})})),this._register(this._editors.modified.onDidChangeCursorPosition(M=>{if(M.reason===1)return;const A=this._diffModel.get();(0,m.transaction)(P=>{for(const N of this._editors.modified.getSelections()||[])A?.ensureModifiedLineIsVisible(N.getStartPosition().lineNumber,0,P),A?.ensureModifiedLineIsVisible(N.getEndPosition().lineNumber,0,P)})}));const L=this._diffModel.map((M,A)=>{const P=M?.unchangedRegions.read(A)??[];return P.length===1&&P[0].modifiedLineNumber===1&&P[0].lineCount===this._editors.modifiedModel.read(A)?.getLineCount()?[]:P});this.viewZones=(0,m.derivedWithStore)(this,(M,A)=>{const P=this._modifiedOutlineSource.read(M);if(!P)return{origViewZones:[],modViewZones:[]};const N=[],O=[],F=this._options.renderSideBySide.read(M),x=this._options.compactMode.read(M),W=L.read(M);for(let V=0;Vq.getHiddenOriginalRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,12);N.push(z),A.add(new u(this._editors.original,z,q,!F))}{const H=(0,m.derived)(this,U=>q.getHiddenModifiedRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,12);O.push(z),A.add(new u(this._editors.modified,z,q))}}else{{const H=(0,m.derived)(this,U=>q.getHiddenOriginalRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,24);N.push(z),A.add(new C(this._editors.original,z,q,q.originalUnchangedRange,!F,P,U=>this._diffModel.get().ensureModifiedLineIsVisible(U,2,void 0),this._options))}{const H=(0,m.derived)(this,U=>q.getHiddenModifiedRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,24);O.push(z),A.add(new C(this._editors.modified,z,q,q.modifiedUnchangedRange,!1,P,U=>this._diffModel.get().ensureModifiedLineIsVisible(U,2,void 0),this._options))}}}return{origViewZones:N,modViewZones:O}});const D={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},T={description:"Fold Unchanged",glyphMarginHoverMessage:new E.MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,c.localize)(111,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+b.ThemeIcon.asClassName(I.Codicon.fold),zIndex:10001};this._register((0,o.applyObservableDecorations)(this._editors.original,(0,m.derived)(this,M=>{const A=L.read(M),P=A.map(N=>({range:N.originalUnchangedRange.toInclusiveRange(),options:D}));for(const N of A)N.shouldHideControls(M)&&P.push({range:s.Range.fromPositions(new i.Position(N.originalLineNumber,1)),options:T});return P}))),this._register((0,o.applyObservableDecorations)(this._editors.modified,(0,m.derived)(this,M=>{const A=L.read(M),P=A.map(N=>({range:N.modifiedUnchangedRange.toInclusiveRange(),options:D}));for(const N of A)N.shouldHideControls(M)&&P.push({range:t.LineRange.ofLength(N.modifiedLineNumber,1).toInclusiveRange(),options:T});return P}))),this._register((0,m.autorun)(M=>{const A=L.read(M);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(A.map(P=>P.getHiddenOriginalRange(M).toInclusiveRange()).filter(p.isDefined)),this._editors.modified.setHiddenAreas(A.map(P=>P.getHiddenModifiedRange(M).toInclusiveRange()).filter(p.isDefined))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(M=>{if(!M.event.rightButton&&M.target.position&&M.target.element?.className.includes("fold-unchanged")){const A=M.target.position.lineNumber,P=this._diffModel.get();if(!P)return;const N=P.unchangedRegions.get().find(O=>O.modifiedUnchangedRange.includes(A));if(!N)return;N.collapseAll(void 0),M.event.stopPropagation(),M.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(M=>{if(!M.event.rightButton&&M.target.position&&M.target.element?.className.includes("fold-unchanged")){const A=M.target.position.lineNumber,P=this._diffModel.get();if(!P)return;const N=P.unchangedRegions.get().find(O=>O.originalUnchangedRange.includes(A));if(!N)return;N.collapseAll(void 0),M.event.stopPropagation(),M.event.preventDefault()}}))}};e.HideUnchangedRegionsFeature=r,e.HideUnchangedRegionsFeature=r=a=ke([ce(3,l.IInstantiationService)],r);class u extends o.ViewZoneOverlayWidget{constructor(h,v,w,S=!1){const L=(0,d.h)("div.diff-hidden-lines-widget");super(h,v,L.root),this._unchangedRegion=w,this._hide=S,this._nodes=(0,d.h)("div.diff-hidden-lines-compact",[(0,d.h)("div.line-left",[]),(0,d.h)("div.text@text",[]),(0,d.h)("div.line-right",[])]),L.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register((0,m.autorun)(D=>{if(!this._hide){const T=this._unchangedRegion.getHiddenModifiedRange(D).length,M=(0,c.localize)(112,"{0} hidden lines",T);this._nodes.text.innerText=M}}))}}class C extends o.ViewZoneOverlayWidget{constructor(h,v,w,S,L,D,T,M){const A=(0,d.h)("div.diff-hidden-lines-widget");super(h,v,A.root),this._editor=h,this._unchangedRegion=w,this._unchangedRegionRange=S,this._hide=L,this._modifiedOutlineSource=D,this._revealModifiedHiddenLine=T,this._options=M,this._nodes=(0,d.h)("div.diff-hidden-lines",[(0,d.h)("div.top@top",{title:(0,c.localize)(113,"Click or drag to show more above")}),(0,d.h)("div.center@content",{style:{display:"flex"}},[(0,d.h)("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[(0,d.$)("a",{title:(0,c.localize)(114,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...(0,k.renderLabelWithIcons)("$(unfold)"))]),(0,d.h)("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),(0,d.h)("div.bottom@bottom",{title:(0,c.localize)(115,"Click or drag to show more below"),role:"button"})]),A.root.appendChild(this._nodes.root),this._hide?(0,d.reset)(this._nodes.first):this._register((0,o.applyStyle)(this._nodes.first,{width:(0,n.observableCodeEditor)(this._editor).layoutInfoContentLeft})),this._register((0,m.autorun)(N=>{const O=this._unchangedRegion.visibleLineCountTop.read(N)+this._unchangedRegion.visibleLineCountBottom.read(N)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!O),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(N)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(N)>0),this._nodes.top.classList.toggle("canMoveBottom",!O);const F=this._unchangedRegion.isDragged.read(N),x=this._editor.getDomNode();x&&(x.classList.toggle("draggingUnchangedRegion",!!F),F==="top"?(x.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(N)>0),x.classList.toggle("canMoveBottom",!O)):F==="bottom"?(x.classList.toggle("canMoveTop",!O),x.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(N)>0)):(x.classList.toggle("canMoveTop",!1),x.classList.toggle("canMoveBottom",!1)))}));const P=this._editor;this._register((0,d.addDisposableListener)(this._nodes.top,"mousedown",N=>{if(N.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),N.preventDefault();const O=N.clientY;let F=!1;const x=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const W=(0,d.getWindow)(this._nodes.top),V=(0,d.addDisposableListener)(W,"mousemove",H=>{const U=H.clientY-O;F=F||Math.abs(U)>2;const j=Math.round(U/P.getOption(67)),Y=Math.max(0,Math.min(x+j,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(Y,void 0)}),q=(0,d.addDisposableListener)(W,"mouseup",H=>{F||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),V.dispose(),q.dispose()})})),this._register((0,d.addDisposableListener)(this._nodes.bottom,"mousedown",N=>{if(N.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),N.preventDefault();const O=N.clientY;let F=!1;const x=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const W=(0,d.getWindow)(this._nodes.bottom),V=(0,d.addDisposableListener)(W,"mousemove",H=>{const U=H.clientY-O;F=F||Math.abs(U)>2;const j=Math.round(U/P.getOption(67)),Y=Math.max(0,Math.min(x-j,this._unchangedRegion.getMaxVisibleLineCountBottom())),G=this._unchangedRegionRange.endLineNumberExclusive>P.getModel().getLineCount()?P.getContentHeight():P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(Y,void 0);const K=this._unchangedRegionRange.endLineNumberExclusive>P.getModel().getLineCount()?P.getContentHeight():P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);P.setScrollTop(P.getScrollTop()+(K-G))}),q=(0,d.addDisposableListener)(W,"mouseup",H=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!F){const z=P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const U=P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);P.setScrollTop(P.getScrollTop()+(U-z))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),V.dispose(),q.dispose()})})),this._register((0,m.autorun)(N=>{const O=[];if(!this._hide){const F=w.getHiddenModifiedRange(N).length,x=(0,c.localize)(116,"{0} hidden lines",F),W=(0,d.$)("span",{title:(0,c.localize)(117,"Double click to unfold")},x);W.addEventListener("dblclick",H=>{H.button===0&&(H.preventDefault(),this._unchangedRegion.showAll(void 0))}),O.push(W);const V=this._unchangedRegion.getHiddenModifiedRange(N),q=this._modifiedOutlineSource.getBreadcrumbItems(V,N);if(q.length>0){O.push((0,d.$)("span",void 0,"\xA0\xA0|\xA0\xA0"));for(let H=0;H{this._revealModifiedHiddenLine(z.startLineNumber)}}}}(0,d.reset)(this._nodes.others,...O)}))}}}),define(ne[43],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageService=void 0,e.ILanguageService=(0,d.createDecorator)("languageService")}),define(ne[100],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorWorkerService=void 0,e.IEditorWorkerService=(0,d.createDecorator)("editorWorkerService")}),define(ne[17],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageFeaturesService=void 0,e.ILanguageFeaturesService=(0,d.createDecorator)("ILanguageFeaturesService")}),define(ne[677],se([1,0,658,17,49]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeaturesService=void 0;class E{constructor(){this.referenceProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.renameProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.newSymbolNamesProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.codeActionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.definitionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.typeDefinitionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.declarationProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.implementationProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentSymbolProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlayHintsProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.colorProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.codeLensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.onTypeFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.signatureHelpProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.hoverProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentHighlightProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.multiDocumentHighlightProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.selectionRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.foldingRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.linkProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlineCompletionsProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlineEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.completionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.linkedEditingRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentSemanticTokensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentDropEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentPasteEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this))}_score(m){return this._notebookTypeResolver?.(m)}}e.LanguageFeaturesService=E,(0,I.registerSingleton)(k.ILanguageFeaturesService,E,1)}),define(ne[266],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerDecorationsService=void 0,e.IMarkerDecorationsService=(0,d.createDecorator)("markerDecorationsService")}),define(ne[51],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IModelService=void 0,e.IModelService=(0,d.createDecorator)("modelService")}),define(ne[78],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextModelService=void 0,e.ITextModelService=(0,d.createDecorator)("textModelService")}),define(ne[267],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISemanticTokensStylingService=void 0,e.ISemanticTokensStylingService=(0,d.createDecorator)("semanticTokensStylingService")}),define(ne[211],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextResourcePropertiesService=e.ITextResourceConfigurationService=void 0,e.ITextResourceConfigurationService=(0,d.createDecorator)("textResourceConfigurationService"),e.ITextResourcePropertiesService=(0,d.createDecorator)("textResourcePropertiesService")}),define(ne[384],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITreeSitterParserService=void 0,e.ITreeSitterParserService=(0,d.createDecorator)("treeSitterParserService")}),define(ne[678],se([1,0,49,7,327]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITreeViewsDnDService=void 0,e.ITreeViewsDnDService=(0,k.createDecorator)("treeViewsDndService"),(0,d.registerSingleton)(e.ITreeViewsDnDService,I.TreeViewsDnDService,1)}),define(ne[385],se([1,0,33,2,17,130,100]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultDocumentColorProvider=void 0;let m=class{constructor(p){this._editorWorkerService=p}async provideDocumentColors(p,n){return this._editorWorkerService.computeDefaultDocumentColors(p.uri)}provideColorPresentations(p,n,o){const t=n.range,i=n.color,s=i.alpha,g=new d.Color(new d.RGBA(Math.round(255*i.red),Math.round(255*i.green),Math.round(255*i.blue),s)),c=s?d.Color.Format.CSS.formatRGB(g):d.Color.Format.CSS.formatRGBA(g),l=s?d.Color.Format.CSS.formatHSL(g):d.Color.Format.CSS.formatHSLA(g),a=s?d.Color.Format.CSS.formatHex(g):d.Color.Format.CSS.formatHexA(g),r=[];return r.push({label:c,textEdit:{range:t,text:c}}),r.push({label:l,textEdit:{range:t,text:l}}),r.push({label:a,textEdit:{range:t,text:a}}),r}};e.DefaultDocumentColorProvider=m,e.DefaultDocumentColorProvider=m=ke([ce(0,y.IEditorWorkerService)],m);let _=class extends k.Disposable{constructor(p,n){super(),this._register(p.colorProvider.register("*",new m(n)))}};_=ke([ce(0,I.ILanguageFeaturesService),ce(1,y.IEditorWorkerService)],_),(0,E.registerEditorFeature)(_)}),define(ne[268],se([1,0,152,135]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createCombinedWorkspaceEdit=I,e.sortEditsByYieldTo=E;function I(y,m,_){return(typeof _.insertText=="string"?_.insertText==="":_.insertText.snippet==="")?{edits:_.additionalEdit?.edits??[]}:{edits:[...m.map(b=>new d.ResourceTextEdit(y,{range:b,text:typeof _.insertText=="string"?k.SnippetParser.escape(_.insertText)+"$0":_.insertText.snippet,insertAsSnippet:!0})),..._.additionalEdit?.edits??[]]}}function E(y){function m(o,t){return"mimeType"in o?o.mimeType===t.handledMimeType:!!t.kind&&o.kind.contains(t.kind)}const _=new Map;for(const o of y)for(const t of o.yieldTo??[])for(const i of y)if(i!==o&&m(t,i)){let s=_.get(o);s||(s=[],_.set(o,s)),s.push(i)}if(!_.size)return Array.from(y);const b=new Set,p=[];function n(o){if(!o.length)return[];const t=o[0];if(p.includes(t))return console.warn("Yield to cycle detected",t),o;if(b.has(t))return n(o.slice(1));let i=[];const s=_.get(t);return s&&(p.push(t),i=n(s),p.pop()),b.add(t),[...i,t,...n(o.slice(1))]}return n(Array.from(y))}}),define(ne[679],se([1,0,103,6,2,21,11,74,37,9,4,116,43,40,83,150,136,204,205,517]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ttPolicy=e.AdditionalLinesWidget=e.GhostTextView=e.GHOST_TEXT_DESCRIPTION=void 0,e.GHOST_TEXT_DESCRIPTION="ghost-text";let a=class extends I.Disposable{constructor(f,h,v){super(),this.editor=f,this.model=h,this.languageService=v,this.isDisposed=(0,E.observableValue)(this,!1),this.currentTextModel=(0,E.observableFromEvent)(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,E.derived)(this,w=>{if(this.isDisposed.read(w))return;const S=this.currentTextModel.read(w);if(S!==this.model.targetTextModel.read(w))return;const L=this.model.ghostText.read(w);if(!L)return;const D=L instanceof c.GhostTextReplacement?L.columnRange:void 0,T=[],M=[];function A(x,W){if(M.length>0){const V=M[M.length-1];W&&V.decorations.push(new s.LineDecoration(V.content.length+1,V.content.length+1+x[0].length,W,0)),V.content+=x[0],x=x.slice(1)}for(const V of x)M.push({content:V,decorations:W?[new s.LineDecoration(1,V.length+1,W,0)]:[]})}const P=S.getLineContent(L.lineNumber);let N,O=0;for(const x of L.parts){let W=x.lines;N===void 0?(T.push({column:x.column,text:W[0],preview:x.preview}),W=W.slice(1)):A([P.substring(O,x.column-1)],void 0),W.length>0&&(A(W,e.GHOST_TEXT_DESCRIPTION),N===void 0&&x.column<=P.length&&(N=x.column)),O=x.column-1}N!==void 0&&A([P.substring(O)],void 0);const F=N!==void 0?new l.ColumnRange(N,P.length+1):void 0;return{replacedRange:D,inlineTexts:T,additionalLines:M,hiddenRange:F,lineNumber:L.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(w),targetTextModel:S}}),this.decorations=(0,E.derived)(this,w=>{const S=this.uiState.read(w);if(!S)return[];const L=[];S.replacedRange&&L.push({range:S.replacedRange.toRange(S.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),S.hiddenRange&&L.push({range:S.hiddenRange.toRange(S.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const D of S.inlineTexts)L.push({range:p.Range.fromPositions(new b.Position(S.lineNumber,D.column)),options:{description:e.GHOST_TEXT_DESCRIPTION,after:{content:D.text,inlineClassName:D.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:t.InjectedTextCursorStops.Left},showIfCollapsed:!0}});return L}),this.additionalLinesWidget=this._register(new r(this.editor,this.languageService.languageIdCodec,(0,E.derived)(w=>{const S=this.uiState.read(w);return S?{lineNumber:S.lineNumber,additionalLines:S.additionalLines,minReservedLineCount:S.additionalReservedLineCount,targetTextModel:S.targetTextModel}:void 0}))),this._register((0,I.toDisposable)(()=>{this.isDisposed.set(!0,void 0)})),this._register((0,l.applyObservableDecorations)(this.editor,this.decorations))}ownsViewZone(f){return this.additionalLinesWidget.viewZoneId===f}};e.GhostTextView=a,e.GhostTextView=a=ke([ce(2,o.ILanguageService)],a);class r extends I.Disposable{get viewZoneId(){return this._viewZoneId}constructor(f,h,v){super(),this.editor=f,this.languageIdCodec=h,this.lines=v,this._viewZoneId=void 0,this.editorOptionsChanged=(0,E.observableSignalFromEvent)("editorOptionChanged",k.Event.filter(this.editor.onDidChangeConfiguration,w=>w.hasChanged(33)||w.hasChanged(118)||w.hasChanged(100)||w.hasChanged(95)||w.hasChanged(51)||w.hasChanged(50)||w.hasChanged(67))),this._register((0,E.autorun)(w=>{const S=this.lines.read(w);this.editorOptionsChanged.read(w),S?this.updateLines(S.lineNumber,S.additionalLines,S.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(f=>{this._viewZoneId&&(f.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(f,h,v){const w=this.editor.getModel();if(!w)return;const{tabSize:S}=w.getOptions();this.editor.changeViewZones(L=>{this._viewZoneId&&(L.removeZone(this._viewZoneId),this._viewZoneId=void 0);const D=Math.max(h.length,v);if(D>0){const T=document.createElement("div");u(T,S,h,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=L.addZone({afterLineNumber:f,heightInLines:D,domNode:T,afterColumnAffinity:1})}})}}e.AdditionalLinesWidget=r;function u(C,f,h,v,w){const S=v.get(33),L=v.get(118),D="none",T=v.get(95),M=v.get(51),A=v.get(50),P=v.get(67),N=new n.StringBuilder(1e4);N.appendString('
    ');for(let x=0,W=h.length;x');const H=y.isBasicASCII(q),z=y.containsRTL(q),U=i.LineTokens.createEmpty(q,w);(0,g.renderViewLine)(new g.RenderLineInput(A.isMonospace&&!S,A.canUseHalfwidthRightwardsArrow,q,!1,H,z,0,U,V.decorations,f,0,A.spaceWidth,A.middotWidth,A.wsmiddotWidth,L,D,T,M!==_.EditorFontLigatures.OFF,null),N),N.appendString("
    ")}N.appendString(""),(0,m.applyFontInfo)(C,A);const O=N.build(),F=e.ttPolicy?e.ttPolicy.createHTML(O):O;C.innerHTML=F}e.ttPolicy=(0,d.createTrustedTypesPolicy)("editorGhostText",{createHTML:C=>C})}),define(ne[680],se([1,0,147,17,27,2,45]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextualMultiDocumentHighlightFeature=void 0;class m{constructor(){this.selector={language:"*"}}provideDocumentHighlights(p,n,o){const t=[],i=p.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});return i?p.isDisposed()?void 0:p.findMatches(i.word,!0,!1,!0,d.USUAL_WORD_SEPARATORS,!1).map(g=>({range:g.range,kind:I.DocumentHighlightKind.Text})):Promise.resolve(t)}provideMultiDocumentHighlights(p,n,o,t){const i=new y.ResourceMap,s=p.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!s)return Promise.resolve(i);for(const g of[p,...o]){if(g.isDisposed())continue;const l=g.findMatches(s.word,!0,!1,!0,d.USUAL_WORD_SEPARATORS,!1).map(a=>({range:a.range,kind:I.DocumentHighlightKind.Text}));l&&i.set(g.uri,l)}return i}}let _=class extends E.Disposable{constructor(p){super(),this._register(p.documentHighlightProvider.register("*",new m)),this._register(p.multiDocumentHighlightProvider.register("*",new m))}};e.TextualMultiDocumentHighlightFeature=_,e.TextualMultiDocumentHighlightFeature=_=ke([ce(0,k.ILanguageFeaturesService)],_)}),define(ne[153],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IStandaloneThemeService=void 0,e.IStandaloneThemeService=(0,d.createDecorator)("themeService")}),define(ne[137],se([1,0,3,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilitySignal=e.SoundSource=e.Sound=e.AcknowledgeDocCommentsToken=e.IAccessibilitySignalService=void 0,e.IAccessibilitySignalService=(0,k.createDecorator)("accessibilitySignalService"),e.AcknowledgeDocCommentsToken=Symbol("AcknowledgeDocCommentsToken");class I{static register(_){return new I(_.fileName)}static{this.error=I.register({fileName:"error.mp3"})}static{this.warning=I.register({fileName:"warning.mp3"})}static{this.success=I.register({fileName:"success.mp3"})}static{this.foldedArea=I.register({fileName:"foldedAreas.mp3"})}static{this.break=I.register({fileName:"break.mp3"})}static{this.quickFixes=I.register({fileName:"quickFixes.mp3"})}static{this.taskCompleted=I.register({fileName:"taskCompleted.mp3"})}static{this.taskFailed=I.register({fileName:"taskFailed.mp3"})}static{this.terminalBell=I.register({fileName:"terminalBell.mp3"})}static{this.diffLineInserted=I.register({fileName:"diffLineInserted.mp3"})}static{this.diffLineDeleted=I.register({fileName:"diffLineDeleted.mp3"})}static{this.diffLineModified=I.register({fileName:"diffLineModified.mp3"})}static{this.chatRequestSent=I.register({fileName:"chatRequestSent.mp3"})}static{this.chatResponseReceived1=I.register({fileName:"chatResponseReceived1.mp3"})}static{this.chatResponseReceived2=I.register({fileName:"chatResponseReceived2.mp3"})}static{this.chatResponseReceived3=I.register({fileName:"chatResponseReceived3.mp3"})}static{this.chatResponseReceived4=I.register({fileName:"chatResponseReceived4.mp3"})}static{this.clear=I.register({fileName:"clear.mp3"})}static{this.save=I.register({fileName:"save.mp3"})}static{this.format=I.register({fileName:"format.mp3"})}static{this.voiceRecordingStarted=I.register({fileName:"voiceRecordingStarted.mp3"})}static{this.voiceRecordingStopped=I.register({fileName:"voiceRecordingStopped.mp3"})}static{this.progress=I.register({fileName:"progress.mp3"})}constructor(_){this.fileName=_}}e.Sound=I;class E{constructor(_){this.randomOneOf=_}}e.SoundSource=E;class y{constructor(_,b,p,n,o,t){this.sound=_,this.name=b,this.legacySoundSettingsKey=p,this.settingsKey=n,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=t}static{this._signals=new Set}static register(_){const b=new E("randomOneOf"in _.sound?_.sound.randomOneOf:[_.sound]),p=new y(b,_.name,_.legacySoundSettingsKey,_.settingsKey,_.legacyAnnouncementSettingsKey,_.announcementMessage);return y._signals.add(p),p}static{this.errorAtPosition=y.register({name:(0,d.localize)(1428,"Error at Position"),sound:I.error,announcementMessage:(0,d.localize)(1429,"Error"),settingsKey:"accessibility.signals.positionHasError",delaySettingsKey:"accessibility.signalOptions.delays.errorAtPosition"})}static{this.warningAtPosition=y.register({name:(0,d.localize)(1430,"Warning at Position"),sound:I.warning,announcementMessage:(0,d.localize)(1431,"Warning"),settingsKey:"accessibility.signals.positionHasWarning",delaySettingsKey:"accessibility.signalOptions.delays.warningAtPosition"})}static{this.errorOnLine=y.register({name:(0,d.localize)(1432,"Error on Line"),sound:I.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:(0,d.localize)(1433,"Error on Line"),settingsKey:"accessibility.signals.lineHasError"})}static{this.warningOnLine=y.register({name:(0,d.localize)(1434,"Warning on Line"),sound:I.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:(0,d.localize)(1435,"Warning on Line"),settingsKey:"accessibility.signals.lineHasWarning"})}static{this.foldedArea=y.register({name:(0,d.localize)(1436,"Folded Area on Line"),sound:I.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:(0,d.localize)(1437,"Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"})}static{this.break=y.register({name:(0,d.localize)(1438,"Breakpoint on Line"),sound:I.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:(0,d.localize)(1439,"Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"})}static{this.inlineSuggestion=y.register({name:(0,d.localize)(1440,"Inline Suggestion on Line"),sound:I.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"})}static{this.terminalQuickFix=y.register({name:(0,d.localize)(1441,"Terminal Quick Fix"),sound:I.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:(0,d.localize)(1442,"Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"})}static{this.onDebugBreak=y.register({name:(0,d.localize)(1443,"Debugger Stopped on Breakpoint"),sound:I.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:(0,d.localize)(1444,"Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"})}static{this.noInlayHints=y.register({name:(0,d.localize)(1445,"No Inlay Hints on Line"),sound:I.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:(0,d.localize)(1446,"No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"})}static{this.taskCompleted=y.register({name:(0,d.localize)(1447,"Task Completed"),sound:I.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:(0,d.localize)(1448,"Task Completed"),settingsKey:"accessibility.signals.taskCompleted"})}static{this.taskFailed=y.register({name:(0,d.localize)(1449,"Task Failed"),sound:I.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:(0,d.localize)(1450,"Task Failed"),settingsKey:"accessibility.signals.taskFailed"})}static{this.terminalCommandFailed=y.register({name:(0,d.localize)(1451,"Terminal Command Failed"),sound:I.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:(0,d.localize)(1452,"Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"})}static{this.terminalCommandSucceeded=y.register({name:(0,d.localize)(1453,"Terminal Command Succeeded"),sound:I.success,announcementMessage:(0,d.localize)(1454,"Command Succeeded"),settingsKey:"accessibility.signals.terminalCommandSucceeded"})}static{this.terminalBell=y.register({name:(0,d.localize)(1455,"Terminal Bell"),sound:I.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:(0,d.localize)(1456,"Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"})}static{this.notebookCellCompleted=y.register({name:(0,d.localize)(1457,"Notebook Cell Completed"),sound:I.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:(0,d.localize)(1458,"Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"})}static{this.notebookCellFailed=y.register({name:(0,d.localize)(1459,"Notebook Cell Failed"),sound:I.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:(0,d.localize)(1460,"Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"})}static{this.diffLineInserted=y.register({name:(0,d.localize)(1461,"Diff Line Inserted"),sound:I.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"})}static{this.diffLineDeleted=y.register({name:(0,d.localize)(1462,"Diff Line Deleted"),sound:I.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"})}static{this.diffLineModified=y.register({name:(0,d.localize)(1463,"Diff Line Modified"),sound:I.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"})}static{this.chatRequestSent=y.register({name:(0,d.localize)(1464,"Chat Request Sent"),sound:I.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:(0,d.localize)(1465,"Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"})}static{this.chatResponseReceived=y.register({name:(0,d.localize)(1466,"Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[I.chatResponseReceived1,I.chatResponseReceived2,I.chatResponseReceived3,I.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"})}static{this.progress=y.register({name:(0,d.localize)(1467,"Progress"),sound:I.progress,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.progress",announcementMessage:(0,d.localize)(1468,"Progress"),settingsKey:"accessibility.signals.progress"})}static{this.clear=y.register({name:(0,d.localize)(1469,"Clear"),sound:I.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:(0,d.localize)(1470,"Clear"),settingsKey:"accessibility.signals.clear"})}static{this.save=y.register({name:(0,d.localize)(1471,"Save"),sound:I.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:(0,d.localize)(1472,"Save"),settingsKey:"accessibility.signals.save"})}static{this.format=y.register({name:(0,d.localize)(1473,"Format"),sound:I.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:(0,d.localize)(1474,"Format"),settingsKey:"accessibility.signals.format"})}static{this.voiceRecordingStarted=y.register({name:(0,d.localize)(1475,"Voice Recording Started"),sound:I.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"})}static{this.voiceRecordingStopped=y.register({name:(0,d.localize)(1476,"Voice Recording Stopped"),sound:I.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"})}}e.AccessibilitySignal=y}),define(ne[117],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IClipboardService=void 0,e.IClipboardService=(0,d.createDecorator)("clipboardService")}),define(ne[24],se([1,0,6,53,2,73,19,7]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommandsRegistry=e.ICommandService=void 0,e.ICommandService=(0,m.createDecorator)("commandService"),e.CommandsRegistry=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new d.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(_,b){if(!_)throw new Error("invalid command");if(typeof _=="string"){if(!b)throw new Error("invalid command");return this.registerCommand({id:_,handler:b})}if(_.metadata&&Array.isArray(_.metadata.args)){const i=[];for(const g of _.metadata.args)i.push(g.constraint);const s=_.handler;_.handler=function(g,...c){return(0,y.validateConstraints)(c,i),s(g,...c)}}const{id:p}=_;let n=this._commands.get(p);n||(n=new E.LinkedList,this._commands.set(p,n));const o=n.unshift(_),t=(0,I.toDisposable)(()=>{o(),this._commands.get(p)?.isEmpty()&&this._commands.delete(p)});return this._onDidRegisterCommand.fire(p),t}registerCommandAlias(_,b){return e.CommandsRegistry.registerCommand(_,(p,...n)=>p.get(e.ICommandService).executeCommand(b,...n))}getCommand(_){const b=this._commands.get(_);if(!(!b||b.isEmpty()))return k.Iterable.first(b)}getCommands(){const _=new Map;for(const b of this._commands.keys()){const p=this.getCommand(b);p&&_.set(b,p)}return _}},e.CommandsRegistry.registerCommand("noop",()=>{})}),define(ne[386],se([1,0,18,8,2,19,22,51,24,17]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensModel=void 0,e.getCodeLensModel=n;class p{constructor(){this.lenses=[],this._disposables=new I.DisposableStore}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(t,i){this._disposables.add(t);for(const s of t.lenses)this.lenses.push({symbol:s,provider:i})}}e.CodeLensModel=p;async function n(o,t,i){const s=o.ordered(t),g=new Map,c=new p,l=s.map(async(a,r)=>{g.set(a,r);try{const u=await Promise.resolve(a.provideCodeLenses(t,i));u&&c.add(u,a)}catch(u){(0,k.onUnexpectedExternalError)(u)}});return await Promise.all(l),c.lenses=c.lenses.sort((a,r)=>a.symbol.range.startLineNumberr.symbol.range.startLineNumber?1:g.get(a.provider)g.get(r.provider)?1:a.symbol.range.startColumnr.symbol.range.startColumn?1:0),c}_.CommandsRegistry.registerCommand("_executeCodeLensProvider",function(o,...t){let[i,s]=t;(0,E.assertType)(y.URI.isUri(i)),(0,E.assertType)(typeof s=="number"||!s);const{codeLensProvider:g}=o.get(b.ILanguageFeaturesService),c=o.get(m.IModelService).getModel(i);if(!c)throw(0,k.illegalArgument)();const l=[],a=new I.DisposableStore;return n(g,c,d.CancellationToken.None).then(r=>{a.add(r);const u=[];for(const C of r.lenses)s==null||C.symbol.command?l.push(C.symbol):s-- >0&&C.provider.resolveCodeLens&&u.push(Promise.resolve(C.provider.resolveCodeLens(c,C.symbol,d.CancellationToken.None)).then(f=>l.push(f||C.symbol)));return Promise.all(u)}).then(()=>l).finally(()=>{setTimeout(()=>a.dispose(),100)})})}),define(ne[681],se([1,0,13,18,8,2,19,22,4,51,24,17]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinksList=e.Link=void 0,e.getLinks=i;class o{constructor(g,c){this._link=g,this._provider=c}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(g){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,g)).then(c=>(this._link=c||this._link,this._link.url?this.resolve(g):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}}e.Link=o;class t{constructor(g){this._disposables=new E.DisposableStore;let c=[];for(const[l,a]of g){const r=l.links.map(u=>new o(u,a));c=t._union(c,r),(0,E.isDisposable)(l)&&this._disposables.add(l)}this.links=c}dispose(){this._disposables.dispose(),this.links.length=0}static _union(g,c){const l=[];let a,r,u,C;for(a=0,u=0,r=g.length,C=c.length;aPromise.resolve(r.provideLinks(g,c)).then(C=>{C&&(l[u]=[C,r])},I.onUnexpectedExternalError));return Promise.all(a).then(()=>{const r=new t((0,d.coalesce)(l));return c.isCancellationRequested?(r.dispose(),new t([])):r})}p.CommandsRegistry.registerCommand("_executeLinkProvider",async(s,...g)=>{let[c,l]=g;(0,y.assertType)(c instanceof m.URI),typeof l!="number"&&(l=0);const{linkProvider:a}=s.get(n.ILanguageFeaturesService),r=s.get(b.IModelService).getModel(c);if(!r)return[];const u=await i(a,r,k.CancellationToken.None);if(!u)return[];for(let f=0;f0?h[0]:[]}async function g(C,f,h,v,w){const S=s(C,f),L=await Promise.all(S.map(async D=>{let T,M=null;try{T=await D.provideDocumentSemanticTokens(f,D===h?v:null,w)}catch(A){M=A,T=null}return(!T||!n(T)&&!o(T))&&(T=null),new t(D,T,M)}));for(const D of L){if(D.error)throw D.error;if(D.tokens)return D}return L.length>0?L[0]:null}function c(C,f){const h=C.orderedGroups(f);return h.length>0?h[0]:null}class l{constructor(f,h){this.provider=f,this.tokens=h}}function a(C,f){return C.has(f)}function r(C,f){const h=C.orderedGroups(f);return h.length>0?h[0]:[]}async function u(C,f,h,v){const w=r(C,f),S=await Promise.all(w.map(async L=>{let D;try{D=await L.provideDocumentRangeSemanticTokens(f,h,v)}catch(T){(0,k.onUnexpectedExternalError)(T),D=null}return(!D||!n(D))&&(D=null),new l(L,D)}));for(const L of S)if(L.tokens)return L;return S.length>0?S[0]:null}y.CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(C,...f)=>{const[h]=f;(0,m.assertType)(h instanceof I.URI);const v=C.get(E.IModelService).getModel(h);if(!v)return;const{documentSemanticTokensProvider:w}=C.get(p.ILanguageFeaturesService),S=c(w,v);return S?S[0].getLegend():C.get(y.ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",h)}),y.CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(C,...f)=>{const[h]=f;(0,m.assertType)(h instanceof I.URI);const v=C.get(E.IModelService).getModel(h);if(!v)return;const{documentSemanticTokensProvider:w}=C.get(p.ILanguageFeaturesService);if(!i(w,v))return C.get(y.ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",h,v.getFullModelRange());const S=await g(w,v,null,null,d.CancellationToken.None);if(!S)return;const{provider:L,tokens:D}=S;if(!D||!n(D))return;const T=(0,_.encodeSemanticTokensDto)({id:0,type:"full",data:D.data});return D.resultId&&L.releaseDocumentSemanticTokens(D.resultId),T}),y.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(C,...f)=>{const[h,v]=f;(0,m.assertType)(h instanceof I.URI);const w=C.get(E.IModelService).getModel(h);if(!w)return;const{documentRangeSemanticTokensProvider:S}=C.get(p.ILanguageFeaturesService),L=r(S,w);if(L.length===0)return;if(L.length===1)return L[0].getLegend();if(!v||!b.Range.isIRange(v))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),L[0].getLegend();const D=await u(S,w,b.Range.lift(v),d.CancellationToken.None);if(D)return D.provider.getLegend()}),y.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(C,...f)=>{const[h,v]=f;(0,m.assertType)(h instanceof I.URI),(0,m.assertType)(b.Range.isIRange(v));const w=C.get(E.IModelService).getModel(h);if(!w)return;const{documentRangeSemanticTokensProvider:S}=C.get(p.ILanguageFeaturesService),L=await u(S,w,b.Range.lift(v),d.CancellationToken.None);if(!(!L||!L.tokens))return(0,_.encodeSemanticTokensDto)({id:0,type:"full",data:L.tokens.data})})}),define(ne[28],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IConfigurationService=void 0,e.toValuesTree=k,e.addToValueTree=I,e.removeFromValueTree=E,e.getConfigurationValue=m,e.getLanguageTagSettingPlainKey=_,e.IConfigurationService=(0,d.createDecorator)("configurationService");function k(b,p){const n=Object.create(null);for(const o in b)I(n,o,b[o],p);return n}function I(b,p,n,o){const t=p.split("."),i=t.pop();let s=b;for(let g=0;g"u"?n:i}function _(b){return b.replace(/[\[\]]/g,"")}}),define(ne[388],se([1,0,18,8,22,4,51,24,17,385,28]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getColors=n,e.getColorPresentations=o;async function n(l,a,r,u=!0){return g(new t,l,a,r,u)}function o(l,a,r,u){return Promise.resolve(r.provideColorPresentations(l,a,u))}class t{constructor(){}async compute(a,r,u,C){const f=await a.provideDocumentColors(r,u);if(Array.isArray(f))for(const h of f)C.push({colorInfo:h,provider:a});return Array.isArray(f)}}class i{constructor(){}async compute(a,r,u,C){const f=await a.provideDocumentColors(r,u);if(Array.isArray(f))for(const h of f)C.push({range:h.range,color:[h.color.red,h.color.green,h.color.blue,h.color.alpha]});return Array.isArray(f)}}class s{constructor(a){this.colorInfo=a}async compute(a,r,u,C){const f=await a.provideColorPresentations(r,this.colorInfo,d.CancellationToken.None);return Array.isArray(f)&&C.push(...f),Array.isArray(f)}}async function g(l,a,r,u,C){let f=!1,h;const v=[],w=a.ordered(r);for(let S=w.length-1;S>=0;S--){const L=w[S];if(L instanceof b.DefaultDocumentColorProvider)h=L;else try{await l.compute(L,r,u,v)&&(f=!0)}catch(D){(0,k.onUnexpectedExternalError)(D)}}return f?v:h&&C?(await l.compute(h,r,u,v),v):[]}function c(l,a){const{colorProvider:r}=l.get(_.ILanguageFeaturesService),u=l.get(y.IModelService).getModel(a);if(!u)throw(0,k.illegalArgument)();const C=l.get(p.IConfigurationService).getValue("editor.defaultColorDecorators",{resource:a});return{model:u,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:C}}m.CommandsRegistry.registerCommand("_executeDocumentColorProvider",function(l,...a){const[r]=a;if(!(r instanceof I.URI))throw(0,k.illegalArgument)();const{model:u,colorProviderRegistry:C,isDefaultColorDecoratorsEnabled:f}=c(l,r);return g(new i,C,u,d.CancellationToken.None,f)}),m.CommandsRegistry.registerCommand("_executeColorPresentationProvider",function(l,...a){const[r,u]=a,{uri:C,range:f}=u;if(!(C instanceof I.URI)||!Array.isArray(r)||r.length!==4||!E.Range.isIRange(f))throw(0,k.illegalArgument)();const{model:h,colorProviderRegistry:v,isDefaultColorDecoratorsEnabled:w}=c(l,C),[S,L,D,T]=r;return g(new s({range:f,color:{red:S,green:L,blue:D,alpha:T}}),v,h,d.CancellationToken.None,w)})}),define(ne[389],se([1,0,2,27,177,344,28]),function(oe,e,d,k,I,E,y){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.MonarchTokenizer=void 0;const _=5;class b{static{this._INSTANCE=new b(_)}static create(a,r){return this._INSTANCE.create(a,r)}constructor(a){this._maxCacheDepth=a,this._entries=Object.create(null)}create(a,r){if(a!==null&&a.depth>=this._maxCacheDepth)return new p(a,r);let u=p.getStackElementId(a);u.length>0&&(u+="|"),u+=r;let C=this._entries[u];return C||(C=new p(a,r),this._entries[u]=C,C)}}class p{constructor(a,r){this.parent=a,this.state=r,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(a){let r="";for(;a!==null;)r.length>0&&(r+="|"),r+=a.state,a=a.parent;return r}static _equals(a,r){for(;a!==null&&r!==null;){if(a===r)return!0;if(a.state!==r.state)return!1;a=a.parent,r=r.parent}return a===null&&r===null}equals(a){return p._equals(this,a)}push(a){return b.create(this,a)}pop(){return this.parent}popall(){let a=this;for(;a.parent;)a=a.parent;return a}switchTo(a){return b.create(this.parent,a)}}class n{constructor(a,r){this.languageId=a,this.state=r}equals(a){return this.languageId===a.languageId&&this.state.equals(a.state)}clone(){return this.state.clone()===this.state?this:new n(this.languageId,this.state)}}class o{static{this._INSTANCE=new o(_)}static create(a,r){return this._INSTANCE.create(a,r)}constructor(a){this._maxCacheDepth=a,this._entries=Object.create(null)}create(a,r){if(r!==null)return new t(a,r);if(a!==null&&a.depth>=this._maxCacheDepth)return new t(a,r);const u=p.getStackElementId(a);let C=this._entries[u];return C||(C=new t(a,null),this._entries[u]=C,C)}}class t{constructor(a,r){this.stack=a,this.embeddedLanguageData=r}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:o.create(this.stack,this.embeddedLanguageData)}equals(a){return!(a instanceof t)||!this.stack.equals(a.stack)?!1:this.embeddedLanguageData===null&&a.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||a.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(a.embeddedLanguageData)}}class i{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(a){this._languageId=a}emit(a,r){this._lastTokenType===r&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=r,this._lastTokenLanguage=this._languageId,this._tokens.push(new k.Token(a,r,this._languageId)))}nestedLanguageTokenize(a,r,u,C){const f=u.languageId,h=u.state,v=k.TokenizationRegistry.get(f);if(!v)return this.enterLanguage(f),this.emit(C,""),h;const w=v.tokenize(a,r,h);if(C!==0)for(const S of w.tokens)this._tokens.push(new k.Token(S.offset+C,S.type,S.language));else this._tokens=this._tokens.concat(w.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,w.endState}finalize(a){return new k.TokenizationResult(this._tokens,a)}}class s{constructor(a,r){this._languageService=a,this._theme=r,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(a){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(a)}emit(a,r){const u=this._theme.match(this._currentLanguageId,r)|1024;this._lastTokenMetadata!==u&&(this._lastTokenMetadata=u,this._tokens.push(a),this._tokens.push(u))}static _merge(a,r,u){const C=a!==null?a.length:0,f=r.length,h=u!==null?u.length:0;if(C===0&&f===0&&h===0)return new Uint32Array(0);if(C===0&&f===0)return u;if(f===0&&h===0)return a;const v=new Uint32Array(C+f+h);a!==null&&v.set(a);for(let w=0;w{if(h)return;let w=!1;for(let S=0,L=v.changedLanguages.length;S{v.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const a=[];for(const r in this._embeddedLanguages){const u=k.TokenizationRegistry.get(r);if(u){if(u instanceof m){const C=u.getLoadStatus();C.loaded===!1&&a.push(C.promise)}continue}k.TokenizationRegistry.isResolved(r)||a.push(k.TokenizationRegistry.getOrCreate(r))}return a.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(a).then(r=>{})}}getInitialState(){const a=b.create(null,this._lexer.start);return o.create(a,null)}tokenize(a,r,u){if(a.length>=this._maxTokenizationLineLength)return(0,I.nullTokenize)(this._languageId,u);const C=new i,f=this._tokenize(a,r,u,C);return C.finalize(f)}tokenizeEncoded(a,r,u){if(a.length>=this._maxTokenizationLineLength)return(0,I.nullTokenizeEncoded)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),u);const C=new s(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),f=this._tokenize(a,r,u,C);return C.finalize(f)}_tokenize(a,r,u,C){return u.embeddedLanguageData?this._nestedTokenize(a,r,u,0,C):this._myTokenize(a,r,u,0,C)}_findLeavingNestedLanguageOffset(a,r){let u=this._lexer.tokenizer[r.stack.state];if(!u&&(u=E.findRules(this._lexer,r.stack.state),!u))throw E.createError(this._lexer,"tokenizer state is not defined: "+r.stack.state);let C=-1,f=!1;for(const h of u){if(!E.isIAction(h.action)||h.action.nextEmbedded!=="@pop")continue;f=!0;let v=h.resolveRegex(r.stack.state);const w=v.source;if(w.substr(0,4)==="^(?:"&&w.substr(w.length-1,1)===")"){const L=(v.ignoreCase?"i":"")+(v.unicode?"u":"");v=new RegExp(w.substr(4,w.length-5),L)}const S=a.search(v);S===-1||S!==0&&h.matchOnlyAtLineStart||(C===-1||S0&&f.nestedLanguageTokenize(v,!1,u.embeddedLanguageData,C);const w=a.substring(h);return this._myTokenize(w,r,u,C+h,f)}_safeRuleName(a){return a?a.name:"(unknown)"}_myTokenize(a,r,u,C,f){f.enterLanguage(this._languageId);const h=a.length,v=r&&this._lexer.includeLF?a+` -`:a,w=v.length;let S=u.embeddedLanguageData,L=u.stack,D=0,T=null,M=!0;for(;M||D=w)break;M=!1;let U=this._lexer.tokenizer[O];if(!U&&(U=E.findRules(this._lexer,O),!U))throw E.createError(this._lexer,"tokenizer state is not defined: "+O);const j=v.substr(D);for(const Y of U)if((D===0||!Y.matchOnlyAtLineStart)&&(F=j.match(Y.resolveRegex(O)),F)){x=F[0],W=Y.action;break}}if(F||(F=[""],x=""),W||(D=this._lexer.maxStack)throw E.createError(this._lexer,"maximum tokenizer stack size reached: ["+L.state+","+L.parent.state+",...]");L=L.push(O)}else if(W.next==="@pop"){if(L.depth<=1)throw E.createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(V));L=L.pop()}else if(W.next==="@popall")L=L.popall();else{let U=E.substituteMatches(this._lexer,W.next,x,F,O);if(U[0]==="@"&&(U=U.substr(1)),E.findRules(this._lexer,U))L=L.push(U);else throw E.createError(this._lexer,"trying to set a next state '"+U+"' that is undefined in rule: "+this._safeRuleName(V))}}W.log&&typeof W.log=="string"&&E.log(this._lexer,this._lexer.languageId+": "+E.substituteMatches(this._lexer,W.log,x,F,O))}if(H===null)throw E.createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(V));const z=U=>{const j=this._languageService.getLanguageIdByLanguageName(U)||this._languageService.getLanguageIdByMimeType(U)||U,Y=this._getNestedEmbeddedLanguageData(j);if(D0)throw E.createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(V));if(F.length!==H.length+1)throw E.createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(V));let U=0;for(let j=1;ji});class p{static colorizeElement(s,g,c,l){l=l||{};const a=l.theme||"vs",r=l.mimeType||c.getAttribute("lang")||c.getAttribute("data-lang");if(!r)return console.error("Mode not detected"),Promise.resolve();const u=g.getLanguageIdByMimeType(r)||r;s.setTheme(a);const C=c.firstChild?c.firstChild.nodeValue:"";c.className+=" "+a;const f=h=>{const v=b?.createHTML(h)??h;c.innerHTML=v};return this.colorize(g,C||"",u,l).then(f,h=>console.error(h))}static async colorize(s,g,c,l){const a=s.languageIdCodec;let r=4;l&&typeof l.tabSize=="number"&&(r=l.tabSize),k.startsWithUTF8BOM(g)&&(g=g.substr(1));const u=k.splitLines(g);if(!s.isRegisteredLanguageId(c))return o(u,r,a);const C=await I.TokenizationRegistry.getOrCreate(c);return C?n(u,r,C,a):o(u,r,a)}static colorizeLine(s,g,c,l,a=4){const r=m.ViewLineRenderingData.isBasicASCII(s,g),u=m.ViewLineRenderingData.containsRTL(s,r,c);return(0,y.renderViewLine2)(new y.RenderLineInput(!1,!0,s,!1,r,u,0,l,[],a,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(s,g,c=4){const l=s.getLineContent(g);s.tokenization.forceTokenization(g);const r=s.tokenization.getLineTokens(g).inflate();return this.colorizeLine(l,s.mightContainNonBasicASCII(),s.mightContainRTL(),r,c)}}e.Colorizer=p;function n(i,s,g,c){return new Promise((l,a)=>{const r=()=>{const u=t(i,s,g,c);if(g instanceof _.MonarchTokenizer){const C=g.getLoadStatus();if(C.loaded===!1){C.promise.then(r,a);return}}l(u)};r()})}function o(i,s,g){let c=[];const a=new Uint32Array(2);a[0]=0,a[1]=33587200;for(let r=0,u=i.length;r")}return c.join("")}function t(i,s,g,c){let l=[],a=g.getInitialState();for(let r=0,u=i.length;r"),a=f.endState}return l.join("")}}),define(ne[12],se([1,0,16,11,672,7,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IContextKeyService=e.RawContextKey=e.ContextKeyOrExpr=e.ContextKeyAndExpr=e.ContextKeyNotRegexExpr=e.ContextKeyRegexExpr=e.ContextKeySmallerEqualsExpr=e.ContextKeySmallerExpr=e.ContextKeyGreaterEqualsExpr=e.ContextKeyGreaterExpr=e.ContextKeyNotExpr=e.ContextKeyNotEqualsExpr=e.ContextKeyNotInExpr=e.ContextKeyInExpr=e.ContextKeyEqualsExpr=e.ContextKeyDefinedExpr=e.ContextKeyTrueExpr=e.ContextKeyFalseExpr=e.ContextKeyExpr=e.Parser=void 0,e.expressionsAreEqualWithConstantSubstitution=r,e.implies=U;const m=new Map;m.set("false",!1),m.set("true",!0),m.set("isMac",d.isMacintosh),m.set("isLinux",d.isLinux),m.set("isWindows",d.isWindows),m.set("isWeb",d.isWeb),m.set("isMacNative",d.isMacintosh&&!d.isWeb),m.set("isEdge",d.isEdge),m.set("isFirefox",d.isFirefox),m.set("isChrome",d.isChrome),m.set("isSafari",d.isSafari);const _=Object.prototype.hasOwnProperty,b={regexParsingWithErrorRecovery:!0},p=(0,y.localize)(1514,"Empty context key expression"),n=(0,y.localize)(1515,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),o=(0,y.localize)(1516,"'in' after 'not'."),t=(0,y.localize)(1517,"closing parenthesis ')'"),i=(0,y.localize)(1518,"Unexpected token"),s=(0,y.localize)(1519,"Did you forget to put && or || before the token?"),g=(0,y.localize)(1520,"Unexpected end of expression"),c=(0,y.localize)(1521,"Did you forget to put a context key?");class l{static{this._parseError=new Error}constructor(K=b){this._config=K,this._scanner=new I.Scanner,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(K){if(K===""){this._parsingErrors.push({message:p,offset:0,lexeme:"",additionalInfo:n});return}this._tokens=this._scanner.reset(K).scan(),this._current=0,this._parsingErrors=[];try{const R=this._expr();if(!this._isAtEnd()){const J=this._peek(),ie=J.type===17?s:void 0;throw this._parsingErrors.push({message:i,offset:J.offset,lexeme:I.Scanner.getLexeme(J),additionalInfo:ie}),l._parseError}return R}catch(R){if(R!==l._parseError)throw R;return}}_expr(){return this._or()}_or(){const K=[this._and()];for(;this._matchOne(16);){const R=this._and();K.push(R)}return K.length===1?K[0]:a.or(...K)}_and(){const K=[this._term()];for(;this._matchOne(15);){const R=this._term();K.push(R)}return K.length===1?K[0]:a.and(...K)}_term(){if(this._matchOne(2)){const K=this._peek();switch(K.type){case 11:return this._advance(),C.INSTANCE;case 12:return this._advance(),f.INSTANCE;case 0:{this._advance();const R=this._expr();return this._consume(1,t),R?.negate()}case 17:return this._advance(),D.create(K.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",K)}}return this._primary()}_primary(){const K=this._peek();switch(K.type){case 11:return this._advance(),a.true();case 12:return this._advance(),a.false();case 0:{this._advance();const R=this._expr();return this._consume(1,t),R}case 17:{const R=K.lexeme;if(this._advance(),this._matchOne(9)){const ie=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),ie.type!==10)throw this._errExpectedButGot("REGEX",ie);const ue=ie.lexeme,he=ue.lastIndexOf("/"),pe=he===ue.length-1?void 0:this._removeFlagsGY(ue.substring(he+1));let ae;try{ae=new RegExp(ue.substring(1,he),pe)}catch{throw this._errExpectedButGot("REGEX",ie)}return O.create(R,ae)}switch(ie.type){case 10:case 19:{const ue=[ie.lexeme];this._advance();let he=this._peek(),pe=0;for(let X=0;X=0){const ee=ue.slice(pe+1,ae),de=ue[ae+1]==="i"?"i":"";try{he=new RegExp(ee,de)}catch{throw this._errExpectedButGot("REGEX",ie)}}}if(he===null)throw this._errExpectedButGot("REGEX",ie);return O.create(R,he)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,o);const ie=this._value();return a.notIn(R,ie)}switch(this._peek().type){case 3:{this._advance();const ie=this._value();if(this._previous().type===18)return a.equals(R,ie);switch(ie){case"true":return a.has(R);case"false":return a.not(R);default:return a.equals(R,ie)}}case 4:{this._advance();const ie=this._value();if(this._previous().type===18)return a.notEquals(R,ie);switch(ie){case"true":return a.not(R);case"false":return a.has(R);default:return a.notEquals(R,ie)}}case 5:return this._advance(),P.create(R,this._value());case 6:return this._advance(),N.create(R,this._value());case 7:return this._advance(),M.create(R,this._value());case 8:return this._advance(),A.create(R,this._value());case 13:return this._advance(),a.in(R,this._value());default:return a.has(R)}}case 20:throw this._parsingErrors.push({message:g,offset:K.offset,lexeme:"",additionalInfo:c}),l._parseError;default:throw this._errExpectedButGot(`true | false | KEY - | KEY '=~' REGEX - | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const K=this._peek();switch(K.type){case 17:case 18:return this._advance(),K.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(K){return K.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(K){return this._check(K)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(K,R){if(this._check(K))return this._advance();throw this._errExpectedButGot(R,this._peek())}_errExpectedButGot(K,R,J){const ie=(0,y.localize)(1522,`Expected: {0} -Received: '{1}'.`,K,I.Scanner.getLexeme(R)),ue=R.offset,he=I.Scanner.getLexeme(R);return this._parsingErrors.push({message:ie,offset:ue,lexeme:he,additionalInfo:J}),l._parseError}_check(K){return this._peek().type===K}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}}e.Parser=l;class a{static false(){return C.INSTANCE}static true(){return f.INSTANCE}static has(K){return h.create(K)}static equals(K,R){return v.create(K,R)}static notEquals(K,R){return L.create(K,R)}static regex(K,R){return O.create(K,R)}static in(K,R){return w.create(K,R)}static notIn(K,R){return S.create(K,R)}static not(K){return D.create(K)}static and(...K){return W.create(K,null,!0)}static or(...K){return V.create(K,null,!0)}static{this._parser=new l({regexParsingWithErrorRecovery:!1})}static deserialize(K){return K==null?void 0:this._parser.parse(K)}}e.ContextKeyExpr=a;function r(G,K){const R=G?G.substituteConstants():void 0,J=K?K.substituteConstants():void 0;return!R&&!J?!0:!R||!J?!1:R.equals(J)}function u(G,K){return G.cmp(K)}class C{static{this.INSTANCE=new C}constructor(){this.type=0}cmp(K){return this.type-K.type}equals(K){return K.type===this.type}substituteConstants(){return this}evaluate(K){return!1}serialize(){return"false"}keys(){return[]}negate(){return f.INSTANCE}}e.ContextKeyFalseExpr=C;class f{static{this.INSTANCE=new f}constructor(){this.type=1}cmp(K){return this.type-K.type}equals(K){return K.type===this.type}substituteConstants(){return this}evaluate(K){return!0}serialize(){return"true"}keys(){return[]}negate(){return C.INSTANCE}}e.ContextKeyTrueExpr=f;class h{static create(K,R=null){const J=m.get(K);return typeof J=="boolean"?J?f.INSTANCE:C.INSTANCE:new h(K,R)}constructor(K,R){this.key=K,this.negated=R,this.type=2}cmp(K){return K.type!==this.type?this.type-K.type:H(this.key,K.key)}equals(K){return K.type===this.type?this.key===K.key:!1}substituteConstants(){const K=m.get(this.key);return typeof K=="boolean"?K?f.INSTANCE:C.INSTANCE:this}evaluate(K){return!!K.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=D.create(this.key,this)),this.negated}}e.ContextKeyDefinedExpr=h;class v{static create(K,R,J=null){if(typeof R=="boolean")return R?h.create(K,J):D.create(K,J);const ie=m.get(K);return typeof ie=="boolean"?R===(ie?"true":"false")?f.INSTANCE:C.INSTANCE:new v(K,R,J)}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=4}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){const K=m.get(this.key);if(typeof K=="boolean"){const R=K?"true":"false";return this.value===R?f.INSTANCE:C.INSTANCE}return this}evaluate(K){return K.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=L.create(this.key,this.value,this)),this.negated}}e.ContextKeyEqualsExpr=v;class w{static create(K,R){return new w(K,R)}constructor(K,R){this.key=K,this.valueKey=R,this.type=10,this.negated=null}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.valueKey,K.key,K.valueKey)}equals(K){return K.type===this.type?this.key===K.key&&this.valueKey===K.valueKey:!1}substituteConstants(){return this}evaluate(K){const R=K.getValue(this.valueKey),J=K.getValue(this.key);return Array.isArray(R)?R.includes(J):typeof J=="string"&&typeof R=="object"&&R!==null?_.call(R,J):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=S.create(this.key,this.valueKey)),this.negated}}e.ContextKeyInExpr=w;class S{static create(K,R){return new S(K,R)}constructor(K,R){this.key=K,this.valueKey=R,this.type=11,this._negated=w.create(K,R)}cmp(K){return K.type!==this.type?this.type-K.type:this._negated.cmp(K._negated)}equals(K){return K.type===this.type?this._negated.equals(K._negated):!1}substituteConstants(){return this}evaluate(K){return!this._negated.evaluate(K)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}e.ContextKeyNotInExpr=S;class L{static create(K,R,J=null){if(typeof R=="boolean")return R?D.create(K,J):h.create(K,J);const ie=m.get(K);return typeof ie=="boolean"?R===(ie?"true":"false")?C.INSTANCE:f.INSTANCE:new L(K,R,J)}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=5}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){const K=m.get(this.key);if(typeof K=="boolean"){const R=K?"true":"false";return this.value===R?C.INSTANCE:f.INSTANCE}return this}evaluate(K){return K.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=v.create(this.key,this.value,this)),this.negated}}e.ContextKeyNotEqualsExpr=L;class D{static create(K,R=null){const J=m.get(K);return typeof J=="boolean"?J?C.INSTANCE:f.INSTANCE:new D(K,R)}constructor(K,R){this.key=K,this.negated=R,this.type=3}cmp(K){return K.type!==this.type?this.type-K.type:H(this.key,K.key)}equals(K){return K.type===this.type?this.key===K.key:!1}substituteConstants(){const K=m.get(this.key);return typeof K=="boolean"?K?C.INSTANCE:f.INSTANCE:this}evaluate(K){return!K.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=h.create(this.key,this)),this.negated}}e.ContextKeyNotExpr=D;function T(G,K){if(typeof G=="string"){const R=parseFloat(G);isNaN(R)||(G=R)}return typeof G=="string"||typeof G=="number"?K(G):C.INSTANCE}class M{static create(K,R,J=null){return T(R,ie=>new M(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=12}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=N.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterExpr=M;class A{static create(K,R,J=null){return T(R,ie=>new A(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=13}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=P.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterEqualsExpr=A;class P{static create(K,R,J=null){return T(R,ie=>new P(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=14}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))new N(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=15}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=M.create(this.key,this.value,this)),this.negated}}e.ContextKeySmallerEqualsExpr=N;class O{static create(K,R){return new O(K,R)}constructor(K,R){this.key=K,this.regexp=R,this.type=7,this.negated=null}cmp(K){if(K.type!==this.type)return this.type-K.type;if(this.keyK.key)return 1;const R=this.regexp?this.regexp.source:"",J=K.regexp?K.regexp.source:"";return RJ?1:0}equals(K){if(K.type===this.type){const R=this.regexp?this.regexp.source:"",J=K.regexp?K.regexp.source:"";return this.key===K.key&&R===J}return!1}substituteConstants(){return this}evaluate(K){const R=K.getValue(this.key);return this.regexp?this.regexp.test(R):!1}serialize(){const K=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${K}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=F.create(this)),this.negated}}e.ContextKeyRegexExpr=O;class F{static create(K){return new F(K)}constructor(K){this._actual=K,this.type=8}cmp(K){return K.type!==this.type?this.type-K.type:this._actual.cmp(K._actual)}equals(K){return K.type===this.type?this._actual.equals(K._actual):!1}substituteConstants(){return this}evaluate(K){return!this._actual.evaluate(K)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}e.ContextKeyNotRegexExpr=F;function x(G){let K=null;for(let R=0,J=G.length;RK.expr.length)return 1;for(let R=0,J=this.expr.length;R1;){const he=ie[ie.length-1];if(he.type!==9)break;ie.pop();const pe=ie.pop(),ae=ie.length===0,ee=V.create(he.expr.map(de=>W.create([de,pe],null,J)),null,ae);ee&&(ie.push(ee),ie.sort(u))}if(ie.length===1)return ie[0];if(J){for(let he=0;heK.serialize()).join(" && ")}keys(){const K=[];for(const R of this.expr)K.push(...R.keys());return K}negate(){if(!this.negated){const K=[];for(const R of this.expr)K.push(R.negate());this.negated=V.create(K,this,!0)}return this.negated}}e.ContextKeyAndExpr=W;class V{static create(K,R,J){return V._normalizeArr(K,R,J)}constructor(K,R){this.expr=K,this.negated=R,this.type=9}cmp(K){if(K.type!==this.type)return this.type-K.type;if(this.expr.lengthK.expr.length)return 1;for(let R=0,J=this.expr.length;RK.serialize()).join(" || ")}keys(){const K=[];for(const R of this.expr)K.push(...R.keys());return K}negate(){if(!this.negated){const K=[];for(const R of this.expr)K.push(R.negate());for(;K.length>1;){const R=K.shift(),J=K.shift(),ie=[];for(const ue of Y(R))for(const he of Y(J))ie.push(W.create([ue,he],null,!1));K.unshift(V.create(ie,null,!1))}this.negated=V.create(K,this,!0)}return this.negated}}e.ContextKeyOrExpr=V;class q extends h{static{this._info=[]}static all(){return q._info.values()}constructor(K,R,J){super(K,null),this._defaultValue=R,typeof J=="object"?q._info.push({...J,key:K}):J!==!0&&q._info.push({key:K,description:J,type:R!=null?typeof R:void 0})}bindTo(K){return K.createKey(this.key,this._defaultValue)}getValue(K){return K.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(K){return v.create(this.key,K)}}e.RawContextKey=q,e.IContextKeyService=(0,E.createDecorator)("contextKeyService");function H(G,K){return GK?1:0}function z(G,K,R,J){return GR?1:KJ?1:0}function U(G,K){if(G.type===0||K.type===1)return!0;if(G.type===9)return K.type===9?j(G.expr,K.expr):!1;if(K.type===9){for(const R of K.expr)if(U(G,R))return!0;return!1}if(G.type===6){if(K.type===6)return j(K.expr,G.expr);for(const R of G.expr)if(U(R,K))return!0;return!1}return G.equals(K)}function j(G,K){let R=0,J=0;for(;R{const i=this.model.read(o)?.state.read(o),s=!!i?.inlineCompletion&&i?.primaryGhostText!==void 0&&!i?.primaryGhostText.isEmpty();this.inlineCompletionVisible.set(s),i?.primaryGhostText&&i?.inlineCompletion&&this.suppressSuggestions.set(i.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register((0,d.autorun)(o=>{const t=this.model.read(o);let i=!1,s=!0;const g=t?.primaryGhostText.read(o);if(t?.selectedSuggestItem&&g&&g.parts.length>0){const{column:c,lines:l}=g.parts[0],a=l[0],r=t.textModel.getLineIndentColumn(g.lineNumber);if(c<=r){let C=(0,k.firstNonWhitespaceIndex)(a);C===-1&&(C=a.length-1),i=C>0;const f=t.textModel.getOptions().tabSize;s=I.CursorColumns.visibleColumnFromColumn(a,C+1,f){const[s,g,c]=i;(0,I.assertType)(E.URI.isUri(s)),(0,I.assertType)(y.Position.isIPosition(g)),(0,I.assertType)(typeof c=="string"||!c);const l=t.get(_.ILanguageFeaturesService),a=await t.get(b.ITextModelService).createModelReference(s);try{const r=await o(l.signatureHelpProvider,a.object.textEditorModel,y.Position.lift(g),{triggerKind:m.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:c},d.CancellationToken.None);return r?(setTimeout(()=>r.dispose(),0),r.value):void 0}finally{a.dispose()}})}),define(ne[683],se([1,0,14,8,6,2,144,27,270]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsModel=void 0;var b;(function(o){o.Default={type:0};class t{constructor(g,c){this.request=g,this.previouslyActiveHints=c,this.type=2}}o.Pending=t;class i{constructor(g){this.hints=g,this.type=1}}o.Active=i})(b||(b={}));class p extends E.Disposable{static{this.DEFAULT_DELAY=120}constructor(t,i,s=p.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new I.Emitter),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=b.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new E.MutableDisposable),this.triggerChars=new y.CharacterSet,this.retriggerChars=new y.CharacterSet,this.triggerId=0,this.editor=t,this.providers=i,this.throttledDelayer=new d.Delayer(s),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(g=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(g=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(g=>this.onCursorChange(g))),this._register(this.editor.onDidChangeModelContent(g=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(g=>this.onDidType(g))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){this._state.type===2&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=b.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,i){const s=this.editor.getModel();if(!s||!this.providers.has(s))return;const g=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger(()=>this.doTrigger(g),i).catch(k.onUnexpectedError)}next(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,s=i%t===t-1,g=this.editor.getOption(86).cycle;if((t<2||s)&&!g){this.cancel();return}this.updateActiveSignature(s&&g?0:i+1)}previous(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,s=i===0,g=this.editor.getOption(86).cycle;if((t<2||s)&&!g){this.cancel();return}this.updateActiveSignature(s&&g?t-1:i-1)}updateActiveSignature(t){this.state.type===1&&(this.state=new b.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const i=this.state.type===1||this.state.type===2,s=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const g=this._pendingTriggers.reduce(n);this._pendingTriggers=[];const c={triggerKind:g.triggerKind,triggerCharacter:g.triggerCharacter,isRetrigger:i,activeSignatureHelp:s};if(!this.editor.hasModel())return!1;const l=this.editor.getModel(),a=this.editor.getPosition();this.state=new b.Pending((0,d.createCancelablePromise)(r=>(0,_.provideSignatureHelp)(this.providers,l,a,c,r)),s);try{const r=await this.state.request;return t!==this.triggerId?(r?.dispose(),!1):!r||!r.value.signatures||r.value.signatures.length===0?(r?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new b.Active(r.value),this._lastSignatureHelpResult.value=r,this._onChangedHints.fire(this.state.hints),!0)}catch(r){return t===this.triggerId&&(this.state=b.Default),(0,k.onUnexpectedError)(r),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const i of this.providers.ordered(t)){for(const s of i.signatureHelpTriggerCharacters||[])if(s.length){const g=s.charCodeAt(0);this.triggerChars.add(g),this.retriggerChars.add(g)}for(const s of i.signatureHelpRetriggerCharacters||[])s.length&&this.retriggerChars.add(s.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const i=t.length-1,s=t.charCodeAt(i);(this.triggerChars.has(s)||this.isTriggered&&this.retriggerChars.has(s))&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:t.charAt(i)})}onCursorChange(t){t.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}e.ParameterHintsModel=p;function n(o,t){switch(t.triggerKind){case m.SignatureHelpTriggerKind.Invoke:return t;case m.SignatureHelpTriggerKind.ContentChange:return o;case m.SignatureHelpTriggerKind.TriggerCharacter:default:return t}}}),define(ne[684],se([1,0,12]),function(oe,e,d){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestAlternatives=void 0;let I=class{static{k=this}static{this.OtherSuggestions=new d.RawContextKey("hasOtherSuggestions",!1)}constructor(y,m){this._editor=y,this._index=0,this._ckOtherSuggestions=k.OtherSuggestions.bindTo(m)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:y,index:m},_){if(y.items.length===0){this.reset();return}if(k._moveIndex(!0,y,m)===m){this.reset();return}this._acceptNext=_,this._model=y,this._index=m,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(y,m,_){let b=_;for(let p=m.items.length;p>0&&(b=(b+m.items.length+(y?1:-1))%m.items.length,!(b===_||!m.items[b].completion.additionalTextEdits));p--);return b}next(){this._move(!0)}prev(){this._move(!1)}_move(y){if(this._model)try{this._ignore=!0,this._index=k._moveIndex(y,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};e.SuggestAlternatives=I,e.SuggestAlternatives=I=k=ke([ce(1,d.IContextKeyService)],I)}),define(ne[685],se([1,0,12]),function(oe,e,d){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.WordContextKey=void 0;let I=class{static{k=this}static{this.AtEnd=new d.RawContextKey("atEndOfWord",!1)}constructor(y,m){this._editor=y,this._enabled=!1,this._ckAtEnd=k.AtEnd.bindTo(m),this._configListener=this._editor.onDidChangeConfiguration(_=>_.hasChanged(124)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){const y=this._editor.getOption(124)==="on";if(this._enabled!==y)if(this._enabled=y,this._enabled){const m=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const _=this._editor.getModel(),b=this._editor.getSelection(),p=_.getWordAtPosition(b.getStartPosition());if(!p){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(p.endColumn===b.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(m),m()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};e.WordContextKey=I,e.WordContextKey=I=k=ke([ce(1,d.IContextKeyService)],I)}),define(ne[61],se([1,0,12,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=e.IAccessibilityService=void 0,e.IAccessibilityService=(0,k.createDecorator)("accessibilityService"),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new d.RawContextKey("accessibilityModeEnabled",!1)}),define(ne[686],se([1,0,64,13,6,2,60,16,362,366,546,229,37,165,261,61,5,253]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ComputedEditorOptions=e.EditorConfiguration=void 0;let l=class extends E.Disposable{constructor(w,S,L,D,T){super(),this._accessibilityService=T,this._onDidChange=this._register(new I.Emitter),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new I.Emitter),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new o.ComputeOptionsMemory,this.isSimpleWidget=w,this.contextMenuId=S,this._containerObserver=this._register(new _.ElementSizeObserver(D,L.dimension)),this._targetWindowId=(0,g.getWindow)(D).vscodeWindowId,this._rawOptions=h(L),this._validatedOptions=f.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(t.EditorZoom.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(n.TabFocus.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(b.FontMeasurements.onDidChange(()=>this._recomputeOptions())),this._register(c.PixelRatio.getInstance((0,g.getWindow)(D)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const w=this._computeOptions(),S=f.checkEquals(this.options,w);S!==null&&(this.options=w,this._onDidChangeFast.fire(S),this._onDidChange.fire(S))}_computeOptions(){const w=this._readEnvConfiguration(),S=i.BareFontInfo.createFromValidatedSettings(this._validatedOptions,w.pixelRatio,this.isSimpleWidget),L=this._readFontInfo(S),D={memory:this._computeOptionsMemory,outerWidth:w.outerWidth,outerHeight:w.outerHeight-this._reservedHeight,fontInfo:L,extraEditorClassName:w.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:w.emptySelectionClipboard,pixelRatio:w.pixelRatio,tabFocusMode:n.TabFocus.getTabFocusMode(),accessibilitySupport:w.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return f.computeOptions(this._validatedOptions,D)}_readEnvConfiguration(){return{extraEditorClassName:r(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:d.isWebKit||d.isFirefox,pixelRatio:c.PixelRatio.getInstance((0,g.getWindowById)(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(w){return b.FontMeasurements.readFontInfo((0,g.getWindowById)(this._targetWindowId,!0).window,w)}getRawOptions(){return this._rawOptions}updateOptions(w){const S=h(w);f.applyUpdate(this._rawOptions,S)&&(this._validatedOptions=f.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(w){this._containerObserver.observe(w)}setIsDominatedByLongLines(w){this._isDominatedByLongLines!==w&&(this._isDominatedByLongLines=w,this._recomputeOptions())}setModelLineCount(w){const S=a(w);this._lineNumbersDigitCount!==S&&(this._lineNumbersDigitCount=S,this._recomputeOptions())}setViewLineCount(w){this._viewLineCount!==w&&(this._viewLineCount=w,this._recomputeOptions())}setReservedHeight(w){this._reservedHeight!==w&&(this._reservedHeight=w,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(w){this._glyphMarginDecorationLaneCount!==w&&(this._glyphMarginDecorationLaneCount=w,this._recomputeOptions())}};e.EditorConfiguration=l,e.EditorConfiguration=l=ke([ce(4,s.IAccessibilityService)],l);function a(v){let w=0;for(;v;)v=Math.floor(v/10),w++;return w||1}function r(){let v="";return!d.isSafari&&!d.isWebkitWebView&&(v+="no-user-select "),d.isSafari&&(v+="no-minimap-shadow ",v+="enable-user-select "),m.isMacintosh&&(v+="mac "),v}class u{constructor(){this._values=[]}_read(w){return this._values[w]}get(w){return this._values[w]}_write(w,S){this._values[w]=S}}class C{constructor(){this._values=[]}_read(w){if(w>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[w]}get(w){return this._read(w)}_write(w,S){this._values[w]=S}}e.ComputedEditorOptions=C;class f{static validateOptions(w){const S=new u;for(const L of o.editorOptionsRegistry){const D=L.name==="_never_"?void 0:w[L.name];S._write(L.id,L.validate(D))}return S}static computeOptions(w,S){const L=new C;for(const D of o.editorOptionsRegistry)L._write(D.id,D.compute(S,L,w._read(D.id)));return L}static _deepEquals(w,S){if(typeof w!="object"||typeof S!="object"||!w||!S)return w===S;if(Array.isArray(w)||Array.isArray(S))return Array.isArray(w)&&Array.isArray(S)?k.equals(w,S):!1;if(Object.keys(w).length!==Object.keys(S).length)return!1;for(const L in w)if(!f._deepEquals(w[L],S[L]))return!1;return!0}static checkEquals(w,S){const L=[];let D=!1;for(const T of o.editorOptionsRegistry){const M=!f._deepEquals(w._read(T.id),S._read(T.id));L[T.id]=M,M&&(D=!0)}return D?new o.ConfigurationChangedEvent(L):null}static applyUpdate(w,S){let L=!1;for(const D of o.editorOptionsRegistry)if(S.hasOwnProperty(D.name)){const T=D.applyUpdate(w[D.name],S[D.name]);w[D.name]=T.newValue,L=L||T.didChange}return L}}function h(v){const w=y.deepClone(v);return(0,p.migrateOptions)(w),w}}),define(ne[687],se([1,0,6,53,2,60,225,22,3,24,28,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextKeyService=e.AbstractContextKeyService=e.Context=void 0,e.setContext=v;const o="data-keybinding-context";class t{constructor(L,D){this._id=L,this._parent=D,this._value=Object.create(null),this._value._contextId=L}get value(){return{...this._value}}setValue(L,D){return this._value[L]!==D?(this._value[L]=D,!0):!1}removeValue(L){return L in this._value?(delete this._value[L],!0):!1}getValue(L){const D=this._value[L];return typeof D>"u"&&this._parent?this._parent.getValue(L):D}}e.Context=t;class i extends t{static{this.INSTANCE=new i}constructor(){super(-1,null)}setValue(L,D){return!1}removeValue(L){return!1}getValue(L){}}class s extends t{static{this._keyPrefix="config."}constructor(L,D,T){super(L,null),this._configurationService=D,this._values=y.TernarySearchTree.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(M=>{if(M.source===7){const A=Array.from(this._values,([P])=>P);this._values.clear(),T.fire(new l(A))}else{const A=[];for(const P of M.affectedKeys){const N=`config.${P}`,O=this._values.findSuperstr(N);O!==void 0&&(A.push(...k.Iterable.map(O,([F])=>F)),this._values.deleteSuperstr(N)),this._values.has(N)&&(A.push(N),this._values.delete(N))}T.fire(new l(A))}})}dispose(){this._listener.dispose()}getValue(L){if(L.indexOf(s._keyPrefix)!==0)return super.getValue(L);if(this._values.has(L))return this._values.get(L);const D=L.substr(s._keyPrefix.length),T=this._configurationService.getValue(D);let M;switch(typeof T){case"number":case"boolean":case"string":M=T;break;default:Array.isArray(T)?M=JSON.stringify(T):M=T}return this._values.set(L,M),M}setValue(L,D){return super.setValue(L,D)}removeValue(L){return super.removeValue(L)}}class g{constructor(L,D,T){this._service=L,this._key=D,this._defaultValue=T,this.reset()}set(L){this._service.setContext(this._key,L)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class c{constructor(L){this.key=L}affectsSome(L){return L.has(this.key)}allKeysContainedIn(L){return this.affectsSome(L)}}class l{constructor(L){this.keys=L}affectsSome(L){for(const D of this.keys)if(L.has(D))return!0;return!1}allKeysContainedIn(L){return this.keys.every(D=>L.has(D))}}class a{constructor(L){this.events=L}affectsSome(L){for(const D of this.events)if(D.affectsSome(L))return!0;return!1}allKeysContainedIn(L){return this.events.every(D=>D.allKeysContainedIn(L))}}function r(S,L){return S.allKeysContainedIn(new Set(Object.keys(L)))}class u extends I.Disposable{constructor(L){super(),this._onDidChangeContext=this._register(new d.PauseableEmitter({merge:D=>new a(D)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=L}createKey(L,D){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new g(this,L,D)}bufferChangeEvents(L){this._onDidChangeContext.pause();try{L()}finally{this._onDidChangeContext.resume()}}createScoped(L){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new f(this,L)}contextMatchesRules(L){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const D=this.getContextValuesContainer(this._myContextId);return L?L.evaluate(D):!0}getContextKeyValue(L){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(L)}setContext(L,D){if(this._isDisposed)return;const T=this.getContextValuesContainer(this._myContextId);T&&T.setValue(L,D)&&this._onDidChangeContext.fire(new c(L))}removeContext(L){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(L)&&this._onDidChangeContext.fire(new c(L))}getContext(L){return this._isDisposed?i.INSTANCE:this.getContextValuesContainer(h(L))}dispose(){super.dispose(),this._isDisposed=!0}}e.AbstractContextKeyService=u;let C=class extends u{constructor(L){super(0),this._contexts=new Map,this._lastContextId=0;const D=this._register(new s(this._myContextId,L,this._onDidChangeContext));this._contexts.set(this._myContextId,D)}getContextValuesContainer(L){return this._isDisposed?i.INSTANCE:this._contexts.get(L)||i.INSTANCE}createChildContext(L=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const D=++this._lastContextId;return this._contexts.set(D,new t(D,this.getContextValuesContainer(L))),D}disposeContext(L){this._isDisposed||this._contexts.delete(L)}};e.ContextKeyService=C,e.ContextKeyService=C=ke([ce(0,p.IConfigurationService)],C);class f extends u{constructor(L,D){if(super(L.createChildContext()),this._parentChangeListener=this._register(new I.MutableDisposable),this._parent=L,this._updateParentChangeListener(),this._domNode=D,this._domNode.hasAttribute(o)){let T="";this._domNode.classList&&(T=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${T?": "+T:""}`)}this._domNode.setAttribute(o,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(L=>{const T=this._parent.getContextValuesContainer(this._myContextId).value;r(L,T)||this._onDidChangeContext.fire(L)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(o),super.dispose())}getContextValuesContainer(L){return this._isDisposed?i.INSTANCE:this._parent.getContextValuesContainer(L)}createChildContext(L=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(L)}disposeContext(L){this._isDisposed||this._parent.disposeContext(L)}}function h(S){for(;S;){if(S.hasAttribute(o)){const L=S.getAttribute(o);return L?parseInt(L,10):NaN}S=S.parentElement}return 0}function v(S,L,D){S.get(n.IContextKeyService).createKey(String(L),w(D))}function w(S){return(0,E.cloneAndChange)(S,L=>{if(typeof L=="object"&&L.$mid===1)return m.URI.revive(L).toString();if(L instanceof m.URI)return L.toString()})}b.CommandsRegistry.registerCommand("_setContext",v),b.CommandsRegistry.registerCommand({id:"getContextKeyInfo",handler(){return[...n.RawContextKey.all()].sort((S,L)=>S.key.localeCompare(L.key))},metadata:{description:(0,_.localize)(1513,"A command that returns information about context keys"),args:[]}}),b.CommandsRegistry.registerCommand("_generateContextKeyInfo",function(){const S=[],L=new Set;for(const D of n.RawContextKey.all())L.has(D.key)||(L.add(D.key),S.push(D));S.sort((D,T)=>D.key.localeCompare(T.key)),console.log(JSON.stringify(S,void 0,2))})}),define(ne[179],se([1,0,16,3,12]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InputFocusedContext=e.InputFocusedContextKey=e.ProductQualityContext=e.IsDevelopmentContext=e.IsMobileContext=e.IsIOSContext=e.IsMacNativeContext=e.IsWebContext=e.IsWindowsContext=e.IsLinuxContext=e.IsMacContext=void 0,e.IsMacContext=new I.RawContextKey("isMac",d.isMacintosh,(0,k.localize)(1523,"Whether the operating system is macOS")),e.IsLinuxContext=new I.RawContextKey("isLinux",d.isLinux,(0,k.localize)(1524,"Whether the operating system is Linux")),e.IsWindowsContext=new I.RawContextKey("isWindows",d.isWindows,(0,k.localize)(1525,"Whether the operating system is Windows")),e.IsWebContext=new I.RawContextKey("isWeb",d.isWeb,(0,k.localize)(1526,"Whether the platform is a web browser")),e.IsMacNativeContext=new I.RawContextKey("isMacNative",d.isMacintosh&&!d.isWeb,(0,k.localize)(1527,"Whether the operating system is macOS on a non-browser platform")),e.IsIOSContext=new I.RawContextKey("isIOS",d.isIOS,(0,k.localize)(1528,"Whether the operating system is iOS")),e.IsMobileContext=new I.RawContextKey("isMobile",d.isMobile,(0,k.localize)(1529,"Whether the platform is a mobile web browser")),e.IsDevelopmentContext=new I.RawContextKey("isDevelopment",!1,!0),e.ProductQualityContext=new I.RawContextKey("productQualityType","",(0,k.localize)(1530,"Quality type of VS Code")),e.InputFocusedContextKey="inputFocus",e.InputFocusedContext=new I.RawContextKey(e.InputFocusedContextKey,!1,(0,k.localize)(1531,"Whether keyboard focus is inside an input box"))}),define(ne[58],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IContextMenuService=e.IContextViewService=void 0,e.IContextViewService=(0,d.createDecorator)("contextViewService"),e.IContextMenuService=(0,d.createDecorator)("contextMenuService")}),define(ne[180],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IDialogService=void 0,e.IDialogService=(0,d.createDecorator)("dialogService")}),define(ne[271],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEnvironmentService=void 0,e.IEnvironmentService=(0,d.createDecorator)("environmentService")}),define(ne[118],se([1,0,7,2,28,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.nativeHoverDelegate=e.WorkbenchHoverDelegate=e.IHoverService=void 0,e.IHoverService=(0,d.createDecorator)("hoverService");let y=class extends k.Disposable{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(_,b,p={},n,o){super(),this.placement=_,this.instantHover=b,this.overrideOptions=p,this.configurationService=n,this.hoverService=o,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new k.DisposableStore),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(t=>{t.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(_,b){const p=typeof this.overrideOptions=="function"?this.overrideOptions(_,b):this.overrideOptions;this.hoverDisposables.clear();const n=(0,E.isHTMLElement)(_.target)?[_.target]:_.target.targetElements;for(const t of n)this.hoverDisposables.add((0,E.addStandardDisposableListener)(t,"keydown",i=>{i.equals(9)&&this.hoverService.hideHover()}));const o=(0,E.isHTMLElement)(_.content)?void 0:_.content.toString();return this.hoverService.showHover({..._,...p,persistence:{hideOnKeyDown:!0,...p.persistence},id:o,appearance:{..._.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...p.appearance}},b)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTimea):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,(0,I.dispose)(this._children),this._children.clear();for(const s of this._servicesToMaybeDispose)(0,I.isDisposable)(s)&&s.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(s,g){this._throwIfDisposed();const c=this,l=new class extends o{dispose(){c._children.delete(l),super.dispose()}}(s,this._strict,this,this._enableTracing);return this._children.add(l),g?.add(l),l}invokeFunction(s,...g){this._throwIfDisposed();const c=t.traceInvocation(this._enableTracing,s);let l=!1;try{return s({get:r=>{if(l)throw(0,k.illegalState)("service accessor is only valid during the invocation of its target method");const u=this._getOrCreateServiceInstance(r,c);if(!u)throw new Error(`[invokeFunction] unknown service '${r}'`);return u}},...g)}finally{l=!0,c.stop()}}createInstance(s,...g){this._throwIfDisposed();let c,l;return s instanceof E.SyncDescriptor?(c=t.traceCreation(this._enableTracing,s.ctor),l=this._createInstance(s.ctor,s.staticArguments.concat(g),c)):(c=t.traceCreation(this._enableTracing,s),l=this._createInstance(s,g,c)),c.stop(),l}_createInstance(s,g=[],c){const l=m._util.getServiceDependencies(s).sort((u,C)=>u.index-C.index),a=[];for(const u of l){const C=this._getOrCreateServiceInstance(u.id,c);C||this._throwIfStrict(`[createInstance] ${s.name} depends on UNKNOWN service ${u.id}.`,!1),a.push(C)}const r=l.length>0?l[0].index:g.length;if(g.length!==r){console.trace(`[createInstance] First service dependency of ${s.name} at position ${r+1} conflicts with ${g.length} static arguments`);const u=r-g.length;u>0?g=g.concat(new Array(u)):g=g.slice(0,r)}return Reflect.construct(s,g.concat(a))}_setCreatedServiceInstance(s,g){if(this._services.get(s)instanceof E.SyncDescriptor)this._services.set(s,g);else if(this._parent)this._parent._setCreatedServiceInstance(s,g);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(s){const g=this._services.get(s);return!g&&this._parent?this._parent._getServiceInstanceOrDescriptor(s):g}_getOrCreateServiceInstance(s,g){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(s));const c=this._getServiceInstanceOrDescriptor(s);return c instanceof E.SyncDescriptor?this._safeCreateAndCacheServiceInstance(s,c,g.branch(s,!0)):(g.branch(s,!1),c)}_safeCreateAndCacheServiceInstance(s,g,c){if(this._activeInstantiations.has(s))throw new Error(`illegal state - RECURSIVELY instantiating service '${s}'`);this._activeInstantiations.add(s);try{return this._createAndCacheServiceInstance(s,g,c)}finally{this._activeInstantiations.delete(s)}}_createAndCacheServiceInstance(s,g,c){const l=new y.Graph(C=>C.id.toString());let a=0;const r=[{id:s,desc:g,_trace:c}],u=new Set;for(;r.length;){const C=r.pop();if(!u.has(String(C.id))){if(u.add(String(C.id)),l.lookupOrInsertNode(C),a++>1e3)throw new n(l);for(const f of m._util.getServiceDependencies(C.desc.ctor)){const h=this._getServiceInstanceOrDescriptor(f.id);if(h||this._throwIfStrict(`[createInstance] ${s} depends on ${f.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(C.id),String(f.id)),h instanceof E.SyncDescriptor){const v={id:f.id,desc:h,_trace:C._trace.branch(f.id,!0)};l.insertEdge(C,v),r.push(v)}}}}for(;;){const C=l.roots();if(C.length===0){if(!l.isEmpty())throw new n(l);break}for(const{data:f}of C){if(this._getServiceInstanceOrDescriptor(f.id)instanceof E.SyncDescriptor){const v=this._createServiceInstanceWithOwner(f.id,f.desc.ctor,f.desc.staticArguments,f.desc.supportsDelayedInstantiation,f._trace);this._setCreatedServiceInstance(f.id,v)}l.removeNode(f)}}return this._getServiceInstanceOrDescriptor(s)}_createServiceInstanceWithOwner(s,g,c=[],l,a){if(this._services.get(s)instanceof E.SyncDescriptor)return this._createServiceInstance(s,g,c,l,a,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(s,g,c,l,a);throw new Error(`illegalState - creating UNKNOWN service instance ${g.name}`)}_createServiceInstance(s,g,c=[],l,a,r){if(l){const u=new o(void 0,this._strict,this,this._enableTracing);u._globalGraphImplicitDependency=String(s);const C=new Map,f=new d.GlobalIdleValue(()=>{const h=u._createInstance(g,c,a);for(const[v,w]of C){const S=h[v];if(typeof S=="function")for(const L of w)L.disposable=S.apply(h,L.listener)}return C.clear(),r.add(h),h});return new Proxy(Object.create(null),{get(h,v){if(!f.isInitialized&&typeof v=="string"&&(v.startsWith("onDid")||v.startsWith("onWill"))){let L=C.get(v);return L||(L=new b.LinkedList,C.set(v,L)),(T,M,A)=>{if(f.isInitialized)return f.value[v](T,M,A);{const P={listener:[T,M,A],disposable:void 0},N=L.push(P);return(0,I.toDisposable)(()=>{N(),P.disposable?.dispose()})}}}if(v in h)return h[v];const w=f.value;let S=w[v];return typeof S!="function"||(S=S.bind(w),h[v]=S),S},set(h,v,w){return f.value[v]=w,!0},getPrototypeOf(h){return g.prototype}})}else{const u=this._createInstance(g,c,a);return r.add(u),u}}_throwIfStrict(s,g){if(g&&console.warn(s),this._strict)throw new Error(s)}}e.InstantiationService=o;class t{static{this.all=new Set}static{this._None=new class extends t{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(s,g){return s?new t(2,g.name||new Error().stack.split(` -`).slice(3,4).join(` -`)):t._None}static traceCreation(s,g){return s?new t(1,g.name):t._None}static{this._totals=0}constructor(s,g){this.type=s,this.name=g,this._start=Date.now(),this._dep=[]}branch(s,g){const c=new t(3,s.toString());return this._dep.push([s,g,c]),c}stop(){const s=Date.now()-this._start;t._totals+=s;let g=!1;function c(a,r){const u=[],C=new Array(a+1).join(" ");for(const[f,h,v]of r._dep)if(h&&v){g=!0,u.push(`${C}CREATES -> ${f}`);const w=c(a+1,v);w&&u.push(w)}else u.push(`${C}uses -> ${f}`);return u.join(` -`)}const l=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${c(1,this)}`,`DONE, took ${s.toFixed(2)}ms (grand total ${t._totals.toFixed(2)}ms)`];(s>2||g)&&t.all.add(l.join(` -`))}}e.Trace=t}),define(ne[689],se([1,0,8,247,140]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseResolvedKeybinding=void 0;class E extends I.ResolvedKeybinding{constructor(m,_){if(super(),_.length===0)throw(0,d.illegalArgument)("chords");this._os=m,this._chords=_}getLabel(){return k.UILabelProvider.toLabel(this._os,this._chords,m=>this._getLabel(m))}getAriaLabel(){return k.AriaLabelProvider.toLabel(this._os,this._chords,m=>this._getAriaLabel(m))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:k.ElectronAcceleratorLabelProvider.toLabel(this._os,this._chords,m=>this._getElectronAccelerator(m))}getUserSettingsLabel(){return k.UserSettingsLabelProvider.toLabel(this._os,this._chords,m=>this._getUserSettingsLabel(m))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(m=>this._getChord(m))}_getChord(m){return new I.ResolvedChord(m.ctrlKey,m.shiftKey,m.altKey,m.metaKey,this._getLabel(m),this._getAriaLabel(m))}getDispatchChords(){return this._chords.map(m=>this._getChordDispatch(m))}getSingleModifierDispatchChords(){return this._chords.map(m=>this._getSingleModifierChordDispatch(m))}}e.BaseResolvedKeybinding=E}),define(ne[31],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IKeybindingService=void 0,e.IKeybindingService=(0,d.createDecorator)("keybindingService")}),define(ne[391],se([1,0,5,174,2,31]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorHoverStatusBar=void 0;const y=d.$;let m=class extends I.Disposable{get hasContent(){return this._hasContent}constructor(b){super(),this._keybindingService=b,this.actions=[],this._hasContent=!1,this.hoverElement=y("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=d.append(this.hoverElement,y("div.actions"))}addAction(b){const p=this._keybindingService.lookupKeybinding(b.commandId),n=p?p.getLabel():null;this._hasContent=!0;const o=this._register(k.HoverAction.render(this.actionsElement,b,n));return this.actions.push(o),o}append(b){const p=d.append(this.actionsElement,b);return this._hasContent=!0,p}};e.EditorHoverStatusBar=m,e.EditorHoverStatusBar=m=ke([ce(0,E.IKeybindingService)],m)}),define(ne[690],se([1,0,5,31,670,12,28,61,20,174,6]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverWidget=void 0;const o=30,t=6;let i=class extends I.ResizableContentWidget{static{n=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new d.Dimension(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===1}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(c,l,a,r,u){const C=c.getOption(67)+8,f=150,h=new d.Dimension(f,C);super(c,h),this._configurationService=a,this._accessibilityService=r,this._keybindingService=u,this._hover=this._register(new b.HoverWidget),this._onDidResize=this._register(new p.Emitter),this.onDidResize=this._onDidResize.event,this._minimumSize=h,this._hoverVisibleKey=_.EditorContextKeys.hoverVisible.bindTo(l),this._hoverFocusedKey=_.EditorContextKeys.hoverFocused.bindTo(l),d.append(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(w=>{w.hasChanged(50)&&this._updateFont()}));const v=this._register(d.trackFocus(this._resizableNode.domNode));this._register(v.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(v.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return n.ID}static _applyDimensions(c,l,a){const r=typeof l=="number"?`${l}px`:l,u=typeof a=="number"?`${a}px`:a;c.style.width=r,c.style.height=u}_setContentsDomNodeDimensions(c,l){const a=this._hover.contentsDomNode;return n._applyDimensions(a,c,l)}_setContainerDomNodeDimensions(c,l){const a=this._hover.containerDomNode;return n._applyDimensions(a,c,l)}_setHoverWidgetDimensions(c,l){this._setContentsDomNodeDimensions(c,l),this._setContainerDomNodeDimensions(c,l),this._layoutContentWidget()}static _applyMaxDimensions(c,l,a){const r=typeof l=="number"?`${l}px`:l,u=typeof a=="number"?`${a}px`:a;c.style.maxWidth=r,c.style.maxHeight=u}_setHoverWidgetMaxDimensions(c,l){n._applyMaxDimensions(this._hover.contentsDomNode,c,l),n._applyMaxDimensions(this._hover.containerDomNode,c,l),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof c=="number"?`${c}px`:c),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(c){this._setHoverWidgetMaxDimensions("none","none");const l=c.width,a=c.height;this._setHoverWidgetDimensions(l,a)}_updateResizableNodeMaxDimensions(){const c=this._findMaximumRenderingWidth()??1/0,l=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new d.Dimension(c,l),this._setHoverWidgetMaxDimensions(c,l)}_resize(c){n._lastDimensions=new d.Dimension(c.width,c.height),this._setAdjustedHoverWidgetDimensions(c),this._resizableNode.layout(c.height,c.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){const c=this._renderedHover?.showAtPosition;if(c)return this._positionPreference===1?this._availableVerticalSpaceAbove(c):this._availableVerticalSpaceBelow(c)}_findMaximumRenderingHeight(){const c=this._findAvailableSpaceVertically();if(!c)return;let l=t;return Array.from(this._hover.contentsDomNode.children).forEach(a=>{l+=a.clientHeight}),Math.min(c,l)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const c=Array.from(this._hover.contentsDomNode.children).some(l=>l.scrollWidth>l.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),c}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const c=this._isHoverTextOverflowing(),l=typeof this._contentWidth>"u"?0:this._contentWidth-2;return c||this._hover.containerDomNode.clientWidththis._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,r),!0)}_setRenderedHover(c){this._renderedHover?.dispose(),this._renderedHover=c,this._hoverVisibleKey.set(!!c),this._hover.containerDomNode.classList.toggle("hidden",!c)}_updateFont(){const{fontSize:c,lineHeight:l}=this._editor.getOption(50),a=this._hover.contentsDomNode;a.style.fontSize=`${c}px`,a.style.lineHeight=`${l/c}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(u=>this._editor.applyFontInfo(u))}_updateContent(c){const l=this._hover.contentsDomNode;l.style.paddingBottom="",l.textContent="",l.appendChild(c)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const c=Math.max(this._editor.getLayoutInfo().height/4,250,n._lastDimensions.height),l=Math.max(this._editor.getLayoutInfo().width*.66,500,n._lastDimensions.width);this._setHoverWidgetMaxDimensions(l,c)}_render(c){this._setRenderedHover(c),this._updateFont(),this._updateContent(c.domNode),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(c){if(!this._editor||!this._editor.hasModel())return;this._render(c);const l=d.getTotalHeight(this._hover.containerDomNode),a=c.showAtPosition;this._positionPreference=this._findPositionPreference(l,a)??1,this.onContentsChanged(),c.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const u=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(0,b.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");u&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+u)}hide(){if(!this._renderedHover)return;const c=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new d.Dimension(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),c&&this._editor.focus()}_removeConstraintsRenderNormally(){const c=this._editor.getLayoutInfo();this._resizableNode.layout(c.height,c.width),this._setHoverWidgetDimensions("auto","auto")}setMinimumDimensions(c){this._minimumSize=new d.Dimension(Math.max(this._minimumSize.width,c.width),Math.max(this._minimumSize.height,c.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const c=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new d.Dimension(c,this._minimumSize.height)}onContentsChanged(){this._removeConstraintsRenderNormally();const c=this._hover.containerDomNode;let l=d.getTotalHeight(c),a=d.getTotalWidth(c);if(this._resizableNode.layout(l,a),this._setHoverWidgetDimensions(a,l),l=d.getTotalHeight(c),a=d.getTotalWidth(c),this._contentWidth=a,this._updateMinimumWidth(),this._resizableNode.layout(l,a),this._renderedHover?.showAtPosition){const r=d.getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(r,this._renderedHover.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:c-l.lineHeight})}scrollDown(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:c+l.lineHeight})}scrollLeft(){const c=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:c-o})}scrollRight(){const c=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:c+o})}pageUp(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:c-l})}pageDown(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:c+l})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};e.ContentHoverWidget=i,e.ContentHoverWidget=i=n=ke([ce(1,E.IContextKeyService),ce(2,y.IConfigurationService),ce(3,m.IAccessibilityService),ce(4,k.IKeybindingService)],i);function s(g,c,l,a,r,u){const C=l+r/2,f=a+u/2,h=Math.max(Math.abs(g-C)-r/2,0),v=Math.max(Math.abs(c-f)-u/2,0);return Math.sqrt(h*h+v*v)}}),define(ne[392],se([1,0,12]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeybindingResolver=e.NoMatchingKb=void 0,e.NoMatchingKb={kind:0};const k={kind:1};function I(_,b,p){return{kind:2,commandId:_,commandArgs:b,isBubble:p}}class E{constructor(b,p,n){this._log=n,this._defaultKeybindings=b,this._defaultBoundCommands=new Map;for(const o of b){const t=o.command;t&&t.charAt(0)!=="-"&&this._defaultBoundCommands.set(t,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=E.handleRemovals([].concat(b).concat(p));for(let o=0,t=this._keybindings.length;o"u"){this._map.set(b,[p]),this._addToLookupMap(p);return}for(let o=n.length-1;o>=0;o--){const t=n[o];if(t.command===p.command)continue;let i=!0;for(let s=1;s"u"?(p=[b],this._lookupMap.set(b.command,p)):p.push(b)}_removeFromLookupMap(b){if(!b.command)return;const p=this._lookupMap.get(b.command);if(!(typeof p>"u")){for(let n=0,o=p.length;n"u"||n.length===0)return null;if(n.length===1)return n[0];for(let o=n.length-1;o>=0;o--){const t=n[o];if(p.contextMatchesRules(t.when))return t}return n[n.length-1]}resolve(b,p,n){const o=[...p,n];this._log(`| Resolving ${o}`);const t=this._map.get(o[0]);if(t===void 0)return this._log("\\ No keybinding entries."),e.NoMatchingKb;let i=null;if(o.length<2)i=t;else{i=[];for(let g=0,c=t.length;gl.chords.length)continue;let a=!0;for(let r=1;r=0;n--){const o=p[n];if(E._contextMatchesRules(b,o.when))return o}return null}static _contextMatchesRules(b,p){return p?p.evaluate(b):!0}}e.KeybindingResolver=E;function y(_){return _?`${_.serialize()}`:"no when condition"}function m(_){return _.extensionId?_.isBuiltinExtension?`built-in extension ${_.extensionId}`:`user extension ${_.extensionId}`:_.isDefault?"built-in":"user"}}),define(ne[691],se([1,0,14,8,6,300,2,3,392]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractKeybindingService=void 0;const b=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class p extends y.Disposable{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:I.Event.None}get inChordMode(){return this._currentChords.length>0}constructor(t,i,s,g,c){super(),this._contextKeyService=t,this._commandService=i,this._telemetryService=s,this._notificationService=g,this._logService=c,this._onDidUpdateKeybindings=this._register(new I.Emitter),this._currentChords=[],this._currentChordChecker=new d.IntervalTimer,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new d.TimeoutTimer,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(t){this._logging&&this._logService.info(`[KeybindingService]: ${t}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(t,i){const s=this._getResolver().lookupPrimaryKeybinding(t,i||this._contextKeyService);if(s)return s.resolvedKeybinding}dispatchEvent(t,i){return this._dispatch(t,i)}softDispatch(t,i){this._log("/ Soft dispatching keyboard event");const s=this.resolveKeyboardEvent(t);if(s.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),_.NoMatchingKb;const[g]=s.getDispatchChords();if(g===null)return this._log("\\ Keyboard event cannot be dispatched"),_.NoMatchingKb;const c=this._contextKeyService.getContext(i),l=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(c,l,g)}_scheduleLeaveChordMode(){const t=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-t>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(t,i){switch(this._currentChords.push({keypress:t,label:i}),this._currentChords.length){case 0:throw(0,k.illegalState)("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(m.localize(1538,"({0}) was pressed. Waiting for second key of chord...",i));break;default:{const s=this._currentChords.map(({label:g})=>g).join(", ");this._currentChordStatusMessage=this._notificationService.status(m.localize(1539,"({0}) was pressed. Waiting for next key of chord...",s))}}this._scheduleLeaveChordMode(),E.IME.enabled&&E.IME.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],E.IME.enable()}_dispatch(t,i){return this._doDispatch(this.resolveKeyboardEvent(t),i,!1)}_singleModifierDispatch(t,i){const s=this.resolveKeyboardEvent(t),[g]=s.getSingleModifierDispatchChords();if(g)return this._ignoreSingleModifiers.has(g)?(this._log(`+ Ignoring single modifier ${g} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${g}.`),this._currentSingleModifier=g,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):g===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${g} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(s,i,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[c]=s.getChords();return this._ignoreSingleModifiers=new n(c),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(t,i,s=!1){let g=!1;if(t.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let c=null,l=null;if(s){const[C]=t.getSingleModifierDispatchChords();c=C,l=C?[C]:[]}else[c]=t.getDispatchChords(),l=this._currentChords.map(({keypress:C})=>C);if(c===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),g;const a=this._contextKeyService.getContext(i),r=t.getLabel(),u=this._getResolver().resolve(a,l,c);switch(u.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",r,"[ No matching keybinding ]"),this.inChordMode){const C=this._currentChords.map(({label:f})=>f).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${C}, ${r}".`),this._notificationService.status(m.localize(1540,"The key combination ({0}, {1}) is not a command.",C,r),{hideAfter:10*1e3}),this._leaveChordMode(),g=!0}return g}case 1:return this._logService.trace("KeybindingService#dispatch",r,"[ Several keybindings match - more chords needed ]"),g=!0,this._expectAnotherChord(c,r),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),g;case 2:{if(this._logService.trace("KeybindingService#dispatch",r,`[ Will dispatch command ${u.commandId} ]`),u.commandId===null||u.commandId===""){if(this.inChordMode){const C=this._currentChords.map(({label:f})=>f).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${C}, ${r}".`),this._notificationService.status(m.localize(1541,"The key combination ({0}, {1}) is not a command.",C,r),{hideAfter:10*1e3}),this._leaveChordMode(),g=!0}}else{this.inChordMode&&this._leaveChordMode(),u.isBubble||(g=!0),this._log(`+ Invoking command ${u.commandId}.`),this._currentlyDispatchingCommandId=u.commandId;try{typeof u.commandArgs>"u"?this._commandService.executeCommand(u.commandId).then(void 0,C=>this._notificationService.warn(C)):this._commandService.executeCommand(u.commandId,u.commandArgs).then(void 0,C=>this._notificationService.warn(C))}finally{this._currentlyDispatchingCommandId=null}b.test(u.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:u.commandId,from:"keybinding",detail:t.getUserSettingsLabel()??void 0})}return g}}}mightProducePrintableCharacter(t){return t.ctrlKey||t.metaKey?!1:t.keyCode>=31&&t.keyCode<=56||t.keyCode>=21&&t.keyCode<=30}}e.AbstractKeybindingService=p;class n{static{this.EMPTY=new n(null)}constructor(t){this._ctrlKey=t?t.ctrlKey:!1,this._shiftKey=t?t.shiftKey:!1,this._altKey=t?t.altKey:!1,this._metaKey=t?t.metaKey:!1}has(t){switch(t){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}}),define(ne[393],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedKeybindingItem=void 0,e.toEmptyArrayIfContainsNull=k;class d{constructor(E,y,m,_,b,p,n){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=E,this.chords=E?k(E.getDispatchChords()):[],E&&this.chords.length===0&&(this.chords=k(E.getSingleModifierDispatchChords())),this.bubble=y?y.charCodeAt(0)===94:!1,this.command=this.bubble?y.substr(1):y,this.commandArgs=m,this.when=_,this.isDefault=b,this.extensionId=p,this.isBuiltinExtension=n}}e.ResolvedKeybindingItem=d;function k(I){const E=[];for(let y=0,m=I.length;ythis._toKeyCodeChord(n)));return p.length>0?[new y(p,b)]:[]}}e.USLayoutResolvedKeybinding=y}),define(ne[181],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILabelService=void 0,e.ILabelService=(0,d.createDecorator)("labelService")}),define(ne[119],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILayoutService=void 0,e.ILayoutService=(0,d.createDecorator)("layoutService")}),define(ne[394],se([1,0,5,52,13,6,34,49,119]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScopedLayoutService=void 0;let b=class{get mainContainer(){return(0,I.firstOrDefault)(this._codeEditorService.listCodeEditors())?.getContainerDomNode()??k.mainWindow.document.body}get activeContainer(){return(this._codeEditorService.getFocusedCodeEditor()??this._codeEditorService.getActiveCodeEditor())?.getContainerDomNode()??this.mainContainer}get mainContainerDimension(){return d.getClientArea(this.mainContainer)}get activeContainerDimension(){return d.getClientArea(this.activeContainer)}get containers(){return(0,I.coalesce)(this._codeEditorService.listCodeEditors().map(o=>o.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){this._codeEditorService.getFocusedCodeEditor()?.focus()}constructor(o){this._codeEditorService=o,this.onDidLayoutMainContainer=E.Event.None,this.onDidLayoutActiveContainer=E.Event.None,this.onDidLayoutContainer=E.Event.None,this.onDidChangeActiveContainer=E.Event.None,this.onDidAddContainer=E.Event.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};b=ke([ce(0,y.ICodeEditorService)],b);let p=class extends b{get mainContainer(){return this._container}constructor(o,t){super(t),this._container=o}};e.EditorScopedLayoutService=p,e.EditorScopedLayoutService=p=ke([ce(1,y.ICodeEditorService)],p),(0,m.registerSingleton)(_.ILayoutService,b,1)}),define(ne[693],se([1,0,5,52,6,2,61,28,12,119]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityService=void 0;let p=class extends E.Disposable{constructor(o,t,i){super(),this._contextKeyService=o,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new I.Emitter,this._onDidChangeReducedMotion=new I.Emitter,this._onDidChangeLinkUnderline=new I.Emitter,this._accessibilityModeEnabledContext=y.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(c=>{c.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),c.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const g=k.mainWindow.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=g.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(g),this.initLinkUnderlineListeners()}initReducedMotionListeners(o){this._register((0,d.addDisposableListener)(o,"change",()=>{this._systemMotionReduced=o.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",i),this._layoutService.mainContainer.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(t=>{if(t.affectsConfiguration("accessibility.underlineLinks")){const i=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=i,this._onDidChangeLinkUnderline.fire()}}));const o=()=>{const t=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",t)};o(),this._register(this.onDidChangeLinkUnderlines(()=>o()))}onDidChangeLinkUnderlines(o){return this._onDidChangeLinkUnderline.event(o)}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const o=this._configurationService.getValue("editor.accessibilitySupport");return o==="on"||o==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const o=this._configMotionReduced;return o==="on"||o==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};e.AccessibilityService=p,e.AccessibilityService=p=ke([ce(0,_.IContextKeyService),ce(1,b.ILayoutService),ce(2,m.IConfigurationService)],p)}),define(ne[395],se([1,0,353,2,119,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextViewService=e.ContextViewHandler=void 0;let y=class extends k.Disposable{constructor(b){super(),this.layoutService=b,this.contextView=this._register(new d.ContextView(this.layoutService.mainContainer,1)),this.layout(),this._register(b.onDidLayoutContainer(()=>this.layout()))}showContextView(b,p,n){let o;p?p===this.layoutService.getContainer((0,E.getWindow)(p))?o=1:n?o=3:o=2:o=1,this.contextView.setContainer(p??this.layoutService.activeContainer,o),this.contextView.show(b);const t={close:()=>{this.openContextView===t&&this.hideContextView()}};return this.openContextView=t,t}layout(){this.contextView.layout()}hideContextView(b){this.contextView.hide(b),this.openContextView=void 0}};e.ContextViewHandler=y,e.ContextViewHandler=y=ke([ce(0,I.ILayoutService)],y);class m extends y{getContextViewElement(){return this.contextView.getViewElement()}}e.ContextViewService=m}),define(ne[62],se([1,0,6,2,12,7]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_LOG_LEVEL=e.MultiplexLogger=e.ConsoleLogger=e.AbstractLogger=e.DEFAULT_LOG_LEVEL=e.LogLevel=e.ILogService=void 0,e.LogLevelToString=p,e.ILogService=(0,E.createDecorator)("logService");var y;(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(y||(e.LogLevel=y={})),e.DEFAULT_LOG_LEVEL=y.Info;class m extends k.Disposable{constructor(){super(...arguments),this.level=e.DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new d.Emitter),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(o){this.level!==o&&(this.level=o,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(o){return this.level!==y.Off&&this.level<=o}}e.AbstractLogger=m;class _ extends m{constructor(o=e.DEFAULT_LOG_LEVEL,t=!0){super(),this.useColors=t,this.setLevel(o)}trace(o,...t){this.checkLogLevel(y.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",o,...t):console.log(o,...t))}debug(o,...t){this.checkLogLevel(y.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",o,...t):console.log(o,...t))}info(o,...t){this.checkLogLevel(y.Info)&&(this.useColors?console.log("%c INFO","color: #33f",o,...t):console.log(o,...t))}warn(o,...t){this.checkLogLevel(y.Warning)&&(this.useColors?console.log("%c WARN","color: #993",o,...t):console.log(o,...t))}error(o,...t){this.checkLogLevel(y.Error)&&(this.useColors?console.log("%c ERR","color: #f33",o,...t):console.error(o,...t))}}e.ConsoleLogger=_;class b extends m{constructor(o){super(),this.loggers=o,o.length&&this.setLevel(o[0].getLevel())}setLevel(o){for(const t of this.loggers)t.setLevel(o);super.setLevel(o)}trace(o,...t){for(const i of this.loggers)i.trace(o,...t)}debug(o,...t){for(const i of this.loggers)i.debug(o,...t)}info(o,...t){for(const i of this.loggers)i.info(o,...t)}warn(o,...t){for(const i of this.loggers)i.warn(o,...t)}error(o,...t){for(const i of this.loggers)i.error(o,...t)}dispose(){for(const o of this.loggers)o.dispose();super.dispose()}}e.MultiplexLogger=b;function p(n){switch(n){case y.Trace:return"trace";case y.Debug:return"debug";case y.Info:return"info";case y.Warning:return"warn";case y.Error:return"error";case y.Off:return"off"}}e.CONTEXT_LOG_LEVEL=new I.RawContextKey("logLevel",p(y.Info))}),define(ne[212],se([1,0,64,5,93,47,296,14,6,2,128,11,310,23,61,62]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaWrapper=e.ClipboardEventUtils=e.TextAreaInput=e.InMemoryClipboardMetadataManager=e.CopyOptions=e.TextAreaSyntethicEvents=void 0;var g;(function(u){u.Tap="-monaco-textarea-synthetic-tap"})(g||(e.TextAreaSyntethicEvents=g={})),e.CopyOptions={forceCopyWithSyntaxHighlighting:!1};class c{static{this.INSTANCE=new c}constructor(){this._lastState=null}set(C,f){this._lastState={lastCopiedValue:C,data:f}}get(C){return this._lastState&&this._lastState.lastCopiedValue===C?this._lastState.data:(this._lastState=null,null)}}e.InMemoryClipboardMetadataManager=c;class l{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(C){C=C||"";const f={text:C,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=C.length,f}}let a=class extends b.Disposable{get textAreaState(){return this._textAreaState}constructor(C,f,h,v,w,S){super(),this._host=C,this._textArea=f,this._OS=h,this._browser=v,this._accessibilityService=w,this._logService=S,this._onFocus=this._register(new _.Emitter),this.onFocus=this._onFocus.event,this._onBlur=this._register(new _.Emitter),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new _.Emitter),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new _.Emitter),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new _.Emitter),this.onCut=this._onCut.event,this._onPaste=this._register(new _.Emitter),this.onPaste=this._onPaste.event,this._onType=this._register(new _.Emitter),this.onType=this._onType.event,this._onCompositionStart=this._register(new _.Emitter),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new _.Emitter),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new _.Emitter),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new _.Emitter),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new b.MutableDisposable),this._asyncTriggerCut=this._register(new m.RunOnceScheduler(()=>this._onCut.fire(),0)),this._textAreaState=o.TextAreaState.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(_.Event.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new m.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let L=null;this._register(this._textArea.onKeyDown(D=>{const T=new E.StandardKeyboardEvent(D);(T.keyCode===114||this._currentComposition&&T.keyCode===1)&&T.stopPropagation(),T.equals(9)&&T.preventDefault(),L=T,this._onKeyDown.fire(T)})),this._register(this._textArea.onKeyUp(D=>{const T=new E.StandardKeyboardEvent(D);this._onKeyUp.fire(T)})),this._register(this._textArea.onCompositionStart(D=>{o._debugComposition&&console.log("[compositionstart]",D);const T=new l;if(this._currentComposition){this._currentComposition=T;return}if(this._currentComposition=T,this._OS===2&&L&&L.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===D.data&&(L.code==="ArrowRight"||L.code==="ArrowLeft")){o._debugComposition&&console.log("[compositionstart] Handling long press case on macOS + arrow key",D),T.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:D.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:D.data});return}this._onCompositionStart.fire({data:D.data})})),this._register(this._textArea.onCompositionUpdate(D=>{o._debugComposition&&console.log("[compositionupdate]",D);const T=this._currentComposition;if(!T)return;if(this._browser.isAndroid){const A=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),P=o.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,A);this._textAreaState=A,this._onType.fire(P),this._onCompositionUpdate.fire(D);return}const M=T.handleCompositionUpdate(D.data);this._textAreaState=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(M),this._onCompositionUpdate.fire(D)})),this._register(this._textArea.onCompositionEnd(D=>{o._debugComposition&&console.log("[compositionend]",D);const T=this._currentComposition;if(!T)return;if(this._currentComposition=null,this._browser.isAndroid){const A=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),P=o.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,A);this._textAreaState=A,this._onType.fire(P),this._onCompositionEnd.fire();return}const M=T.handleCompositionUpdate(D.data);this._textAreaState=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(M),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(D=>{if(o._debugComposition&&console.log("[input]",D),this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const T=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),M=o.TextAreaState.deduceInput(this._textAreaState,T,this._OS===2);M.replacePrevCharCnt===0&&M.text.length===1&&(n.isHighSurrogate(M.text.charCodeAt(0))||M.text.charCodeAt(0)===127)||(this._textAreaState=T,(M.text!==""||M.replacePrevCharCnt!==0||M.replaceNextCharCnt!==0||M.positionDelta!==0)&&this._onType.fire(M))})),this._register(this._textArea.onCut(D=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(D),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(D=>{this._ensureClipboardGetsEditorSelection(D)})),this._register(this._textArea.onPaste(D=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),D.preventDefault(),!D.clipboardData)return;let[T,M]=e.ClipboardEventUtils.getTextData(D.clipboardData);T&&(M=M||c.INSTANCE.get(T),this._onPaste.fire({text:T,metadata:M}))})),this._register(this._textArea.onFocus(()=>{const D=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!D&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new m.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let C=0;return k.addDisposableListener(this._textArea.ownerDocument,"selectionchange",f=>{if(y.inputLatency.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const h=Date.now(),v=h-C;if(C=h,v<5)return;const w=h-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),w<100||!this._textAreaState.selection)return;const S=this._textArea.getValue();if(this._textAreaState.value!==S)return;const L=this._textArea.getSelectionStart(),D=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===L&&this._textAreaState.selectionEnd===D)return;const T=this._textAreaState.deduceEditorPosition(L),M=this._host.deduceModelPosition(T[0],T[1],T[2]),A=this._textAreaState.deduceEditorPosition(D),P=this._host.deduceModelPosition(A[0],A[1],A[2]),N=new t.Selection(M.lineNumber,M.column,P.lineNumber,P.column);this._onSelectionChangeRequest.fire(N)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(C){this._hasFocus!==C&&(this._hasFocus=C,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(C,f){this._hasFocus||(f=f.collapseSelection()),f.writeToTextArea(C,this._textArea,this._hasFocus),this._textAreaState=f}writeNativeTextAreaContent(C){!this._accessibilityService.isScreenReaderOptimized()&&C==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${C})`),this._setAndWriteTextAreaState(C,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(C){const f=this._host.getDataToCopy(),h={version:1,isFromEmptySelection:f.isFromEmptySelection,multicursorText:f.multicursorText,mode:f.mode};c.INSTANCE.set(this._browser.isFirefox?f.text.replace(/\r\n/g,` -`):f.text,h),C.preventDefault(),C.clipboardData&&e.ClipboardEventUtils.setTextData(C.clipboardData,f.text,f.html,h)}};e.TextAreaInput=a,e.TextAreaInput=a=ke([ce(4,i.IAccessibilityService),ce(5,s.ILogService)],a),e.ClipboardEventUtils={getTextData(u){const C=u.getData(p.Mimes.text);let f=null;const h=u.getData("vscode-editor-data");if(typeof h=="string")try{f=JSON.parse(h),f.version!==1&&(f=null)}catch{}return C.length===0&&f===null&&u.files.length>0?[Array.prototype.slice.call(u.files,0).map(w=>w.name).join(` -`),null]:[C,f]},setTextData(u,C,f,h){u.setData(p.Mimes.text,C),typeof f=="string"&&u.setData("text/html",f),u.setData("vscode-editor-data",JSON.stringify(h))}};class r extends b.Disposable{get ownerDocument(){return this._actual.ownerDocument}constructor(C){super(),this._actual=C,this.onKeyDown=this._register(new I.DomEmitter(this._actual,"keydown")).event,this.onKeyUp=this._register(new I.DomEmitter(this._actual,"keyup")).event,this.onCompositionStart=this._register(new I.DomEmitter(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new I.DomEmitter(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new I.DomEmitter(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new I.DomEmitter(this._actual,"beforeinput")).event,this.onInput=this._register(new I.DomEmitter(this._actual,"input")).event,this.onCut=this._register(new I.DomEmitter(this._actual,"cut")).event,this.onCopy=this._register(new I.DomEmitter(this._actual,"copy")).event,this.onPaste=this._register(new I.DomEmitter(this._actual,"paste")).event,this.onFocus=this._register(new I.DomEmitter(this._actual,"focus")).event,this.onBlur=this._register(new I.DomEmitter(this._actual,"blur")).event,this._onSyntheticTap=this._register(new _.Emitter),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>y.inputLatency.onKeyDown())),this._register(this.onBeforeInput(()=>y.inputLatency.onBeforeInput())),this._register(this.onInput(()=>y.inputLatency.onInput())),this._register(this.onKeyUp(()=>y.inputLatency.onKeyUp())),this._register(k.addDisposableListener(this._actual,g.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const C=k.getShadowRoot(this._actual);return C?C.activeElement===this._actual:this._actual.isConnected?k.getActiveElement()===this._actual:!1}setIgnoreSelectionChangeTime(C){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(C,f){const h=this._actual;h.value!==f&&(this.setIgnoreSelectionChangeTime("setValue"),h.value=f)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(C,f,h){const v=this._actual;let w=null;const S=k.getShadowRoot(v);S?w=S.activeElement:w=k.getActiveElement();const L=k.getWindow(w),D=w===v,T=v.selectionStart,M=v.selectionEnd;if(D&&T===f&&M===h){d.isFirefox&&L.parent!==L&&v.focus();return}if(D){this.setIgnoreSelectionChangeTime("setSelectionRange"),v.setSelectionRange(f,h),d.isFirefox&&L.parent!==L&&v.focus();return}try{const A=k.saveParentsScrollTop(v);this.setIgnoreSelectionChangeTime("setSelectionRange"),v.focus(),v.setSelectionRange(f,h),k.restoreParentsScrollTop(v,A)}catch{}}}e.TextAreaWrapper=r}),define(ne[79],se([1,0,129,45,141,271,49,7,62,42]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureDebounceService=e.ILanguageFeatureDebounceService=void 0,e.ILanguageFeatureDebounceService=(0,m.createDecorator)("ILanguageFeatureDebounceService");var p;(function(i){const s=new WeakMap;let g=0;function c(l){let a=s.get(l);return a===void 0&&(a=++g,s.set(l,a)),a}i.of=c})(p||(p={}));class n{constructor(s){this._default=s}get(s){return this._default}update(s,g){return this._default}default(){return this._default}}class o{constructor(s,g,c,l,a,r){this._logService=s,this._name=g,this._registry=c,this._default=l,this._min=a,this._max=r,this._cache=new k.LRUCache(50,.7)}_key(s){return s.id+this._registry.all(s).reduce((g,c)=>(0,d.doHash)(p.of(c),g),0)}get(s){const g=this._key(s),c=this._cache.get(g);return c?(0,I.clamp)(c.value,this._min,this._max):this.default()}update(s,g){const c=this._key(s);let l=this._cache.get(c);l||(l=new I.SlidingWindowAverage(6),this._cache.set(c,l));const a=(0,I.clamp)(l.update(g),this._min,this._max);return(0,b.matchesScheme)(s.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${s.uri.toString()} is ${a}ms`),a}_overall(){const s=new I.MovingAverage;for(const[,g]of this._cache)s.update(g.value);return s.value}default(){const s=this._overall()|0||this._default;return(0,I.clamp)(s,this._min,this._max)}}let t=class{constructor(s,g){this._logService=s,this._data=new Map,this._isDev=g.isExtensionDevelopment||!g.isBuilt}for(s,g,c){const l=c?.min??50,a=c?.max??l**2,r=c?.key??void 0,u=`${p.of(s)},${l}${r?","+r:""}`;let C=this._data.get(u);return C||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${g}] is disabled in developed mode`),C=new n(l*1.5)):C=new o(this._logService,g,s,this._overallAverage()|0||l*1.5,l,a),this._data.set(u,C)),C}_overallAverage(){const s=new I.MovingAverage;for(const g of this._data.values())s.update(g.default());return s.value}};e.LanguageFeatureDebounceService=t,e.LanguageFeatureDebounceService=t=ke([ce(0,_.ILogService),ce(1,E.IEnvironmentService)],t),(0,y.registerSingleton)(e.ILanguageFeatureDebounceService,t,1)}),define(ne[182],se([1,0,13,18,8,53,45,9,4,79,7,49,51,2,17]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OutlineModelService=e.IOutlineModelService=e.OutlineModel=e.OutlineGroup=e.OutlineElement=e.TreeElement=void 0;class s{remove(){this.parent?.children.delete(this.id)}static findId(u,C){let f;typeof u=="string"?f=`${C.id}/${u}`:(f=`${C.id}/${u.name}`,C.children.get(f)!==void 0&&(f=`${C.id}/${u.name}_${u.range.startLineNumber}_${u.range.startColumn}`));let h=f;for(let v=0;C.children.get(h)!==void 0;v++)h=`${f}_${v}`;return h}static empty(u){return u.children.size===0}}e.TreeElement=s;class g extends s{constructor(u,C,f){super(),this.id=u,this.parent=C,this.symbol=f,this.children=new Map}}e.OutlineElement=g;class c extends s{constructor(u,C,f,h){super(),this.id=u,this.parent=C,this.label=f,this.order=h,this.children=new Map}}e.OutlineGroup=c;class l extends s{static create(u,C,f){const h=new k.CancellationTokenSource(f),v=new l(C.uri),w=u.ordered(C),S=w.map((D,T)=>{const M=s.findId(`provider_${T}`,v),A=new c(M,v,D.displayName??"Unknown Outline Provider",T);return Promise.resolve(D.provideDocumentSymbols(C,h.token)).then(P=>{for(const N of P||[])l._makeOutlineElement(N,A);return A},P=>((0,I.onUnexpectedExternalError)(P),A)).then(P=>{s.empty(P)?P.remove():v._groups.set(M,P)})}),L=u.onDidChange(()=>{const D=u.ordered(C);(0,d.equals)(D,w)||h.cancel()});return Promise.all(S).then(()=>h.token.isCancellationRequested&&!f.isCancellationRequested?l.create(u,C,f):v._compact()).finally(()=>{h.dispose(),L.dispose(),h.dispose()})}static _makeOutlineElement(u,C){const f=s.findId(u,C),h=new g(f,C,u);if(u.children)for(const v of u.children)l._makeOutlineElement(v,h);C.children.set(h.id,h)}constructor(u){super(),this.uri=u,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let u=0;for(const[C,f]of this._groups)f.children.size===0?this._groups.delete(C):u+=1;if(u!==1)this.children=this._groups;else{const C=E.Iterable.first(this._groups.values());for(const[,f]of C.children)f.parent=this,this.children.set(f.id,f)}return this}getTopLevelSymbols(){const u=[];for(const C of this.children.values())C instanceof g?u.push(C.symbol):u.push(...E.Iterable.map(C.children.values(),f=>f.symbol));return u.sort((C,f)=>_.Range.compareRangesUsingStarts(C.range,f.range))}asListOfDocumentSymbols(){const u=this.getTopLevelSymbols(),C=[];return l._flattenDocumentSymbols(C,u,""),C.sort((f,h)=>m.Position.compare(_.Range.getStartPosition(f.range),_.Range.getStartPosition(h.range))||m.Position.compare(_.Range.getEndPosition(h.range),_.Range.getEndPosition(f.range)))}static _flattenDocumentSymbols(u,C,f){for(const h of C)u.push({kind:h.kind,tags:h.tags,name:h.name,detail:h.detail,containerName:h.containerName||f,range:h.range,selectionRange:h.selectionRange,children:void 0}),h.children&&l._flattenDocumentSymbols(u,h.children,h.name)}}e.OutlineModel=l,e.IOutlineModelService=(0,p.createDecorator)("IOutlineModelService");let a=class{constructor(u,C,f){this._languageFeaturesService=u,this._disposables=new t.DisposableStore,this._cache=new y.LRUCache(10,.7),this._debounceInformation=C.for(u.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(f.onModelRemoved(h=>{this._cache.delete(h.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(u,C){const f=this._languageFeaturesService.documentSymbolProvider,h=f.ordered(u);let v=this._cache.get(u.id);if(!v||v.versionId!==u.getVersionId()||!(0,d.equals)(v.provider,h)){const S=new k.CancellationTokenSource;v={versionId:u.getVersionId(),provider:h,promiseCnt:0,source:S,promise:l.create(f,u,S.token),model:void 0},this._cache.set(u.id,v);const L=Date.now();v.promise.then(D=>{v.model=D,this._debounceInformation.update(u,Date.now()-L)}).catch(D=>{this._cache.delete(u.id)})}if(v.model)return v.model;v.promiseCnt+=1;const w=C.onCancellationRequested(()=>{--v.promiseCnt===0&&(v.source.cancel(),this._cache.delete(u.id))});try{return await v.promise}finally{w.dispose()}}};e.OutlineModelService=a,e.OutlineModelService=a=ke([ce(0,i.ILanguageFeaturesService),ce(1,b.ILanguageFeatureDebounceService),ce(2,o.IModelService)],a),(0,n.registerSingleton)(e.IOutlineModelService,a,1)}),define(ne[694],se([1,0,13,21,383,88,17,182,2,6]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0});let p=class extends _.Disposable{constructor(o,t,i){super(),this._textModel=o,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=(0,k.observableValue)(this,void 0);const s=(0,k.observableSignalFromEvent)("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),g=(0,k.observableSignalFromEvent)("_textModel.onDidChangeContent",b.Event.debounce(c=>this._textModel.onDidChangeContent(c),()=>{},100));this._register((0,k.autorunWithStore)(async(c,l)=>{s.read(c),g.read(c);const a=l.add(new E.DisposableCancellationTokenSource),r=await this._outlineModelService.getOrCreate(this._textModel,a.token);l.isDisposed||this._currentModel.set(r,void 0)}))}getBreadcrumbItems(o,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(g=>o.contains(g.range.startLineNumber)&&!o.contains(g.range.endLineNumber));return s.sort((0,d.reverseOrder)((0,d.compareBy)(g=>g.range.endLineNumber-g.range.startLineNumber,d.numberComparator))),s.map(g=>({name:g.name,kind:g.kind,startLineNumber:g.range.startLineNumber}))}};p=ke([ce(1,y.ILanguageFeaturesService),ce(2,m.IOutlineModelService)],p),I.HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((n,o)=>o.createInstance(p,n))}),define(ne[695],se([1,0,18,19,22,78,182,24]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),m.CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",async function(_,...b){const[p]=b;(0,k.assertType)(I.URI.isUri(p));const n=_.get(y.IOutlineModelService),t=await _.get(E.ITextModelService).createModelReference(p);try{return(await n.getOrCreate(t.object.textEditorModel,d.CancellationToken.None)).getTopLevelSymbols()}finally{t.dispose()}})}),define(ne[696],se([1,0,64,5,52,14,6,129,2,22,119,62]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserClipboardService=void 0;const t="application/vnd.code.resources";let i=class extends _.Disposable{static{o=this}constructor(g,c){super(),this.layoutService=g,this.logService=c,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(d.isSafari||d.isWebkitWebView)&&this.installWebKitWriteTextWorkaround(),this._register(y.Event.runAndSubscribe(k.onDidRegisterWindow,({window:l,disposables:a})=>{a.add((0,k.addDisposableListener)(l.document,"copy",()=>this.clearResourcesState()))},{window:I.mainWindow,disposables:this._store}))}installWebKitWriteTextWorkaround(){const g=()=>{const c=new E.DeferredPromise;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=c,(0,k.getActiveWindow)().navigator.clipboard.write([new ClipboardItem({"text/plain":c.p})]).catch(async l=>{(!(l instanceof Error)||l.name!=="NotAllowedError"||!c.isRejected)&&this.logService.error(l)})};this._register(y.Event.runAndSubscribe(this.layoutService.onDidAddContainer,({container:c,disposables:l})=>{l.add((0,k.addDisposableListener)(c,"click",g)),l.add((0,k.addDisposableListener)(c,"keydown",g))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(g,c){if(this.clearResourcesState(),c){this.mapTextToType.set(c,g);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(g);try{return await(0,k.getActiveWindow)().navigator.clipboard.writeText(g)}catch(l){console.error(l)}this.fallbackWriteText(g)}fallbackWriteText(g){const c=(0,k.getActiveDocument)(),l=c.activeElement,a=c.body.appendChild((0,k.$)("textarea",{"aria-hidden":!0}));a.style.height="1px",a.style.width="1px",a.style.position="absolute",a.value=g,a.focus(),a.select(),c.execCommand("copy"),(0,k.isHTMLElement)(l)&&l.focus(),a.remove()}async readText(g){if(g)return this.mapTextToType.get(g)||"";try{return await(0,k.getActiveWindow)().navigator.clipboard.readText()}catch(c){console.error(c)}return""}async readFindText(){return this.findText}async writeFindText(g){this.findText=g}static{this.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3}async readResources(){try{const c=await(0,k.getActiveWindow)().navigator.clipboard.read();for(const l of c)if(l.types.includes(`web ${t}`)){const a=await l.getType(`web ${t}`);return JSON.parse(await a.text()).map(u=>b.URI.from(u))}}catch{}const g=await this.computeResourcesStateHash();return this.resourcesStateHash!==g&&this.clearResourcesState(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const g=await this.readText();return(0,m.hash)(g.substring(0,o.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearInternalState(){this.clearResourcesState()}clearResourcesState(){this.resources=[],this.resourcesStateHash=void 0}};e.BrowserClipboardService=i,e.BrowserClipboardService=i=o=ke([ce(0,p.ILayoutService),ce(1,n.ILogService)],i)}),define(ne[697],se([1,0,2,62]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LogService=void 0;class I extends d.Disposable{constructor(y,m=[]){super(),this.logger=new k.MultiplexLogger([y,...m]),this._register(y.onDidChangeLogLevel(_=>this.setLevel(_)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(y){this.logger.setLevel(y)}getLevel(){return this.logger.getLevel()}trace(y,...m){this.logger.trace(y,...m)}debug(y,...m){this.logger.debug(y,...m)}info(y,...m){this.logger.info(y,...m)}warn(y,...m){this.logger.warn(y,...m)}error(y,...m){this.logger.error(y,...m)}}e.LogService=I}),define(ne[108],se([1,0,111,3,7]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerService=e.IMarkerData=e.MarkerSeverity=void 0;var E;(function(m){m[m.Hint=1]="Hint",m[m.Info=2]="Info",m[m.Warning=4]="Warning",m[m.Error=8]="Error"})(E||(e.MarkerSeverity=E={})),function(m){function _(t,i){return i-t}m.compare=_;const b=Object.create(null);b[m.Error]=(0,k.localize)(1569,"Error"),b[m.Warning]=(0,k.localize)(1570,"Warning"),b[m.Info]=(0,k.localize)(1571,"Info");function p(t){return b[t]||""}m.toString=p;function n(t){switch(t){case d.default.Error:return m.Error;case d.default.Warning:return m.Warning;case d.default.Info:return m.Info;case d.default.Ignore:return m.Hint}}m.fromSeverity=n;function o(t){switch(t){case m.Error:return d.default.Error;case m.Warning:return d.default.Warning;case m.Info:return d.default.Info;case m.Hint:return d.default.Ignore}}m.toSeverity=o}(E||(e.MarkerSeverity=E={}));var y;(function(m){const _="";function b(n){return p(n,!0)}m.makeKey=b;function p(n,o){const t=[_];return n.source?t.push(n.source.replace("\xA6","\\\xA6")):t.push(_),n.code?typeof n.code=="string"?t.push(n.code.replace("\xA6","\\\xA6")):t.push(n.code.value.replace("\xA6","\\\xA6")):t.push(_),n.severity!==void 0&&n.severity!==null?t.push(E.toString(n.severity)):t.push(_),n.message&&o?t.push(n.message.replace("\xA6","\\\xA6")):t.push(_),n.startLineNumber!==void 0&&n.startLineNumber!==null?t.push(n.startLineNumber.toString()):t.push(_),n.startColumn!==void 0&&n.startColumn!==null?t.push(n.startColumn.toString()):t.push(_),n.endLineNumber!==void 0&&n.endLineNumber!==null?t.push(n.endLineNumber.toString()):t.push(_),n.endColumn!==void 0&&n.endColumn!==null?t.push(n.endColumn.toString()):t.push(_),t.push(_),t.join("\xA6")}m.makeKeyOptionalMessage=p})(y||(e.IMarkerData=y={})),e.IMarkerService=(0,I.createDecorator)("markerService")}),define(ne[698],se([1,0,13,6,2,73,11,22,4,49,7,108,28]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerNavigationService=e.MarkerList=e.MarkerCoordinate=void 0;class t{constructor(c,l,a){this.marker=c,this.index=l,this.total=a}}e.MarkerCoordinate=t;let i=class{constructor(c,l,a){this._markerService=l,this._configService=a,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._dispoables=new I.DisposableStore,this._markers=[],this._nextIdx=-1,m.URI.isUri(c)?this._resourceFilter=f=>f.toString()===c.toString():c&&(this._resourceFilter=c);const r=this._configService.getValue("problems.sortOrder"),u=(f,h)=>{let v=(0,y.compare)(f.resource.toString(),h.resource.toString());return v===0&&(r==="position"?v=_.Range.compareRangesUsingStarts(f,h)||n.MarkerSeverity.compare(f.severity,h.severity):v=n.MarkerSeverity.compare(f.severity,h.severity)||_.Range.compareRangesUsingStarts(f,h)),v},C=()=>{this._markers=this._markerService.read({resource:m.URI.isUri(c)?c:void 0,severities:n.MarkerSeverity.Error|n.MarkerSeverity.Warning|n.MarkerSeverity.Info}),typeof c=="function"&&(this._markers=this._markers.filter(f=>this._resourceFilter(f.resource))),this._markers.sort(u)};C(),this._dispoables.add(l.onMarkerChanged(f=>{(!this._resourceFilter||f.some(h=>this._resourceFilter(h)))&&(C(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(c){return!this._resourceFilter&&!c?!0:!this._resourceFilter||!c?!1:this._resourceFilter(c)}get selected(){const c=this._markers[this._nextIdx];return c&&new t(c,this._nextIdx+1,this._markers.length)}_initIdx(c,l,a){let r=!1,u=this._markers.findIndex(C=>C.resource.toString()===c.uri.toString());u<0&&(u=(0,d.binarySearch)(this._markers,{resource:c.uri},(C,f)=>(0,y.compare)(C.resource.toString(),f.resource.toString())),u<0&&(u=~u));for(let C=u;Cr.resource.toString()===c.toString());if(!(a<0)){for(;ai[1])}}class p{constructor(t){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new E.ResourceMap,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(t){for(const i of t){const s=this._data.get(i);s&&this._substract(s);const g=this._resourceStats(i);this._add(g),this._data.set(i,g)}}_resourceStats(t){const i={errors:0,warnings:0,infos:0,unknowns:0};if(e.unsupportedSchemas.has(t.scheme))return i;for(const{severity:s}of this._service.read({resource:t}))s===_.MarkerSeverity.Error?i.errors+=1:s===_.MarkerSeverity.Warning?i.warnings+=1:s===_.MarkerSeverity.Info?i.infos+=1:i.unknowns+=1;return i}_substract(t){this.errors-=t.errors,this.warnings-=t.warnings,this.infos-=t.infos,this.unknowns-=t.unknowns}_add(t){this.errors+=t.errors,this.warnings+=t.warnings,this.infos+=t.infos,this.unknowns+=t.unknowns}}class n{constructor(){this._onMarkerChanged=new k.DebounceEmitter({delay:0,merge:n._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new b,this._stats=new p(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(t,i){for(const s of i||[])this.changeOne(t,s,[])}changeOne(t,i,s){if((0,d.isFalsyOrEmpty)(s))this._data.delete(i,t)&&this._onMarkerChanged.fire([i]);else{const g=[];for(const c of s){const l=n._toMarker(t,i,c);l&&g.push(l)}this._data.set(i,t,g),this._onMarkerChanged.fire([i])}}static _toMarker(t,i,s){let{code:g,severity:c,message:l,source:a,startLineNumber:r,startColumn:u,endLineNumber:C,endColumn:f,relatedInformation:h,tags:v}=s;if(l)return r=r>0?r:1,u=u>0?u:1,C=C>=r?C:r,f=f>0?f:u,{resource:i,owner:t,code:g,severity:c,message:l,source:a,startLineNumber:r,startColumn:u,endLineNumber:C,endColumn:f,relatedInformation:h,tags:v}}changeAll(t,i){const s=[],g=this._data.values(t);if(g)for(const c of g){const l=I.Iterable.first(c);l&&(s.push(l.resource),this._data.delete(l.resource,t))}if((0,d.isNonEmptyArray)(i)){const c=new E.ResourceMap;for(const{resource:l,marker:a}of i){const r=n._toMarker(t,l,a);if(!r)continue;const u=c.get(l);u?u.push(r):(c.set(l,[r]),s.push(l))}for(const[l,a]of c)this._data.set(l,t,a)}s.length>0&&this._onMarkerChanged.fire(s)}read(t=Object.create(null)){let{owner:i,resource:s,severities:g,take:c}=t;if((!c||c<0)&&(c=-1),i&&s){const l=this._data.get(s,i);if(l){const a=[];for(const r of l)if(n._accept(r,g)){const u=a.push(r);if(c>0&&u===c)break}return a}else return[]}else if(!i&&!s){const l=[];for(const a of this._data.values())for(const r of a)if(n._accept(r,g)){const u=l.push(r);if(c>0&&u===c)return l}return l}else{const l=this._data.values(s??i),a=[];for(const r of l)for(const u of r)if(n._accept(u,g)){const C=a.push(u);if(c>0&&C===c)return a}return a}}static _accept(t,i){return i===void 0||(i&t.severity)===t.severity}static _merge(t){const i=new E.ResourceMap;for(const s of t)for(const g of s)i.set(g,!0);return Array.from(i.keys())}}e.MarkerService=n}),define(ne[50],se([1,0,111,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NoOpNotification=e.INotificationService=e.Severity=void 0,e.Severity=d.default,e.INotificationService=(0,k.createDecorator)("notificationService");class I{}e.NoOpNotification=I}),define(ne[396],se([1,0,5,258,41,346,8,6,2,152,268,3,12,58,7,31,50,508]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.PostEditWidgetManager=void 0;let l=class extends _.Disposable{static{c=this}static{this.baseId="editor.widget.postEditWidget"}constructor(u,C,f,h,v,w,S,L,D,T){super(),this.typeId=u,this.editor=C,this.showCommand=h,this.range=v,this.edits=w,this.onSelectNewEdit=S,this._contextMenuService=L,this._keybindingService=T,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=f.bindTo(D),this.visibleContext.set(!0),this._register((0,_.toDisposable)(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register((0,_.toDisposable)(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(M=>{v.containsPosition(M.position)||this.dispose()})),this._register(m.Event.runAndSubscribe(T.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){const u=this._keybindingService.lookupKeybinding(this.showCommand.id)?.getLabel();this.button.element.title=this.showCommand.label+(u?` (${u})`:"")}create(){this.domNode=d.$(".post-edit-widget"),this.button=this._register(new k.Button(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(d.addDisposableListener(this.domNode,d.EventType.CLICK,()=>this.showSelector()))}getId(){return c.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const u=d.getDomNodePagePosition(this.button.element);return{x:u.left+u.width,y:u.top+u.height}},getActions:()=>this.edits.allEdits.map((u,C)=>(0,I.toAction)({id:"",label:u.title,checked:C===this.edits.activeEditIndex,run:()=>{if(C!==this.edits.activeEditIndex)return this.onSelectNewEdit(C)}}))})}};l=c=ke([ce(7,t.IContextMenuService),ce(8,o.IContextKeyService),ce(9,s.IKeybindingService)],l);let a=class extends _.Disposable{constructor(u,C,f,h,v,w,S){super(),this._id=u,this._editor=C,this._visibleContext=f,this._showCommand=h,this._instantiationService=v,this._bulkEditService=w,this._notificationService=S,this._currentWidget=this._register(new _.MutableDisposable),this._register(m.Event.any(C.onDidChangeModel,C.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(u,C,f,h,v){const w=this._editor.getModel();if(!w||!u.length)return;const S=C.allEdits.at(C.activeEditIndex);if(!S)return;const L=async F=>{const x=this._editor.getModel();x&&(await x.undo(),this.applyEditAndShowIfNeeded(u,{activeEditIndex:F,allEdits:C.allEdits},f,h,v))},D=(F,x)=>{(0,y.isCancellationError)(F)||(this._notificationService.error(x),f&&this.show(u[0],C,L))};let T;try{T=await h(S,v)}catch(F){return D(F,(0,n.localize)(845,`Error resolving edit '{0}': -{1}`,S.title,(0,E.toErrorMessage)(F)))}if(v.isCancellationRequested)return;const M=(0,p.createCombinedWorkspaceEdit)(w.uri,u,T),A=u[0],P=w.deltaDecorations([],[{range:A,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let N,O;try{N=await this._bulkEditService.apply(M,{editor:this._editor,token:v}),O=w.getDecorationRange(P[0])}catch(F){return D(F,(0,n.localize)(846,`Error applying edit '{0}': -{1}`,S.title,(0,E.toErrorMessage)(F)))}finally{w.deltaDecorations(P,[])}v.isCancellationRequested||f&&N.isApplied&&C.allEdits.length>1&&this.show(O??A,C,L)}show(u,C,f){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(l,this._id,this._editor,this._visibleContext,this._showCommand,u,C,f))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};e.PostEditWidgetManager=a,e.PostEditWidgetManager=a=ke([ce(4,i.IInstantiationService),ce(5,b.IBulkEditService),ce(6,g.INotificationService)],a)}),define(ne[397],se([1,0,21,189]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableConfigValue=I,e.bindContextKey=E;function I(y,m,_){return(0,k.observableFromEventOpts)({debugName:()=>`Configuration Key "${y}"`},b=>_.onDidChangeConfiguration(p=>{p.affectsConfiguration(y)&&b(p)}),()=>_.getValue(y)??m)}function E(y,m,_){const b=y.bindTo(m);return(0,d.autorunOpts)({debugName:()=>`Set Context Key "${y.key}"`},p=>{b.set(_(p))})}}),define(ne[700],se([1,0,349,171,21,7]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.wrapInReloadableClass1=_;class y{constructor(n){this.instantiationService=n}init(...n){}}function m(p,n){return class extends n{constructor(){super(...arguments),this._autorun=void 0}init(...t){this._autorun=(0,I.autorunWithStore)((i,s)=>{const g=(0,k.readHotReloadableExport)(p(),i);s.add(this.instantiationService.createInstance(g,...t))})}dispose(){this._autorun?.dispose()}}}function _(p){return(0,d.isHotReloadEnabled)()?m(p,b):p()}let b=class extends y{constructor(n,o){super(o),this.init(n)}};b=ke([ce(1,E.IInstantiationService)],b)}),define(ne[59],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IOpenerService=void 0,e.extractSelection=k,e.IOpenerService=(0,d.createDecorator)("openerService");function k(I){let E;const y=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(I.fragment);return y&&(E={startLineNumber:parseInt(y[1]),startColumn:y[2]?parseInt(y[2]):1,endLineNumber:y[4]?parseInt(y[4]):void 0,endColumn:y[4]?y[5]?parseInt(y[5]):1:void 0},I=I.with({fragment:""})),{selection:E,uri:I}}}),define(ne[701],se([1,0,5,52,18,73,45,252,42,48,22,34,24,673,59]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OpenerService=void 0;let s=class{constructor(a){this._commandService=a}async open(a,r){if(!(0,_.matchesScheme)(a,_.Schemas.command))return!1;if(!r?.allowCommands||(typeof a=="string"&&(a=p.URI.parse(a)),Array.isArray(r.allowCommands)&&!r.allowCommands.includes(a.path)))return!0;let u=[];try{u=(0,m.parse)(decodeURIComponent(a.query))}catch{try{u=(0,m.parse)(a.query)}catch{}}return Array.isArray(u)||(u=[u]),await this._commandService.executeCommand(a.path,...u),!0}};s=ke([ce(0,o.ICommandService)],s);let g=class{constructor(a){this._editorService=a}async open(a,r){typeof a=="string"&&(a=p.URI.parse(a));const{selection:u,uri:C}=(0,i.extractSelection)(a);return a=C,a.scheme===_.Schemas.file&&(a=(0,b.normalizePath)(a)),await this._editorService.openCodeEditor({resource:a,options:{selection:u,source:r?.fromUserGesture?t.EditorOpenSource.USER:t.EditorOpenSource.API,...r?.editorOptions}},this._editorService.getFocusedCodeEditor(),r?.openToSide),!0}};g=ke([ce(0,n.ICodeEditorService)],g);let c=class{constructor(a,r){this._openers=new E.LinkedList,this._validators=new E.LinkedList,this._resolvers=new E.LinkedList,this._resolvedUriTargets=new y.ResourceMap(u=>u.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new E.LinkedList,this._defaultExternalOpener={openExternal:async u=>((0,_.matchesSomeScheme)(u,_.Schemas.http,_.Schemas.https)?d.windowOpenNoOpener(u):k.mainWindow.location.href=u,!0)},this._openers.push({open:async(u,C)=>C?.openExternal||(0,_.matchesSomeScheme)(u,_.Schemas.mailto,_.Schemas.http,_.Schemas.https,_.Schemas.vsls)?(await this._doOpenExternal(u,C),!0):!1}),this._openers.push(new s(r)),this._openers.push(new g(a))}registerOpener(a){return{dispose:this._openers.unshift(a)}}async open(a,r){const u=typeof a=="string"?p.URI.parse(a):a,C=this._resolvedUriTargets.get(u)??a;for(const f of this._validators)if(!await f.shouldOpen(C,r))return!1;for(const f of this._openers)if(await f.open(a,r))return!0;return!1}async resolveExternalUri(a,r){for(const u of this._resolvers)try{const C=await u.resolveExternalUri(a,r);if(C)return this._resolvedUriTargets.has(C.resolved)||this._resolvedUriTargets.set(C.resolved,a),C}catch{}throw new Error("Could not resolve external URI: "+a.toString())}async _doOpenExternal(a,r){const u=typeof a=="string"?p.URI.parse(a):a;let C;try{C=(await this.resolveExternalUri(u,r)).resolved}catch{C=u}let f;if(typeof a=="string"&&u.toString()===C.toString()?f=a:f=encodeURI(C.toString(!0)),r?.allowContributedOpeners){const h=typeof r?.allowContributedOpeners=="string"?r?.allowContributedOpeners:void 0;for(const v of this._externalOpeners)if(await v.openExternal(f,{sourceUri:u,preferredOpenerId:h},I.CancellationToken.None))return!0}return this._defaultExternalOpener.openExternal(f,{sourceUri:u},I.CancellationToken.None)}dispose(){this._validators.clear()}};e.OpenerService=c,e.OpenerService=c=ke([ce(0,n.ICodeEditorService),ce(1,o.ICommandService)],c)}),define(ne[702],se([1,0,5,93,47,69,6,2,59,44,118,543]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Link=void 0;let n=class extends m.Disposable{get enabled(){return this._enabled}set enabled(t){t?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=t}constructor(t,i,s={},g,c){super(),this._link=i,this._hoverService=g,this._enabled=!0,this.el=(0,d.append)(t,(0,d.$)("a.monaco-link",{tabIndex:i.tabIndex??0,href:i.href},i.label)),this.hoverDelegate=s.hoverDelegate??(0,b.getDefaultHoverDelegate)("mouse"),this.setTooltip(i.title),this.el.setAttribute("role","button");const l=this._register(new k.DomEmitter(this.el,"click")),a=this._register(new k.DomEmitter(this.el,"keypress")),r=y.Event.chain(a.event,f=>f.map(h=>new I.StandardKeyboardEvent(h)).filter(h=>h.keyCode===3)),u=this._register(new k.DomEmitter(this.el,E.EventType.Tap)).event;this._register(E.Gesture.addTarget(this.el));const C=y.Event.any(l.event,r,u);this._register(C(f=>{this.enabled&&(d.EventHelper.stop(f,!0),s?.opener?s.opener(this._link.href):c.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(t){this.hoverDelegate.showNativeHover?this.el.title=t??"":!this.hover&&t?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,t)):this.hover&&this.hover.update(t)}};e.Link=n,e.Link=n=ke([ce(3,p.IHoverService),ce(4,_.IOpenerService)],n)}),define(ne[96],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorProgressService=e.Progress=e.emptyProgressRunner=e.IProgressService=void 0,e.IProgressService=(0,d.createDecorator)("progressService"),e.emptyProgressRunner=Object.freeze({total(){},worked(){},done(){}});class k{static{this.None=Object.freeze({report(){}})}constructor(E){this.callback=E}report(E){this._value=E,this.callback(this._value)}}e.Progress=k,e.IEditorProgressService=(0,d.createDecorator)("editorProgressService")}),define(ne[703],se([1,0,14,18,2,19]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PickerQuickAccessProvider=e.TriggerAction=void 0;var y;(function(p){p[p.NO_ACTION=0]="NO_ACTION",p[p.CLOSE_PICKER=1]="CLOSE_PICKER",p[p.REFRESH_PICKER=2]="REFRESH_PICKER",p[p.REMOVE_ITEM=3]="REMOVE_ITEM"})(y||(e.TriggerAction=y={}));function m(p){const n=p;return Array.isArray(n.items)}function _(p){const n=p;return!!n.picks&&n.additionalPicks instanceof Promise}class b extends I.Disposable{constructor(n,o){super(),this.prefix=n,this.options=o}provide(n,o,t){const i=new I.DisposableStore;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;let s;const g=i.add(new I.MutableDisposable),c=async()=>{const a=g.value=new I.DisposableStore;s?.dispose(!0),n.busy=!1,s=new k.CancellationTokenSource(o);const r=s.token;let u=n.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(u=u.trim());const C=this._getPicks(u,a,r,t),f=(v,w)=>{let S,L;if(m(v)?(S=v.items,L=v.active):S=v,S.length===0){if(w)return!1;(u.length>0||n.hideInput)&&this.options?.noResultsPick&&((0,E.isFunction)(this.options.noResultsPick)?S=[this.options.noResultsPick(u)]:S=[this.options.noResultsPick])}return n.items=S,L&&(n.activeItems=[L]),!0},h=async v=>{let w=!1,S=!1;await Promise.all([(async()=>{typeof v.mergeDelay=="number"&&(await(0,d.timeout)(v.mergeDelay),r.isCancellationRequested)||S||(w=f(v.picks,!0))})(),(async()=>{n.busy=!0;try{const L=await v.additionalPicks;if(r.isCancellationRequested)return;let D,T;m(v.picks)?(D=v.picks.items,T=v.picks.active):D=v.picks;let M,A;if(m(L)?(M=L.items,A=L.active):M=L,M.length>0||!w){let P;if(!T&&!A){const N=n.activeItems[0];N&&D.indexOf(N)!==-1&&(P=N)}f({items:[...D,...M],active:T||A||P})}}finally{r.isCancellationRequested||(n.busy=!1),S=!0}})()])};if(C!==null)if(_(C))await h(C);else if(!(C instanceof Promise))f(C);else{n.busy=!0;try{const v=await C;if(r.isCancellationRequested)return;_(v)?await h(v):f(v)}finally{r.isCancellationRequested||(n.busy=!1)}}};i.add(n.onDidChangeValue(()=>c())),c(),i.add(n.onDidAccept(a=>{if(t?.handleAccept){a.inBackground||n.hide(),t.handleAccept?.(n.activeItems[0]);return}const[r]=n.selectedItems;typeof r?.accept=="function"&&(a.inBackground||n.hide(),r.accept(n.keyMods,a))}));const l=async(a,r)=>{if(typeof r.trigger!="function")return;const u=r.buttons?.indexOf(a)??-1;if(u>=0){const C=r.trigger(u,n.keyMods),f=typeof C=="number"?C:await C;if(o.isCancellationRequested)return;switch(f){case y.NO_ACTION:break;case y.CLOSE_PICKER:n.hide();break;case y.REFRESH_PICKER:c();break;case y.REMOVE_ITEM:{const h=n.items.indexOf(r);if(h!==-1){const v=n.items.slice(),w=v.splice(h,1),S=n.activeItems.filter(D=>D!==w[0]),L=n.keepScrollPosition;n.keepScrollPosition=!0,n.items=v,S&&(n.activeItems=S),n.keepScrollPosition=L}break}}}};return i.add(n.onDidTriggerItemButton(({button:a,item:r})=>l(a,r))),i.add(n.onDidTriggerSeparatorButton(({button:a,separator:r})=>l(a,r))),i}}e.PickerQuickAccessProvider=b}),define(ne[704],se([1,0,5,260,2,111,228]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputBox=void 0;const y=d.$;class m extends I.Disposable{constructor(b,p,n){super(),this.parent=b,this.onKeyDown=t=>d.addStandardDisposableListener(this.findInput.inputBox.inputElement,d.EventType.KEY_DOWN,t),this.onDidChange=t=>this.findInput.onDidChange(t),this.container=d.append(this.parent,y(".quick-input-box")),this.findInput=this._register(new k.FindInput(this.container,void 0,{label:"",inputBoxStyles:p,toggleStyles:n}));const o=this.findInput.inputBox.inputElement;o.role="combobox",o.ariaHasPopup="menu",o.ariaAutoComplete="list",o.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(b){this.findInput.setValue(b)}select(b=null){this.findInput.inputBox.select(b)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(b){this.findInput.inputBox.setPlaceHolder(b)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(b){this.findInput.inputBox.inputElement.type=b?"password":"text"}set enabled(b){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!b)}set toggles(b){this.findInput.setAdditionalToggles(b)}setAttribute(b,p){this.findInput.inputBox.inputElement.setAttribute(b,p)}showDecoration(b){b===E.default.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:b===E.default.Info?1:b===E.default.Warning?2:3,content:""})}stylesForType(b){return this.findInput.inputBox.stylesForType(b===E.default.Info?1:b===E.default.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}e.QuickInputBox=m}),define(ne[398],se([1,0,5,93,6,47,69,114,187,446,3,228]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.quickInputButtonToAction=i,e.renderQuickInputDescription=s;const n={},o=new _.IdGenerator("quick-input-button-icon-");function t(g){if(!g)return;let c;const l=g.dark.toString();return n[l]?c=n[l]:(c=o.nextId(),d.createCSSRule(`.${c}, .hc-light .${c}`,`background-image: ${d.asCSSUrl(g.light||g.dark)}`),d.createCSSRule(`.vs-dark .${c}, .hc-black .${c}`,`background-image: ${d.asCSSUrl(g.dark)}`),n[l]=c),c}function i(g,c,l){let a=g.iconClass||t(g.iconPath);return g.alwaysVisible&&(a=a?`${a} always-visible`:"always-visible"),{id:c,label:"",tooltip:g.tooltip||"",class:a,enabled:!0,run:l}}function s(g,c,l){d.reset(c);const a=(0,b.parseLinkedText)(g);let r=0;for(const u of a.nodes)if(typeof u=="string")c.append(...(0,m.renderLabelWithIcons)(u));else{let C=u.title;!C&&u.href.startsWith("command:")?C=(0,p.localize)(1598,"Click to execute command '{0}'",u.href.substring(8)):C||(C=u.href);const f=d.$("a",{href:u.href,title:C,tabIndex:r++},u.label);f.style.textDecoration="underline";const h=D=>{d.isEventLike(D)&&d.EventHelper.stop(D,!0),l.callback(u.href)},v=l.disposables.add(new k.DomEmitter(f,d.EventType.CLICK)).event,w=l.disposables.add(new k.DomEmitter(f,d.EventType.KEY_DOWN)).event,S=I.Event.chain(w,D=>D.filter(T=>{const M=new E.StandardKeyboardEvent(T);return M.equals(10)||M.equals(3)}));l.disposables.add(y.Gesture.addTarget(f));const L=l.disposables.add(new k.DomEmitter(f,y.EventType.Tap)).event;I.Event.any(v,L,S)(h,null,l.disposables),c.appendChild(f)}}}),define(ne[66],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IQuickInputService=e.quickPickItemScorerAccessor=e.QuickPickItemScorerAccessor=e.QuickInputButtonLocation=e.QuickPickFocus=e.ItemActivation=e.QuickInputHideReason=e.NO_KEY_MODS=void 0,e.NO_KEY_MODS={ctrlCmd:!1,alt:!1};var k;(function(_){_[_.Blur=1]="Blur",_[_.Gesture=2]="Gesture",_[_.Other=3]="Other"})(k||(e.QuickInputHideReason=k={}));var I;(function(_){_[_.NONE=0]="NONE",_[_.FIRST=1]="FIRST",_[_.SECOND=2]="SECOND",_[_.LAST=3]="LAST"})(I||(e.ItemActivation=I={}));var E;(function(_){_[_.First=1]="First",_[_.Second=2]="Second",_[_.Last=3]="Last",_[_.Next=4]="Next",_[_.Previous=5]="Previous",_[_.NextPage=6]="NextPage",_[_.PreviousPage=7]="PreviousPage",_[_.NextSeparator=8]="NextSeparator",_[_.PreviousSeparator=9]="PreviousSeparator"})(E||(e.QuickPickFocus=E={}));var y;(function(_){_[_.Title=1]="Title",_[_.Inline=2]="Inline"})(y||(e.QuickInputButtonLocation=y={}));class m{constructor(b){this.options=b}}e.QuickPickItemScorerAccessor=m,e.quickPickItemScorerAccessor=new m,e.IQuickInputService=(0,d.createDecorator)("quickInputService")}),define(ne[272],se([1,0,5,47,175,13,14,26,6,2,16,111,30,3,66,398,28,118,12,228]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputHoverDelegate=e.InputBox=e.QuickPick=e.backButton=e.endOfQuickInputBoxContext=e.EndOfQuickInputBoxContextKey=e.endOfQuickInputBoxContextKeyValue=e.QuickInputTypeContextKey=e.quickInputTypeContextKeyValue=e.inQuickInputContext=e.InQuickInputContextKey=e.inQuickInputContextKeyValue=void 0,e.inQuickInputContextKeyValue="inQuickInput",e.InQuickInputContextKey=new l.RawContextKey(e.inQuickInputContextKeyValue,!1,(0,t.localize)(1580,"Whether keyboard focus is inside the quick input control")),e.inQuickInputContext=l.ContextKeyExpr.has(e.inQuickInputContextKeyValue),e.quickInputTypeContextKeyValue="quickInputType",e.QuickInputTypeContextKey=new l.RawContextKey(e.quickInputTypeContextKeyValue,void 0,(0,t.localize)(1581,"The type of the currently visible quick input")),e.endOfQuickInputBoxContextKeyValue="cursorAtEndOfQuickInputBox",e.EndOfQuickInputBoxContextKey=new l.RawContextKey(e.endOfQuickInputBoxContextKeyValue,!1,(0,t.localize)(1582,"Whether the cursor in the quick input is at the end of the input box")),e.endOfQuickInputBoxContext=l.ContextKeyExpr.has(e.endOfQuickInputBoxContextKeyValue),e.backButton={iconClass:o.ThemeIcon.asClassName(m.Codicon.quickInputBack),tooltip:(0,t.localize)(1583,"Back"),handle:-1};class a extends b.Disposable{static{this.noPromptMessage=(0,t.localize)(1584,"Press 'Enter' to confirm your input or 'Escape' to cancel")}constructor(h){super(),this.ui=h,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._leftButtons=[],this._rightButtons=[],this._inlineButtons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=a.noPromptMessage,this._severity=n.default.Ignore,this.onDidTriggerButtonEmitter=this._register(new _.Emitter),this.onDidHideEmitter=this._register(new _.Emitter),this.onWillHideEmitter=this._register(new _.Emitter),this.onDisposeEmitter=this._register(new _.Emitter),this.visibleDisposables=this._register(new b.DisposableStore),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(h){this._title=h,this.update()}get description(){return this._description}set description(h){this._description=h,this.update()}get step(){return this._steps}set step(h){this._steps=h,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(h){this._totalSteps=h,this.update()}get enabled(){return this._enabled}set enabled(h){this._enabled=h,this.update()}get contextKey(){return this._contextKey}set contextKey(h){this._contextKey=h,this.update()}get busy(){return this._busy}set busy(h){this._busy=h,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(h){const v=this._ignoreFocusOut!==h&&!p.isIOS;this._ignoreFocusOut=h&&!p.isIOS,v&&this.update()}get titleButtons(){return this._leftButtons.length?[...this._leftButtons,this._rightButtons]:this._rightButtons}get buttons(){return[...this._leftButtons,...this._rightButtons,...this._inlineButtons]}set buttons(h){this._leftButtons=h.filter(v=>v===e.backButton),this._rightButtons=h.filter(v=>v!==e.backButton&&v.location!==i.QuickInputButtonLocation.Inline),this._inlineButtons=h.filter(v=>v.location===i.QuickInputButtonLocation.Inline),this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(h){this._toggles=h??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(h){this._validationMessage=h,this.update()}get severity(){return this._severity}set severity(h){this._severity=h,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(h=>{this.buttons.indexOf(h)!==-1&&this.onDidTriggerButtonEmitter.fire(h)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(h=i.QuickInputHideReason.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:h})}willHide(h=i.QuickInputHideReason.Other){this.onWillHideEmitter.fire({reason:h})}update(){if(!this.visible)return;const h=this.getTitle();h&&this.ui.title.textContent!==h?this.ui.title.textContent=h:!h&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText="\xA0");const v=this.getDescription();if(this.ui.description1.textContent!==v&&(this.ui.description1.textContent=v),this.ui.description2.textContent!==v&&(this.ui.description2.textContent=v),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?d.reset(this.ui.widget,this._widget):d.reset(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new y.TimeoutTimer,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const S=this._leftButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.leftActionBar.push(S,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const L=this._rightButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.rightActionBar.push(L,{icon:!0,label:!1}),this.ui.inlineActionBar.clear();const D=this._inlineButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.inlineActionBar.push(D,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const S=this.toggles?.filter(L=>L instanceof I.Toggle)??[];this.ui.inputBox.toggles=S}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const w=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==w&&(this._lastValidationMessage=w,d.reset(this.ui.message),(0,s.renderQuickInputDescription)(w,this.ui.message,{callback:S=>{this.ui.linkOpenerDelegate(S)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?(0,t.localize)(1585,"{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(h){if(this.ui.inputBox.showDecoration(h),h!==n.default.Ignore){const v=this.ui.inputBox.stylesForType(h);this.ui.message.style.color=v.foreground?`${v.foreground}`:"",this.ui.message.style.backgroundColor=v.background?`${v.background}`:"",this.ui.message.style.border=v.border?`1px solid ${v.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}class r extends a{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new _.Emitter),this.onWillAcceptEmitter=this._register(new _.Emitter),this.onDidAcceptEmitter=this._register(new _.Emitter),this.onDidCustomEmitter=this._register(new _.Emitter),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=i.ItemActivation.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new _.Emitter),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new _.Emitter),this.onDidTriggerItemButtonEmitter=this._register(new _.Emitter),this.onDidTriggerSeparatorButtonEmitter=this._register(new _.Emitter),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this._focusEventBufferer=new _.EventBufferer,this.type="quickPick",this.filterValue=h=>h,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}static{this.DEFAULT_ARIA_LABEL=(0,t.localize)(1586,"Type to narrow down results.")}get quickNavigate(){return this._quickNavigate}set quickNavigate(h){this._quickNavigate=h,this.update()}get value(){return this._value}set value(h){this.doSetValue(h)}doSetValue(h,v){this._value!==h&&(this._value=h,v||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(h){this._ariaLabel=h,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(h){this._placeholder=h,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(h){this.ui.list.scrollTop=h}set items(h){this._items=h,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(h){this._canSelectMany=h,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(h){this._canAcceptInBackground=h}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(h){this._matchOnDescription=h,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(h){this._matchOnDetail=h,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(h){this._matchOnLabel=h,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(h){this._matchOnLabelMode=h,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(h){this._sortByLabel=h,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(h){this._keepScrollPosition=h}get itemActivation(){return this._itemActivation}set itemActivation(h){this._itemActivation=h}get activeItems(){return this._activeItems}set activeItems(h){this._activeItems=h,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(h){this._selectedItems=h,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?i.NO_KEY_MODS:this.ui.keyMods}get valueSelection(){const h=this.ui.inputBox.getSelection();if(h)return[h.start,h.end]}set valueSelection(h){this._valueSelection=h,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(h){this._customButton=h,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(h){this._customButtonLabel=h,this.update()}get customHover(){return this._customButtonHover}set customHover(h){this._customButtonHover=h,this.update()}get ok(){return this._ok}set ok(h){this._ok=h,this.update()}get hideInput(){return!!this._hideInput}set hideInput(h){this._hideInput=h,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(i.QuickPickFocus.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(h=>{this.doSetValue(h,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(h,v)=>v)(h=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&(0,E.equals)(h,this._activeItems,(v,w)=>v===w)||(this._activeItems=h,this.onDidChangeActiveEmitter.fire(h))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:h,event:v})=>{if(this.canSelectMany){h.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&(0,E.equals)(h,this._selectedItems,(w,S)=>w===S)||(this._selectedItems=h,this.onDidChangeSelectionEmitter.fire(h),h.length&&this.handleAccept(d.isMouseEvent(v)&&v.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(h=>{!this.canSelectMany||!this.visible||this.selectedItemsToConfirm!==this._selectedItems&&(0,E.equals)(h,this._selectedItems,(v,w)=>v===w)||(this._selectedItems=h,this.onDidChangeSelectionEmitter.fire(h))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(h=>this.onDidTriggerItemButtonEmitter.fire(h))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(h=>this.onDidTriggerSeparatorButtonEmitter.fire(h))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(h){let v=!1;this.onWillAcceptEmitter.fire({veto:()=>v=!0}),v||this.onDidAcceptEmitter.fire({inBackground:h})}registerQuickNavigation(){return d.addDisposableListener(this.ui.container,d.EventType.KEY_UP,h=>{if(this.canSelectMany||!this._quickNavigate)return;const v=new k.StandardKeyboardEvent(h),w=v.keyCode;this._quickNavigate.keybindings.some(D=>{const T=D.getChords();return T.length>1?!1:T[0].shiftKey&&w===4?!(v.ctrlKey||v.altKey||v.metaKey):!!(T[0].altKey&&w===6||T[0].ctrlKey&&w===5||T[0].metaKey&&w===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const h=this.keepScrollPosition?this.scrollTop:0,v=!!this.description,w={title:!!this.title||!!this.step||!!this.titleButtons.length,description:v,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||v,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(w),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let S=this.ariaLabel;!S&&w.inputBox&&(S=this.placeholder||r.DEFAULT_ARIA_LABEL,this.title&&(S+=` - ${this.title}`)),this.ui.list.ariaLabel!==S&&(this.ui.list.ariaLabel=S??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this._itemActivation){case i.ItemActivation.NONE:this._itemActivation=i.ItemActivation.FIRST;break;case i.ItemActivation.SECOND:this.ui.list.focus(i.QuickPickFocus.Second),this._itemActivation=i.ItemActivation.FIRST;break;case i.ItemActivation.LAST:this.ui.list.focus(i.QuickPickFocus.Last),this._itemActivation=i.ItemActivation.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",w.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(i.QuickPickFocus.First)),this.keepScrollPosition&&(this.scrollTop=h)}focus(h){this.ui.list.focus(h),this.canSelectMany&&this.ui.list.domFocus()}accept(h){h&&!this._canAcceptInBackground||this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(h??!1))}}e.QuickPick=r;class u extends a{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new _.Emitter),this.onDidAcceptEmitter=this._register(new _.Emitter),this.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(h){this._value=h||"",this.update()}get placeholder(){return this._placeholder}set placeholder(h){this._placeholder=h,this.update()}get password(){return this._password}set password(h){this._password=h,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(h=>{h!==this.value&&(this._value=h,this.onDidValueChangeEmitter.fire(h))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const h={title:!!this.title||!!this.step||!!this.titleButtons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(h),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}e.InputBox=u;let C=class extends c.WorkbenchHoverDelegate{constructor(h,v){super("element",!1,w=>this.getOverrideOptions(w),h,v)}getOverrideOptions(h){const v=(d.isHTMLElement(h.content)?h.content.textContent??"":typeof h.content=="string"?h.content:h.content.value).includes(` -`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:v,skipFadeInAnimation:!0}}}};e.QuickInputHoverDelegate=C,e.QuickInputHoverDelegate=C=ke([ce(0,g.IConfigurationService),ce(1,c.IHoverService)],C)}),define(ne[38],se([1,0,90,19]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Registry=void 0;class I{constructor(){this.data=new Map}add(y,m){d.ok(k.isString(y)),d.ok(k.isObject(m)),d.ok(!this.data.has(y),"There is already an extension with this id"),this.data.set(y,m)}as(y){return this.data.get(y)||null}}e.Registry=new I}),define(ne[399],se([1,0,38]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LocalSelectionTransfer=e.Extensions=e.CodeDataTransfers=void 0,e.CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"};class k{}e.Extensions={DragAndDropContribution:"workbench.contributions.dragAndDrop"},d.Registry.add(e.Extensions.DragAndDropContribution,new k);class I{static{this.INSTANCE=new I}constructor(){}static getInstance(){return I.INSTANCE}hasData(y){return y&&y===this.proto}getData(y){if(this.hasData(y))return this.data}}e.LocalSelectionTransfer=I}),define(ne[400],se([1,0,224,194,128,22,399]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toVSDataTransfer=m,e.toExternalVSDataTransfer=p;function m(n){const o=new k.VSDataTransfer;for(const t of n.items){const i=t.type;if(t.kind==="string"){const s=new Promise(g=>t.getAsString(g));o.append(i,(0,k.createStringDataTransferItem)(s))}else if(t.kind==="file"){const s=t.getAsFile();s&&o.append(i,_(s))}}return o}function _(n){const o=n.path?E.URI.parse(n.path):void 0;return(0,k.createFileDataTransferItem)(n.name,o,async()=>new Uint8Array(await n.arrayBuffer()))}const b=Object.freeze([y.CodeDataTransfers.EDITORS,y.CodeDataTransfers.FILES,d.DataTransfers.RESOURCES,d.DataTransfers.INTERNAL_URI_LIST]);function p(n,o=!1){const t=m(n),i=t.get(d.DataTransfers.INTERNAL_URI_LIST);if(i)t.replace(I.Mimes.uriList,i);else if(o||!t.has(I.Mimes.uriList)){const s=[];for(const g of n.items){const c=g.getAsFile();if(c){const l=c.path;try{l?s.push(E.URI.file(l).toString()):s.push(E.URI.parse(c.name,!0).toString())}catch{}}}s.length&&t.replace(I.Mimes.uriList,(0,k.createStringDataTransferItem)(k.UriList.create(s)))}for(const s of b)t.delete(s);return t}}),define(ne[273],se([1,0,6,38]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=void 0,e.Extensions={JSONContribution:"base.contributions.json"};function I(m){return m.length>0&&m.charAt(m.length-1)==="#"?m.substring(0,m.length-1):m}class E{constructor(){this._onDidChangeSchema=new d.Emitter,this.schemasById={}}registerSchema(_,b){this.schemasById[I(_)]=b,this._onDidChangeSchema.fire(_)}notifySchemaChanged(_){this._onDidChangeSchema.fire(_)}}const y=new E;k.Registry.add(e.Extensions.JSONContribution,y)}),define(ne[109],se([1,0,13,6,19,3,28,273,38]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OVERRIDE_PROPERTY_REGEX=e.OVERRIDE_PROPERTY_PATTERN=e.resourceLanguageSettingsSchemaId=e.resourceSettings=e.windowSettings=e.machineOverridableSettings=e.machineSettings=e.applicationSettings=e.allSettings=e.Extensions=void 0,e.overrideIdentifiersFromKey=t,e.getDefaultValue=i,e.validateProperty=g,e.Extensions={Configuration:"base.contributions.configuration"},e.allSettings={properties:{},patternProperties:{}},e.applicationSettings={properties:{},patternProperties:{}},e.machineSettings={properties:{},patternProperties:{}},e.machineOverridableSettings={properties:{},patternProperties:{}},e.windowSettings={properties:{},patternProperties:{}},e.resourceSettings={properties:{},patternProperties:{}},e.resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage";const b=_.Registry.as(m.Extensions.JSONContribution);class p{constructor(){this.registeredConfigurationDefaults=[],this.overrideIdentifiers=new Set,this._onDidSchemaChange=new k.Emitter,this._onDidUpdateConfiguration=new k.Emitter,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:E.localize(1503,"Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},b.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(l,a=!0){this.registerConfigurations([l],a)}registerConfigurations(l,a=!0){const r=new Set;this.doRegisterConfigurations(l,a,r),b.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}registerDefaultConfigurations(l){const a=new Set;this.doRegisterDefaultConfigurations(l,a),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:a,defaultsOverrides:!0})}doRegisterDefaultConfigurations(l,a){this.registeredConfigurationDefaults.push(...l);const r=[];for(const{overrides:u,source:C}of l)for(const f in u){a.add(f);const h=this.configurationDefaultsOverrides.get(f)??this.configurationDefaultsOverrides.set(f,{configurationDefaultOverrides:[]}).get(f),v=u[f];if(h.configurationDefaultOverrides.push({value:v,source:C}),e.OVERRIDE_PROPERTY_REGEX.test(f)){const w=this.mergeDefaultConfigurationsForOverrideIdentifier(f,v,C,h.configurationDefaultOverrideValue);if(!w)continue;h.configurationDefaultOverrideValue=w,this.updateDefaultOverrideProperty(f,w,C),r.push(...t(f))}else{const w=this.mergeDefaultConfigurationsForConfigurationProperty(f,v,C,h.configurationDefaultOverrideValue);if(!w)continue;h.configurationDefaultOverrideValue=w;const S=this.configurationProperties[f];S&&(this.updatePropertyDefaultValue(f,S),this.updateSchema(f,S))}}this.doRegisterOverrideIdentifiers(r)}updateDefaultOverrideProperty(l,a,r){const u={type:"object",default:a.value,description:E.localize(1504,"Configure settings to be overridden for the {0} language.",(0,y.getLanguageTagSettingPlainKey)(l)),$ref:e.resourceLanguageSettingsSchemaId,defaultDefaultValue:a.value,source:r,defaultValueSource:r};this.configurationProperties[l]=u,this.defaultLanguageConfigurationOverridesNode.properties[l]=u}mergeDefaultConfigurationsForOverrideIdentifier(l,a,r,u){const C=u?.value||{},f=u?.source??new Map;if(!(f instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(const h of Object.keys(a)){const v=a[h];if(I.isObject(v)&&(I.isUndefined(C[h])||I.isObject(C[h]))){if(C[h]={...C[h]??{},...v},r)for(const S in v)f.set(`${h}.${S}`,r)}else C[h]=v,r?f.set(h,r):f.delete(h)}return{value:C,source:f}}mergeDefaultConfigurationsForConfigurationProperty(l,a,r,u){const C=this.configurationProperties[l],f=u?.value??C?.defaultDefaultValue;let h=r;if(I.isObject(a)&&(C!==void 0&&C.type==="object"||C===void 0&&(I.isUndefined(f)||I.isObject(f)))){if(h=u?.source??new Map,!(h instanceof Map)){console.error("defaultValueSource is not a Map");return}for(const w in a)r&&h.set(`${l}.${w}`,r);a={...I.isObject(f)?f:{},...a}}return{value:a,source:h}}registerOverrideIdentifiers(l){this.doRegisterOverrideIdentifiers(l),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(l){for(const a of l)this.overrideIdentifiers.add(a);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(l,a,r){l.forEach(u=>{this.validateAndRegisterProperties(u,a,u.extensionInfo,u.restrictedProperties,void 0,r),this.configurationContributors.push(u),this.registerJSONConfiguration(u)})}validateAndRegisterProperties(l,a=!0,r,u,C=3,f){C=I.isUndefinedOrNull(l.scope)?C:l.scope;const h=l.properties;if(h)for(const w in h){const S=h[w];if(a&&g(w,S)){delete h[w];continue}if(S.source=r,S.defaultDefaultValue=h[w].default,this.updatePropertyDefaultValue(w,S),e.OVERRIDE_PROPERTY_REGEX.test(w)?S.scope=void 0:(S.scope=I.isUndefinedOrNull(S.scope)?C:S.scope,S.restricted=I.isUndefinedOrNull(S.restricted)?!!u?.includes(w):S.restricted),h[w].hasOwnProperty("included")&&!h[w].included){this.excludedConfigurationProperties[w]=h[w],delete h[w];continue}else this.configurationProperties[w]=h[w],h[w].policy?.name&&this.policyConfigurations.set(h[w].policy.name,w);!h[w].deprecationMessage&&h[w].markdownDeprecationMessage&&(h[w].deprecationMessage=h[w].markdownDeprecationMessage),f.add(w)}const v=l.allOf;if(v)for(const w of v)this.validateAndRegisterProperties(w,a,r,u,C,f)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(l){const a=r=>{const u=r.properties;if(u)for(const f in u)this.updateSchema(f,u[f]);r.allOf?.forEach(a)};a(l)}updateSchema(l,a){switch(e.allSettings.properties[l]=a,a.scope){case 1:e.applicationSettings.properties[l]=a;break;case 2:e.machineSettings.properties[l]=a;break;case 6:e.machineOverridableSettings.properties[l]=a;break;case 3:e.windowSettings.properties[l]=a;break;case 4:e.resourceSettings.properties[l]=a;break;case 5:e.resourceSettings.properties[l]=a,this.resourceLanguageSettingsSchema.properties[l]=a;break}}updateOverridePropertyPatternKey(){for(const l of this.overrideIdentifiers.values()){const a=`[${l}]`,r={type:"object",description:E.localize(1505,"Configure editor settings to be overridden for a language."),errorMessage:E.localize(1506,"This setting does not support per-language configuration."),$ref:e.resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(a,r),e.allSettings.properties[a]=r,e.applicationSettings.properties[a]=r,e.machineSettings.properties[a]=r,e.machineOverridableSettings.properties[a]=r,e.windowSettings.properties[a]=r,e.resourceSettings.properties[a]=r}}registerOverridePropertyPatternKey(){const l={type:"object",description:E.localize(1507,"Configure editor settings to be overridden for a language."),errorMessage:E.localize(1508,"This setting does not support per-language configuration."),$ref:e.resourceLanguageSettingsSchemaId};e.allSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.applicationSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.machineSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.machineOverridableSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.windowSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.resourceSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(l,a){const r=this.configurationDefaultsOverrides.get(l)?.configurationDefaultOverrideValue;let u,C;r&&(!a.disallowConfigurationDefault||!r.source)&&(u=r.value,C=r.source),I.isUndefined(u)&&(u=a.defaultDefaultValue,C=void 0),I.isUndefined(u)&&(u=i(a.type)),a.default=u,a.defaultValueSource=C}}const n="\\[([^\\]]+)\\]",o=new RegExp(n,"g");e.OVERRIDE_PROPERTY_PATTERN=`^(${n})+$`,e.OVERRIDE_PROPERTY_REGEX=new RegExp(e.OVERRIDE_PROPERTY_PATTERN);function t(c){const l=[];if(e.OVERRIDE_PROPERTY_REGEX.test(c)){let a=o.exec(c);for(;a?.length;){const r=a[1].trim();r&&l.push(r),a=o.exec(c)}}return(0,d.distinct)(l)}function i(c){switch(Array.isArray(c)?c[0]:c){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const s=new p;_.Registry.add(e.Extensions.Configuration,s);function g(c,l){return c.trim()?e.OVERRIDE_PROPERTY_REGEX.test(c)?E.localize(1510,"Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",c):s.getConfigurationProperties()[c]!==void 0?E.localize(1511,"Cannot register '{0}'. This property is already registered.",c):l.policy?.name&&s.getPolicyConfigurations().get(l.policy?.name)!==void 0?E.localize(1512,"Cannot register '{0}'. The associated policy {1} is already registered with {2}.",c,l.policy?.name,s.getPolicyConfigurations().get(l.policy?.name)):null:E.localize(1509,"Cannot register an empty property")}}),define(ne[274],se([1,0,308,37,197,3,109,38]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorConfigurationBaseNode=void 0,e.isEditorConfigurationKey=o,e.isDiffEditorConfigurationKey=t,e.editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:E.localize(133,"Editor"),scope:5});const _={...e.editorConfigurationBaseNode,properties:{"editor.tabSize":{type:"number",default:I.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:E.localize(134,"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:E.localize(135,'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:E.localize(136,"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:E.localize(137,"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:E.localize(138,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:E.localize(139,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[E.localize(140,"Turn off Word Based Suggestions."),E.localize(141,"Only suggest words from the active document."),E.localize(142,"Suggest words from all open documents of the same language."),E.localize(143,"Suggest words from all open documents.")],description:E.localize(144,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[E.localize(145,"Semantic highlighting enabled for all color themes."),E.localize(146,"Semantic highlighting disabled for all color themes."),E.localize(147,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:E.localize(148,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:E.localize(149,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:E.localize(150,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!0,description:E.localize(151,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:E.localize(152,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:E.localize(153,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.experimental.treeSitterTelemetry":{type:"boolean",default:!1,markdownDescription:E.localize(154,"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `editor.experimental.preferTreeSitter` for specific languages will take precedence."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:E.localize(155,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:E.localize(156,"The opening bracket character or string sequence.")},{type:"string",description:E.localize(157,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:E.localize(158,"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:E.localize(159,"The opening bracket character or string sequence.")},{type:"string",description:E.localize(160,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:d.diffEditorDefaultOptions.maxComputationTime,description:E.localize(161,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:d.diffEditorDefaultOptions.maxFileSize,description:E.localize(162,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:d.diffEditorDefaultOptions.renderSideBySide,description:E.localize(163,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:d.diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,description:E.localize(164,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:d.diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,description:E.localize(165,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:d.diffEditorDefaultOptions.renderMarginRevertIcon,description:E.localize(166,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:d.diffEditorDefaultOptions.renderGutterMenu,description:E.localize(167,"When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:d.diffEditorDefaultOptions.ignoreTrimWhitespace,description:E.localize(168,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:d.diffEditorDefaultOptions.renderIndicators,description:E.localize(169,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:d.diffEditorDefaultOptions.diffCodeLens,description:E.localize(170,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:d.diffEditorDefaultOptions.diffWordWrap,markdownEnumDescriptions:[E.localize(171,"Lines will never wrap."),E.localize(172,"Lines will wrap at the viewport width."),E.localize(173,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:d.diffEditorDefaultOptions.diffAlgorithm,markdownEnumDescriptions:[E.localize(174,"Uses the legacy diffing algorithm."),E.localize(175,"Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:d.diffEditorDefaultOptions.hideUnchangedRegions.enabled,markdownDescription:E.localize(176,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,markdownDescription:E.localize(177,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,markdownDescription:E.localize(178,"Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,markdownDescription:E.localize(179,"Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.showMoves,markdownDescription:E.localize(180,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.showEmptyDecorations,description:E.localize(181,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.useTrueInlineView,description:E.localize(182,"If enabled and the editor uses the inline view, word changes are rendered inline.")}}};function b(s){return typeof s.type<"u"||typeof s.anyOf<"u"}for(const s of k.editorOptionsRegistry){const g=s.schema;if(typeof g<"u")if(b(g))_.properties[`editor.${s.name}`]=g;else for(const c in g)Object.hasOwnProperty.call(g,c)&&(_.properties[c]=g[c])}let p=null;function n(){return p===null&&(p=Object.create(null),Object.keys(_.properties).forEach(s=>{p[s]=!0})),p}function o(s){return n()[`editor.${s}`]||!1}function t(s){return n()[`diffEditor.${s}`]||!1}m.Registry.as(y.Extensions.Configuration).registerConfiguration(_)}),define(ne[70],se([1,0,3,6,38,128,109]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PLAINTEXT_EXTENSION=e.PLAINTEXT_LANGUAGE_ID=e.ModesRegistry=e.EditorModesRegistry=e.Extensions=void 0,e.Extensions={ModesRegistry:"editor.modesRegistry"};class m{constructor(){this._onDidChangeLanguages=new k.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(b){return this._languages.push(b),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let p=0,n=this._languages.length;p{}};const r=new y.DisposableStore,u=r.add((0,d.renderMarkdown)(c,{...this._getRenderOptions(c,r),...l},a));return u.element.classList.add("rendered-markdown"),{element:u.element,dispose:()=>r.dispose()}}_getRenderOptions(c,l){return{codeBlockRenderer:async(a,r)=>{let u;a?u=this._languageService.getLanguageIdByLanguageName(a):this._options.editor&&(u=this._options.editor.getModel()?.getLanguageId()),u||(u=b.PLAINTEXT_LANGUAGE_ID);const C=await(0,p.tokenizeToString)(this._languageService,r,u),f=document.createElement("span");if(f.innerHTML=o._ttpTokenizer?.createHTML(C)??C,this._options.editor){const h=this._options.editor.getOption(50);(0,m.applyFontInfo)(f,h)}else this._options.codeBlockFontFamily&&(f.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(f.style.fontSize=this._options.codeBlockFontSize),f},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:a=>i(this._openerService,a,c.isTrusted),disposables:l}}}};e.MarkdownRenderer=t,e.MarkdownRenderer=t=o=ke([ce(1,_.ILanguageService),ce(2,n.IOpenerService)],t);async function i(g,c,l){try{return await g.open(c,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:s(l)})}catch(a){return(0,I.onUnexpectedError)(a),!1}}function s(g){return g===!0?!0:g&&Array.isArray(g.enabledCommands)?g.enabledCommands:!1}}),define(ne[705],se([1,0,2,6,5,31,28,37,174,85,59,7,120,57,3,16,61,46,480]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverWidget=void 0;const l=I.$;let a=class extends b.Widget{get _targetWindow(){return I.getWindow(this._target.targetElements[0])}get _targetDocumentElement(){return I.getWindow(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(f){this._isLocked!==f&&(this._isLocked=f,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(f,h,v,w,S,L){super(),this._keybindingService=h,this._configurationService=v,this._openerService=w,this._instantiationService=S,this._accessibilityService=L,this._messageListeners=new d.DisposableStore,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new k.Emitter),this._onRequestLayout=this._register(new k.Emitter),this._linkHandler=f.linkHandler||(N=>(0,o.openLinkFromMarkdown)(this._openerService,N,(0,t.isMarkdownString)(f.content)?f.content.isTrusted:void 0)),this._target="targetElements"in f.target?f.target:new u(f.target),this._hoverPointer=f.appearance?.showPointer?l("div.workbench-hover-pointer"):void 0,this._hover=this._register(new _.HoverWidget),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),f.appearance?.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),f.appearance?.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),f.additionalClasses&&this._hover.containerDomNode.classList.add(...f.additionalClasses),f.position?.forcePosition&&(this._forcePosition=!0),f.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=f.position?.hoverPosition??3,this.onmousedown(this._hover.containerDomNode,N=>N.stopPropagation()),this.onkeydown(this._hover.containerDomNode,N=>{N.equals(9)&&this.dispose()}),this._register(I.addDisposableListener(this._targetWindow,"blur",()=>this.dispose()));const D=l("div.hover-row.markdown-hover"),T=l("div.hover-contents");if(typeof f.content=="string")T.textContent=f.content,T.style.whiteSpace="pre-wrap";else if(I.isHTMLElement(f.content))T.appendChild(f.content),T.classList.add("html-hover-contents");else{const N=f.content,O=this._instantiationService.createInstance(o.MarkdownRenderer,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||m.EDITOR_FONT_DEFAULTS.fontFamily}),{element:F}=O.render(N,{actionHandler:{callback:x=>this._linkHandler(x),disposables:this._messageListeners},asyncRenderCallback:()=>{T.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});T.appendChild(F)}if(D.appendChild(T),this._hover.contentsDomNode.appendChild(D),f.actions&&f.actions.length>0){const N=l("div.hover-row.status-bar"),O=l("div.actions");f.actions.forEach(F=>{const x=this._keybindingService.lookupKeybinding(F.commandId),W=x?x.getLabel():null;_.HoverAction.render(O,{label:F.label,commandId:F.commandId,run:V=>{F.run(V),this.dispose()},iconClass:F.iconClass},W)}),N.appendChild(O),this._hover.containerDomNode.appendChild(N)}this._hoverContainer=l("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let M;if(f.actions&&f.actions.length>0?M=!1:f.persistence?.hideOnHover===void 0?M=typeof f.content=="string"||(0,t.isMarkdownString)(f.content)&&!f.content.value.includes("](")&&!f.content.value.includes(""):M=f.persistence.hideOnHover,f.appearance?.showHoverHint){const N=l("div.hover-row.status-bar"),O=l("div.info");O.textContent=(0,i.localize)(68,"Hold {0} key to mouse over",s.isMacintosh?"Option":"Alt"),N.appendChild(O),this._hover.containerDomNode.appendChild(N)}const A=[...this._target.targetElements];M||A.push(this._hoverContainer);const P=this._register(new r(A));if(this._register(P.onMouseOut(()=>{this._isLocked||this.dispose()})),M){const N=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new r(N)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=P}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const f=this._hover.containerDomNode,h=this.findLastFocusableChild(this._hover.containerDomNode);if(h){const v=I.prepend(this._hoverContainer,l("div")),w=I.append(this._hoverContainer,l("div"));v.tabIndex=0,w.tabIndex=0,this._register(I.addDisposableListener(w,"focus",S=>{f.focus(),S.preventDefault()})),this._register(I.addDisposableListener(v,"focus",S=>{h.focus(),S.preventDefault()}))}}findLastFocusableChild(f){if(f.hasChildNodes())for(let h=0;h=0)return S}const w=this.findLastFocusableChild(v);if(w)return w}}render(f){f.appendChild(this._hoverContainer);const v=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&(0,_.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel());v&&(0,c.status)(v),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const f=A=>{const P=I.getDomNodeZoomLevel(A),N=A.getBoundingClientRect();return{top:N.top*P,bottom:N.bottom*P,right:N.right*P,left:N.left*P}},h=this._target.targetElements.map(A=>f(A)),{top:v,right:w,bottom:S,left:L}=h[0],D=w-L,T=S-v,M={top:v,right:w,bottom:S,left:L,width:D,height:T,center:{x:L+D/2,y:v+T/2}};if(this.adjustHorizontalHoverPosition(M),this.adjustVerticalHoverPosition(M),this.adjustHoverMaxHeight(M),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:M.left+=3,M.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:M.left-=3,M.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:M.top+=3,M.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:M.top-=3,M.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}M.center.x=M.left+D/2,M.center.y=M.top+T/2}this.computeXCordinate(M),this.computeYCordinate(M),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(M)),this._hover.onContentsChanged()}computeXCordinate(f){const h=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=f.right:this._hoverPosition===0?this._x=f.left-h:(this._hoverPointer?this._x=f.center.x-this._hover.containerDomNode.clientWidth/2:this._x=f.left,this._x+h>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-h-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=f.bottom)}adjustHorizontalHoverPosition(f){if(this._target.x!==void 0)return;const h=this._hoverPointer?3:0;if(this._forcePosition){const v=h+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-f.right-v}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${f.left-v}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-f.right=this._hover.containerDomNode.clientWidth+h?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(f.left=this._hover.containerDomNode.clientWidth+h?this._hoverPosition=1:this._hoverPosition=2),f.left-this._hover.containerDomNode.clientWidth-h<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(f){if(this._target.y!==void 0||this._forcePosition)return;const h=this._hoverPointer?3:0;this._hoverPosition===3?f.top-this._hover.containerDomNode.clientHeight-h<0&&(this._hoverPosition=2):this._hoverPosition===2&&f.bottom+this._hover.containerDomNode.clientHeight+h>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(f){let h=this._targetWindow.innerHeight/2;if(this._forcePosition){const v=(this._hoverPointer?3:0)+2;this._hoverPosition===3?h=Math.min(h,f.top-v):this._hoverPosition===2&&(h=Math.min(h,this._targetWindow.innerHeight-f.bottom-v))}if(this._hover.containerDomNode.style.maxHeight=`${h}px`,this._hover.contentsDomNode.clientHeightf.height?this._hoverPointer.style.top=`${f.center.y-(this._y-h)-3}px`:this._hoverPointer.style.top=`${Math.round(h/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const h=this._hover.containerDomNode.clientWidth;let v=Math.round(h/2)-3;const w=this._x+v;(wf.right)&&(v=f.center.x-this._x-3),this._hoverPointer.style.left=`${v}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};e.HoverWidget=a,e.HoverWidget=a=ke([ce(1,E.IKeybindingService),ce(2,y.IConfigurationService),ce(3,p.IOpenerService),ce(4,n.IInstantiationService),ce(5,g.IAccessibilityService)],a);class r extends b.Widget{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(f){super(),this._elements=f,this._isMouseIn=!0,this._onMouseOut=this._register(new k.Emitter),this._elements.forEach(h=>this.onmouseover(h,()=>this._onTargetMouseOver(h))),this._elements.forEach(h=>this.onmouseleave(h,()=>this._onTargetMouseLeave(h)))}_onTargetMouseOver(f){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(f)}_onTargetMouseLeave(f){this._isMouseIn=!1,this._evaluateMouseState(f)}_evaluateMouseState(f){this._clearEvaluateMouseStateTimeout(f),this._mouseTimeout=I.getWindow(f).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(f){this._mouseTimeout&&(I.getWindow(f).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class u{constructor(f){this._element=f,this.targetElements=[this._element]}dispose(){}}}),define(ne[36],se([1,0,6,2,11,147,131,568,659,569,571,208,7,28,43,49,70,660]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedLanguageConfiguration=e.LanguageConfigurationRegistry=e.LanguageConfigurationChangeEvent=e.LanguageConfigurationService=e.ILanguageConfigurationService=e.LanguageConfigurationServiceChangeEvent=void 0,e.getIndentationAtPosition=h;class l{constructor(A){this.languageId=A}affects(A){return this.languageId?this.languageId===A:!0}}e.LanguageConfigurationServiceChangeEvent=l,e.ILanguageConfigurationService=(0,o.createDecorator)("languageConfigurationService");let a=class extends k.Disposable{constructor(A,P){super(),this.configurationService=A,this.languageService=P,this._registry=this._register(new D),this.onDidChangeEmitter=this._register(new d.Emitter),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const N=new Set(Object.values(u));this._register(this.configurationService.onDidChangeConfiguration(O=>{const F=O.change.keys.some(W=>N.has(W)),x=O.change.overrides.filter(([W,V])=>V.some(q=>N.has(q))).map(([W])=>W);if(F)this.configurations.clear(),this.onDidChangeEmitter.fire(new l(void 0));else for(const W of x)this.languageService.isRegisteredLanguageId(W)&&(this.configurations.delete(W),this.onDidChangeEmitter.fire(new l(W)))})),this._register(this._registry.onDidChange(O=>{this.configurations.delete(O.languageId),this.onDidChangeEmitter.fire(new l(O.languageId))}))}register(A,P,N){return this._registry.register(A,P,N)}getLanguageConfiguration(A){let P=this.configurations.get(A);return P||(P=r(A,this._registry,this.configurationService,this.languageService),this.configurations.set(A,P)),P}};e.LanguageConfigurationService=a,e.LanguageConfigurationService=a=ke([ce(0,t.IConfigurationService),ce(1,i.ILanguageService)],a);function r(M,A,P,N){let O=A.getLanguageConfiguration(M);if(!O){if(!N.isRegisteredLanguageId(M))return new T(M,{});O=new T(M,{})}const F=C(O.languageId,P),x=w([O.underlyingConfig,F]);return new T(O.languageId,x)}const u={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function C(M,A){const P=A.getValue(u.brackets,{overrideIdentifier:M}),N=A.getValue(u.colorizedBracketPairs,{overrideIdentifier:M});return{brackets:f(P),colorizedBracketPairs:f(N)}}function f(M){if(Array.isArray(M))return M.map(A=>{if(!(!Array.isArray(A)||A.length!==2))return[A[0],A[1]]}).filter(A=>!!A)}function h(M,A,P){const N=M.getLineContent(A);let O=I.getLeadingWhitespace(N);return O.length>P-1&&(O=O.substring(0,P-1)),O}class v{constructor(A){this.languageId=A,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(A,P){const N=new S(A,P,++this._order);return this._entries.push(N),this._resolved=null,(0,k.toDisposable)(()=>{for(let O=0;OA.configuration)))}}function w(M){let A={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const P of M)A={comments:P.comments||A.comments,brackets:P.brackets||A.brackets,wordPattern:P.wordPattern||A.wordPattern,indentationRules:P.indentationRules||A.indentationRules,onEnterRules:P.onEnterRules||A.onEnterRules,autoClosingPairs:P.autoClosingPairs||A.autoClosingPairs,surroundingPairs:P.surroundingPairs||A.surroundingPairs,autoCloseBefore:P.autoCloseBefore||A.autoCloseBefore,folding:P.folding||A.folding,colorizedBracketPairs:P.colorizedBracketPairs||A.colorizedBracketPairs,__electricCharacterSupport:P.__electricCharacterSupport||A.__electricCharacterSupport};return A}class S{constructor(A,P,N){this.configuration=A,this.priority=P,this.order=N}static cmp(A,P){return A.priority===P.priority?A.order-P.order:A.priority-P.priority}}class L{constructor(A){this.languageId=A}}e.LanguageConfigurationChangeEvent=L;class D extends k.Disposable{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,this._register(this.register(g.PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(A,P,N=0){let O=this._entries.get(A);O||(O=new v(A),this._entries.set(A,O));const F=O.register(P,N);return this._onDidChange.fire(new L(A)),(0,k.toDisposable)(()=>{F.dispose(),this._onDidChange.fire(new L(A))})}getLanguageConfiguration(A){return this._entries.get(A)?.getResolvedConfiguration()||null}}e.LanguageConfigurationRegistry=D;class T{constructor(A,P){this.languageId=A,this.underlyingConfig=P,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p.OnEnterSupport(this.underlyingConfig):null,this.comments=T._handleComments(this.underlyingConfig),this.characterPair=new m.CharacterPairSupport(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||E.DEFAULT_WORD_REGEXP,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new b.IndentRulesSupport(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new c.LanguageBracketsConfiguration(A,this.underlyingConfig)}getWordDefinition(){return(0,E.ensureValidWordDefinition)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new n.RichEditBrackets(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new _.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter}onEnter(A,P,N,O){return this._onEnterSupport?this._onEnterSupport.onEnter(A,P,N,O):null}getAutoClosingPairs(){return new y.AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(A){return this.characterPair.getAutoCloseBeforeSet(A)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(A){const P=A.comments;if(!P)return null;const N={};if(P.lineComment&&(N.lineCommentToken=P.lineComment),P.blockComment){const[O,F]=P.blockComment;N.blockCommentStartToken=O,N.blockCommentEndToken=F}return N}}e.ResolvedLanguageConfiguration=T,(0,s.registerSingleton)(e.ILanguageConfigurationService,a,1)}),define(ne[401],se([1,0,14,2,361,646,4,36,666,51,211,13,62,54,8,17,232,105,55,52,5,373,326]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorWorkerClient=e.EditorWorkerService=void 0;const f=5*60*1e3;function h(T,M){const A=T.getModel(M);return!(!A||A.isTooLargeForSyncing())}let v=class extends k.Disposable{constructor(M,A,P,N,O,F){super(),this._languageConfigurationService=O,this._modelService=A,this._workerManager=this._register(new S(M,this._modelService)),this._logService=N,this._register(F.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:async(x,W)=>{if(!h(this._modelService,x.uri))return Promise.resolve({links:[]});const q=await(await this._workerWithResources([x.uri])).$computeLinks(x.uri.toString());return q&&{links:q}}})),this._register(F.completionProvider.register("*",new w(this._workerManager,P,this._modelService,this._languageConfigurationService)))}dispose(){super.dispose()}canComputeUnicodeHighlights(M){return h(this._modelService,M)}async computedUnicodeHighlights(M,A,P){return(await this._workerWithResources([M])).$computeUnicodeHighlights(M.toString(),A,P)}async computeDiff(M,A,P,N){const F=await(await this._workerWithResources([M,A],!0)).$computeDiff(M.toString(),A.toString(),P,N);if(!F)return null;return{identical:F.identical,quitEarly:F.quitEarly,changes:W(F.changes),moves:F.moves.map(V=>new g.MovedText(new c.LineRangeMapping(new l.LineRange(V[0],V[1]),new l.LineRange(V[2],V[3])),W(V[4])))};function W(V){return V.map(q=>new c.DetailedLineRangeMapping(new l.LineRange(q[0],q[1]),new l.LineRange(q[2],q[3]),q[4]?.map(H=>new c.RangeMapping(new y.Range(H[0],H[1],H[2],H[3]),new y.Range(H[4],H[5],H[6],H[7])))))}}async computeMoreMinimalEdits(M,A,P=!1){if((0,n.isNonEmptyArray)(A)){if(!h(this._modelService,M))return Promise.resolve(A);const N=t.StopWatch.create(),O=this._workerWithResources([M]).then(F=>F.$computeMoreMinimalEdits(M.toString(),A,P));return O.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",M.toString(!0),N.elapsed())),Promise.race([O,(0,d.timeout)(1e3).then(()=>A)])}else return Promise.resolve(void 0)}canNavigateValueSet(M){return h(this._modelService,M)}async navigateValueSet(M,A,P){const N=this._modelService.getModel(M);if(!N)return null;const O=this._languageConfigurationService.getLanguageConfiguration(N.getLanguageId()).getWordDefinition(),F=O.source,x=O.flags;return(await this._workerWithResources([M])).$navigateValueSet(M.toString(),A,P,F,x)}canComputeWordRanges(M){return h(this._modelService,M)}async computeWordRanges(M,A){const P=this._modelService.getModel(M);if(!P)return Promise.resolve(null);const N=this._languageConfigurationService.getLanguageConfiguration(P.getLanguageId()).getWordDefinition(),O=N.source,F=N.flags;return(await this._workerWithResources([M])).$computeWordRanges(M.toString(),A,O,F)}async findSectionHeaders(M,A){return(await this._workerWithResources([M])).$findSectionHeaders(M.toString(),A)}async computeDefaultDocumentColors(M){return(await this._workerWithResources([M])).$computeDefaultDocumentColors(M.toString())}async _workerWithResources(M,A=!1){return await(await this._workerManager.withWorker()).workerWithSyncedResources(M,A)}};e.EditorWorkerService=v,e.EditorWorkerService=v=ke([ce(1,b.IModelService),ce(2,p.ITextResourceConfigurationService),ce(3,o.ILogService),ce(4,m.ILanguageConfigurationService),ce(5,s.ILanguageFeaturesService)],v);class w{constructor(M,A,P,N){this.languageConfigurationService=N,this._debugDisplayName="wordbasedCompletions",this._workerManager=M,this._configurationService=A,this._modelService=P}async provideCompletionItems(M,A){const P=this._configurationService.getValue(M.uri,A,"editor");if(P.wordBasedSuggestions==="off")return;const N=[];if(P.wordBasedSuggestions==="currentDocument")h(this._modelService,M.uri)&&N.push(M.uri);else for(const H of this._modelService.getModels())h(this._modelService,H.uri)&&(H===M?N.unshift(H.uri):(P.wordBasedSuggestions==="allDocuments"||H.getLanguageId()===M.getLanguageId())&&N.push(H.uri));if(N.length===0)return;const O=this.languageConfigurationService.getLanguageConfiguration(M.getLanguageId()).getWordDefinition(),F=M.getWordAtPosition(A),x=F?new y.Range(A.lineNumber,F.startColumn,A.lineNumber,F.endColumn):y.Range.fromPositions(A),W=x.setEndPosition(A.lineNumber,A.column),q=await(await this._workerManager.withWorker()).textualSuggest(N,F?.word,O);if(q)return{duration:q.duration,suggestions:q.words.map(H=>({kind:18,label:H,insertText:H,range:{insert:W,replace:x}}))}}}let S=class extends k.Disposable{constructor(M,A){super(),this._workerDescriptor=M,this._modelService=A,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new r.WindowIntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(f/2),a.mainWindow),this._register(this._modelService.onModelRemoved(N=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>f&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new D(this._workerDescriptor,!1,this._modelService)),Promise.resolve(this._editorWorkerClient)}};S=ke([ce(1,b.IModelService)],S);class L{constructor(M){this._instance=M,this.proxy=this._instance}dispose(){this._instance.dispose()}setChannel(M,A){throw new Error("Not supported")}}let D=class extends k.Disposable{constructor(M,A,P){super(),this._workerDescriptor=M,this._disposed=!1,this._modelService=P,this._keepIdleModels=A,this._worker=null,this._modelManager=null}fhr(M,A){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register((0,E.createWebWorker)(this._workerDescriptor)),C.EditorWorkerHost.setChannel(this._worker,this._createEditorWorkerHost())}catch(M){(0,I.logOnceWebWorkerWarning)(M),this._worker=this._createFallbackLocalWorker()}return this._worker}async _getProxy(){try{const M=this._getOrCreateWorker().proxy;return await M.$ping(),M}catch(M){return(0,I.logOnceWebWorkerWarning)(M),this._worker=this._createFallbackLocalWorker(),this._worker.proxy}}_createFallbackLocalWorker(){return new L(new _.EditorSimpleWorker(this._createEditorWorkerHost(),null))}_createEditorWorkerHost(){return{$fhr:(M,A)=>this.fhr(M,A)}}_getOrCreateModelManager(M){return this._modelManager||(this._modelManager=this._register(new u.WorkerTextModelSyncClient(M,this._modelService,this._keepIdleModels))),this._modelManager}async workerWithSyncedResources(M,A=!1){if(this._disposed)return Promise.reject((0,i.canceled)());const P=await this._getProxy();return this._getOrCreateModelManager(P).ensureSyncedResources(M,A),P}async textualSuggest(M,A,P){const N=await this.workerWithSyncedResources(M),O=P.source,F=P.flags;return N.$textualSuggest(M.map(x=>x.toString()),A,O,F)}dispose(){super.dispose(),this._disposed=!0}};e.EditorWorkerClient=D,e.EditorWorkerClient=D=ke([ce(2,b.IModelService)],D)}),define(ne[275],se([1,0,131,36,240]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEnterAction=E;function E(y,m,_,b){m.tokenization.forceTokenization(_.startLineNumber);const p=m.getLanguageIdAtPosition(_.startLineNumber,_.startColumn),n=b.getLanguageConfiguration(p);if(!n)return null;const t=new I.IndentationContextProcessor(m,b).getProcessedTokenContextAroundRange(_),i=t.previousLineProcessedTokens.getLineContent(),s=t.beforeRangeProcessedTokens.getLineContent(),g=t.afterRangeProcessedTokens.getLineContent(),c=n.onEnter(y,i,s,g);if(!c)return null;const l=c.indentAction;let a=c.appendText;const r=c.removeText||0;a?l===d.IndentAction.Indent&&(a=" "+a):l===d.IndentAction.Indent||l===d.IndentAction.IndentOutdent?a=" ":a="";let u=(0,k.getIndentationAtPosition)(m,_.startLineNumber,_.startColumn);return r&&(u=u.substring(0,u.length-r)),{indentAction:l,appendText:a,removeText:r,indentation:u}}}),define(ne[183],se([1,0,11,94,4,23,275,36]),function(oe,e,d,k,I,E,y,m){"use strict";var _;Object.defineProperty(e,"__esModule",{value:!0}),e.ShiftCommand=void 0;const b=Object.create(null);function p(o,t){if(t<=0)return"";b[o]||(b[o]=["",o]);const i=b[o];for(let s=i.length;s<=t;s++)i[s]=i[s-1]+o;return i[t]}let n=_=class{static unshiftIndent(t,i,s,g,c){const l=k.CursorColumns.visibleColumnFromColumn(t,i,s);if(c){const a=p(" ",g),u=k.CursorColumns.prevIndentTabStop(l,g)/g;return p(a,u)}else{const a=" ",u=k.CursorColumns.prevRenderTabStop(l,s)/s;return p(a,u)}}static shiftIndent(t,i,s,g,c){const l=k.CursorColumns.visibleColumnFromColumn(t,i,s);if(c){const a=p(" ",g),u=k.CursorColumns.nextIndentTabStop(l,g)/g;return p(a,u)}else{const a=" ",u=k.CursorColumns.nextRenderTabStop(l,s)/s;return p(a,u)}}constructor(t,i,s){this._languageConfigurationService=s,this._opts=i,this._selection=t,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(t,i,s){this._useLastEditRangeForCursorEndPosition?t.addTrackedEditOperation(i,s):t.addEditOperation(i,s)}getEditOperations(t,i){const s=this._selection.startLineNumber;let g=this._selection.endLineNumber;this._selection.endColumn===1&&s!==g&&(g=g-1);const{tabSize:c,indentSize:l,insertSpaces:a}=this._opts,r=s===g;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(s))&&(this._useLastEditRangeForCursorEndPosition=!0);let u=0,C=0;for(let f=s;f<=g;f++,u=C){C=0;const h=t.getLineContent(f);let v=d.firstNonWhitespaceIndex(h);if(this._opts.isUnshift&&(h.length===0||v===0)||!r&&!this._opts.isUnshift&&h.length===0)continue;if(v===-1&&(v=h.length),f>1&&k.CursorColumns.visibleColumnFromColumn(h,v+1,c)%l!==0&&t.tokenization.isCheapToTokenize(f-1)){const L=(0,y.getEnterAction)(this._opts.autoIndent,t,new I.Range(f-1,t.getLineMaxColumn(f-1),f-1,t.getLineMaxColumn(f-1)),this._languageConfigurationService);if(L){if(C=u,L.appendText)for(let D=0,T=L.appendText.length;Dx(H,K),unshiftIndent:K=>W(H,K)},H.languageConfigurationService);if(Y===null)return null;const G=(0,o.getIndentationAtPosition)(z,U.startLineNumber,U.startColumn);return Y===H.normalizeIndentation(G)?null:Y}static _getIndentationAndAutoClosingPairEdits(H,z,U,j,Y){const G=U.map(({selection:R,indentation:J})=>{if(Y!==null){const ie=this._getEditFromIndentationAndSelection(H,z,J,R,j,!1);return new T(ie,R,j,Y)}else{const ie=this._getEditFromIndentationAndSelection(H,z,J,R,j,!0);return F(ie.range,ie.text,!1)}}),K={shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1};return new m.EditOperationResult(4,G,K)}static _getEditFromIndentationAndSelection(H,z,U,j,Y,G=!0){const K=j.startLineNumber,R=z.getLineFirstNonWhitespaceColumn(K);let J=H.normalizeIndentation(U);if(R!==0){const ue=z.getLineContent(K);J+=ue.substring(R-1,j.startColumn-1)}return J+=G?Y:"",{range:new b.Range(K,1,j.endLineNumber,j.endColumn),text:J}}}e.AutoIndentOperation=g;class c{static getEdits(H,z,U,j,Y,G){if(O(z,U,j,Y,G))return this._runAutoClosingOvertype(H,j,G)}static _runAutoClosingOvertype(H,z,U){const j=[];for(let Y=0,G=z.length;Ynew I.ReplaceCommand(new b.Range(K.positionLineNumber,K.positionColumn,K.positionLineNumber,K.positionColumn+1),"",!1));return new m.EditOperationResult(4,G,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}}e.AutoClosingOvertypeWithInterceptorsOperation=l;class a{static getEdits(H,z,U,j,Y,G){if(!G){const K=this.getAutoClosingPairClose(H,z,U,j,Y);if(K!==null)return this._runAutoClosingOpenCharType(U,j,Y,K)}}static _runAutoClosingOpenCharType(H,z,U,j){const Y=[];for(let G=0,K=H.length;G{const ee=ae.getPosition();return Y?{lineNumber:ee.lineNumber,beforeColumn:ee.column-j.length,afterColumn:ee.column}:{lineNumber:ee.lineNumber,beforeColumn:ee.column,afterColumn:ee.column}}),K=this._findAutoClosingPairOpen(H,z,G.map(ae=>new p.Position(ae.lineNumber,ae.beforeColumn)),j);if(!K)return null;let R,J;if((0,m.isQuote)(j)?(R=H.autoClosingQuotes,J=H.shouldAutoCloseBefore.quote):(H.blockCommentStartToken?K.open.includes(H.blockCommentStartToken):!1)?(R=H.autoClosingComments,J=H.shouldAutoCloseBefore.comment):(R=H.autoClosingBrackets,J=H.shouldAutoCloseBefore.bracket),R==="never")return null;const ue=this._findContainedAutoClosingPair(H,K),he=ue?ue.close:"";let pe=!0;for(const ae of G){const{lineNumber:ee,beforeColumn:de,afterColumn:ge}=ae,X=z.getLineContent(ee),B=X.substring(0,de-1),$=X.substring(ge-1);if($.startsWith(he)||(pe=!1),$.length>0){const re=$.charAt(0);if(!this._isBeforeClosingBrace(H,$)&&!J(re))return null}if(K.open.length===1&&(j==="'"||j==='"')&&R!=="always"){const re=(0,_.getMapForWordSeparators)(H.wordSeparators,[]);if(B.length>0){const le=B.charCodeAt(B.length-1);if(re.get(le)===0)return null}}if(!z.tokenization.isCheapToTokenize(ee))return null;z.tokenization.forceTokenization(ee);const Q=z.tokenization.getLineTokens(ee),Z=(0,t.createScopedLineTokens)(Q,de-1);if(!K.shouldAutoClose(Z,de-Z.firstCharOffset))return null;const te=K.findNeutralCharacter();if(te){const re=z.tokenization.getTokenTypeIfInsertingCharacter(ee,de,te);if(!K.isOK(re))return null}}return pe?K.close.substring(0,K.close.length-he.length):K.close}static _findContainedAutoClosingPair(H,z){if(z.open.length<=1)return null;const U=z.close.charAt(z.close.length-1),j=H.autoClosingPairs.autoClosingPairsCloseByEnd.get(U)||[];let Y=null;for(const G of j)G.open!==z.open&&z.open.includes(G.open)&&z.close.endsWith(G.close)&&(!Y||G.open.length>Y.open.length)&&(Y=G);return Y}static _findAutoClosingPairOpen(H,z,U,j){const Y=H.autoClosingPairs.autoClosingPairsOpenByEnd.get(j);if(!Y)return null;let G=null;for(const K of Y)if(G===null||K.open.length>G.open.length){let R=!0;for(const J of U)if(z.getValueInRange(new b.Range(J.lineNumber,J.column-K.open.length+1,J.lineNumber,J.column))+j!==K.open){R=!1;break}R&&(G=K)}return G}static _isBeforeClosingBrace(H,z){const U=z.charAt(0),j=H.autoClosingPairs.autoClosingPairsOpenByStart.get(U)||[],Y=H.autoClosingPairs.autoClosingPairsCloseByStart.get(U)||[],G=j.some(R=>z.startsWith(R.open)),K=Y.some(R=>z.startsWith(R.close));return!G&&K}}e.AutoClosingOpenCharTypeOperation=a;class r{static getEdits(H,z,U,j,Y){if(!Y&&this._isSurroundSelectionType(H,z,U,j))return this._runSurroundSelectionType(H,U,j)}static _runSurroundSelectionType(H,z,U){const j=[];for(let Y=0,G=z.length;Y=4){const R=(0,i.getIndentForEnter)(H.autoIndent,z,j,{unshiftIndent:J=>W(H,J),shiftIndent:J=>x(H,J),normalizeIndentation:J=>H.normalizeIndentation(J)},H.languageConfigurationService);if(R){let J=H.visibleColumnFromColumn(z,j.getEndPosition());const ie=j.endColumn,ue=z.getLineContent(j.endLineNumber),he=k.firstNonWhitespaceIndex(ue);if(he>=0?j=j.setEndPosition(j.endLineNumber,Math.max(j.endColumn,he+1)):j=j.setEndPosition(j.endLineNumber,z.getLineMaxColumn(j.endLineNumber)),U)return new I.ReplaceCommandWithoutChangingPosition(j,` -`+H.normalizeIndentation(R.afterEnter),!0);{let pe=0;return ie<=he+1&&(H.insertSpaces||(J=Math.ceil(J/H.indentSize)),pe=Math.min(J+1-H.normalizeIndentation(R.afterEnter).length-1,0)),new I.ReplaceCommandWithOffsetCursorState(j,` -`+H.normalizeIndentation(R.afterEnter),0,pe,!0)}}}return F(j,` -`+H.normalizeIndentation(K),U)}static lineInsertBefore(H,z,U){if(z===null||U===null)return[];const j=[];for(let Y=0,G=U.length;Ythis._compositionType(U,ie,Y,G,K,R));return new m.EditOperationResult(4,J,{shouldPushStackElementBefore:A(H,4),shouldPushStackElementAfter:!1})}static _compositionType(H,z,U,j,Y,G){if(!z.isEmpty())return null;const K=z.getPosition(),R=Math.max(1,K.column-j),J=Math.min(H.getLineMaxColumn(K.lineNumber),K.column+Y),ie=new b.Range(K.lineNumber,R,K.lineNumber,J);return H.getValueInRange(ie)===U&&G===0?null:new I.ReplaceCommandWithOffsetCursorState(ie,U,0,G)}}e.CompositionOperation=v;class w{static getEdits(H,z,U){const j=[];for(let G=0,K=z.length;G1){let K;for(K=U-1;K>=1;K--){const ie=z.getLineContent(K);if(k.lastNonWhitespaceIndex(ie)>=0)break}if(K<1)return null;const R=z.getLineMaxColumn(K),J=(0,s.getEnterAction)(H.autoIndent,z,new b.Range(K,R,K,R),H.languageConfigurationService);J&&(Y=J.indentation+J.appendText)}return j&&(j===n.IndentAction.Indent&&(Y=x(H,Y)),j===n.IndentAction.Outdent&&(Y=W(H,Y)),Y=H.normalizeIndentation(Y)),Y||null}static _replaceJumpToNextIndent(H,z,U,j){let Y="";const G=U.getStartPosition();if(H.insertSpaces){const K=H.visibleColumnFromColumn(z,G),R=H.indentSize,J=R-K%R;for(let ie=0;ie2?J.charCodeAt(R.column-2):0)===92&&ue)return!1;if(q.autoClosingOvertype==="auto"){let pe=!1;for(let ae=0,ee=U.length;ae0){const f=this._cursors.getSelections();for(let h=0;hL&&(w=w.slice(0,L),S=!0);const D=c.from(this._model,this);return this._cursors.setStates(w),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(f,h,v,D,S)}setCursorColumnSelectData(f){this._columnSelectData=f}revealAll(f,h,v,w,S,L){const D=this._cursors.getViewPositions();let T=null,M=null;D.length>1?M=this._cursors.getViewSelections():T=p.Range.fromPositions(D[0],D[0]),f.emitViewEvent(new t.ViewRevealRangeRequestEvent(h,v,T,M,w,S,L))}revealPrimary(f,h,v,w,S,L){const T=[this._cursors.getPrimaryCursor().viewState.selection];f.emitViewEvent(new t.ViewRevealRangeRequestEvent(h,v,null,T,w,S,L))}saveState(){const f=[],h=this._cursors.getSelections();for(let v=0,w=h.length;v0){const S=E.CursorState.fromModelSelections(v.resultingSelection);this.setStates(f,"modelChange",v.isUndoing?5:v.isRedoing?6:2,S)&&this.revealAll(f,"modelChange",!1,0,!0,0)}else{const S=this._cursors.readSelectionFromMarkers();this.setStates(f,"modelChange",2,E.CursorState.fromModelSelections(S))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const f=this._cursors.getPrimaryCursor(),h=f.viewState.selectionStart.getStartPosition(),v=f.viewState.position;return{isReal:!1,fromViewLineNumber:h.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,h),toViewLineNumber:v.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,v)}}getSelections(){return this._cursors.getSelections()}setSelections(f,h,v,w){this.setStates(f,h,w,E.CursorState.fromModelSelections(v))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(f){this._prevEditOperationType=f}_pushAutoClosedAction(f,h){const v=[],w=[];for(let D=0,T=f.length;D0&&this._pushAutoClosedAction(v,w),this._prevEditOperationType=f.type}f.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(f){(!f||f.length===0)&&(f=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(f),this._cursors.normalize()}_emitStateChangedIfNecessary(f,h,v,w,S){const L=c.from(this._model,this);if(L.equals(w))return!1;const D=this._cursors.getSelections(),T=this._cursors.getViewSelections();if(f.emitViewEvent(new t.ViewCursorStateChangedEvent(T,D,v)),!w||w.cursorState.length!==L.cursorState.length||L.cursorState.some((M,A)=>!M.modelState.equals(w.cursorState[A].modelState))){const M=w?w.cursorState.map(P=>P.modelState.selection):null,A=w?w.modelVersionId:0;f.emitOutgoingEvent(new s.CursorStateChangedEvent(M,D,A,L.modelVersionId,h||"keyboard",v,S))}return!0}_findAutoClosingPairs(f){if(!f.length)return null;const h=[];for(let v=0,w=f.length;v=0)return null;const L=S.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!L)return null;const D=L[1],T=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(D);if(!T||T.length!==1)return null;const M=T[0].open,A=S.text.length-L[2].length-1,P=S.text.lastIndexOf(M,A-1);if(P===-1)return null;h.push([P,A])}return h}executeEdits(f,h,v,w){let S=null;h==="snippet"&&(S=this._findAutoClosingPairs(v)),S&&(v[0]._isTracked=!0);const L=[],D=[],T=this._model.pushEditOperations(this.getSelections(),v,M=>{if(S)for(let P=0,N=S.length;P0&&this._pushAutoClosedAction(L,D)}_executeEdit(f,h,v,w=0){if(this.context.cursorConfig.readOnly)return;const S=c.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),f()}catch(L){(0,d.onUnexpectedError)(L)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(h,v,w,S,!1)&&this.revealAll(h,v,!1,0,!0,0)}getAutoClosedCharacters(){return l.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(f){this._compositionState=new u(this._model,this.getSelections())}endComposition(f,h){const v=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{h==="keyboard"&&this._executeEditOperation(_.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,v,this.getSelections(),this.getAutoClosedCharacters()))},f,h)}type(f,h,v){this._executeEdit(()=>{if(v==="keyboard"){const w=h.length;let S=0;for(;S{const M=T.getPosition();return new n.Selection(M.lineNumber,M.column+S,M.lineNumber,M.column+S)});this.setSelections(f,L,D,0)}return}this._executeEdit(()=>{this._executeEditOperation(_.TypeOperations.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),h,v,w,S))},f,L)}paste(f,h,v,w,S){this._executeEdit(()=>{this._executeEditOperation(_.TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),h,v,w||[]))},f,S,4)}cut(f,h){this._executeEdit(()=>{this._executeEditOperation(m.DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()))},f,h)}executeCommand(f,h,v){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new E.EditOperationResult(0,[h],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},f,v)}executeCommands(f,h,v){this._executeEdit(()=>{this._executeEditOperation(new E.EditOperationResult(0,h,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},f,v)}}e.CursorsController=g;class c{static from(f,h){return new c(f.getVersionId(),h.getCursorStates())}constructor(f,h){this.modelVersionId=f,this.cursorState=h}equals(f){if(!f||this.modelVersionId!==f.modelVersionId||this.cursorState.length!==f.cursorState.length)return!1;for(let h=0,v=this.cursorState.length;h=h.length||!h[v].strictContainsRange(f[v]))return!1;return!0}}class a{static executeCommands(f,h,v){const w={model:f,selectionsBefore:h,trackedRanges:[],trackedRangesDirection:[]},S=this._innerExecuteCommands(w,v);for(let L=0,D=w.trackedRanges.length;L0&&(L[0]._isTracked=!0);let D=f.model.pushEditOperations(f.selectionsBefore,L,M=>{const A=[];for(let O=0;OO.identifier.minor-F.identifier.minor,N=[];for(let O=0;O0?(A[O].sort(P),N[O]=h[O].computeCursorState(f.model,{getInverseEditOperations:()=>A[O],getTrackedSelection:F=>{const x=parseInt(F,10),W=f.model._getTrackedRange(f.trackedRanges[x]);return f.trackedRangesDirection[x]===0?new n.Selection(W.startLineNumber,W.startColumn,W.endLineNumber,W.endColumn):new n.Selection(W.endLineNumber,W.endColumn,W.startLineNumber,W.startColumn)}})):N[O]=f.selectionsBefore[O];return N});D||(D=f.selectionsBefore);const T=[];for(const M in S)S.hasOwnProperty(M)&&T.push(parseInt(M,10));T.sort((M,A)=>A-M);for(const M of T)D.splice(M,1);return D}static _arrayIsEmpty(f){for(let h=0,v=f.length;h{p.Range.isEmpty(P)&&N===""||w.push({identifier:{major:h,minor:S++},range:P,text:N,forceMoveMarkers:O,isAutoWhitespaceEdit:v.insertsAutoWhitespace})};let D=!1;const A={addEditOperation:L,addTrackedEditOperation:(P,N,O)=>{D=!0,L(P,N,O)},trackSelection:(P,N)=>{const O=n.Selection.liftSelection(P);let F;if(O.isEmpty())if(typeof N=="boolean")N?F=2:F=3;else{const V=f.model.getLineMaxColumn(O.startLineNumber);O.startColumn===V?F=2:F=3}else F=1;const x=f.trackedRanges.length,W=f.model._setTrackedRange(null,O,F);return f.trackedRanges[x]=W,f.trackedRangesDirection[x]=O.getDirection(),x.toString()}};try{v.getEditOperations(f.model,A)}catch(P){return(0,d.onUnexpectedError)(P),{operations:[],hadTrackedEditOperation:!1}}return{operations:w,hadTrackedEditOperation:D}}static _getLoserCursorMap(f){f=f.slice(0),f.sort((v,w)=>-p.Range.compareRangesUsingEnds(v.range,w.range));const h={};for(let v=1;vS.identifier.major?L=w.identifier.major:L=S.identifier.major,h[L.toString()]=!0;for(let D=0;D0&&v--}}return h}}e.CommandExecutor=a;class r{constructor(f,h,v){this.text=f,this.startSelection=h,this.endSelection=v}}class u{static _capture(f,h){const v=[];for(const w of h){if(w.startLineNumber!==w.endLineNumber)return null;v.push(new r(f.getLineContent(w.startLineNumber),w.startColumn-1,w.endColumn-1))}return v}constructor(f,h){this._original=u._capture(f,h)}deduceOutcome(f,h){if(!this._original)return null;const v=u._capture(f,h);if(!v||this._original.length!==v.length)return null;const w=[];for(let S=0,L=this._original.length;S{M.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(k.Event.filter(b.TreeSitterTokenizationRegistry.onDidChange,M=>M.changedLanguages.includes(this._languageId))(()=>{this.createPreferredTokenProvider()})),this.createPreferredTokenProvider()}createGrammarTokens(){return this._register(new C(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews))}createTreeSitterTokens(){return this._register(new s.TreeSitterTokens(this._treeSitterService,this._languageService.languageIdCodec,this._textModel,()=>this._languageId))}createTokens(h){const v=this._tokens!==void 0;this._tokens?.dispose(),this._tokens=h?this.createTreeSitterTokens():this.createGrammarTokens(),this._tokensDisposables.clear(),this._tokensDisposables.add(this._tokens.onDidChangeTokens(w=>{this._emitModelTokensChangedEvent(w)})),this._tokensDisposables.add(this._tokens.onDidChangeBackgroundTokenizationState(w=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})),v&&this._tokens.resetTokenization()}createPreferredTokenProvider(){b.TreeSitterTokenizationRegistry.get(this._languageId)?this._tokens instanceof s.TreeSitterTokens||this.createTokens(!0):this._tokens instanceof C||this.createTokens(!1)}handleLanguageConfigurationServiceChange(h){h.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}handleDidChangeContent(h){if(h.isFlush)this._semanticTokens.flush();else if(!h.isEolChange)for(const v of h.changes){const[w,S,L]=(0,E.countEOL)(v.text);this._semanticTokens.acceptEdit(v.range,w,S,L,v.text.length>0?v.text.charCodeAt(0):0)}this._tokens.handleDidChangeContent(h)}handleDidChangeAttached(){this._tokens.handleDidChangeAttached()}getLineTokens(h){this.validateLineNumber(h);const v=this._tokens.getLineTokens(h);return this._semanticTokens.addSparseTokens(h,v)}_emitModelTokensChangedEvent(h){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(h),this._onDidChangeTokens.fire(h))}validateLineNumber(h){if(h<1||h>this._textModel.getLineCount())throw new d.BugIndicatingError("Illegal value for lineNumber")}get hasTokens(){return this._tokens.hasTokens}resetTokenization(){this._tokens.resetTokenization()}get backgroundTokenizationState(){return this._tokens.backgroundTokenizationState}forceTokenization(h){this.validateLineNumber(h),this._tokens.forceTokenization(h)}hasAccurateTokensForLine(h){return this.validateLineNumber(h),this._tokens.hasAccurateTokensForLine(h)}isCheapToTokenize(h){return this.validateLineNumber(h),this._tokens.isCheapToTokenize(h)}tokenizeIfCheap(h){this.validateLineNumber(h),this._tokens.tokenizeIfCheap(h)}getTokenTypeIfInsertingCharacter(h,v,w){return this._tokens.getTokenTypeIfInsertingCharacter(h,v,w)}tokenizeLineWithEdit(h,v,w){return this._tokens.tokenizeLineWithEdit(h,v,w)}setSemanticTokens(h,v){this._semanticTokens.set(h,v),this._emitModelTokensChangedEvent({semanticTokensApplied:h!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(h,v){if(this.hasCompleteSemanticTokens())return;const w=this._textModel.validateRange(this._semanticTokens.setPartial(h,v));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:w.startLineNumber,toLineNumber:w.endLineNumber}]})}getWordAtPosition(h){this.assertNotDisposed();const v=this._textModel.validatePosition(h),w=this._textModel.getLineContent(v.lineNumber),S=this.getLineTokens(v.lineNumber),L=S.findTokenIndexAtOffset(v.column-1),[D,T]=r._findLanguageBoundaries(S,L),M=(0,_.getWordAtText)(v.column,this.getLanguageConfiguration(S.getLanguageId(L)).getWordDefinition(),w.substring(D,T),D);if(M&&M.startColumn<=h.column&&h.column<=M.endColumn)return M;if(L>0&&D===v.column-1){const[A,P]=r._findLanguageBoundaries(S,L-1),N=(0,_.getWordAtText)(v.column,this.getLanguageConfiguration(S.getLanguageId(L-1)).getWordDefinition(),w.substring(A,P),A);if(N&&N.startColumn<=h.column&&h.column<=N.endColumn)return N}return null}getLanguageConfiguration(h){return this._languageConfigurationService.getLanguageConfiguration(h)}static _findLanguageBoundaries(h,v){const w=h.getLanguageId(v);let S=0;for(let D=v;D>=0&&h.getLanguageId(D)===w;D--)S=h.getStartOffset(D);let L=h.getLineContent().length;for(let D=v,T=h.getCount();D{const D=this.getLanguageId();L.changedLanguages.indexOf(D)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(S.onDidChangeVisibleRanges(({view:L,state:D})=>{if(D){let T=this._attachedViewStates.get(L);T||(T=new i.AttachedViewHandler(()=>this.refreshRanges(T.lineRanges)),this._attachedViewStates.set(L,T)),T.handleStateChange(D)}else this._attachedViewStates.deleteAndDispose(L)}))}resetTokenization(h=!0){this._tokens.flush(),this._debugBackgroundTokens?.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new t.TrackingTokenizationStateStore(this._textModel.getLineCount())),h&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const v=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const L=b.TokenizationRegistry.get(this.getLanguageId());if(!L)return[null,null];let D;try{D=L.getInitialState()}catch(T){return(0,d.onUnexpectedError)(T),[null,null]}return[L,D]},[w,S]=v();if(w&&S?this._tokenizer=new t.TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(),w,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const L={setTokens:D=>{this.setTokens(D)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const D=2;this._backgroundTokenizationState=D,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(D,T)=>{if(!this._tokenizer)return;const M=this._tokenizer.store.getFirstInvalidEndStateLineNumber();M!==null&&D>=M&&this._tokenizer?.store.setEndState(D,T)}};w&&w.createBackgroundTokenizer&&!w.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=w.createBackgroundTokenizer(this._textModel,L)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new t.DefaultBackgroundTokenizer(this._tokenizer,L),this._defaultBackgroundTokenizer.handleChanges()),w?.backgroundTokenizerShouldOnlyVerifyTokens&&w.createBackgroundTokenizer?(this._debugBackgroundTokens=new l.ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundStates=new t.TrackingTokenizationStateStore(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=w.createBackgroundTokenizer(this._textModel,{setTokens:D=>{this._debugBackgroundTokens?.setMultilineTokens(D,this._textModel)},backgroundTokenizationFinished(){},setEndState:(D,T)=>{this._debugBackgroundStates?.setEndState(D,T)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){this._defaultBackgroundTokenizer?.handleChanges()}handleDidChangeContent(h){if(h.isFlush)this.resetTokenization(!1);else if(!h.isEolChange){for(const v of h.changes){const[w,S]=(0,E.countEOL)(v.text);this._tokens.acceptEdit(v.range,w,S),this._debugBackgroundTokens?.acceptEdit(v.range,w,S)}this._debugBackgroundStates?.acceptChanges(h.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(h.changes),this._defaultBackgroundTokenizer?.handleChanges()}}setTokens(h){const{changes:v}=this._tokens.setMultilineTokens(h,this._textModel);return v.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:v}),{changes:v}}refreshAllVisibleLineTokens(){const h=y.LineRange.joinMany([...this._attachedViewStates].map(([v,w])=>w.lineRanges));this.refreshRanges(h)}refreshRanges(h){for(const v of h)this.refreshRange(v.startLineNumber,v.endLineNumberExclusive-1)}refreshRange(h,v){if(!this._tokenizer)return;h=Math.max(1,Math.min(this._textModel.getLineCount(),h)),v=Math.min(this._textModel.getLineCount(),v);const w=new c.ContiguousMultilineTokensBuilder,{heuristicTokens:S}=this._tokenizer.tokenizeHeuristically(w,h,v),L=this.setTokens(w.finalize());if(S)for(const D of L.changes)this._backgroundTokenizer.value?.requestTokens(D.fromLineNumber,D.toLineNumber+1);this._defaultBackgroundTokenizer?.checkFinished()}forceTokenization(h){const v=new c.ContiguousMultilineTokensBuilder;this._tokenizer?.updateTokensUntilLine(v,h),this.setTokens(v.finalize()),this._defaultBackgroundTokenizer?.checkFinished()}hasAccurateTokensForLine(h){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(h):!0}isCheapToTokenize(h){return this._tokenizer?this._tokenizer.isCheapToTokenize(h):!0}getLineTokens(h){const v=this._textModel.getLineContent(h),w=this._tokens.getTokens(this._textModel.getLanguageId(),h-1,v);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>h&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>h){const S=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),h-1,v);!w.equals(S)&&this._debugBackgroundTokenizer.value?.reportMismatchingTokens&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(h)}return w}getTokenTypeIfInsertingCharacter(h,v,w){if(!this._tokenizer)return 0;const S=this._textModel.validatePosition(new m.Position(h,v));return this.forceTokenization(S.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(S,w)}tokenizeLineWithEdit(h,v,w){if(!this._tokenizer)return null;const S=this._textModel.validatePosition(h);return this.forceTokenization(S.lineNumber),this._tokenizer.tokenizeLineWithEdit(S,v,w)}get hasTokens(){return this._tokens.hasTokens}}}),define(ne[708],se([1,0,42,48,22,70,382,30]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getIconClasses=b;const _=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function b(o,t,i,s,g){if(m.ThemeIcon.isThemeIcon(g))return[`codicon-${g.id}`,"predefined-file-icon"];if(I.URI.isUri(g))return[];const c=s===y.FileKind.ROOT_FOLDER?["rootfolder-icon"]:s===y.FileKind.FOLDER?["folder-icon"]:["file-icon"];if(i){let l;if(i.scheme===d.Schemas.data)l=k.DataUri.parseMetaData(i).get(k.DataUri.META_DATA_LABEL);else{const a=i.path.match(_);a?(l=n(a[2].toLowerCase()),a[1]&&c.push(`${n(a[1].toLowerCase())}-name-dir-icon`)):l=n(i.authority.toLowerCase())}if(s===y.FileKind.ROOT_FOLDER)c.push(`${l}-root-name-folder-icon`);else if(s===y.FileKind.FOLDER)c.push(`${l}-name-folder-icon`);else{if(l){if(c.push(`${l}-name-file-icon`),c.push("name-file-icon"),l.length<=255){const r=l.split(".");for(let u=1;u{h.mime===f.mime||h.userConfigured||(f.extension&&h.extension===f.extension&&console.warn(`Overwriting extension <<${f.extension}>> to now point to mime <<${f.mime}>>`),f.filename&&h.filename===f.filename&&console.warn(`Overwriting filename <<${f.filename}>> to now point to mime <<${f.mime}>>`),f.filepattern&&h.filepattern===f.filepattern&&console.warn(`Overwriting filepattern <<${f.filepattern}>> to now point to mime <<${f.mime}>>`),f.firstline&&h.firstline===f.firstline&&console.warn(`Overwriting firstline <<${f.firstline}>> to now point to mime <<${f.mime}>>`))})}function i(r,u){return{id:r.id,mime:r.mime,filename:r.filename,extension:r.extension,filepattern:r.filepattern,firstline:r.firstline,userConfigured:u,filenameLowercase:r.filename?r.filename.toLowerCase():void 0,extensionLowercase:r.extension?r.extension.toLowerCase():void 0,filepatternLowercase:r.filepattern?(0,d.parse)(r.filepattern.toLowerCase()):void 0,filepatternOnPath:r.filepattern?r.filepattern.indexOf(E.posix.sep)>=0:!1}}function s(){b=b.filter(r=>r.userConfigured),p=[]}function g(r,u){return c(r,u).map(C=>C.id)}function c(r,u){let C;if(r)switch(r.scheme){case I.Schemas.file:C=r.fsPath;break;case I.Schemas.data:{C=y.DataUri.parseMetaData(r).get(y.DataUri.META_DATA_LABEL);break}case I.Schemas.vscodeNotebookCell:C=void 0;break;default:C=r.path}if(!C)return[{id:"unknown",mime:k.Mimes.unknown}];C=C.toLowerCase();const f=(0,E.basename)(C),h=l(C,f,n);if(h)return[h,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];const v=l(C,f,p);if(v)return[v,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];if(u){const w=a(u);if(w)return[w,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}]}return[{id:"unknown",mime:k.Mimes.unknown}]}function l(r,u,C){let f,h,v;for(let w=C.length-1;w>=0;w--){const S=C[w];if(u===S.filenameLowercase){f=S;break}if(S.filepattern&&(!h||S.filepattern.length>h.filepattern.length)){const L=S.filepatternOnPath?r:u;S.filepatternLowercase?.(L)&&(h=S)}S.extension&&(!v||S.extension.length>v.extension.length)&&u.endsWith(S.extensionLowercase)&&(v=S)}if(f)return f;if(h)return h;if(v)return v}function a(r){if((0,m.startsWithUTF8BOM)(r)&&(r=r.substr(1)),r.length>0)for(let u=b.length-1;u>=0;u--){const C=b[u];if(!C.firstline)continue;const f=r.match(C.firstline);if(f&&f.length>0)return C}}}),define(ne[710],se([1,0,6,2,11,709,70,109,38]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguagesRegistry=e.LanguageIdCodec=void 0;const b=Object.prototype.hasOwnProperty,p="vs.editor.nullLanguage";class n{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(p,0),this._register(y.PLAINTEXT_LANGUAGE_ID,1),this._nextLanguageId=2}_register(i,s){this._languageIdToLanguage[s]=i,this._languageToLanguageId.set(i,s)}register(i){if(this._languageToLanguageId.has(i))return;const s=this._nextLanguageId++;this._register(i,s)}encodeLanguageId(i){return this._languageToLanguageId.get(i)||0}decodeLanguageId(i){return this._languageIdToLanguage[i]||p}}e.LanguageIdCodec=n;class o extends k.Disposable{static{this.instanceCount=0}constructor(i=!0,s=!1){super(),this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,o.instanceCount++,this._warnOnOverwrite=s,this.languageIdCodec=new n,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},i&&(this._initializeFromRegistry(),this._register(y.ModesRegistry.onDidChangeLanguages(g=>{this._initializeFromRegistry()})))}dispose(){o.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},(0,E.clearPlatformLanguageAssociations)();const i=[].concat(y.ModesRegistry.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(i)}_registerLanguages(i){for(const s of i)this._registerLanguage(s);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(s=>{const g=this._languages[s];g.name&&(this._nameMap[g.name]=g.identifier),g.aliases.forEach(c=>{this._lowercaseNameMap[c.toLowerCase()]=g.identifier}),g.mimetypes.forEach(c=>{this._mimeTypesMap[c]=g.identifier})}),_.Registry.as(m.Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(i){const s=i.id;let g;b.call(this._languages,s)?g=this._languages[s]:(this.languageIdCodec.register(s),g={identifier:s,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[s]=g),this._mergeLanguage(g,i)}_mergeLanguage(i,s){const g=s.id;let c=null;if(Array.isArray(s.mimetypes)&&s.mimetypes.length>0&&(i.mimetypes.push(...s.mimetypes),c=s.mimetypes[0]),c||(c=`text/x-${g}`,i.mimetypes.push(c)),Array.isArray(s.extensions)){s.configuration?i.extensions=s.extensions.concat(i.extensions):i.extensions=i.extensions.concat(s.extensions);for(const r of s.extensions)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,extension:r},this._warnOnOverwrite)}if(Array.isArray(s.filenames))for(const r of s.filenames)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,filename:r},this._warnOnOverwrite),i.filenames.push(r);if(Array.isArray(s.filenamePatterns))for(const r of s.filenamePatterns)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,filepattern:r},this._warnOnOverwrite);if(typeof s.firstLine=="string"&&s.firstLine.length>0){let r=s.firstLine;r.charAt(0)!=="^"&&(r="^"+r);try{const u=new RegExp(r);(0,I.regExpLeadsToEndlessLoop)(u)||(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,firstline:u},this._warnOnOverwrite)}catch(u){console.warn(`[${s.id}]: Invalid regular expression \`${r}\`: `,u)}}i.aliases.push(g);let l=null;if(typeof s.aliases<"u"&&Array.isArray(s.aliases)&&(s.aliases.length===0?l=[null]:l=s.aliases),l!==null)for(const r of l)!r||r.length===0||i.aliases.push(r);const a=l!==null&&l.length>0;if(!(a&&l[0]===null)){const r=(a?l[0]:null)||g;(a||!i.name)&&(i.name=r)}s.configuration&&i.configurationFiles.push(s.configuration),s.icon&&i.icons.push(s.icon)}isRegisteredLanguageId(i){return i?b.call(this._languages,i):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(i){const s=i.toLowerCase();return b.call(this._lowercaseNameMap,s)?this._lowercaseNameMap[s]:null}getLanguageIdByMimeType(i){return i&&b.call(this._mimeTypesMap,i)?this._mimeTypesMap[i]:null}guessLanguageIdByFilepathOrFirstLine(i,s){return!i&&!s?[]:(0,E.getLanguageIds)(i,s)}}e.LanguagesRegistry=o}),define(ne[711],se([1,0,6,2,710,13,27,70,21]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageService=void 0;class b extends k.Disposable{static{this.instanceCount=0}constructor(o=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new d.Emitter),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new d.Emitter),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new d.Emitter({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,b.instanceCount++,this._registry=this._register(new I.LanguagesRegistry(!0,o)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){b.instanceCount--,super.dispose()}isRegisteredLanguageId(o){return this._registry.isRegisteredLanguageId(o)}getLanguageIdByLanguageName(o){return this._registry.getLanguageIdByLanguageName(o)}getLanguageIdByMimeType(o){return this._registry.getLanguageIdByMimeType(o)}guessLanguageIdByFilepathOrFirstLine(o,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(o,t);return(0,E.firstOrDefault)(i,null)}createById(o){return new p(this.onDidChange,()=>this._createAndGetLanguageIdentifier(o))}createByFilepathOrFirstLine(o,t){return new p(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(o,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(o){return(!o||!this.isRegisteredLanguageId(o))&&(o=m.PLAINTEXT_LANGUAGE_ID),o}requestBasicLanguageFeatures(o){this._requestedBasicLanguages.has(o)||(this._requestedBasicLanguages.add(o),this._onDidRequestBasicLanguageFeatures.fire(o))}requestRichLanguageFeatures(o){this._requestedRichLanguages.has(o)||(this._requestedRichLanguages.add(o),this.requestBasicLanguageFeatures(o),y.TokenizationRegistry.getOrCreate(o),this._onDidRequestRichLanguageFeatures.fire(o))}}e.LanguageService=b;class p{constructor(o,t){this._value=(0,_.observableFromEvent)(this,o,()=>t()),this.onDidChange=d.Event.fromObservable(this._value)}get languageId(){return this._value.get()}}}),define(ne[712],se([1,0,5,2,120,43,376,59,174,669,210]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverWidget=void 0;const o=d.$;let t=class extends k.Disposable{static{n=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(s,g,c){super(),this._renderDisposeables=this._register(new k.DisposableStore),this._editor=s,this._isVisible=!1,this._messages=[],this._hover=this._register(new _.HoverWidget),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new I.MarkdownRenderer({editor:this._editor},g,c)),this._computer=new b.MarginHoverComputer(this._editor),this._hoverOperation=this._register(new y.HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(l=>{this._withResult(l.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(50)&&this._updateFont()})),this._register(d.addStandardDisposableListener(this._hover.containerDomNode,"mouseleave",l=>{this._onMouseLeave(l)})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return n.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(g=>this._editor.applyFontInfo(g))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(s){const g=s.target;return g.type===2&&g.detail.glyphMarginLane?(this._startShowingAt(g.position.lineNumber,g.detail.glyphMarginLane),!0):g.type===3?(this._startShowingAt(g.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(s,g){this._computer.lineNumber===s&&this._computer.lane===g||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=s,this._computer.lane=g,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(s){this._messages=s,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(s,g){this._renderDisposeables.clear();const c=document.createDocumentFragment();for(const l of g){const a=o("div.hover-row.markdown-hover"),r=d.append(a,o("div.hover-contents")),u=this._renderDisposeables.add(this._markdownRenderer.render(l.value));r.appendChild(u.element),c.appendChild(a)}this._updateContents(c),this._showAt(s)}_updateContents(s){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(s),this._updateFont()}_showAt(s){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const g=this._editor.getLayoutInfo(),c=this._editor.getTopForLineNumber(s),l=this._editor.getScrollTop(),a=this._editor.getOption(67),r=this._hover.containerDomNode.clientHeight,u=c-l-(r-a)/2,C=g.glyphMarginLeft+g.glyphMarginWidth+(this._computer.lane==="lineNo"?g.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${C}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(u),0)}px`}_onMouseLeave(s){const g=this._editor.getDomNode();(!g||!(0,p.isMousePositionWithinElement)(g,s.x,s.y))&&this.hide()}};e.MarginHoverWidget=t,e.MarginHoverWidget=t=n=ke([ce(1,E.ILanguageService),ce(2,m.IOpenerService)],t)}),define(ne[713],se([1,0,2,7,14,210,712,196]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverController=void 0;const m=!1;let _=class extends d.Disposable{static{this.ID="editor.contrib.marginHover"}constructor(p,n){super(),this._editor=p,this._instantiationService=n,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d.DisposableStore,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new I.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const p=this._editor.getOption(60);this._hoverSettings={enabled:p.enabled,sticky:p.sticky,hidingDelay:p.hidingDelay},p.enabled?(this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))):(this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(p){(p.scrollTopChanged||p.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(p){this._hoverState.mouseDown=!0,!this._isMouseOnMarginHoverWidget(p)&&this._hideWidgets()}_isMouseOnMarginHoverWidget(p){const n=this._glyphWidget?.getDomNode();return n?(0,E.isMousePositionWithinElement)(n,p.event.posx,p.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(p){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnMarginHoverWidget(p))||m||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(p){const n=this._hoverSettings.sticky,o=this._isMouseOnMarginHoverWidget(p);return n&&o}_onEditorMouseMove(p){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=p,this._shouldNotRecomputeCurrentHoverWidget(p)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(p)}_reactToEditorMouseMove(p){!p||this._tryShowHoverWidget(p)||m||this._hideWidgets()}_tryShowHoverWidget(p){return this._getOrCreateGlyphWidget().showsOrWillShow(p)}_onKeyDown(p){this._editor.hasModel()&&(p.keyCode===5||p.keyCode===6||p.keyCode===57||p.keyCode===4||this._hideWidgets())}_hideWidgets(){m||this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(y.MarginHoverWidget,this._editor)),this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};e.MarginHoverController=_,e.MarginHoverController=_=ke([ce(1,k.IInstantiationService)],_)}),define(ne[714],se([1,0,11,183,75,230,23,240]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getReindentEditOperations=_;function _(p,n,o,t){if(p.getLineCount()===1&&p.getLineMaxColumn(1)===1)return[];const i=n.getLanguageConfiguration(p.getLanguageId()).indentRulesSupport;if(!i)return[];const s=new m.ProcessedIndentRulesSupport(p,i,n);for(t=Math.min(t,p.getLineCount());o<=t&&s.shouldIgnore(o);)o++;if(o>t-1)return[];const{tabSize:g,indentSize:c,insertSpaces:l}=p.getOptions(),a=(v,w)=>(w=w||1,k.ShiftCommand.shiftIndent(v,v.length+w,g,c,l)),r=(v,w)=>(w=w||1,k.ShiftCommand.unshiftIndent(v,v.length+w,g,c,l)),u=[],C=p.getLineContent(o);let f=d.getLeadingWhitespace(C),h=f;s.shouldIncrease(o)?(h=a(h),f=a(f)):s.shouldIndentNextLine(o)&&(h=a(h)),o++;for(let v=o;v<=t;v++){if(b(p,v))continue;const w=p.getLineContent(v),S=d.getLeadingWhitespace(w),L=h;s.shouldDecrease(v,L)&&(h=r(h),f=r(f)),S!==h&&u.push(I.EditOperation.replaceMove(new y.Selection(v,1,v,S.length+1),(0,E.normalizeIndentation)(h,c,l))),!s.shouldIgnore(v)&&(s.shouldIncrease(v,L)?(f=a(f),h=f):s.shouldIndentNextLine(v,L)?h=a(h):h=f)}return u}function b(p,n){return p.tokenization.isCheapToTokenize(n)?p.tokenization.getLineTokens(n).getStandardTokenType(0)===2:!1}}),define(ne[715],se([1,0,18,102,82,2,21,4,104,113,27,36,17,378,246]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionWithUpdatedRange=e.UpToDateInlineCompletions=e.InlineCompletionsSource=void 0;let s=class extends E.Disposable{constructor(f,h,v,w,S){super(),this.textModel=f,this.versionId=h,this._debounceValue=v,this.languageFeaturesService=w,this.languageConfigurationService=S,this._updateOperation=this._register(new E.MutableDisposable),this.inlineCompletions=(0,y.disposableObservableValue)("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=(0,y.disposableObservableValue)("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(f,h,v){const w=new c(f,h,this.textModel.getVersionId()),S=h.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(this._updateOperation.value?.request.satisfies(w))return this._updateOperation.value.promise;if(S.get()?.request.satisfies(w))return Promise.resolve(!0);const L=!!this._updateOperation.value;this._updateOperation.clear();const D=new d.CancellationTokenSource,T=(async()=>{if((L||h.triggerKind===p.InlineCompletionTriggerKind.Automatic)&&await g(this._debounceValue.get(this.textModel),D.token),D.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==w.versionId)return!1;const P=new Date,N=await(0,t.provideInlineCompletions)(this.languageFeaturesService.inlineCompletionsProvider,f,this.textModel,h,D.token,this.languageConfigurationService);if(D.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==w.versionId)return!1;const O=new Date;this._debounceValue.update(this.textModel,O.getTime()-P.getTime());const F=new a(N,w,this.textModel,this.versionId);if(v){const x=v.toInlineCompletion(void 0);v.canBeReused(this.textModel,f)&&!N.has(x)&&F.prepend(v.inlineCompletion,x.range,!0)}return this._updateOperation.clear(),(0,y.transaction)(x=>{S.set(F,x)}),!0})(),M=new l(w,D,T);return this._updateOperation.value=M,T}clear(f){this._updateOperation.clear(),this.inlineCompletions.set(void 0,f),this.suggestWidgetInlineCompletions.set(void 0,f)}clearSuggestWidgetInlineCompletions(f){this._updateOperation.value?.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,f)}cancelUpdate(){this._updateOperation.clear()}};e.InlineCompletionsSource=s,e.InlineCompletionsSource=s=ke([ce(3,o.ILanguageFeaturesService),ce(4,n.ILanguageConfigurationService)],s);function g(C,f){return new Promise(h=>{let v;const w=setTimeout(()=>{v&&v.dispose(),h()},C);f&&(v=f.onCancellationRequested(()=>{clearTimeout(w),v&&v.dispose(),h()}))})}class c{constructor(f,h,v){this.position=f,this.context=h,this.versionId=v}satisfies(f){return this.position.equals(f.position)&&(0,k.equalsIfDefined)(this.context.selectedSuggestionInfo,f.context.selectedSuggestionInfo,(0,k.itemEquals)())&&(f.context.triggerKind===p.InlineCompletionTriggerKind.Automatic||this.context.triggerKind===p.InlineCompletionTriggerKind.Explicit)&&this.versionId===f.versionId}}class l{constructor(f,h,v){this.request=f,this.cancellationTokenSource=h,this.promise=v}dispose(){this.cancellationTokenSource.cancel()}}class a{get inlineCompletions(){return this._inlineCompletions}constructor(f,h,v,w){this.inlineCompletionProviderResult=f,this.request=h,this._textModel=v,this._versionId=w,this._refCount=1,this._prependedInlineCompletionItems=[];const S=v.deltaDecorations([],f.completions.map(L=>({range:L.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=f.completions.map((L,D)=>new r(L,S[D],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(f=>f.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const f of this._prependedInlineCompletionItems)f.source.removeRef()}}prepend(f,h,v){v&&f.source.addRef();const w=this._textModel.deltaDecorations([],[{range:h,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new r(f,w,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(f)}}e.UpToDateInlineCompletions=a;class r{get forwardStable(){return this.inlineCompletion.source.inlineCompletions.enableForwardStability??!1}constructor(f,h,v,w){this.inlineCompletion=f,this.decorationId=h,this._textModel=v,this._modelVersion=w,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=(0,y.derivedOpts)({owner:this,equalsFn:m.Range.equalsRange},S=>(this._modelVersion.read(S),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(f){return this.inlineCompletion.withRange(this._updatedRange.read(f)??u)}toSingleTextEdit(f){return new _.SingleTextEdit(this._updatedRange.read(f)??u,this.inlineCompletion.insertText)}isVisible(f,h,v){const w=(0,i.singleTextRemoveCommonPrefix)(this._toFilterTextReplacement(v),f),S=this._updatedRange.read(v);if(!S||!this.inlineCompletion.range.getStartPosition().equals(S.getStartPosition())||h.lineNumber!==w.range.startLineNumber)return!1;const L=f.getValueInRange(w.range,1),D=w.text,T=Math.max(0,h.column-w.range.startColumn);let M=D.substring(0,T),A=D.substring(T),P=L.substring(0,T),N=L.substring(T);const O=f.getLineIndentColumn(w.range.startLineNumber);return w.range.startColumn<=O&&(P=P.trimStart(),P.length===0&&(N=N.trimStart()),M=M.trimStart(),M.length===0&&(A=A.trimStart())),M.startsWith(P)&&!!(0,I.matchesSubString)(N,A)}canBeReused(f,h){const v=this._updatedRange.read(void 0);return!!v&&v.containsPosition(h)&&this.isVisible(f,h,void 0)&&b.TextLength.ofRange(v).isGreaterThanOrEqualTo(b.TextLength.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(f){return new _.SingleTextEdit(this._updatedRange.read(f)??u,this.inlineCompletion.filterText)}}e.InlineCompletionWithUpdatedRange=r;const u=new m.Range(1,1,1,1)}),define(ne[716],se([1,0,11,183,4,23,131,36,338,241,275]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveLinesCommand=void 0;let n=class{constructor(t,i,s,g){this._languageConfigurationService=g,this._selection=t,this._isMovingDown=i,this._autoIndent=s,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(t,i){const s=()=>t.getLanguageId(),g=(f,h)=>t.getLanguageIdAtPosition(f,h),c=t.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===c){this._selectionId=i.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=i.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let l=this._selection;l.startLineNumberT===l.startLineNumber?t.tokenization.getLineTokens(f):t.tokenization.getLineTokens(T),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:T=>T===l.startLineNumber?t.getLineContent(f):t.getLineContent(T)},D=(0,b.getGoodIndentForLine)(this._autoIndent,L,t.getLanguageIdAtPosition(f,1),l.startLineNumber,C,this._languageConfigurationService);if(D!==null){const T=d.getLeadingWhitespace(t.getLineContent(f)),M=_.getSpaceCnt(D,a),A=_.getSpaceCnt(T,a);M!==A&&(v=_.generateIndent(M,a,u)+this.trimStart(h))}}i.addEditOperation(new I.Range(l.startLineNumber,1,l.startLineNumber,1),v+` -`);const S=this.matchEnterRuleMovingDown(t,C,a,l.startLineNumber,f,v);if(S!==null)S!==0&&this.getIndentEditsOfMovingBlock(t,i,l,a,u,S);else{const L={tokenization:{getLineTokens:T=>T===l.startLineNumber?t.tokenization.getLineTokens(f):T>=l.startLineNumber+1&&T<=l.endLineNumber+1?t.tokenization.getLineTokens(T-1):t.tokenization.getLineTokens(T),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:T=>T===l.startLineNumber?v:T>=l.startLineNumber+1&&T<=l.endLineNumber+1?t.getLineContent(T-1):t.getLineContent(T)},D=(0,b.getGoodIndentForLine)(this._autoIndent,L,t.getLanguageIdAtPosition(f,1),l.startLineNumber+1,C,this._languageConfigurationService);if(D!==null){const T=d.getLeadingWhitespace(t.getLineContent(l.startLineNumber)),M=_.getSpaceCnt(D,a),A=_.getSpaceCnt(T,a);if(M!==A){const P=M-A;this.getIndentEditsOfMovingBlock(t,i,l,a,u,P)}}}}else i.addEditOperation(new I.Range(l.startLineNumber,1,l.startLineNumber,1),v+` -`)}else if(f=l.startLineNumber-1,h=t.getLineContent(f),i.addEditOperation(new I.Range(f,1,f+1,1),null),i.addEditOperation(new I.Range(l.endLineNumber,t.getLineMaxColumn(l.endLineNumber),l.endLineNumber,t.getLineMaxColumn(l.endLineNumber)),` -`+h),this.shouldAutoIndent(t,l)){const v={tokenization:{getLineTokens:S=>S===f?t.tokenization.getLineTokens(l.startLineNumber):t.tokenization.getLineTokens(S),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:S=>S===f?t.getLineContent(l.startLineNumber):t.getLineContent(S)},w=this.matchEnterRule(t,C,a,l.startLineNumber,l.startLineNumber-2);if(w!==null)w!==0&&this.getIndentEditsOfMovingBlock(t,i,l,a,u,w);else{const S=(0,b.getGoodIndentForLine)(this._autoIndent,v,t.getLanguageIdAtPosition(l.startLineNumber,1),f,C,this._languageConfigurationService);if(S!==null){const L=d.getLeadingWhitespace(t.getLineContent(l.startLineNumber)),D=_.getSpaceCnt(S,a),T=_.getSpaceCnt(L,a);if(D!==T){const M=D-T;this.getIndentEditsOfMovingBlock(t,i,l,a,u,M)}}}}}this._selectionId=i.trackSelection(l)}buildIndentConverter(t,i,s){return{shiftIndent:g=>k.ShiftCommand.shiftIndent(g,g.length+1,t,i,s),unshiftIndent:g=>k.ShiftCommand.unshiftIndent(g,g.length+1,t,i,s)}}parseEnterResult(t,i,s,g,c){if(c){let l=c.indentation;c.indentAction===y.IndentAction.None||c.indentAction===y.IndentAction.Indent?l=c.indentation+c.appendText:c.indentAction===y.IndentAction.IndentOutdent?l=c.indentation:c.indentAction===y.IndentAction.Outdent&&(l=i.unshiftIndent(c.indentation)+c.appendText);const a=t.getLineContent(g);if(this.trimStart(a).indexOf(this.trimStart(l))>=0){const r=d.getLeadingWhitespace(t.getLineContent(g));let u=d.getLeadingWhitespace(l);const C=(0,b.getIndentMetadata)(t,g,this._languageConfigurationService);C!==null&&C&2&&(u=i.unshiftIndent(u));const f=_.getSpaceCnt(u,s),h=_.getSpaceCnt(r,s);return f-h}}return null}matchEnterRuleMovingDown(t,i,s,g,c,l){if(d.lastNonWhitespaceIndex(l)>=0){const a=t.getLineMaxColumn(c),r=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(c,a,c,a),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,r)}else{let a=g-1;for(;a>=1;){const C=t.getLineContent(a);if(d.lastNonWhitespaceIndex(C)>=0)break;a--}if(a<1||g>t.getLineCount())return null;const r=t.getLineMaxColumn(a),u=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(a,r,a,r),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,u)}}matchEnterRule(t,i,s,g,c,l){let a=c;for(;a>=1;){let C;if(a===c&&l!==void 0?C=l:C=t.getLineContent(a),d.lastNonWhitespaceIndex(C)>=0)break;a--}if(a<1||g>t.getLineCount())return null;const r=t.getLineMaxColumn(a),u=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(a,r,a,r),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,u)}trimStart(t){return t.replace(/^\s+/,"")}shouldAutoIndent(t,i){if(this._autoIndent<4||!t.tokenization.isCheapToTokenize(i.startLineNumber))return!1;const s=t.getLanguageIdAtPosition(i.startLineNumber,1),g=t.getLanguageIdAtPosition(i.endLineNumber,1);return!(s!==g||this._languageConfigurationService.getLanguageConfiguration(s).indentRulesSupport===null)}getIndentEditsOfMovingBlock(t,i,s,g,c,l){for(let a=s.startLineNumber;a<=s.endLineNumber;a++){const r=t.getLineContent(a),u=d.getLeadingWhitespace(r),f=_.getSpaceCnt(u,g)+l,h=_.generateIndent(f,g,c);h!==u&&(i.addEditOperation(new I.Range(a,1,a,u.length+1),h),a===s.endLineNumber&&s.endColumn<=u.length+1&&h===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(t,i){let s=i.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(s=s.setEndPosition(s.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&s.startLineNumber{a.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const c=this._editor.getOptions(),l=c.get(50),a=l.getMassagedFontFamily(),r=c.get(120)||l.fontSize,u=c.get(121)||l.lineHeight,C=l.fontWeight,f=`${r}px`,h=`${u}px`;this.domNode.style.fontSize=f,this.domNode.style.lineHeight=`${u/r}`,this.domNode.style.fontWeight=C,this.domNode.style.fontFeatureSettings=l.fontFeatureSettings,this._type.style.fontFamily=a,this._close.style.height=h,this._close.style.width=h}getLayoutInfo(){const c=this._editor.getOption(121)||this._editor.getOption(50).lineHeight,l=this._borderWidth,a=l*2;return{lineHeight:c,borderWidth:l,borderHeight:a,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=n.localize(1345,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(c,l){this._renderDisposeable.clear();let{detail:a,documentation:r}=c.completion;if(l){let u="";u+=`score: ${c.score[0]} -`,u+=`prefix: ${c.word??"(no prefix)"} -`,u+=`word: ${c.completion.filterText?c.completion.filterText+" (filterText)":c.textLabel} -`,u+=`distance: ${c.distance} (localityBonus-setting) -`,u+=`index: ${c.idx}, based on ${c.completion.sortText&&`sortText: "${c.completion.sortText}"`||"label"} -`,u+=`commit_chars: ${c.completion.commitCharacters?.join("")} -`,r=new m.MarkdownString().appendCodeblock("empty",u),a=`Provider: ${c.provider._debugDisplayName}`}if(!l&&!t(c)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),a){const u=a.length>1e5?`${a.substr(0,1e5)}\u2026`:a;this._type.textContent=u,this._type.title=u,d.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(u))}else d.clearNode(this._type),this._type.title="",d.hide(this._type),this.domNode.classList.add("no-type");if(d.clearNode(this._docs),typeof r=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=r;else if(r){this._docs.classList.add("markdown-docs"),d.clearNode(this._docs);const u=this._markdownRenderer.render(r);this._docs.appendChild(u.element),this._renderDisposeable.add(u),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=u=>{u.preventDefault(),u.stopPropagation()},this._close.onclick=u=>{u.preventDefault(),u.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(c,l){const a=new d.Dimension(c,l);d.Dimension.equals(a,this._size)||(this._size=a,d.size(this.domNode,c,l)),this._scrollbar.scanDomNode()}scrollDown(c=8){this._body.scrollTop+=c}scrollUp(c=8){this._body.scrollTop-=c}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(c){this._borderWidth=c}get borderWidth(){return this._borderWidth}};e.SuggestDetailsWidget=i,e.SuggestDetailsWidget=i=ke([ce(1,o.IInstantiationService)],i);class s{constructor(c,l){this.widget=c,this._editor=l,this.allowEditorOverflow=!0,this._disposables=new _.DisposableStore,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new p.ResizableHTMLElement,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(c.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let a,r,u=0,C=0;this._disposables.add(this._resizable.onDidWillResize(()=>{a=this._topLeft,r=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(f=>{if(a&&r){this.widget.layout(f.dimension.width,f.dimension.height);let h=!1;f.west&&(C=r.width-f.dimension.width,h=!0),f.north&&(u=r.height-f.dimension.height,h=!0),h&&this._applyTopLeft({top:a.top+u,left:a.left+C})}f.done&&(a=void 0,r=void 0,u=0,C=0,this._userSize=f.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(c=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),c&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(c,l){const a=c.getBoundingClientRect();this._anchorBox=a,this._preferAlignAtTop=l,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,l)}_placeAtAnchor(c,l,a){const r=d.getClientArea(this.getDomNode().ownerDocument.body),u=this.widget.getLayoutInfo(),C=new d.Dimension(220,2*u.lineHeight),f=c.top,h=function(){const x=r.width-(c.left+c.width+u.borderWidth+u.horizontalPadding),W=-u.borderWidth+c.left+c.width,V=new d.Dimension(x,r.height-c.top-u.borderHeight-u.verticalPadding),q=V.with(void 0,c.top+c.height-u.borderHeight-u.verticalPadding);return{top:f,left:W,fit:x-l.width,maxSizeTop:V,maxSizeBottom:q,minSize:C.with(Math.min(x,C.width))}}(),v=function(){const x=c.left-u.borderWidth-u.horizontalPadding,W=Math.max(u.horizontalPadding,c.left-l.width-u.borderWidth),V=new d.Dimension(x,r.height-c.top-u.borderHeight-u.verticalPadding),q=V.with(void 0,c.top+c.height-u.borderHeight-u.verticalPadding);return{top:f,left:W,fit:x-l.width,maxSizeTop:V,maxSizeBottom:q,minSize:C.with(Math.min(x,C.width))}}(),w=function(){const x=c.left,W=-u.borderWidth+c.top+c.height,V=new d.Dimension(c.width-u.borderHeight,r.height-c.top-c.height-u.verticalPadding);return{top:W,left:x,fit:V.height-l.height,maxSizeBottom:V,maxSizeTop:V,minSize:C.with(V.width)}}(),S=[h,v,w],L=S.find(x=>x.fit>=0)??S.sort((x,W)=>W.fit-x.fit)[0],D=c.top+c.height-u.borderHeight;let T,M=l.height;const A=Math.max(L.maxSizeTop.height,L.maxSizeBottom.height);M>A&&(M=A);let P;a?M<=L.maxSizeTop.height?(T=!0,P=L.maxSizeTop):(T=!1,P=L.maxSizeBottom):M<=L.maxSizeBottom.height?(T=!1,P=L.maxSizeBottom):(T=!0,P=L.maxSizeTop);let{top:N,left:O}=L;!T&&M>c.height&&(N=D-M);const F=this._editor.getDomNode();if(F){const x=F.getBoundingClientRect();N-=x.top,O-=x.left}this._applyTopLeft({left:O,top:N}),this._resizable.enableSashes(!T,L===h,T,L!==h),this._resizable.minSize=L.minSize,this._resizable.maxSize=P,this._resizable.layout(M,Math.min(P.width,l.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(c){this._topLeft=c,this._editor.layoutOverlayWidget(this)}}e.SuggestDetailsOverlay=s}),define(ne[403],se([1,0,13,45,60,19,22,28,109,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationChangeEvent=e.Configuration=e.ConfigurationModelParser=e.ConfigurationModel=void 0;function p(g){return Object.isFrozen(g)?g:I.deepFreeze(g)}class n{static createEmptyModel(c){return new n({},[],[],void 0,c)}constructor(c,l,a,r,u){this._contents=c,this._keys=l,this._overrides=a,this.raw=r,this.logService=u,this.overrideConfigurations=new Map}get rawConfiguration(){if(!this._rawConfiguration)if(this.raw?.length){const c=this.raw.map(l=>{if(l instanceof n)return l;const a=new o("",this.logService);return a.parseRaw(l),a.configurationModel});this._rawConfiguration=c.reduce((l,a)=>a===l?a:l.merge(a),c[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(c){return c?(0,m.getConfigurationValue)(this.contents,c):this.contents}inspect(c,l){const a=this;return{get value(){return p(a.rawConfiguration.getValue(c))},get override(){return l?p(a.rawConfiguration.getOverrideValue(c,l)):void 0},get merged(){return p(l?a.rawConfiguration.override(l).getValue(c):a.rawConfiguration.getValue(c))},get overrides(){const r=[];for(const{contents:u,identifiers:C,keys:f}of a.rawConfiguration.overrides){const h=new n(u,f,[],void 0,a.logService).getValue(c);h!==void 0&&r.push({identifiers:C,value:h})}return r.length?p(r):void 0}}}getOverrideValue(c,l){const a=this.getContentsForOverrideIdentifer(l);return a?c?(0,m.getConfigurationValue)(a,c):a:void 0}override(c){let l=this.overrideConfigurations.get(c);return l||(l=this.createOverrideConfigurationModel(c),this.overrideConfigurations.set(c,l)),l}merge(...c){const l=I.deepClone(this.contents),a=I.deepClone(this.overrides),r=[...this.keys],u=this.raw?.length?[...this.raw]:[this];for(const C of c)if(u.push(...C.raw?.length?C.raw:[C]),!C.isEmpty()){this.mergeContents(l,C.contents);for(const f of C.overrides){const[h]=a.filter(v=>d.equals(v.identifiers,f.identifiers));h?(this.mergeContents(h.contents,f.contents),h.keys.push(...f.keys),h.keys=d.distinct(h.keys)):a.push(I.deepClone(f))}for(const f of C.keys)r.indexOf(f)===-1&&r.push(f)}return new n(l,r,a,u.every(C=>C instanceof n)?void 0:u,this.logService)}createOverrideConfigurationModel(c){const l=this.getContentsForOverrideIdentifer(c);if(!l||typeof l!="object"||!Object.keys(l).length)return this;const a={};for(const r of d.distinct([...Object.keys(this.contents),...Object.keys(l)])){let u=this.contents[r];const C=l[r];C&&(typeof u=="object"&&typeof C=="object"?(u=I.deepClone(u),this.mergeContents(u,C)):u=C),a[r]=u}return new n(a,this.keys,this.overrides,void 0,this.logService)}mergeContents(c,l){for(const a of Object.keys(l)){if(a in c&&E.isObject(c[a])&&E.isObject(l[a])){this.mergeContents(c[a],l[a]);continue}c[a]=I.deepClone(l[a])}}getContentsForOverrideIdentifer(c){let l=null,a=null;const r=u=>{u&&(a?this.mergeContents(a,u):a=I.deepClone(u))};for(const u of this.overrides)u.identifiers.length===1&&u.identifiers[0]===c?l=u.contents:u.identifiers.includes(c)&&r(u.contents);return r(l),a}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(c,l){this.updateValue(c,l,!1)}removeValue(c){const l=this.keys.indexOf(c);l!==-1&&(this.keys.splice(l,1),(0,m.removeFromValueTree)(this.contents,c),_.OVERRIDE_PROPERTY_REGEX.test(c)&&this.overrides.splice(this.overrides.findIndex(a=>d.equals(a.identifiers,(0,_.overrideIdentifiersFromKey)(c))),1))}updateValue(c,l,a){if((0,m.addToValueTree)(this.contents,c,l,r=>this.logService.error(r)),a=a||this.keys.indexOf(c)===-1,a&&this.keys.push(c),_.OVERRIDE_PROPERTY_REGEX.test(c)){const r=(0,_.overrideIdentifiersFromKey)(c),u={identifiers:r,keys:Object.keys(this.contents[c]),contents:(0,m.toValuesTree)(this.contents[c],f=>this.logService.error(f))},C=this.overrides.findIndex(f=>d.equals(f.identifiers,r));C!==-1?this.overrides[C]=u:this.overrides.push(u)}}}e.ConfigurationModel=n;class o{constructor(c,l){this._name=c,this.logService=l,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||n.createEmptyModel(this.logService)}parseRaw(c,l){this._raw=c;const{contents:a,keys:r,overrides:u,restricted:C,hasExcludedProperties:f}=this.doParseRaw(c,l);this._configurationModel=new n(a,r,u,f?[c]:void 0,this.logService),this._restrictedConfigurations=C||[]}doParseRaw(c,l){const a=b.Registry.as(_.Extensions.Configuration).getConfigurationProperties(),r=this.filter(c,a,!0,l);c=r.raw;const u=(0,m.toValuesTree)(c,h=>this.logService.error(`Conflict in settings file ${this._name}: ${h}`)),C=Object.keys(c),f=this.toOverrides(c,h=>this.logService.error(`Conflict in settings file ${this._name}: ${h}`));return{contents:u,keys:C,overrides:f,restricted:r.restricted,hasExcludedProperties:r.hasExcludedProperties}}filter(c,l,a,r){let u=!1;if(!r?.scopes&&!r?.skipRestricted&&!r?.exclude?.length)return{raw:c,restricted:[],hasExcludedProperties:u};const C={},f=[];for(const h in c)if(_.OVERRIDE_PROPERTY_REGEX.test(h)&&a){const v=this.filter(c[h],l,!1,r);C[h]=v.raw,u=u||v.hasExcludedProperties,f.push(...v.restricted)}else{const v=l[h],w=v?typeof v.scope<"u"?v.scope:3:void 0;v?.restricted&&f.push(h),!r.exclude?.includes(h)&&(r.include?.includes(h)||(w===void 0||r.scopes===void 0||r.scopes.includes(w))&&!(r.skipRestricted&&v?.restricted))?C[h]=c[h]:u=!0}return{raw:C,restricted:f,hasExcludedProperties:u}}toOverrides(c,l){const a=[];for(const r of Object.keys(c))if(_.OVERRIDE_PROPERTY_REGEX.test(r)){const u={};for(const C in c[r])u[C]=c[r][C];a.push({identifiers:(0,_.overrideIdentifiersFromKey)(r),keys:Object.keys(u),contents:(0,m.toValuesTree)(u,l)})}return a}}e.ConfigurationModelParser=o;class t{constructor(c,l,a,r,u,C,f,h,v,w,S,L,D){this.key=c,this.overrides=l,this._value=a,this.overrideIdentifiers=r,this.defaultConfiguration=u,this.policyConfiguration=C,this.applicationConfiguration=f,this.userConfiguration=h,this.localUserConfiguration=v,this.remoteUserConfiguration=w,this.workspaceConfiguration=S,this.folderConfigurationModel=L,this.memoryConfigurationModel=D}toInspectValue(c){return c?.value!==void 0||c?.override!==void 0||c?.overrides!==void 0?c:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class i{constructor(c,l,a,r,u,C,f,h,v,w){this._defaultConfiguration=c,this._policyConfiguration=l,this._applicationConfiguration=a,this._localUserConfiguration=r,this._remoteUserConfiguration=u,this._workspaceConfiguration=C,this._folderConfigurations=f,this._memoryConfiguration=h,this._memoryConfigurationByResource=v,this.logService=w,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new k.ResourceMap,this._userConfiguration=null}getValue(c,l,a){return this.getConsolidatedConfigurationModel(c,l,a).getValue(c)}updateValue(c,l,a={}){let r;a.resource?(r=this._memoryConfigurationByResource.get(a.resource),r||(r=n.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(a.resource,r))):r=this._memoryConfiguration,l===void 0?r.removeValue(c):r.setValue(c,l),a.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(c,l,a){const r=this.getConsolidatedConfigurationModel(c,l,a),u=this.getFolderConfigurationModelForResource(l.resource,a),C=l.resource?this._memoryConfigurationByResource.get(l.resource)||this._memoryConfiguration:this._memoryConfiguration,f=new Set;for(const h of r.overrides)for(const v of h.identifiers)r.getOverrideValue(c,v)!==void 0&&f.add(v);return new t(c,l,r.getValue(c),f.size?[...f]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,a?this._workspaceConfiguration:void 0,u||void 0,C)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(c,l,a){let r=this.getConsolidatedConfigurationModelForResource(l,a);return l.overrideIdentifier&&(r=r.override(l.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(c)!==void 0&&(r=r.merge(this._policyConfiguration)),r}getConsolidatedConfigurationModelForResource({resource:c},l){let a=this.getWorkspaceConsolidatedConfiguration();if(l&&c){const r=l.getFolder(c);r&&(a=this.getFolderConsolidatedConfiguration(r.uri)||a);const u=this._memoryConfigurationByResource.get(c);u&&(a=a.merge(u))}return a}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(c){let l=this._foldersConsolidatedConfigurations.get(c);if(!l){const a=this.getWorkspaceConsolidatedConfiguration(),r=this._folderConfigurations.get(c);r?(l=a.merge(r),this._foldersConsolidatedConfigurations.set(c,l)):l=a}return l}getFolderConfigurationModelForResource(c,l){if(l&&c){const a=l.getFolder(c);if(a)return this._folderConfigurations.get(a.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((c,l)=>{const{contents:a,overrides:r,keys:u}=this._folderConfigurations.get(l);return c.push([l,{contents:a,overrides:r,keys:u}]),c},[])}}static parse(c,l){const a=this.parseConfigurationModel(c.defaults,l),r=this.parseConfigurationModel(c.policy,l),u=this.parseConfigurationModel(c.application,l),C=this.parseConfigurationModel(c.user,l),f=this.parseConfigurationModel(c.workspace,l),h=c.folders.reduce((v,w)=>(v.set(y.URI.revive(w[0]),this.parseConfigurationModel(w[1],l)),v),new k.ResourceMap);return new i(a,r,u,C,n.createEmptyModel(l),f,h,n.createEmptyModel(l),new k.ResourceMap,l)}static parseConfigurationModel(c,l){return new n(c.contents,c.keys,c.overrides,void 0,l)}}e.Configuration=i;class s{constructor(c,l,a,r,u){this.change=c,this.previous=l,this.currentConfiguraiton=a,this.currentWorkspace=r,this.logService=u,this._marker=` -`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const C of c.keys)this.affectedKeys.add(C);for(const[,C]of c.overrides)for(const f of C)this.affectedKeys.add(f);this._affectsConfigStr=this._marker;for(const C of this.affectedKeys)this._affectsConfigStr+=C+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=i.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(c,l){const a=this._marker+c,r=this._affectsConfigStr.indexOf(a);if(r<0)return!1;const u=r+a.length;if(u>=this._affectsConfigStr.length)return!1;const C=this._affectsConfigStr.charCodeAt(u);if(C!==this._markerCode1&&C!==this._markerCode2)return!1;if(l){const f=this.previousConfiguration?this.previousConfiguration.getValue(c,l,this.previous?.workspace):void 0,h=this.currentConfiguraiton.getValue(c,l,this.currentWorkspace);return!I.equals(f,h)}return!0}}e.ConfigurationChangeEvent=s}),define(ne[717],se([1,0,2,403,109,38]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultConfiguration=void 0;class y extends d.Disposable{get configurationModel(){return this._configurationModel}constructor(_){super(),this.logService=_,this._configurationModel=k.ConfigurationModel.createEmptyModel(this.logService)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=k.ConfigurationModel.createEmptyModel(this.logService);const _=E.Registry.as(I.Extensions.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(_),_)}updateConfigurationModel(_,b){const p=this.getConfigurationDefaultOverrides();for(const n of _){const o=p[n],t=b[n];o!==void 0?this._configurationModel.setValue(n,o):t?this._configurationModel.setValue(n,t.default):this._configurationModel.removeValue(n)}}}e.DefaultConfiguration=y}),define(ne[121],se([1,0,140,16,24,38,2,73]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=e.KeybindingsRegistry=void 0;class _{constructor(){this._coreKeybindings=new m.LinkedList,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(n){if(k.OS===1){if(n&&n.win)return n.win}else if(k.OS===2){if(n&&n.mac)return n.mac}else if(n&&n.linux)return n.linux;return n}registerKeybindingRule(n){const o=_.bindToCurrentPlatform(n),t=new y.DisposableStore;if(o&&o.primary){const i=(0,d.decodeKeybinding)(o.primary,k.OS);i&&t.add(this._registerDefaultKeybinding(i,n.id,n.args,n.weight,0,n.when))}if(o&&Array.isArray(o.secondary))for(let i=0,s=o.secondary.length;i{c(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(b)),this._cachedMergedKeybindings.slice(0)}}e.KeybindingsRegistry=new _,e.Extensions={EditorModes:"platform.keybindingsRegistry"},E.Registry.add(e.Extensions.EditorModes,e.KeybindingsRegistry);function b(p,n){if(p.weight1!==n.weight1)return p.weight1-n.weight1;if(p.command&&n.command){if(p.commandn.command)return 1}return p.weight2-n.weight2}}),define(ne[29],se([1,0,41,30,6,2,73,24,12,7,121]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.Action2=e.MenuItemAction=e.SubmenuItemAction=e.MenuRegistry=e.IMenuService=e.MenuId=void 0,e.isIMenuItem=o,e.isISubmenuItem=t,e.registerAction2=a;function o(r){return r.command!==void 0}function t(r){return r.submenu!==void 0}class i{static{this._instances=new Map}static{this.CommandPalette=new i("CommandPalette")}static{this.DebugBreakpointsContext=new i("DebugBreakpointsContext")}static{this.DebugCallStackContext=new i("DebugCallStackContext")}static{this.DebugConsoleContext=new i("DebugConsoleContext")}static{this.DebugVariablesContext=new i("DebugVariablesContext")}static{this.NotebookVariablesContext=new i("NotebookVariablesContext")}static{this.DebugHoverContext=new i("DebugHoverContext")}static{this.DebugWatchContext=new i("DebugWatchContext")}static{this.DebugToolBar=new i("DebugToolBar")}static{this.DebugToolBarStop=new i("DebugToolBarStop")}static{this.DebugCallStackToolbar=new i("DebugCallStackToolbar")}static{this.DebugCreateConfiguration=new i("DebugCreateConfiguration")}static{this.EditorContext=new i("EditorContext")}static{this.SimpleEditorContext=new i("SimpleEditorContext")}static{this.EditorContent=new i("EditorContent")}static{this.EditorLineNumberContext=new i("EditorLineNumberContext")}static{this.EditorContextCopy=new i("EditorContextCopy")}static{this.EditorContextPeek=new i("EditorContextPeek")}static{this.EditorContextShare=new i("EditorContextShare")}static{this.EditorTitle=new i("EditorTitle")}static{this.EditorTitleRun=new i("EditorTitleRun")}static{this.EditorTitleContext=new i("EditorTitleContext")}static{this.EditorTitleContextShare=new i("EditorTitleContextShare")}static{this.EmptyEditorGroup=new i("EmptyEditorGroup")}static{this.EmptyEditorGroupContext=new i("EmptyEditorGroupContext")}static{this.EditorTabsBarContext=new i("EditorTabsBarContext")}static{this.EditorTabsBarShowTabsSubmenu=new i("EditorTabsBarShowTabsSubmenu")}static{this.EditorTabsBarShowTabsZenModeSubmenu=new i("EditorTabsBarShowTabsZenModeSubmenu")}static{this.EditorActionsPositionSubmenu=new i("EditorActionsPositionSubmenu")}static{this.ExplorerContext=new i("ExplorerContext")}static{this.ExplorerContextShare=new i("ExplorerContextShare")}static{this.ExtensionContext=new i("ExtensionContext")}static{this.GlobalActivity=new i("GlobalActivity")}static{this.CommandCenter=new i("CommandCenter")}static{this.CommandCenterCenter=new i("CommandCenterCenter")}static{this.LayoutControlMenuSubmenu=new i("LayoutControlMenuSubmenu")}static{this.LayoutControlMenu=new i("LayoutControlMenu")}static{this.MenubarMainMenu=new i("MenubarMainMenu")}static{this.MenubarAppearanceMenu=new i("MenubarAppearanceMenu")}static{this.MenubarDebugMenu=new i("MenubarDebugMenu")}static{this.MenubarEditMenu=new i("MenubarEditMenu")}static{this.MenubarCopy=new i("MenubarCopy")}static{this.MenubarFileMenu=new i("MenubarFileMenu")}static{this.MenubarGoMenu=new i("MenubarGoMenu")}static{this.MenubarHelpMenu=new i("MenubarHelpMenu")}static{this.MenubarLayoutMenu=new i("MenubarLayoutMenu")}static{this.MenubarNewBreakpointMenu=new i("MenubarNewBreakpointMenu")}static{this.PanelAlignmentMenu=new i("PanelAlignmentMenu")}static{this.PanelPositionMenu=new i("PanelPositionMenu")}static{this.ActivityBarPositionMenu=new i("ActivityBarPositionMenu")}static{this.MenubarPreferencesMenu=new i("MenubarPreferencesMenu")}static{this.MenubarRecentMenu=new i("MenubarRecentMenu")}static{this.MenubarSelectionMenu=new i("MenubarSelectionMenu")}static{this.MenubarShare=new i("MenubarShare")}static{this.MenubarSwitchEditorMenu=new i("MenubarSwitchEditorMenu")}static{this.MenubarSwitchGroupMenu=new i("MenubarSwitchGroupMenu")}static{this.MenubarTerminalMenu=new i("MenubarTerminalMenu")}static{this.MenubarViewMenu=new i("MenubarViewMenu")}static{this.MenubarHomeMenu=new i("MenubarHomeMenu")}static{this.OpenEditorsContext=new i("OpenEditorsContext")}static{this.OpenEditorsContextShare=new i("OpenEditorsContextShare")}static{this.ProblemsPanelContext=new i("ProblemsPanelContext")}static{this.SCMInputBox=new i("SCMInputBox")}static{this.SCMChangesSeparator=new i("SCMChangesSeparator")}static{this.SCMChangesContext=new i("SCMChangesContext")}static{this.SCMIncomingChanges=new i("SCMIncomingChanges")}static{this.SCMIncomingChangesContext=new i("SCMIncomingChangesContext")}static{this.SCMIncomingChangesSetting=new i("SCMIncomingChangesSetting")}static{this.SCMOutgoingChanges=new i("SCMOutgoingChanges")}static{this.SCMOutgoingChangesContext=new i("SCMOutgoingChangesContext")}static{this.SCMOutgoingChangesSetting=new i("SCMOutgoingChangesSetting")}static{this.SCMIncomingChangesAllChangesContext=new i("SCMIncomingChangesAllChangesContext")}static{this.SCMIncomingChangesHistoryItemContext=new i("SCMIncomingChangesHistoryItemContext")}static{this.SCMOutgoingChangesAllChangesContext=new i("SCMOutgoingChangesAllChangesContext")}static{this.SCMOutgoingChangesHistoryItemContext=new i("SCMOutgoingChangesHistoryItemContext")}static{this.SCMChangeContext=new i("SCMChangeContext")}static{this.SCMResourceContext=new i("SCMResourceContext")}static{this.SCMResourceContextShare=new i("SCMResourceContextShare")}static{this.SCMResourceFolderContext=new i("SCMResourceFolderContext")}static{this.SCMResourceGroupContext=new i("SCMResourceGroupContext")}static{this.SCMSourceControl=new i("SCMSourceControl")}static{this.SCMSourceControlInline=new i("SCMSourceControlInline")}static{this.SCMSourceControlTitle=new i("SCMSourceControlTitle")}static{this.SCMHistoryTitle=new i("SCMHistoryTitle")}static{this.SCMTitle=new i("SCMTitle")}static{this.SearchContext=new i("SearchContext")}static{this.SearchActionMenu=new i("SearchActionContext")}static{this.StatusBarWindowIndicatorMenu=new i("StatusBarWindowIndicatorMenu")}static{this.StatusBarRemoteIndicatorMenu=new i("StatusBarRemoteIndicatorMenu")}static{this.StickyScrollContext=new i("StickyScrollContext")}static{this.TestItem=new i("TestItem")}static{this.TestItemGutter=new i("TestItemGutter")}static{this.TestProfilesContext=new i("TestProfilesContext")}static{this.TestMessageContext=new i("TestMessageContext")}static{this.TestMessageContent=new i("TestMessageContent")}static{this.TestPeekElement=new i("TestPeekElement")}static{this.TestPeekTitle=new i("TestPeekTitle")}static{this.TestCallStack=new i("TestCallStack")}static{this.TouchBarContext=new i("TouchBarContext")}static{this.TitleBarContext=new i("TitleBarContext")}static{this.TitleBarTitleContext=new i("TitleBarTitleContext")}static{this.TunnelContext=new i("TunnelContext")}static{this.TunnelPrivacy=new i("TunnelPrivacy")}static{this.TunnelProtocol=new i("TunnelProtocol")}static{this.TunnelPortInline=new i("TunnelInline")}static{this.TunnelTitle=new i("TunnelTitle")}static{this.TunnelLocalAddressInline=new i("TunnelLocalAddressInline")}static{this.TunnelOriginInline=new i("TunnelOriginInline")}static{this.ViewItemContext=new i("ViewItemContext")}static{this.ViewContainerTitle=new i("ViewContainerTitle")}static{this.ViewContainerTitleContext=new i("ViewContainerTitleContext")}static{this.ViewTitle=new i("ViewTitle")}static{this.ViewTitleContext=new i("ViewTitleContext")}static{this.CommentEditorActions=new i("CommentEditorActions")}static{this.CommentThreadTitle=new i("CommentThreadTitle")}static{this.CommentThreadActions=new i("CommentThreadActions")}static{this.CommentThreadAdditionalActions=new i("CommentThreadAdditionalActions")}static{this.CommentThreadTitleContext=new i("CommentThreadTitleContext")}static{this.CommentThreadCommentContext=new i("CommentThreadCommentContext")}static{this.CommentTitle=new i("CommentTitle")}static{this.CommentActions=new i("CommentActions")}static{this.CommentsViewThreadActions=new i("CommentsViewThreadActions")}static{this.InteractiveToolbar=new i("InteractiveToolbar")}static{this.InteractiveCellTitle=new i("InteractiveCellTitle")}static{this.InteractiveCellDelete=new i("InteractiveCellDelete")}static{this.InteractiveCellExecute=new i("InteractiveCellExecute")}static{this.InteractiveInputExecute=new i("InteractiveInputExecute")}static{this.InteractiveInputConfig=new i("InteractiveInputConfig")}static{this.ReplInputExecute=new i("ReplInputExecute")}static{this.IssueReporter=new i("IssueReporter")}static{this.NotebookToolbar=new i("NotebookToolbar")}static{this.NotebookStickyScrollContext=new i("NotebookStickyScrollContext")}static{this.NotebookCellTitle=new i("NotebookCellTitle")}static{this.NotebookCellDelete=new i("NotebookCellDelete")}static{this.NotebookCellInsert=new i("NotebookCellInsert")}static{this.NotebookCellBetween=new i("NotebookCellBetween")}static{this.NotebookCellListTop=new i("NotebookCellTop")}static{this.NotebookCellExecute=new i("NotebookCellExecute")}static{this.NotebookCellExecuteGoTo=new i("NotebookCellExecuteGoTo")}static{this.NotebookCellExecutePrimary=new i("NotebookCellExecutePrimary")}static{this.NotebookDiffCellInputTitle=new i("NotebookDiffCellInputTitle")}static{this.NotebookDiffCellMetadataTitle=new i("NotebookDiffCellMetadataTitle")}static{this.NotebookDiffCellOutputsTitle=new i("NotebookDiffCellOutputsTitle")}static{this.NotebookOutputToolbar=new i("NotebookOutputToolbar")}static{this.NotebookOutlineFilter=new i("NotebookOutlineFilter")}static{this.NotebookOutlineActionMenu=new i("NotebookOutlineActionMenu")}static{this.NotebookEditorLayoutConfigure=new i("NotebookEditorLayoutConfigure")}static{this.NotebookKernelSource=new i("NotebookKernelSource")}static{this.BulkEditTitle=new i("BulkEditTitle")}static{this.BulkEditContext=new i("BulkEditContext")}static{this.TimelineItemContext=new i("TimelineItemContext")}static{this.TimelineTitle=new i("TimelineTitle")}static{this.TimelineTitleContext=new i("TimelineTitleContext")}static{this.TimelineFilterSubMenu=new i("TimelineFilterSubMenu")}static{this.AccountsContext=new i("AccountsContext")}static{this.SidebarTitle=new i("SidebarTitle")}static{this.PanelTitle=new i("PanelTitle")}static{this.AuxiliaryBarTitle=new i("AuxiliaryBarTitle")}static{this.AuxiliaryBarHeader=new i("AuxiliaryBarHeader")}static{this.TerminalInstanceContext=new i("TerminalInstanceContext")}static{this.TerminalEditorInstanceContext=new i("TerminalEditorInstanceContext")}static{this.TerminalNewDropdownContext=new i("TerminalNewDropdownContext")}static{this.TerminalTabContext=new i("TerminalTabContext")}static{this.TerminalTabEmptyAreaContext=new i("TerminalTabEmptyAreaContext")}static{this.TerminalStickyScrollContext=new i("TerminalStickyScrollContext")}static{this.WebviewContext=new i("WebviewContext")}static{this.InlineCompletionsActions=new i("InlineCompletionsActions")}static{this.InlineEditsActions=new i("InlineEditsActions")}static{this.InlineEditActions=new i("InlineEditActions")}static{this.NewFile=new i("NewFile")}static{this.MergeInput1Toolbar=new i("MergeToolbar1Toolbar")}static{this.MergeInput2Toolbar=new i("MergeToolbar2Toolbar")}static{this.MergeBaseToolbar=new i("MergeBaseToolbar")}static{this.MergeInputResultToolbar=new i("MergeToolbarResultToolbar")}static{this.InlineSuggestionToolbar=new i("InlineSuggestionToolbar")}static{this.InlineEditToolbar=new i("InlineEditToolbar")}static{this.ChatContext=new i("ChatContext")}static{this.ChatCodeBlock=new i("ChatCodeblock")}static{this.ChatCompareBlock=new i("ChatCompareBlock")}static{this.ChatMessageTitle=new i("ChatMessageTitle")}static{this.ChatExecute=new i("ChatExecute")}static{this.ChatExecuteSecondary=new i("ChatExecuteSecondary")}static{this.ChatInputSide=new i("ChatInputSide")}static{this.AccessibleView=new i("AccessibleView")}static{this.MultiDiffEditorFileToolbar=new i("MultiDiffEditorFileToolbar")}static{this.DiffEditorHunkToolbar=new i("DiffEditorHunkToolbar")}static{this.DiffEditorSelectionToolbar=new i("DiffEditorSelectionToolbar")}constructor(u){if(i._instances.has(u))throw new TypeError(`MenuId with identifier '${u}' already exists. Use MenuId.for(ident) or a unique identifier`);i._instances.set(u,this),this.id=u}}e.MenuId=i,e.IMenuService=(0,b.createDecorator)("menuService");class s{static{this._all=new Map}static for(u){let C=this._all.get(u);return C||(C=new s(u),this._all.set(u,C)),C}static merge(u){const C=new Set;for(const f of u)f instanceof s&&C.add(f.id);return C}constructor(u){this.id=u,this.has=C=>C===u}}e.MenuRegistry=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new I.MicrotaskEmitter({merge:s.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(r){return this._commands.set(r.id,r),this._onDidChangeMenu.fire(s.for(i.CommandPalette)),(0,E.toDisposable)(()=>{this._commands.delete(r.id)&&this._onDidChangeMenu.fire(s.for(i.CommandPalette))})}getCommand(r){return this._commands.get(r)}getCommands(){const r=new Map;return this._commands.forEach((u,C)=>r.set(C,u)),r}appendMenuItem(r,u){let C=this._menuItems.get(r);C||(C=new y.LinkedList,this._menuItems.set(r,C));const f=C.push(u);return this._onDidChangeMenu.fire(s.for(r)),(0,E.toDisposable)(()=>{f(),this._onDidChangeMenu.fire(s.for(r))})}appendMenuItems(r){const u=new E.DisposableStore;for(const{id:C,item:f}of r)u.add(this.appendMenuItem(C,f));return u}getMenuItems(r){let u;return this._menuItems.has(r)?u=[...this._menuItems.get(r)]:u=[],r===i.CommandPalette&&this._appendImplicitItems(u),u}_appendImplicitItems(r){const u=new Set;for(const C of r)o(C)&&(u.add(C.command.id),C.alt&&u.add(C.alt.id));this._commands.forEach((C,f)=>{u.has(f)||r.push({command:C})})}};class g extends d.SubmenuAction{constructor(u,C,f){super(`submenuitem.${u.submenu.id}`,typeof u.title=="string"?u.title:u.title.value,f,"submenu"),this.item=u,this.hideActions=C}}e.SubmenuItemAction=g;let c=n=class{static label(u,C){return C?.renderShortTitle&&u.shortTitle?typeof u.shortTitle=="string"?u.shortTitle:u.shortTitle.value:typeof u.title=="string"?u.title:u.title.value}constructor(u,C,f,h,v,w,S){this.hideActions=h,this.menuKeybinding=v,this._commandService=S,this.id=u.id,this.label=n.label(u,f),this.tooltip=(typeof u.tooltip=="string"?u.tooltip:u.tooltip?.value)??"",this.enabled=!u.precondition||w.contextMatchesRules(u.precondition),this.checked=void 0;let L;if(u.toggled){const D=u.toggled.condition?u.toggled:{condition:u.toggled};this.checked=w.contextMatchesRules(D.condition),this.checked&&D.tooltip&&(this.tooltip=typeof D.tooltip=="string"?D.tooltip:D.tooltip.value),this.checked&&k.ThemeIcon.isThemeIcon(D.icon)&&(L=D.icon),this.checked&&D.title&&(this.label=typeof D.title=="string"?D.title:D.title.value)}L||(L=k.ThemeIcon.isThemeIcon(u.icon)?u.icon:void 0),this.item=u,this.alt=C?new n(C,void 0,f,h,void 0,w,S):void 0,this._options=f,this.class=L&&k.ThemeIcon.asClassName(L)}run(...u){let C=[];return this._options?.arg&&(C=[...C,this._options.arg]),this._options?.shouldForwardArgs&&(C=[...C,...u]),this._commandService.executeCommand(this.id,...C)}};e.MenuItemAction=c,e.MenuItemAction=c=n=ke([ce(5,_.IContextKeyService),ce(6,m.ICommandService)],c);class l{constructor(u){this.desc=u}}e.Action2=l;function a(r){const u=[],C=new r,{f1:f,menu:h,keybinding:v,...w}=C.desc;if(m.CommandsRegistry.getCommand(w.id))throw new Error(`Cannot register two commands with the same id: ${w.id}`);if(u.push(m.CommandsRegistry.registerCommand({id:w.id,handler:(S,...L)=>C.run(S,...L),metadata:w.metadata})),Array.isArray(h))for(const S of h)u.push(e.MenuRegistry.appendMenuItem(S.id,{command:{...w,precondition:S.precondition===null?void 0:w.precondition},...S}));else h&&u.push(e.MenuRegistry.appendMenuItem(h.id,{command:{...w,precondition:h.precondition===null?void 0:w.precondition},...h}));if(f&&(u.push(e.MenuRegistry.appendMenuItem(i.CommandPalette,{command:w,when:w.precondition})),u.push(e.MenuRegistry.addCommand(w))),Array.isArray(v))for(const S of v)u.push(p.KeybindingsRegistry.registerKeybindingRule({...S,id:w.id,when:w.precondition?_.ContextKeyExpr.and(w.precondition,S.when):S.when}));else v&&u.push(p.KeybindingsRegistry.registerKeybindingRule({...v,id:w.id,when:w.precondition?_.ContextKeyExpr.and(w.precondition,v.when):v.when}));return{dispose(){(0,E.dispose)(u)}}}}),define(ne[718],se([1,0,46,229,3,29]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleTabFocusModeAction=void 0;class y extends E.Action2{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:y.ID,title:I.localize2(1383,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:I.localize2(1384,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const b=!k.TabFocus.getTabFocusMode();k.TabFocus.setTabFocusMode(b),b?(0,d.alert)(I.localize(1381,"Pressing Tab will now move focus to the next focusable element")):(0,d.alert)(I.localize(1382,"Pressing Tab will now insert the tab character"))}}e.ToggleTabFocusModeAction=y,(0,E.registerAction2)(y)}),define(ne[404],se([1,0,260,641,12,121,3,2,5]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextScopedReplaceInput=e.ContextScopedFindInput=e.historyNavigationVisible=void 0,e.registerAndCreateHistoryNavigationContext=i,e.historyNavigationVisible=new I.RawContextKey("suggestWidgetVisible",!1,(0,y.localize)(1537,"Whether suggestion are visible"));const b="historyNavigationWidgetFocus",p="historyNavigationForwardsEnabled",n="historyNavigationBackwardsEnabled";let o;const t=[];function i(c,l){if(t.includes(l))throw new Error("Cannot register the same widget multiple times");t.push(l);const a=new m.DisposableStore,r=new I.RawContextKey(b,!1).bindTo(c),u=new I.RawContextKey(p,!0).bindTo(c),C=new I.RawContextKey(n,!0).bindTo(c),f=()=>{r.set(!0),o=l},h=()=>{r.set(!1),o===l&&(o=void 0)};return(0,_.isActiveElement)(l.element)&&f(),a.add(l.onDidFocus(()=>f())),a.add(l.onDidBlur(()=>h())),a.add((0,m.toDisposable)(()=>{t.splice(t.indexOf(l),1),h()})),{historyNavigationForwardsEnablement:u,historyNavigationBackwardsEnablement:C,dispose(){a.dispose()}}}let s=class extends d.FindInput{constructor(l,a,r,u){super(l,a,r);const C=this._register(u.createScoped(this.inputBox.element));this._register(i(C,this.inputBox))}};e.ContextScopedFindInput=s,e.ContextScopedFindInput=s=ke([ce(3,I.IContextKeyService)],s);let g=class extends k.ReplaceInput{constructor(l,a,r,u,C=!1){super(l,a,C,r);const f=this._register(u.createScoped(this.inputBox.element));this._register(i(f,this.inputBox))}};e.ContextScopedReplaceInput=g,e.ContextScopedReplaceInput=g=ke([ce(3,I.IContextKeyService)],g),E.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.has(b),I.ContextKeyExpr.equals(n,!0),I.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:16,secondary:[528],handler:c=>{o?.showPreviousValue()}}),E.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.has(b),I.ContextKeyExpr.equals(p,!0),I.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:18,secondary:[530],handler:c=>{o?.showNextValue()}})}),define(ne[155],se([1,0,18,8,82,2,54,19,22,9,4,78,135,3,29,24,12,17,404]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickSuggestionsOptions=e.CompletionItemModel=e.CompletionOptions=e.CompletionItem=e.suggestWidgetStatusbarMenu=e.Context=void 0,e.getSnippetSuggestSupport=C,e.provideSuggestionItems=h,e.getSuggestionComparator=D,e.showSimpleSuggestions=T,e.Context={Visible:l.historyNavigationVisible,HasFocusedSuggestion:new g.RawContextKey("suggestWidgetHasFocusedSuggestion",!1,(0,t.localize)(1310,"Whether any suggestion is focused")),DetailsVisible:new g.RawContextKey("suggestWidgetDetailsVisible",!1,(0,t.localize)(1311,"Whether suggestion details are visible")),MultipleSuggestions:new g.RawContextKey("suggestWidgetMultipleSuggestions",!1,(0,t.localize)(1312,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new g.RawContextKey("suggestionMakesTextEdit",!0,(0,t.localize)(1313,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new g.RawContextKey("acceptSuggestionOnEnter",!0,(0,t.localize)(1314,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new g.RawContextKey("suggestionHasInsertAndReplaceRange",!1,(0,t.localize)(1315,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new g.RawContextKey("suggestionInsertMode",void 0,{type:"string",description:(0,t.localize)(1316,"Whether the default behaviour is to insert or replace")}),CanResolve:new g.RawContextKey("suggestionCanResolve",!1,(0,t.localize)(1317,"Whether the current suggestion supports to resolve further details"))},e.suggestWidgetStatusbarMenu=new i.MenuId("suggestWidgetStatusBar");class a{constructor(P,N,O,F){this.position=P,this.completion=N,this.container=O,this.provider=F,this.isInvalid=!1,this.score=I.FuzzyScore.Default,this.distance=0,this.textLabel=typeof N.label=="string"?N.label:N.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=N.sortText&&N.sortText.toLowerCase(),this.filterTextLow=N.filterText&&N.filterText.toLowerCase(),this.extensionId=N.extensionId,p.Range.isIRange(N.range)?(this.editStart=new b.Position(N.range.startLineNumber,N.range.startColumn),this.editInsertEnd=new b.Position(N.range.endLineNumber,N.range.endColumn),this.editReplaceEnd=new b.Position(N.range.endLineNumber,N.range.endColumn),this.isInvalid=this.isInvalid||p.Range.spansMultipleLines(N.range)||N.range.startLineNumber!==P.lineNumber):(this.editStart=new b.Position(N.range.insert.startLineNumber,N.range.insert.startColumn),this.editInsertEnd=new b.Position(N.range.insert.endLineNumber,N.range.insert.endColumn),this.editReplaceEnd=new b.Position(N.range.replace.endLineNumber,N.range.replace.endColumn),this.isInvalid=this.isInvalid||p.Range.spansMultipleLines(N.range.insert)||p.Range.spansMultipleLines(N.range.replace)||N.range.insert.startLineNumber!==P.lineNumber||N.range.replace.startLineNumber!==P.lineNumber||N.range.insert.startColumn!==N.range.replace.startColumn),typeof F.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(P){if(!this._resolveCache){const N=P.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),O=new y.StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,P)).then(F=>{Object.assign(this.completion,F),this._resolveDuration=O.elapsed()},F=>{(0,k.isCancellationError)(F)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{N.dispose()})}return this._resolveCache}}e.CompletionItem=a;class r{static{this.default=new r}constructor(P=2,N=new Set,O=new Set,F=new Map,x=!0){this.snippetSortOrder=P,this.kindFilter=N,this.providerFilter=O,this.providerItemsToReuse=F,this.showDeprecated=x}}e.CompletionOptions=r;let u;function C(){return u}class f{constructor(P,N,O,F){this.items=P,this.needsClipboard=N,this.durations=O,this.disposable=F}}e.CompletionItemModel=f;async function h(A,P,N,O=r.default,F={triggerKind:0},x=d.CancellationToken.None){const W=new y.StopWatch;N=N.clone();const V=P.getWordAtPosition(N),q=V?new p.Range(N.lineNumber,V.startColumn,N.lineNumber,V.endColumn):p.Range.fromPositions(N),H={replace:q,insert:q.setEndPosition(N.lineNumber,N.column)},z=[],U=new E.DisposableStore,j=[];let Y=!1;const G=(R,J,ie)=>{let ue=!1;if(!J)return ue;for(const he of J.suggestions)if(!O.kindFilter.has(he.kind)){if(!O.showDeprecated&&he?.tags?.includes(1))continue;he.range||(he.range=H),he.sortText||(he.sortText=typeof he.label=="string"?he.label:he.label.label),!Y&&he.insertTextRules&&he.insertTextRules&4&&(Y=o.SnippetParser.guessNeedsClipboard(he.insertText)),z.push(new a(N,he,J,R)),ue=!0}return(0,E.isDisposable)(J)&&U.add(J),j.push({providerName:R._debugDisplayName??"unknown_provider",elapsedProvider:J.duration??-1,elapsedOverall:ie.elapsed()}),ue},K=(async()=>{if(!u||O.kindFilter.has(27))return;const R=O.providerItemsToReuse.get(u);if(R){R.forEach(ue=>z.push(ue));return}if(O.providerFilter.size>0&&!O.providerFilter.has(u))return;const J=new y.StopWatch,ie=await u.provideCompletionItems(P,N,F,x);G(u,ie,J)})();for(const R of A.orderedGroups(P)){let J=!1;if(await Promise.all(R.map(async ie=>{if(O.providerItemsToReuse.has(ie)){const ue=O.providerItemsToReuse.get(ie);ue.forEach(he=>z.push(he)),J=J||ue.length>0;return}if(!(O.providerFilter.size>0&&!O.providerFilter.has(ie)))try{const ue=new y.StopWatch,he=await ie.provideCompletionItems(P,N,F,x);J=G(ie,he,ue)||J}catch(ue){(0,k.onUnexpectedExternalError)(ue)}})),J||x.isCancellationRequested)break}return await K,x.isCancellationRequested?(U.dispose(),Promise.reject(new k.CancellationError)):new f(z.sort(D(O.snippetSortOrder)),Y,{entries:j,elapsed:W.elapsed()},U)}function v(A,P){if(A.sortTextLow&&P.sortTextLow){if(A.sortTextLowP.sortTextLow)return 1}return A.textLabelP.textLabel?1:A.completion.kind-P.completion.kind}function w(A,P){if(A.completion.kind!==P.completion.kind){if(A.completion.kind===27)return-1;if(P.completion.kind===27)return 1}return v(A,P)}function S(A,P){if(A.completion.kind!==P.completion.kind){if(A.completion.kind===27)return 1;if(P.completion.kind===27)return-1}return v(A,P)}const L=new Map;L.set(0,w),L.set(2,S),L.set(1,v);function D(A){return L.get(A)}s.CommandsRegistry.registerCommand("_executeCompletionItemProvider",async(A,...P)=>{const[N,O,F,x]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(b.Position.isIPosition(O)),(0,m.assertType)(typeof F=="string"||!F),(0,m.assertType)(typeof x=="number"||!x);const{completionProvider:W}=A.get(c.ILanguageFeaturesService),V=await A.get(n.ITextModelService).createModelReference(N);try{const q={incomplete:!1,suggestions:[]},H=[],z=V.object.textEditorModel.validatePosition(O),U=await h(W,V.object.textEditorModel,z,void 0,{triggerCharacter:F??void 0,triggerKind:F?1:0});for(const j of U.items)H.length<(x??0)&&H.push(j.resolve(d.CancellationToken.None)),q.incomplete=q.incomplete||j.container.incomplete,q.suggestions.push(j.completion);try{return await Promise.all(H),q}finally{setTimeout(()=>U.disposable.dispose(),100)}}finally{V.dispose()}});function T(A,P){A.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(P),void 0,!0)}class M{static isAllOff(P){return P.other==="off"&&P.comments==="off"&&P.strings==="off"}static isAllOn(P){return P.other==="on"&&P.comments==="on"&&P.strings==="on"}static valueFor(P,N){switch(N){case 1:return P.comments;case 2:return P.strings;default:return P.other}}}e.QuickSuggestionsOptions=M}),define(ne[719],se([1,0,16,3,12,179,121,272,66]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const b={weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.equals(m.quickInputTypeContextKeyValue,"quickPick"),m.inQuickInputContext),metadata:{description:(0,k.localize)(1587,"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")}};function p(g,c={}){y.KeybindingsRegistry.registerCommandAndKeybindingRule({...b,...g,secondary:o(g.primary,g.secondary??[],c)})}const n=d.isMacintosh?256:2048;function o(g,c,l={}){return l.withAltMod&&c.push(512+g),l.withCtrlMod&&(c.push(n+g),l.withAltMod&&c.push(512+n+g)),l.withCmdMod&&d.isMacintosh&&(c.push(2048+g),l.withCtrlMod&&c.push(2304+g),l.withAltMod&&(c.push(2560+g),l.withCtrlMod&&c.push(2816+g))),c}function t(g,c){return l=>{const a=l.get(_.IQuickInputService).currentQuickInput;if(a)return c&&a.quickNavigate?a.focus(c):a.focus(g)}}p({id:"quickInput.pageNext",primary:12,handler:t(_.QuickPickFocus.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0}),p({id:"quickInput.pagePrevious",primary:11,handler:t(_.QuickPickFocus.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0}),p({id:"quickInput.first",primary:n+14,handler:t(_.QuickPickFocus.First)},{withAltMod:!0,withCmdMod:!0}),p({id:"quickInput.last",primary:n+13,handler:t(_.QuickPickFocus.Last)},{withAltMod:!0,withCmdMod:!0}),p({id:"quickInput.next",primary:18,handler:t(_.QuickPickFocus.Next)},{withCtrlMod:!0}),p({id:"quickInput.previous",primary:16,handler:t(_.QuickPickFocus.Previous)},{withCtrlMod:!0});const i=(0,k.localize)(1588,"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),s=(0,k.localize)(1589,"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");d.isMacintosh?(p({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:t(_.QuickPickFocus.NextSeparator,_.QuickPickFocus.Next),metadata:{description:i}}),p({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:t(_.QuickPickFocus.NextSeparator)},{withCtrlMod:!0}),p({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:t(_.QuickPickFocus.PreviousSeparator,_.QuickPickFocus.Previous),metadata:{description:s}}),p({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:t(_.QuickPickFocus.PreviousSeparator)},{withCtrlMod:!0})):(p({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:t(_.QuickPickFocus.NextSeparator,_.QuickPickFocus.Next),metadata:{description:i}}),p({id:"quickInput.nextSeparator",primary:2578,handler:t(_.QuickPickFocus.NextSeparator)}),p({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:t(_.QuickPickFocus.PreviousSeparator,_.QuickPickFocus.Previous),metadata:{description:s}}),p({id:"quickInput.previousSeparator",primary:2576,handler:t(_.QuickPickFocus.PreviousSeparator)})),p({id:"quickInput.acceptInBackground",when:I.ContextKeyExpr.and(b.when,I.ContextKeyExpr.or(E.InputFocusedContext.negate(),m.endOfQuickInputBoxContext)),primary:17,weight:250,handler:g=>{g.get(_.IQuickInputService).currentQuickInput?.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0})}),define(ne[156],se([1,0,13,2,38]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessRegistry=e.Extensions=e.DefaultQuickAccessFilterValue=void 0;var E;(function(m){m[m.PRESERVE=0]="PRESERVE",m[m.LAST=1]="LAST"})(E||(e.DefaultQuickAccessFilterValue=E={})),e.Extensions={Quickaccess:"workbench.contributions.quickaccess"};class y{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(_){return _.prefix.length===0?this.defaultProvider=_:this.providers.push(_),this.providers.sort((b,p)=>p.prefix.length-b.prefix.length),(0,k.toDisposable)(()=>{this.providers.splice(this.providers.indexOf(_),1),this.defaultProvider===_&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return(0,d.coalesce)([this.defaultProvider,...this.providers])}getQuickAccessProvider(_){return _&&this.providers.find(p=>_.startsWith(p.prefix))||void 0||this.defaultProvider}}e.QuickAccessRegistry=y,I.Registry.add(e.Extensions.Quickaccess,new y)}),define(ne[720],se([1,0,3,38,2,31,156,66]),function(oe,e,d,k,I,E,y,m){"use strict";var _;Object.defineProperty(e,"__esModule",{value:!0}),e.HelpQuickAccessProvider=void 0;let b=class{static{_=this}static{this.PREFIX="?"}constructor(n,o){this.quickInputService=n,this.keybindingService=o,this.registry=k.Registry.as(y.Extensions.Quickaccess)}provide(n){const o=new I.DisposableStore;return o.add(n.onDidAccept(()=>{const[t]=n.selectedItems;t&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),o.add(n.onDidChangeValue(t=>{const i=this.registry.getQuickAccessProvider(t.substr(_.PREFIX.length));i&&i.prefix&&i.prefix!==_.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),n.items=this.getQuickAccessProviders().filter(t=>t.prefix!==_.PREFIX),o}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((o,t)=>o.prefix.localeCompare(t.prefix)).flatMap(o=>this.createPicks(o))}createPicks(n){return n.helpEntries.map(o=>{const t=o.prefix||n.prefix,i=t||"\u2026";return{prefix:t,label:i,keybinding:o.commandId?this.keybindingService.lookupKeybinding(o.commandId):void 0,ariaLabel:(0,d.localize)(1579,"{0}, {1}",i,o.description),description:o.description}})}};e.HelpQuickAccessProvider=b,e.HelpQuickAccessProvider=b=_=ke([ce(0,m.IQuickInputService),ce(1,E.IKeybindingService)],b)}),define(ne[721],se([1,0,38,156,107,720]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),d.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:E.HelpQuickAccessProvider,prefix:"",helpEntries:[{description:I.QuickHelpNLS.helpQuickAccessActionLabel}]})}),define(ne[722],se([1,0,14,18,6,2,7,156,66,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessController=void 0;let p=class extends E.Disposable{constructor(o,t){super(),this.quickInputService=o,this.instantiationService=t,this.registry=b.Registry.as(m.Extensions.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(o="",t){this.doShowOrPick(o,!1,t)}doShowOrPick(o,t,i){const[s,g]=this.getOrInstantiateProvider(o,i?.enabledProviderPrefixes),c=this.visibleQuickAccess,l=c?.descriptor;if(c&&g&&l===g){o!==g.prefix&&!i?.preserveValue&&(c.picker.value=o),this.adjustValueSelection(c.picker,g,i);return}if(g&&!i?.preserveValue){let v;if(c&&l&&l!==g){const w=c.value.substr(l.prefix.length);w&&(v=`${g.prefix}${w}`)}if(!v){const w=s?.defaultFilterValue;w===m.DefaultQuickAccessFilterValue.LAST?v=this.lastAcceptedPickerValues.get(g):typeof w=="string"&&(v=`${g.prefix}${w}`)}typeof v=="string"&&(o=v)}const a=c?.picker?.valueSelection,r=c?.picker?.value,u=new E.DisposableStore,C=u.add(this.quickInputService.createQuickPick({useSeparators:!0}));C.value=o,this.adjustValueSelection(C,g,i),C.placeholder=i?.placeholder??g?.placeholder,C.quickNavigate=i?.quickNavigateConfiguration,C.hideInput=!!C.quickNavigate&&!c,(typeof i?.itemActivation=="number"||i?.quickNavigateConfiguration)&&(C.itemActivation=i?.itemActivation??_.ItemActivation.SECOND),C.contextKey=g?.contextKey,C.filterValue=v=>v.substring(g?g.prefix.length:0);let f;t&&(f=new d.DeferredPromise,u.add(I.Event.once(C.onWillAccept)(v=>{v.veto(),C.hide()}))),u.add(this.registerPickerListeners(C,s,g,o,i));const h=u.add(new k.CancellationTokenSource);if(s&&u.add(s.provide(C,h.token,i?.providerOptions)),I.Event.once(C.onDidHide)(()=>{C.selectedItems.length===0&&h.cancel(),u.dispose(),f?.complete(C.selectedItems.slice(0))}),C.show(),a&&r===o&&(C.valueSelection=a),t)return f?.p}adjustValueSelection(o,t,i){let s;i?.preserveValue?s=[o.value.length,o.value.length]:s=[t?.prefix.length??0,o.value.length],o.valueSelection=s}registerPickerListeners(o,t,i,s,g){const c=new E.DisposableStore,l=this.visibleQuickAccess={picker:o,descriptor:i,value:s};return c.add((0,E.toDisposable)(()=>{l===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),c.add(o.onDidChangeValue(a=>{const[r]=this.getOrInstantiateProvider(a,g?.enabledProviderPrefixes);r!==t?this.show(a,{enabledProviderPrefixes:g?.enabledProviderPrefixes,preserveValue:!0,providerOptions:g?.providerOptions}):l.value=a})),i&&c.add(o.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,o.value)})),c}getOrInstantiateProvider(o,t){const i=this.registry.getQuickAccessProvider(o);if(!i||t&&!t?.includes(i.prefix))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(i);return s||(s=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,s)),[s,i]}};e.QuickAccessController=p,e.QuickAccessController=p=ke([ce(0,_.IQuickInputService),ce(1,y.IInstantiationService)],p)}),define(ne[723],se([1,0,26,30,111,544]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SeverityIcon=void 0;var E;(function(y){function m(_){switch(_){case I.default.Ignore:return"severity-ignore "+k.ThemeIcon.asClassName(d.Codicon.info);case I.default.Info:return k.ThemeIcon.asClassName(d.Codicon.info);case I.default.Warning:return k.ThemeIcon.asClassName(d.Codicon.warning);case I.default.Error:return k.ThemeIcon.asClassName(d.Codicon.error);default:return""}}y.className=m})(E||(e.SeverityIcon=E={}))}),define(ne[101],se([1,0,6,2,19,647,7]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageService=e.AbstractStorageService=e.WillSaveStateReason=e.IStorageService=e.TARGET_KEY=void 0,e.loadKeyTargets=_,e.TARGET_KEY="__$__targetStorageMarker",e.IStorageService=(0,y.createDecorator)("storageService");var m;(function(n){n[n.NONE=0]="NONE",n[n.SHUTDOWN=1]="SHUTDOWN"})(m||(e.WillSaveStateReason=m={}));function _(n){const o=n.get(e.TARGET_KEY);if(o)try{return JSON.parse(o)}catch{}return Object.create(null)}class b extends k.Disposable{static{this.DEFAULT_FLUSH_INTERVAL=60*1e3}constructor(o={flushInterval:b.DEFAULT_FLUSH_INTERVAL}){super(),this.options=o,this._onDidChangeValue=this._register(new d.PauseableEmitter),this._onDidChangeTarget=this._register(new d.PauseableEmitter),this._onWillSaveState=this._register(new d.Emitter),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(o,t,i){return d.Event.filter(this._onDidChangeValue.event,s=>s.scope===o&&(t===void 0||s.key===t),i)}emitDidChangeValue(o,t){const{key:i,external:s}=t;if(i===e.TARGET_KEY){switch(o){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:o})}else this._onDidChangeValue.fire({scope:o,key:i,target:this.getKeyTargets(o)[i],external:s})}get(o,t,i){return this.getStorage(t)?.get(o,i)}getBoolean(o,t,i){return this.getStorage(t)?.getBoolean(o,i)}getNumber(o,t,i){return this.getStorage(t)?.getNumber(o,i)}store(o,t,i,s,g=!1){if((0,I.isUndefinedOrNull)(t)){this.remove(o,i,g);return}this.withPausedEmitters(()=>{this.updateKeyTarget(o,i,s),this.getStorage(i)?.set(o,t,g)})}remove(o,t,i=!1){this.withPausedEmitters(()=>{this.updateKeyTarget(o,t,void 0),this.getStorage(t)?.delete(o,i)})}withPausedEmitters(o){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{o()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(o,t,i,s=!1){const g=this.getKeyTargets(t);typeof i=="number"?g[o]!==i&&(g[o]=i,this.getStorage(t)?.set(e.TARGET_KEY,JSON.stringify(g),s)):typeof g[o]=="number"&&(delete g[o],this.getStorage(t)?.set(e.TARGET_KEY,JSON.stringify(g),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(o){switch(o){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(o){const t=this.getStorage(o);return t?_(t):Object.create(null)}}e.AbstractStorageService=b;class p extends b{constructor(){super(),this.applicationStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(o=>this.emitDidChangeValue(1,o))),this._register(this.profileStorage.onDidChangeStorage(o=>this.emitDidChangeValue(0,o))),this._register(this.applicationStorage.onDidChangeStorage(o=>this.emitDidChangeValue(-1,o)))}getStorage(o){switch(o){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}e.InMemoryStorageService=p}),define(ne[724],se([1,0,6,45,4,386,49,7,101,52,5]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensCache=e.ICodeLensCache=void 0,e.ICodeLensCache=(0,m.createDecorator)("ICodeLensCache");class n{constructor(i,s){this.lineCount=i,this.data=s}}let o=class{constructor(i){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new k.LRUCache(20,.75);const s="codelens/cache";(0,p.runWhenWindowIdle)(b.mainWindow,()=>i.remove(s,1));const g="codelens/cache2",c=i.get(g,1,"{}");this._deserialize(c);const l=d.Event.filter(i.onWillSaveState,a=>a.reason===_.WillSaveStateReason.SHUTDOWN);d.Event.once(l)(a=>{i.store(g,this._serialize(),1,1)})}put(i,s){const g=s.lenses.map(a=>({range:a.symbol.range,command:a.symbol.command&&{id:"",title:a.symbol.command?.title}})),c=new E.CodeLensModel;c.add({lenses:g,dispose:()=>{}},this._fakeProvider);const l=new n(i.getLineCount(),c);this._cache.set(i.uri.toString(),l)}get(i){const s=this._cache.get(i.uri.toString());return s&&s.lineCount===i.getLineCount()?s.data:void 0}delete(i){this._cache.delete(i.uri.toString())}_serialize(){const i=Object.create(null);for(const[s,g]of this._cache){const c=new Set;for(const l of g.data.lenses)c.add(l.symbol.range.startLineNumber);i[s]={lineCount:g.lineCount,lines:[...c.values()]}}return JSON.stringify(i)}_deserialize(i){try{const s=JSON.parse(i);for(const g in s){const c=s[g],l=[];for(const r of c.lines)l.push({range:new I.Range(r,1,r,11)});const a=new E.CodeLensModel;a.add({lenses:l,dispose(){}},this._fakeProvider),this._cache.set(g,new n(c.lineCount,a))}}catch{}}};e.CodeLensCache=o,e.CodeLensCache=o=ke([ce(0,_.IStorageService)],o),(0,y.registerSingleton)(e.ICodeLensCache,o,1)}),define(ne[405],se([1,0,14,2,45,225,27,28,49,7,101]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ISuggestMemoryService=e.SuggestMemoryService=e.PrefixMemory=e.LRUMemory=e.NoMemory=e.Memory=void 0;class o{constructor(l){this.name=l}select(l,a,r){if(r.length===0)return 0;const u=r[0].score[0];for(let C=0;Cv&&L.type===r[w].completion.kind&&L.insertText===r[w].completion.insertText&&(v=L.touch,h=w),r[w].completion.preselect&&f===-1)return f=w}return h!==-1?h:f!==-1?f:0}toJSON(){return this._cache.toJSON()}fromJSON(l){this._cache.clear();const a=0;for(const[r,u]of l)u.touch=a,u.type=typeof u.type=="number"?u.type:y.CompletionItemKinds.fromString(u.type),this._cache.set(r,u);this._seq=this._cache.size}}e.LRUMemory=i;class s extends o{constructor(){super("recentlyUsedByPrefix"),this._trie=E.TernarySearchTree.forStrings(),this._seq=0}memorize(l,a,r){const{word:u}=l.getWordUntilPosition(a),C=`${l.getLanguageId()}/${u}`;this._trie.set(C,{type:r.completion.kind,insertText:r.completion.insertText,touch:this._seq++})}select(l,a,r){const{word:u}=l.getWordUntilPosition(a);if(!u)return super.select(l,a,r);const C=`${l.getLanguageId()}/${u}`;let f=this._trie.get(C);if(f||(f=this._trie.findSubstr(C)),f)for(let h=0;hl.push([r,a])),l.sort((a,r)=>-(a[1].touch-r[1].touch)).forEach((a,r)=>a[1].touch=r),l.slice(0,200)}fromJSON(l){if(this._trie.clear(),l.length>0){this._seq=l[0][1].touch+1;for(const[a,r]of l)r.type=typeof r.type=="number"?r.type:y.CompletionItemKinds.fromString(r.type),this._trie.set(a,r)}}}e.PrefixMemory=s;let g=class{static{n=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",s],["recentlyUsed",i],["first",t]])}static{this._storagePrefix="suggest/memories"}constructor(l,a){this._storageService=l,this._configService=a,this._disposables=new k.DisposableStore,this._persistSoon=new d.RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(l.onWillSaveState(r=>{r.reason===p.WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(l,a,r){this._withStrategy(l,a).memorize(l,a,r),this._persistSoon.schedule()}select(l,a,r){return this._withStrategy(l,a).select(l,a,r)}_withStrategy(l,a){const r=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:l.getLanguageIdAtPosition(a.lineNumber,a.column),resource:l.uri});if(this._strategy?.name!==r){this._saveState();const u=n._strategyCtors.get(r)||t;this._strategy=new u;try{const f=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,h=this._storageService.get(`${n._storagePrefix}/${r}`,f);h&&this._strategy.fromJSON(JSON.parse(h))}catch{}}return this._strategy}_saveState(){if(this._strategy){const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,r=JSON.stringify(this._strategy);this._storageService.store(`${n._storagePrefix}/${this._strategy.name}`,r,a,1)}}};e.SuggestMemoryService=g,e.SuggestMemoryService=g=n=ke([ce(0,p.IStorageService),ce(1,m.IConfigurationService)],g),e.ISuggestMemoryService=(0,b.createDecorator)("ISuggestMemories"),(0,_.registerSingleton)(e.ISuggestMemoryService,g,1)}),define(ne[406],se([1,0,14,6,2,29,24,12,41,101,13,3,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";var t,i;Object.defineProperty(e,"__esModule",{value:!0}),e.MenuService=void 0,e.createConfigureKeybindingAction=u;let s=class{constructor(f,h,v){this._commandService=f,this._keybindingService=h,this._hiddenStates=new g(v)}createMenu(f,h,v){return new a(f,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...v},this._commandService,this._keybindingService,h)}getMenuActions(f,h,v){const w=new a(f,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...v},this._commandService,this._keybindingService,h),S=w.getActions(v);return w.dispose(),S}resetHiddenStates(f){this._hiddenStates.reset(f)}};e.MenuService=s,e.MenuService=s=ke([ce(0,y.ICommandService),ce(1,o.IKeybindingService),ce(2,b.IStorageService)],s);let g=class{static{t=this}static{this._key="menu.hiddenCommands"}constructor(f){this._storageService=f,this._disposables=new I.DisposableStore,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const h=f.get(t._key,0,"{}");this._data=JSON.parse(h)}catch{this._data=Object.create(null)}this._disposables.add(f.onDidChangeValue(0,t._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const h=f.get(t._key,0,"{}");this._data=JSON.parse(h)}catch(h){console.log("FAILED to read storage after UPDATE",h)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(f,h){return this._hiddenByDefaultCache.get(`${f.id}/${h}`)??!1}setDefaultState(f,h,v){this._hiddenByDefaultCache.set(`${f.id}/${h}`,v)}isHidden(f,h){const v=this._isHiddenByDefault(f,h),w=this._data[f.id]?.includes(h)??!1;return v?!w:w}updateHidden(f,h,v){this._isHiddenByDefault(f,h)&&(v=!v);const S=this._data[f.id];if(v)S?S.indexOf(h)<0&&S.push(h):this._data[f.id]=[h];else if(S){const L=S.indexOf(h);L>=0&&(0,p.removeFastWithoutKeepingOrder)(S,L),S.length===0&&delete this._data[f.id]}this._persist()}reset(f){if(f===void 0)this._data=Object.create(null),this._persist();else{for(const{id:h}of f)this._data[h]&&delete this._data[h];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const f=JSON.stringify(this._data);this._storageService.store(t._key,f,0,0)}finally{this._ignoreChangeEvent=!1}}};g=t=ke([ce(0,b.IStorageService)],g);class c{constructor(f,h){this._id=f,this._collectContextKeysForSubmenus=h,this._menuGroups=[],this._allMenuIds=new Set,this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get allMenuIds(){return this._allMenuIds}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._allMenuIds.clear(),this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const f=this._sort(E.MenuRegistry.getMenuItems(this._id));let h;for(const v of f){const w=v.group||"";(!h||h[0]!==w)&&(h=[w,[]],this._menuGroups.push(h)),h[1].push(v),this._collectContextKeysAndSubmenuIds(v)}this._allMenuIds.add(this._id)}_sort(f){return f}_collectContextKeysAndSubmenuIds(f){if(c._fillInKbExprKeys(f.when,this._structureContextKeys),(0,E.isIMenuItem)(f)){if(f.command.precondition&&c._fillInKbExprKeys(f.command.precondition,this._preconditionContextKeys),f.command.toggled){const h=f.command.toggled.condition||f.command.toggled;c._fillInKbExprKeys(h,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&(E.MenuRegistry.getMenuItems(f.submenu).forEach(this._collectContextKeysAndSubmenuIds,this),this._allMenuIds.add(f.submenu))}static _fillInKbExprKeys(f,h){if(f)for(const v of f.keys())h.add(v)}}let l=i=class extends c{constructor(f,h,v,w,S,L){super(f,v),this._hiddenStates=h,this._commandService=w,this._keybindingService=S,this._contextKeyService=L,this.refresh()}createActionGroups(f){const h=[];for(const v of this._menuGroups){const[w,S]=v;let L;for(const D of S)if(this._contextKeyService.contextMatchesRules(D.when)){const T=(0,E.isIMenuItem)(D);T&&this._hiddenStates.setDefaultState(this._id,D.command.id,!!D.isHiddenByDefault);const M=r(this._id,T?D.command:D,this._hiddenStates);if(T){const A=u(this._commandService,this._keybindingService,D.command.id,D.when);(L??=[]).push(new E.MenuItemAction(D.command,D.alt,f,M,A,this._contextKeyService,this._commandService))}else{const A=new i(D.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(f),P=_.Separator.join(...A.map(N=>N[1]));P.length>0&&(L??=[]).push(new E.SubmenuItemAction(D,M,P))}}L&&L.length>0&&h.push([w,L])}return h}_sort(f){return f.sort(i._compareMenuItems)}static _compareMenuItems(f,h){const v=f.group,w=h.group;if(v!==w){if(v){if(!w)return-1}else return 1;if(v==="navigation")return-1;if(w==="navigation")return 1;const D=v.localeCompare(w);if(D!==0)return D}const S=f.order||0,L=h.order||0;return SL?1:i._compareTitles((0,E.isIMenuItem)(f)?f.command.title:f.title,(0,E.isIMenuItem)(h)?h.command.title:h.title)}static _compareTitles(f,h){const v=typeof f=="string"?f:f.original,w=typeof h=="string"?h:h.original;return v.localeCompare(w)}};l=i=ke([ce(3,y.ICommandService),ce(4,o.IKeybindingService),ce(5,m.IContextKeyService)],l);let a=class{constructor(f,h,v,w,S,L){this._disposables=new I.DisposableStore,this._menuInfo=new l(f,h,v.emitEventsForSubmenuChanges,w,S,L);const D=new d.RunOnceScheduler(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},v.eventDebounceDelay);this._disposables.add(D),this._disposables.add(E.MenuRegistry.onDidChangeMenu(P=>{for(const N of this._menuInfo.allMenuIds)if(P.has(N)){D.schedule();break}}));const T=this._disposables.add(new I.DisposableStore),M=P=>{let N=!1,O=!1,F=!1;for(const x of P)if(N=N||x.isStructuralChange,O=O||x.isEnablementChange,F=F||x.isToggleChange,N&&O&&F)break;return{menu:this,isStructuralChange:N,isEnablementChange:O,isToggleChange:F}},A=()=>{T.add(L.onDidChangeContext(P=>{const N=P.affectsSome(this._menuInfo.structureContextKeys),O=P.affectsSome(this._menuInfo.preconditionContextKeys),F=P.affectsSome(this._menuInfo.toggledContextKeys);(N||O||F)&&this._onDidChange.fire({menu:this,isStructuralChange:N,isEnablementChange:O,isToggleChange:F})})),T.add(h.onDidChange(P=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new k.DebounceEmitter({onWillAddFirstListener:A,onDidRemoveLastListener:T.clear.bind(T),delay:v.eventDebounceDelay,merge:M}),this.onDidChange=this._onDidChange.event}getActions(f){return this._menuInfo.createActionGroups(f)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};a=ke([ce(3,y.ICommandService),ce(4,o.IKeybindingService),ce(5,m.IContextKeyService)],a);function r(C,f,h){const v=(0,E.isISubmenuItem)(f)?f.submenu.id:f.id,w=typeof f.title=="string"?f.title:f.title.value,S=(0,_.toAction)({id:`hide/${C.id}/${v}`,label:(0,n.localize)(1490,"Hide '{0}'",w),run(){h.updateHidden(C,v,!0)}}),L=(0,_.toAction)({id:`toggle/${C.id}/${v}`,label:w,get checked(){return!h.isHidden(C,v)},run(){h.updateHidden(C,v,!!this.checked)}});return{hide:S,toggle:L,get isHidden(){return!L.checked}}}function u(C,f,h,v=void 0,w=!0){return(0,_.toAction)({id:`configureKeybinding/${h}`,label:(0,n.localize)(1491,"Configure Keybinding"),enabled:w,run(){const L=!!!f.lookupKeybinding(h)&&v?v.serialize():void 0;C.executeCommand("workbench.action.openGlobalKeybindings",`@command:${h}`+(L?` +when:${L}`:""))}})}}),define(ne[63],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITelemetryService=void 0,e.ITelemetryService=(0,d.createDecorator)("telemetryService")}),define(ne[15],se([1,0,3,22,34,9,51,78,29,24,12,7,121,38,63,19,62,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectAllCommand=e.RedoCommand=e.UndoCommand=e.EditorExtensionsRegistry=e.EditorAction2=e.MultiEditorAction=e.EditorAction=e.EditorCommand=e.ProxyCommand=e.MultiCommand=e.Command=void 0,e.registerModelAndPositionCommand=v,e.registerEditorCommand=w,e.registerEditorAction=S,e.registerMultiEditorAction=L,e.registerInstantiatedEditorAction=D,e.registerEditorContribution=T;class l{constructor(F){this.id=F.id,this.precondition=F.precondition,this._kbOpts=F.kbOpts,this._menuOpts=F.menuOpts,this.metadata=F.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const F=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const x of F){let W=x.kbExpr;this.precondition&&(W?W=p.ContextKeyExpr.and(W,this.precondition):W=this.precondition);const V={id:this.id,weight:x.weight,args:x.args,when:W,primary:x.primary,secondary:x.secondary,win:x.win,linux:x.linux,mac:x.mac};o.KeybindingsRegistry.registerKeybindingRule(V)}}b.CommandsRegistry.registerCommand({id:this.id,handler:(F,x)=>this.runCommand(F,x),metadata:this.metadata})}_registerMenuItem(F){_.MenuRegistry.appendMenuItem(F.menuId,{group:F.group,command:{id:this.id,title:F.title,icon:F.icon,precondition:this.precondition},when:F.when,order:F.order})}}e.Command=l;class a extends l{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,x,W,V){return this._implementations.push({priority:F,name:x,implementation:W,when:V}),this._implementations.sort((q,H)=>H.priority-q.priority),{dispose:()=>{for(let q=0;q{if(z.get(p.IContextKeyService).contextMatchesRules(W??void 0))return V(z,H,x)})}runCommand(F,x){return u.runEditorCommand(F,x,this.precondition,(W,V,q)=>this.runEditorCommand(W,V,q))}}e.EditorCommand=u;class C extends u{static convertOptions(F){let x;Array.isArray(F.menuOpts)?x=F.menuOpts:F.menuOpts?x=[F.menuOpts]:x=[];function W(V){return V.menuId||(V.menuId=_.MenuId.EditorContext),V.title||(V.title=F.label),V.when=p.ContextKeyExpr.and(F.precondition,V.when),V}return Array.isArray(F.contextMenuOpts)?x.push(...F.contextMenuOpts.map(W)):F.contextMenuOpts&&x.push(W(F.contextMenuOpts)),F.menuOpts=x,F}constructor(F){super(C.convertOptions(F)),this.label=F.label,this.alias=F.alias}runEditorCommand(F,x,W){return this.reportTelemetry(F,x),this.run(F,x,W||{})}reportTelemetry(F,x){F.get(i.ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}e.EditorAction=C;class f extends C{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,x){return this._implementations.push([F,x]),this._implementations.sort((W,V)=>V[0]-W[0]),{dispose:()=>{for(let W=0;W{const H=q.get(p.IContextKeyService),z=q.get(g.ILogService);if(!H.contextMatchesRules(this.desc.precondition??void 0)){z.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,this.desc.precondition?.serialize());return}return this.runEditorCommand(q,V,...x)})}}e.EditorAction2=h;function v(O,F){b.CommandsRegistry.registerCommand(O,function(x,...W){const V=x.get(n.IInstantiationService),[q,H]=W;(0,s.assertType)(k.URI.isUri(q)),(0,s.assertType)(E.Position.isIPosition(H));const z=x.get(y.IModelService).getModel(q);if(z){const U=E.Position.lift(H);return V.invokeFunction(F,z,U,...W.slice(2))}return x.get(m.ITextModelService).createModelReference(q).then(U=>new Promise((j,Y)=>{try{const G=V.invokeFunction(F,U.object.textEditorModel,E.Position.lift(H),W.slice(2));j(G)}catch(G){Y(G)}}).finally(()=>{U.dispose()}))})}function w(O){return P.INSTANCE.registerEditorCommand(O),O}function S(O){const F=new O;return P.INSTANCE.registerEditorAction(F),F}function L(O){return P.INSTANCE.registerEditorAction(O),O}function D(O){P.INSTANCE.registerEditorAction(O)}function T(O,F,x){P.INSTANCE.registerEditorContribution(O,F,x)}var M;(function(O){function F(H){return P.INSTANCE.getEditorCommand(H)}O.getEditorCommand=F;function x(){return P.INSTANCE.getEditorActions()}O.getEditorActions=x;function W(){return P.INSTANCE.getEditorContributions()}O.getEditorContributions=W;function V(H){return P.INSTANCE.getEditorContributions().filter(z=>H.indexOf(z.id)>=0)}O.getSomeEditorContributions=V;function q(){return P.INSTANCE.getDiffEditorContributions()}O.getDiffEditorContributions=q})(M||(e.EditorExtensionsRegistry=M={}));const A={EditorCommonContributions:"editor.contributions"};class P{static{this.INSTANCE=new P}constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(F,x,W){this.editorContributions.push({id:F,ctor:x,instantiation:W})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(F){F.register(),this.editorActions.push(F)}getEditorActions(){return this.editorActions}registerEditorCommand(F){F.register(),this.editorCommands[F.id]=F}getEditorCommand(F){return this.editorCommands[F]||null}}t.Registry.add(A.EditorCommonContributions,P.INSTANCE);function N(O){return O.register(),O}e.UndoCommand=N(new a({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:_.MenuId.MenubarEditMenu,group:"1_do",title:d.localize(62,"&&Undo"),order:1},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(63,"Undo"),order:1}]})),N(new r(e.UndoCommand,{id:"default:undo",precondition:void 0})),e.RedoCommand=N(new a({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:_.MenuId.MenubarEditMenu,group:"1_do",title:d.localize(64,"&&Redo"),order:2},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(65,"Redo"),order:1}]})),N(new r(e.RedoCommand,{id:"default:redo",precondition:void 0})),e.SelectAllCommand=N(new a({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:_.MenuId.MenubarSelectionMenu,group:"1_basic",title:d.localize(66,"&&Select All"),order:1},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(67,"Select All"),order:1}]}))}),define(ne[214],se([1,0,3,64,19,46,15,34,565,76,234,235,276,9,4,20,12,121,5,213]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CoreEditingCommands=e.CoreNavigationCommands=e.RevealLine_=e.EditorScroll_=e.CoreEditorCommand=void 0;const r=0;class u extends y.EditorCommand{runEditorCommand(P,N,O){const F=N._getViewModel();F&&this.runCoreEditorCommand(F,O||{})}}e.CoreEditorCommand=u;var C;(function(A){const P=function(O){if(!I.isObject(O))return!1;const F=O;return!(!I.isString(F.to)||!I.isUndefined(F.by)&&!I.isString(F.by)||!I.isUndefined(F.value)&&!I.isNumber(F.value)||!I.isUndefined(F.revealCursor)&&!I.isBoolean(F.revealCursor))};A.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:P,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},A.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},A.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function N(O){let F;switch(O.to){case A.RawDirection.Up:F=1;break;case A.RawDirection.Right:F=2;break;case A.RawDirection.Down:F=3;break;case A.RawDirection.Left:F=4;break;default:return null}let x;switch(O.by){case A.RawUnit.Line:x=1;break;case A.RawUnit.WrappedLine:x=2;break;case A.RawUnit.Page:x=3;break;case A.RawUnit.HalfPage:x=4;break;case A.RawUnit.Editor:x=5;break;case A.RawUnit.Column:x=6;break;default:x=2}const W=Math.floor(O.value||1),V=!!O.revealCursor;return{direction:F,unit:x,value:W,revealCursor:V,select:!!O.select}}A.parse=N})(C||(e.EditorScroll_=C={}));var f;(function(A){const P=function(N){if(!I.isObject(N))return!1;const O=N;return!(!I.isNumber(O.lineNumber)&&!I.isString(O.lineNumber)||!I.isUndefined(O.at)&&!I.isString(O.at))};A.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:P,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},A.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})(f||(e.RevealLine_=f={}));class h{constructor(P){P.addImplementation(1e4,"code-editor",(N,O)=>{const F=N.get(m.ICodeEditorService).getFocusedCodeEditor();return F&&F.hasTextFocus()?this._runEditorCommand(N,F,O):!1}),P.addImplementation(1e3,"generic-dom-input-textarea",(N,O)=>{const F=(0,l.getActiveElement)();return F&&["input","textarea"].indexOf(F.tagName.toLowerCase())>=0?(this.runDOMCommand(F),!0):!1}),P.addImplementation(0,"generic-dom",(N,O)=>{const F=N.get(m.ICodeEditorService).getActiveCodeEditor();return F?(F.focus(),this._runEditorCommand(N,F,O)):!1})}_runEditorCommand(P,N,O){const F=this.runEditorCommand(P,N,O);return F||!0}}var v;(function(A){class P extends u{constructor(ie){super(ie),this._inSelectionMode=ie.inSelectionMode}runCoreEditorCommand(ie,ue){if(!ue.position)return;ie.model.pushStackElement(),ie.setCursorStates(ue.source,3,[n.CursorMoveCommands.moveTo(ie,ie.getPrimaryCursorState(),this._inSelectionMode,ue.position,ue.viewPosition)])&&ue.revealType!==2&&ie.revealAllCursors(ue.source,!0,!0)}}A.MoveTo=(0,y.registerEditorCommand)(new P({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),A.MoveToSelect=(0,y.registerEditorCommand)(new P({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class N extends u{runCoreEditorCommand(ie,ue){ie.model.pushStackElement();const he=this._getColumnSelectResult(ie,ie.getPrimaryCursorState(),ie.getCursorColumnSelectData(),ue);he!==null&&(ie.setCursorStates(ue.source,3,he.viewStates.map(pe=>b.CursorState.fromViewState(pe))),ie.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:he.fromLineNumber,fromViewVisualColumn:he.fromVisualColumn,toViewLineNumber:he.toLineNumber,toViewVisualColumn:he.toVisualColumn}),he.reversed?ie.revealTopMostCursor(ue.source):ie.revealBottomMostCursor(ue.source))}}A.ColumnSelect=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(J,ie,ue,he){if(typeof he.position>"u"||typeof he.viewPosition>"u"||typeof he.mouseColumn>"u")return null;const pe=J.model.validatePosition(he.position),ae=J.coordinatesConverter.validateViewPosition(new t.Position(he.viewPosition.lineNumber,he.viewPosition.column),pe),ee=he.doColumnSelect?ue.fromViewLineNumber:ae.lineNumber,de=he.doColumnSelect?ue.fromViewVisualColumn:he.mouseColumn-1;return _.ColumnSelection.columnSelect(J.cursorConfig,J,ee,de,ae.lineNumber,he.mouseColumn-1)}}),A.CursorColumnSelectLeft=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(J,ie,ue,he){return _.ColumnSelection.columnSelectLeft(J.cursorConfig,J,ue)}}),A.CursorColumnSelectRight=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(J,ie,ue,he){return _.ColumnSelection.columnSelectRight(J.cursorConfig,J,ue)}});class O extends N{constructor(ie){super(ie),this._isPaged=ie.isPaged}_getColumnSelectResult(ie,ue,he,pe){return _.ColumnSelection.columnSelectUp(ie.cursorConfig,ie,he,this._isPaged)}}A.CursorColumnSelectUp=(0,y.registerEditorCommand)(new O({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),A.CursorColumnSelectPageUp=(0,y.registerEditorCommand)(new O({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class F extends N{constructor(ie){super(ie),this._isPaged=ie.isPaged}_getColumnSelectResult(ie,ue,he,pe){return _.ColumnSelection.columnSelectDown(ie.cursorConfig,ie,he,this._isPaged)}}A.CursorColumnSelectDown=(0,y.registerEditorCommand)(new F({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),A.CursorColumnSelectPageDown=(0,y.registerEditorCommand)(new F({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class x extends u{constructor(){super({id:"cursorMove",precondition:void 0,metadata:n.CursorMove.metadata})}runCoreEditorCommand(ie,ue){const he=n.CursorMove.parse(ue);he&&this._runCursorMove(ie,ue.source,he)}_runCursorMove(ie,ue,he){ie.model.pushStackElement(),ie.setCursorStates(ue,3,x._move(ie,ie.getCursorStates(),he)),ie.revealAllCursors(ue,!0)}static _move(ie,ue,he){const pe=he.select,ae=he.value;switch(he.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return n.CursorMoveCommands.simpleMove(ie,ue,he.direction,pe,ae,he.unit);case 11:case 13:case 12:case 14:return n.CursorMoveCommands.viewportMove(ie,ue,he.direction,pe,ae);default:return null}}}A.CursorMoveImpl=x,A.CursorMove=(0,y.registerEditorCommand)(new x);class W extends u{constructor(ie){super(ie),this._staticArgs=ie.args}runCoreEditorCommand(ie,ue){let he=this._staticArgs;this._staticArgs.value===-1&&(he={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:ue.pageSize||ie.cursorConfig.pageSize}),ie.model.pushStackElement(),ie.setCursorStates(ue.source,3,n.CursorMoveCommands.simpleMove(ie,ie.getCursorStates(),he.direction,he.select,he.value,he.unit)),ie.revealAllCursors(ue.source,!0)}}A.CursorLeft=(0,y.registerEditorCommand)(new W({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),A.CursorLeftSelect=(0,y.registerEditorCommand)(new W({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1039}})),A.CursorRight=(0,y.registerEditorCommand)(new W({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),A.CursorRightSelect=(0,y.registerEditorCommand)(new W({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1041}})),A.CursorUp=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),A.CursorUpSelect=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),A.CursorPageUp=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:11}})),A.CursorPageUpSelect=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1035}})),A.CursorDown=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),A.CursorDownSelect=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),A.CursorPageDown=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:12}})),A.CursorPageDownSelect=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1036}})),A.CreateCursor=(0,y.registerEditorCommand)(new class extends u{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(J,ie){if(!ie.position)return;let ue;ie.wholeLine?ue=n.CursorMoveCommands.line(J,J.getPrimaryCursorState(),!1,ie.position,ie.viewPosition):ue=n.CursorMoveCommands.moveTo(J,J.getPrimaryCursorState(),!1,ie.position,ie.viewPosition);const he=J.getCursorStates();if(he.length>1){const pe=ue.modelState?ue.modelState.position:null,ae=ue.viewState?ue.viewState.position:null;for(let ee=0,de=he.length;eeae&&(pe=ae);const ee=new i.Range(pe,1,pe,J.model.getLineMaxColumn(pe));let de=0;if(ue.at)switch(ue.at){case f.RawAtArgument.Top:de=3;break;case f.RawAtArgument.Center:de=1;break;case f.RawAtArgument.Bottom:de=4;break;default:break}const ge=J.coordinatesConverter.convertModelRangeToViewRange(ee);J.revealRange(ie.source,!1,ge,de,0)}}),A.SelectAll=new class extends h{constructor(){super(y.SelectAllCommand)}runDOMCommand(J){k.isFirefox&&(J.focus(),J.select()),J.ownerDocument.execCommand("selectAll")}runEditorCommand(J,ie,ue){const he=ie._getViewModel();he&&this.runCoreEditorCommand(he,ue)}runCoreEditorCommand(J,ie){J.model.pushStackElement(),J.setCursorStates("keyboard",3,[n.CursorMoveCommands.selectAll(J,J.getPrimaryCursorState())])}},A.SetSelection=(0,y.registerEditorCommand)(new class extends u{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(J,ie){ie.selection&&(J.model.pushStackElement(),J.setCursorStates(ie.source,3,[b.CursorState.fromModelSelection(ie.selection)]))}})})(v||(e.CoreNavigationCommands=v={}));const w=g.ContextKeyExpr.and(s.EditorContextKeys.textInputFocus,s.EditorContextKeys.columnSelection);function S(A,P){c.KeybindingsRegistry.registerKeybindingRule({id:A,primary:P,when:w,weight:r+1})}S(v.CursorColumnSelectLeft.id,1039),S(v.CursorColumnSelectRight.id,1041),S(v.CursorColumnSelectUp.id,1040),S(v.CursorColumnSelectPageUp.id,1035),S(v.CursorColumnSelectDown.id,1042),S(v.CursorColumnSelectPageDown.id,1036);function L(A){return A.register(),A}var D;(function(A){class P extends y.EditorCommand{runEditorCommand(O,F,x){const W=F._getViewModel();W&&this.runCoreEditingCommand(F,W,x||{})}}A.CoreEditingCommand=P,A.LineBreakInsert=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"lineBreakInsert",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,a.EnterOperation.lineBreakInsert(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection)))}}),A.Outdent=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"outdent",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:g.ContextKeyExpr.and(s.EditorContextKeys.editorTextFocus,s.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,o.TypeOperations.outdent(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection))),N.pushUndoStop()}}),A.Tab=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"tab",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:g.ContextKeyExpr.and(s.EditorContextKeys.editorTextFocus,s.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,o.TypeOperations.tab(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection))),N.pushUndoStop()}}),A.DeleteLeft=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(N,O,F){const[x,W]=p.DeleteOperations.deleteLeft(O.getPrevEditOperationType(),O.cursorConfig,O.model,O.getCursorStates().map(V=>V.modelState.selection),O.getCursorAutoClosedCharacters());x&&N.pushUndoStop(),N.executeCommands(this.id,W),O.setPrevEditOperationType(2)}}),A.DeleteRight=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(N,O,F){const[x,W]=p.DeleteOperations.deleteRight(O.getPrevEditOperationType(),O.cursorConfig,O.model,O.getCursorStates().map(V=>V.modelState.selection));x&&N.pushUndoStop(),N.executeCommands(this.id,W),O.setPrevEditOperationType(3)}}),A.Undo=new class extends h{constructor(){super(y.UndoCommand)}runDOMCommand(N){N.ownerDocument.execCommand("undo")}runEditorCommand(N,O,F){if(!(!O.hasModel()||O.getOption(92)===!0))return O.getModel().undo()}},A.Redo=new class extends h{constructor(){super(y.RedoCommand)}runDOMCommand(N){N.ownerDocument.execCommand("redo")}runEditorCommand(N,O,F){if(!(!O.hasModel()||O.getOption(92)===!0))return O.getModel().redo()}}})(D||(e.CoreEditingCommands=D={}));class T extends y.Command{constructor(P,N,O){super({id:P,precondition:void 0,metadata:O}),this._handlerId=N}runCommand(P,N){const O=P.get(m.ICodeEditorService).getFocusedCodeEditor();O&&O.trigger("keyboard",this._handlerId,N)}}function M(A,P){L(new T("default:"+A,A)),L(new T(A,A,P))}M("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),M("replacePreviousChar"),M("compositionType"),M("compositionStart"),M("compositionEnd"),M("paste"),M("cut")}),define(ne[725],se([1,0,266,15]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsContribution=void 0;let I=class{static{this.ID="editor.contrib.markerDecorations"}constructor(y,m){}dispose(){}};e.MarkerDecorationsContribution=I,e.MarkerDecorationsContribution=I=ke([ce(1,d.IMarkerDecorationsService)],I),(0,k.registerEditorContribution)(I.ID,I,0)}),define(ne[726],se([1,0,214,9,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewController=void 0;class E{constructor(m,_,b,p){this.configuration=m,this.viewModel=_,this.userInputEvents=b,this.commandDelegate=p}paste(m,_,b,p){this.commandDelegate.paste(m,_,b,p)}type(m){this.commandDelegate.type(m)}compositionType(m,_,b,p){this.commandDelegate.compositionType(m,_,b,p)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(m){d.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:m})}_validateViewColumn(m){const _=this.viewModel.getLineMinColumn(m.lineNumber);return m.column<_?new k.Position(m.lineNumber,_):m}_hasMulticursorModifier(m){switch(this.configuration.options.get(78)){case"altKey":return m.altKey;case"ctrlKey":return m.ctrlKey;case"metaKey":return m.metaKey;default:return!1}}_hasNonMulticursorModifier(m){switch(this.configuration.options.get(78)){case"altKey":return m.ctrlKey||m.metaKey;case"ctrlKey":return m.altKey||m.metaKey;case"metaKey":return m.ctrlKey||m.altKey;default:return!1}}dispatchMouse(m){const _=this.configuration.options,b=I.isLinux&&_.get(108),p=_.get(22);m.middleButton&&!b?this._columnSelect(m.position,m.mouseColumn,m.inSelectionMode):m.startedOnLineNumbers?this._hasMulticursorModifier(m)?m.inSelectionMode?this._lastCursorLineSelect(m.position,m.revealType):this._createCursor(m.position,!0):m.inSelectionMode?this._lineSelectDrag(m.position,m.revealType):this._lineSelect(m.position,m.revealType):m.mouseDownCount>=4?this._selectAll():m.mouseDownCount===3?this._hasMulticursorModifier(m)?m.inSelectionMode?this._lastCursorLineSelectDrag(m.position,m.revealType):this._lastCursorLineSelect(m.position,m.revealType):m.inSelectionMode?this._lineSelectDrag(m.position,m.revealType):this._lineSelect(m.position,m.revealType):m.mouseDownCount===2?m.onInjectedText||(this._hasMulticursorModifier(m)?this._lastCursorWordSelect(m.position,m.revealType):m.inSelectionMode?this._wordSelectDrag(m.position,m.revealType):this._wordSelect(m.position,m.revealType)):this._hasMulticursorModifier(m)?this._hasNonMulticursorModifier(m)||(m.shiftKey?this._columnSelect(m.position,m.mouseColumn,!0):m.inSelectionMode?this._lastCursorMoveToSelect(m.position,m.revealType):this._createCursor(m.position,!1)):m.inSelectionMode?m.altKey?this._columnSelect(m.position,m.mouseColumn,!0):p?this._columnSelect(m.position,m.mouseColumn,!0):this._moveToSelect(m.position,m.revealType):this.moveTo(m.position,m.revealType)}_usualArgs(m,_){return m=this._validateViewColumn(m),{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,revealType:_}}moveTo(m,_){d.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_moveToSelect(m,_){d.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_columnSelect(m,_,b){m=this._validateViewColumn(m),d.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,mouseColumn:_,doColumnSelect:b})}_createCursor(m,_){m=this._validateViewColumn(m),d.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,wholeLine:_})}_lastCursorMoveToSelect(m,_){d.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_wordSelect(m,_){d.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_wordSelectDrag(m,_){d.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorWordSelect(m,_){d.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lineSelect(m,_){d.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lineSelectDrag(m,_){d.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorLineSelect(m,_){d.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorLineSelectDrag(m,_){d.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_selectAll(){d.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(m){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(m)}emitKeyDown(m){this.userInputEvents.emitKeyDown(m)}emitKeyUp(m){this.userInputEvents.emitKeyUp(m)}emitContextMenu(m){this.userInputEvents.emitContextMenu(m)}emitMouseMove(m){this.userInputEvents.emitMouseMove(m)}emitMouseLeave(m){this.userInputEvents.emitMouseLeave(m)}emitMouseUp(m){this.userInputEvents.emitMouseUp(m)}emitMouseDown(m){this.userInputEvents.emitMouseDown(m)}emitMouseDrag(m){this.userInputEvents.emitMouseDrag(m)}emitMouseDrop(m){this.userInputEvents.emitMouseDrop(m)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(m){this.userInputEvents.emitMouseWheel(m)}}e.ViewController=E}),define(ne[215],se([1,0,49,7,6,54,55,105,100,63]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";var p;Object.defineProperty(e,"__esModule",{value:!0}),e.WorkerBasedDocumentDiffProvider=e.WorkerBasedDiffProviderFactoryService=e.IDiffProviderFactoryService=void 0,e.IDiffProviderFactoryService=(0,k.createDecorator)("diffProviderFactoryService");let n=class{constructor(i){this.instantiationService=i}createDiffProvider(i){return this.instantiationService.createInstance(o,i)}};e.WorkerBasedDiffProviderFactoryService=n,e.WorkerBasedDiffProviderFactoryService=n=ke([ce(0,k.IInstantiationService)],n),(0,d.registerSingleton)(e.IDiffProviderFactoryService,n,1);let o=class{static{p=this}static{this.diffCache=new Map}constructor(i,s,g){this.editorWorkerService=s,this.telemetryService=g,this.onDidChangeEventEmitter=new I.Emitter,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(i)}dispose(){this.diffAlgorithmOnDidChangeSubscription?.dispose()}async computeDiff(i,s,g,c){if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(i,s,g,c);if(i.isDisposed()||s.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return s.getLineCount()===1&&s.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new m.DetailedLineRangeMapping(new y.LineRange(1,2),new y.LineRange(1,s.getLineCount()+1),[new m.RangeMapping(i.getFullModelRange(),s.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const l=JSON.stringify([i.uri.toString(),s.uri.toString()]),a=JSON.stringify([i.id,s.id,i.getAlternativeVersionId(),s.getAlternativeVersionId(),JSON.stringify(g)]),r=p.diffCache.get(l);if(r&&r.context===a)return r.result;const u=E.StopWatch.create(),C=await this.editorWorkerService.computeDiff(i.uri,s.uri,g,this.diffAlgorithm),f=u.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:f,timedOut:C?.quitEarly??!0,detectedMoves:g.computeMoves?C?.moves.length??0:-1}),c.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!C)throw new Error("no diff result available");return p.diffCache.size>10&&p.diffCache.delete(p.diffCache.keys().next().value),p.diffCache.set(l,{result:C,context:a}),C}setOptions(i){let s=!1;i.diffAlgorithm&&this.diffAlgorithm!==i.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription?.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=i.diffAlgorithm,typeof i.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=i.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),s=!0),s&&this.onDidChangeEventEmitter.fire()}};e.WorkerBasedDocumentDiffProvider=o,e.WorkerBasedDocumentDiffProvider=o=p=ke([ce(1,_.IEditorWorkerService),ce(2,b.ITelemetryService)],o)}),define(ne[407],se([1,0,14,18,2,21,215,88,171,55,317,105,200,319,315,19,13,90]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnchangedRegion=e.DiffMapping=e.DiffState=e.DiffEditorViewModel=void 0;let l=class extends I.Disposable{setActiveMovedText(S){this._activeMovedText.set(S,void 0)}constructor(S,L,D){super(),this.model=S,this._options=L,this._diffProviderFactoryService=D,this._isDiffUpToDate=(0,E.observableValue)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,E.observableValue)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,E.observableValue)(this,void 0),this.unchangedRegions=(0,E.derived)(this,P=>this._options.hideUnchangedRegions.read(P)?this._unchangedRegions.read(P)?.regions??[]:((0,E.transaction)(N=>{for(const O of this._unchangedRegions.get()?.regions||[])O.collapseAll(N)}),[])),this.movedTextToCompare=(0,E.observableValue)(this,void 0),this._activeMovedText=(0,E.observableValue)(this,void 0),this._hoveredMovedText=(0,E.observableValue)(this,void 0),this.activeMovedText=(0,E.derived)(this,P=>this.movedTextToCompare.read(P)??this._hoveredMovedText.read(P)??this._activeMovedText.read(P)),this._cancellationTokenSource=new k.CancellationTokenSource,this._diffProvider=(0,E.derived)(this,P=>{const N=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(P)}),O=(0,E.observableSignalFromEvent)("onDidChange",N.onDidChange);return{diffProvider:N,onChangeSignal:O}}),this._register((0,I.toDisposable)(()=>this._cancellationTokenSource.cancel()));const T=(0,E.observableSignal)("contentChangedSignal"),M=this._register(new d.RunOnceScheduler(()=>T.trigger(void 0),200));this._register((0,E.autorun)(P=>{const N=this._unchangedRegions.read(P);if(!N||N.regions.some(q=>q.isDragged.read(P)))return;const O=N.originalDecorationIds.map(q=>S.original.getDecorationRange(q)).map(q=>q?b.LineRange.fromRangeInclusive(q):void 0),F=N.modifiedDecorationIds.map(q=>S.modified.getDecorationRange(q)).map(q=>q?b.LineRange.fromRangeInclusive(q):void 0),x=N.regions.map((q,H)=>!O[H]||!F[H]?void 0:new f(O[H].startLineNumber,F[H].startLineNumber,O[H].length,q.visibleLineCountTop.read(P),q.visibleLineCountBottom.read(P))).filter(s.isDefined),W=[];let V=!1;for(const q of(0,g.groupAdjacentBy)(x,(H,z)=>H.getHiddenModifiedRange(P).endLineNumberExclusive===z.getHiddenModifiedRange(P).startLineNumber))if(q.length>1){V=!0;const H=q.reduce((U,j)=>U+j.lineCount,0),z=new f(q[0].originalLineNumber,q[0].modifiedLineNumber,H,q[0].visibleLineCountTop.get(),q[q.length-1].visibleLineCountBottom.get());W.push(z)}else W.push(q[0]);if(V){const q=S.original.deltaDecorations(N.originalDecorationIds,W.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),H=S.modified.deltaDecorations(N.modifiedDecorationIds,W.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));(0,E.transaction)(z=>{this._unchangedRegions.set({regions:W,originalDecorationIds:q,modifiedDecorationIds:H},z)})}}));const A=(P,N,O)=>{const F=f.fromDiffs(P.changes,S.original.getLineCount(),S.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(O),this._options.hideUnchangedRegionsContextLineCount.read(O));let x;const W=this._unchangedRegions.get();if(W){const z=W.originalDecorationIds.map(G=>S.original.getDecorationRange(G)).map(G=>G?b.LineRange.fromRangeInclusive(G):void 0),U=W.modifiedDecorationIds.map(G=>S.modified.getDecorationRange(G)).map(G=>G?b.LineRange.fromRangeInclusive(G):void 0);let Y=(0,m.filterWithPrevious)(W.regions.map((G,K)=>{if(!z[K]||!U[K])return;const R=z[K].length;return new f(z[K].startLineNumber,U[K].startLineNumber,R,Math.min(G.visibleLineCountTop.get(),R),Math.min(G.visibleLineCountBottom.get(),R-G.visibleLineCountTop.get()))}).filter(s.isDefined),(G,K)=>!K||G.modifiedLineNumber>=K.modifiedLineNumber+K.lineCount&&G.originalLineNumber>=K.originalLineNumber+K.lineCount).map(G=>new n.LineRangeMapping(G.getHiddenOriginalRange(O),G.getHiddenModifiedRange(O)));Y=n.LineRangeMapping.clip(Y,b.LineRange.ofLength(1,S.original.getLineCount()),b.LineRange.ofLength(1,S.modified.getLineCount())),x=n.LineRangeMapping.inverse(Y,S.original.getLineCount(),S.modified.getLineCount())}const V=[];if(x)for(const z of F){const U=x.filter(j=>j.original.intersectsStrict(z.originalUnchangedRange)&&j.modified.intersectsStrict(z.modifiedUnchangedRange));V.push(...z.setVisibleRanges(U,N))}else V.push(...F);const q=S.original.deltaDecorations(W?.originalDecorationIds||[],V.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),H=S.modified.deltaDecorations(W?.modifiedDecorationIds||[],V.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:V,originalDecorationIds:q,modifiedDecorationIds:H},N)};this._register(S.modified.onDidChangeContent(P=>{if(this._diff.get()){const O=o.TextEditInfo.fromModelContentChanges(P.changes),F=(this._lastDiff,S.original,S.modified,void 0);F&&(this._lastDiff=F,(0,E.transaction)(x=>{this._diff.set(u.fromDiffResult(this._lastDiff),x),A(F,x);const W=this.movedTextToCompare.get();this.movedTextToCompare.set(W?this._lastDiff.moves.find(V=>V.lineRangeMapping.modified.intersect(W.lineRangeMapping.modified)):void 0,x)}))}this._isDiffUpToDate.set(!1,void 0),M.schedule()})),this._register(S.original.onDidChangeContent(P=>{if(this._diff.get()){const O=o.TextEditInfo.fromModelContentChanges(P.changes),F=(this._lastDiff,S.original,S.modified,void 0);F&&(this._lastDiff=F,(0,E.transaction)(x=>{this._diff.set(u.fromDiffResult(this._lastDiff),x),A(F,x);const W=this.movedTextToCompare.get();this.movedTextToCompare.set(W?this._lastDiff.moves.find(V=>V.lineRangeMapping.modified.intersect(W.lineRangeMapping.modified)):void 0,x)}))}this._isDiffUpToDate.set(!1,void 0),M.schedule()})),this._register((0,E.autorunWithStore)(async(P,N)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(P),this._options.hideUnchangedRegionsContextLineCount.read(P),M.cancel(),T.read(P);const O=this._diffProvider.read(P);O.onChangeSignal.read(P),(0,_.readHotReloadableExport)(p.DefaultLinesDiffComputer,P),(0,_.readHotReloadableExport)(i.optimizeSequenceDiffs,P),this._isDiffUpToDate.set(!1,void 0);let F=[];N.add(S.original.onDidChangeContent(V=>{const q=o.TextEditInfo.fromModelContentChanges(V.changes);F=(0,t.combineTextEditInfos)(F,q)}));let x=[];N.add(S.modified.onDidChangeContent(V=>{const q=o.TextEditInfo.fromModelContentChanges(V.changes);x=(0,t.combineTextEditInfos)(x,q)}));let W=await O.diffProvider.computeDiff(S.original,S.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(P),maxComputationTimeMs:this._options.maxComputationTimeMs.read(P),computeMoves:this._options.showMoves.read(P)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||S.original.isDisposed()||S.modified.isDisposed()||(W=a(W,S.original,S.modified),W=(S.original,S.modified,void 0)??W,W=(S.original,S.modified,void 0)??W,(0,E.transaction)(V=>{A(W,V),this._lastDiff=W;const q=u.fromDiffResult(W);this._diff.set(q,V),this._isDiffUpToDate.set(!0,V);const H=this.movedTextToCompare.get();this.movedTextToCompare.set(H?this._lastDiff.moves.find(z=>z.lineRangeMapping.modified.intersect(H.lineRangeMapping.modified)):void 0,V)}))}))}ensureModifiedLineIsVisible(S,L,D){if(this.diff.get()?.mappings.length===0)return;const T=this._unchangedRegions.get()?.regions||[];for(const M of T)if(M.getHiddenModifiedRange(void 0).contains(S)){M.showModifiedLine(S,L,D);return}}ensureOriginalLineIsVisible(S,L,D){if(this.diff.get()?.mappings.length===0)return;const T=this._unchangedRegions.get()?.regions||[];for(const M of T)if(M.getHiddenOriginalRange(void 0).contains(S)){M.showOriginalLine(S,L,D);return}}async waitForDiff(){await(0,E.waitForState)(this.isDiffUpToDate,S=>S)}serializeState(){return{collapsedRegions:this._unchangedRegions.get()?.regions.map(L=>({range:L.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(S){const L=S.collapsedRegions?.map(T=>b.LineRange.deserialize(T.range)),D=this._unchangedRegions.get();!D||!L||(0,E.transaction)(T=>{for(const M of D.regions)for(const A of L)if(M.modifiedUnchangedRange.intersect(A)){M.setHiddenModifiedRange(A,T);break}})}};e.DiffEditorViewModel=l,e.DiffEditorViewModel=l=ke([ce(2,y.IDiffProviderFactoryService)],l);function a(w,S,L){return{changes:w.changes.map(D=>new n.DetailedLineRangeMapping(D.original,D.modified,D.innerChanges?D.innerChanges.map(T=>r(T,S,L)):void 0)),moves:w.moves,identical:w.identical,quitEarly:w.quitEarly}}function r(w,S,L){let D=w.originalRange,T=w.modifiedRange;return D.startColumn===1&&T.startColumn===1&&(D.endColumn!==1||T.endColumn!==1)&&D.endColumn===S.getLineMaxColumn(D.endLineNumber)&&T.endColumn===L.getLineMaxColumn(T.endLineNumber)&&D.endLineNumbernew C(L)),S.moves||[],S.identical,S.quitEarly)}constructor(S,L,D,T){this.mappings=S,this.movedTexts=L,this.identical=D,this.quitEarly=T}}e.DiffState=u;class C{constructor(S){this.lineRangeMapping=S}}e.DiffMapping=C;class f{static fromDiffs(S,L,D,T,M){const A=n.DetailedLineRangeMapping.inverse(S,L,D),P=[];for(const N of A){let O=N.original.startLineNumber,F=N.modified.startLineNumber,x=N.original.length;const W=O===1&&F===1,V=O+x===L+1&&F+x===D+1;(W||V)&&x>=M+T?(W&&!V&&(x-=M),V&&!W&&(O+=M,F+=M,x-=M),P.push(new f(O,F,x,0,0))):x>=M*2+T&&(O+=M,F+=M,x-=M*2,P.push(new f(O,F,x,0,0)))}return P}get originalUnchangedRange(){return b.LineRange.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return b.LineRange.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(S,L,D,T,M){this.originalLineNumber=S,this.modifiedLineNumber=L,this.lineCount=D,this._visibleLineCountTop=(0,E.observableValue)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,E.observableValue)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,E.derived)(this,N=>this.visibleLineCountTop.read(N)+this.visibleLineCountBottom.read(N)===this.lineCount&&!this.isDragged.read(N)),this.isDragged=(0,E.observableValue)(this,void 0);const A=Math.max(Math.min(T,this.lineCount),0),P=Math.max(Math.min(M,this.lineCount-T),0);(0,c.softAssert)(T===A),(0,c.softAssert)(M===P),this._visibleLineCountTop.set(A,void 0),this._visibleLineCountBottom.set(P,void 0)}setVisibleRanges(S,L){const D=[],T=new b.LineRangeSet(S.map(N=>N.modified)).subtractFrom(this.modifiedUnchangedRange);let M=this.originalLineNumber,A=this.modifiedLineNumber;const P=this.modifiedLineNumber+this.lineCount;if(T.ranges.length===0)this.showAll(L),D.push(this);else{let N=0;for(const O of T.ranges){const F=N===T.ranges.length-1;N++;const x=(F?P:O.endLineNumberExclusive)-A,W=new f(M,A,x,0,0);W.setHiddenModifiedRange(O,L),D.push(W),M=W.originalUnchangedRange.endLineNumberExclusive,A=W.modifiedUnchangedRange.endLineNumberExclusive}}return D}shouldHideControls(S){return this._shouldHideControls.read(S)}getHiddenOriginalRange(S){return b.LineRange.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(S),this.lineCount-this._visibleLineCountTop.read(S)-this._visibleLineCountBottom.read(S))}getHiddenModifiedRange(S){return b.LineRange.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(S),this.lineCount-this._visibleLineCountTop.read(S)-this._visibleLineCountBottom.read(S))}setHiddenModifiedRange(S,L){const D=S.startLineNumber-this.modifiedLineNumber,T=this.modifiedLineNumber+this.lineCount-S.endLineNumberExclusive;this.setState(D,T,L)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(S=10,L){const D=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+S,D),L)}showMoreBelow(S=10,L){const D=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+S,D),L)}showAll(S){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),S)}showModifiedLine(S,L,D){const T=S+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),M=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-S;L===0&&Tthis.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const c=this.editor.getPosition();this.editor.changeDecorations(l=>{this.decorationId&&l.removeDecoration(this.decorationId),this.decorationId=l.addDecoration(y.Selection.fromPositions(c,c),{description:"selection-anchor",stickiness:1,hoverMessage:new k.MarkdownString().appendText((0,_.localize)(710,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,d.alert)((0,_.localize)(711,"Anchor set at {0}:{1}",c.lineNumber,c.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const c=this.editor.getModel().getDecorationRange(this.decorationId);c&&this.editor.setPosition(c.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const c=this.editor.getModel().getDecorationRange(this.decorationId);if(c){const l=this.editor.getPosition();this.editor.setSelection(y.Selection.fromPositions(c.getStartPosition(),l)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const c=this.decorationId;this.editor.changeDecorations(l=>{l.removeDecoration(c),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};n=p=ke([ce(1,b.IContextKeyService)],n);class o extends E.EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:(0,_.localize)(712,"Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,2080),weight:100}})}async run(c,l){n.get(l)?.setSelectionAnchor()}}class t extends E.EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:(0,_.localize)(713,"Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:e.SelectionAnchorSet})}async run(c,l){n.get(l)?.goToSelectionAnchor()}}class i extends E.EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:(0,_.localize)(714,"Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,2089),weight:100}})}async run(c,l){n.get(l)?.selectFromAnchorToCursor()}}class s extends E.EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:(0,_.localize)(715,"Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(c,l){n.get(l)?.cancelSelectionAnchor()}}(0,E.registerEditorContribution)(n.ID,n,4),(0,E.registerEditorAction)(o),(0,E.registerEditorAction)(t),(0,E.registerEditorAction)(i),(0,E.registerEditorAction)(s)}),define(ne[728],se([1,0,15,20,607,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class y extends d.EditorAction{constructor(p,n){super(n),this.left=p}run(p,n){if(!n.hasModel())return;const o=[],t=n.getSelections();for(const i of t)o.push(new I.MoveCaretCommand(i,this.left));n.pushUndoStop(),n.executeCommands(this.id,o),n.pushUndoStop()}}class m extends y{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:E.localize(722,"Move Selected Text Left"),alias:"Move Selected Text Left",precondition:k.EditorContextKeys.writable})}}class _ extends y{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:E.localize(723,"Move Selected Text Right"),alias:"Move Selected Text Right",precondition:k.EditorContextKeys.writable})}}(0,d.registerEditorAction)(m),(0,d.registerEditorAction)(_)}),define(ne[729],se([1,0,15,146,233,4,20,3]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class _ extends d.EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:m.localize(724,"Transpose Letters"),alias:"Transpose Letters",precondition:y.EditorContextKeys.writable,kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(p,n){if(!n.hasModel())return;const o=n.getModel(),t=[],i=n.getSelections();for(const s of i){if(!s.isEmpty())continue;const g=s.startLineNumber,c=s.startColumn,l=o.getLineMaxColumn(g);if(g===1&&(c===1||c===2&&l===2))continue;const a=c===l?s.getPosition():I.MoveOperations.rightPosition(o,s.getPosition().lineNumber,s.getPosition().column),r=I.MoveOperations.leftPosition(o,a),u=I.MoveOperations.leftPosition(o,r),C=o.getValueInRange(E.Range.fromPositions(u,r)),f=o.getValueInRange(E.Range.fromPositions(r,a)),h=E.Range.fromPositions(u,a);t.push(new k.ReplaceCommand(h,f+C))}t.length>0&&(n.pushUndoStop(),n.executeCommands(this.id,t),n.pushUndoStop())}}(0,d.registerEditorAction)(_)}),define(ne[730],se([1,0,72,15,4,20,36,333,609,3,29]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class n extends k.EditorAction{constructor(c,l){super(l),this._type=c}run(c,l){const a=c.get(y.ILanguageConfigurationService);if(!l.hasModel())return;const r=l.getModel(),u=[],C=r.getOptions(),f=l.getOption(23),h=l.getSelections().map((w,S)=>({selection:w,index:S,ignoreFirstLine:!1}));h.sort((w,S)=>I.Range.compareRangesUsingStarts(w.selection,S.selection));let v=h[0];for(let w=1;w{this._undoStack=[],this._redoStack=[]})),this._register(o.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(o.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new y(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new m(i,o.getScrollTop(),o.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new m(new y(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new m(new y(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(o){this._isCursorUndoRedo=!0,this._editor.setSelections(o.cursorState.selections),this._editor.setScrollPosition({scrollTop:o.scrollTop,scrollLeft:o.scrollLeft}),this._isCursorUndoRedo=!1}}e.CursorUndoRedoController=_;class b extends k.EditorAction{constructor(){super({id:"cursorUndo",label:E.localize(821,"Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:I.EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(o,t,i){_.get(t)?.cursorUndo()}}e.CursorUndo=b;class p extends k.EditorAction{constructor(){super({id:"cursorRedo",label:E.localize(822,"Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(o,t,i){_.get(t)?.cursorRedo()}}e.CursorRedo=p,(0,k.registerEditorContribution)(_.ID,_,0),(0,k.registerEditorAction)(b),(0,k.registerEditorAction)(p)}),define(ne[732],se([1,0,15,12,18,73,7,49,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorKeybindingCancellationTokenSource=void 0;const b=(0,y.createDecorator)("IEditorCancelService"),p=new k.RawContextKey("cancellableOperation",!1,(0,_.localize)(847,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,m.registerSingleton)(b,class{constructor(){this._tokens=new WeakMap}add(o,t){let i=this._tokens.get(o);i||(i=o.invokeWithinContext(g=>{const c=p.bindTo(g.get(k.IContextKeyService)),l=new E.LinkedList;return{key:c,tokens:l}}),this._tokens.set(o,i));let s;return i.key.set(!0),s=i.tokens.push(t),()=>{s&&(s(),i.key.set(!i.tokens.isEmpty()),s=void 0)}}cancel(o){const t=this._tokens.get(o);if(!t)return;const i=t.tokens.pop();i&&(i.cancel(),t.key.set(!t.tokens.isEmpty()))}},1);class n extends I.CancellationTokenSource{constructor(t,i){super(i),this.editor=t,this._unregister=t.invokeWithinContext(s=>s.get(b).add(t,this))}dispose(){this._unregister(),super.dispose()}}e.EditorKeybindingCancellationTokenSource=n,(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:p})}runEditorCommand(o,t){o.get(b).cancel(t)}})}),define(ne[122],se([1,0,11,4,18,2,732]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextModelCancellationTokenSource=e.EditorStateCancellationTokenSource=e.EditorState=void 0;class m{constructor(n,o){if(this.flags=o,this.flags&1){const t=n.getModel();this.modelVersionId=t?d.format("{0}#{1}",t.uri.toString(),t.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=n.getPosition():this.position=null,this.flags&2?this.selection=n.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=n.getScrollLeft(),this.scrollTop=n.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(n){if(!(n instanceof m))return!1;const o=n;return!(this.modelVersionId!==o.modelVersionId||this.scrollLeft!==o.scrollLeft||this.scrollTop!==o.scrollTop||!this.position&&o.position||this.position&&!o.position||this.position&&o.position&&!this.position.equals(o.position)||!this.selection&&o.selection||this.selection&&!o.selection||this.selection&&o.selection&&!this.selection.equalsRange(o.selection))}validate(n){return this._equals(new m(n,this.flags))}}e.EditorState=m;class _ extends y.EditorKeybindingCancellationTokenSource{constructor(n,o,t,i){super(n,i),this._listener=new E.DisposableStore,o&4&&this._listener.add(n.onDidChangeCursorPosition(s=>{(!t||!k.Range.containsPosition(t,s.position))&&this.cancel()})),o&2&&this._listener.add(n.onDidChangeCursorSelection(s=>{(!t||!k.Range.containsRange(t,s.selection))&&this.cancel()})),o&8&&this._listener.add(n.onDidScrollChange(s=>this.cancel())),o&1&&(this._listener.add(n.onDidChangeModel(s=>this.cancel())),this._listener.add(n.onDidChangeModelContent(s=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}e.EditorStateCancellationTokenSource=_;class b extends I.CancellationTokenSource{constructor(n,o){super(o),this._listener=n.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}e.TextModelCancellationTokenSource=b}),define(ne[157],se([1,0,13,18,8,2,22,152,4,23,17,51,122,3,24,50,96,63,134,91]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ApplyCodeActionReason=e.fixAllCommandId=e.organizeImportsCommandId=e.sourceActionCommandId=e.refactorCommandId=e.autoFixCommandId=e.quickFixCommandId=e.codeActionCommandId=void 0,e.getCodeActions=C,e.applyCodeAction=S,e.codeActionCommandId="editor.action.codeAction",e.quickFixCommandId="editor.action.quickFix",e.autoFixCommandId="editor.action.autoFix",e.refactorCommandId="editor.action.refactor",e.sourceActionCommandId="editor.action.sourceAction",e.organizeImportsCommandId="editor.action.organizeImports",e.fixAllCommandId="editor.action.fixAll";class r extends E.Disposable{static codeActionsPreferredComparator(T,M){return T.isPreferred&&!M.isPreferred?-1:!T.isPreferred&&M.isPreferred?1:0}static codeActionsComparator({action:T},{action:M}){return T.isAI&&!M.isAI?1:!T.isAI&&M.isAI?-1:(0,d.isNonEmptyArray)(T.diagnostics)?(0,d.isNonEmptyArray)(M.diagnostics)?r.codeActionsPreferredComparator(T,M):-1:(0,d.isNonEmptyArray)(M.diagnostics)?1:r.codeActionsPreferredComparator(T,M)}constructor(T,M,A){super(),this.documentation=M,this._register(A),this.allActions=[...T].sort(r.codeActionsComparator),this.validActions=this.allActions.filter(({action:P})=>!P.disabled)}get hasAutoFix(){return this.validActions.some(({action:T})=>!!T.kind&&l.CodeActionKind.QuickFix.contains(new a.HierarchicalKind(T.kind))&&!!T.isPreferred)}get hasAIFix(){return this.validActions.some(({action:T})=>!!T.isAI)}get allAIFixes(){return this.validActions.every(({action:T})=>!!T.isAI)}}const u={actions:[],documentation:void 0};async function C(D,T,M,A,P,N){const O=A.filter||{},F={...O,excludes:[...O.excludes||[],l.CodeActionKind.Notebook]},x={only:O.include?.value,trigger:A.type},W=new o.TextModelCancellationTokenSource(T,N),V=A.type===2,q=f(D,T,V?F:O),H=new E.DisposableStore,z=q.map(async j=>{try{P.report(j);const Y=await j.provideCodeActions(T,M,x,W.token);if(Y&&H.add(Y),W.token.isCancellationRequested)return u;const G=(Y?.actions||[]).filter(R=>R&&(0,l.filtersAction)(O,R)),K=v(j,G,O.include);return{actions:G.map(R=>new l.CodeActionItem(R,j)),documentation:K}}catch(Y){if((0,I.isCancellationError)(Y))throw Y;return(0,I.onUnexpectedExternalError)(Y),u}}),U=D.onDidChange(()=>{const j=D.all(T);(0,d.equals)(j,q)||W.cancel()});try{const j=await Promise.all(z),Y=j.map(K=>K.actions).flat(),G=[...(0,d.coalesce)(j.map(K=>K.documentation)),...h(D,T,A,Y)];return new r(Y,G,H)}finally{U.dispose(),W.dispose()}}function f(D,T,M){return D.all(T).filter(A=>A.providedCodeActionKinds?A.providedCodeActionKinds.some(P=>(0,l.mayIncludeActionsOfKind)(M,new a.HierarchicalKind(P))):!0)}function*h(D,T,M,A){if(T&&A.length)for(const P of D.all(T))P._getAdditionalMenuItems&&(yield*P._getAdditionalMenuItems?.({trigger:M.type,only:M.filter?.include?.value},A.map(N=>N.action)))}function v(D,T,M){if(!D.documentation)return;const A=D.documentation.map(P=>({kind:new a.HierarchicalKind(P.kind),command:P.command}));if(M){let P;for(const N of A)N.kind.contains(M)&&(P?P.kind.contains(N.kind)&&(P=N):P=N);if(P)return P?.command}for(const P of T)if(P.kind){for(const N of A)if(N.kind.contains(new a.HierarchicalKind(P.kind)))return N.command}}var w;(function(D){D.OnSave="onSave",D.FromProblemsView="fromProblemsView",D.FromCodeActions="fromCodeActions",D.FromAILightbulb="fromAILightbulb"})(w||(e.ApplyCodeActionReason=w={}));async function S(D,T,M,A,P=k.CancellationToken.None){const N=D.get(m.IBulkEditService),O=D.get(i.ICommandService),F=D.get(c.ITelemetryService),x=D.get(s.INotificationService);if(F.publicLog2("codeAction.applyCodeAction",{codeActionTitle:T.action.title,codeActionKind:T.action.kind,codeActionIsPreferred:!!T.action.isPreferred,reason:M}),await T.resolve(P),!P.isCancellationRequested&&!(T.action.edit?.edits.length&&!(await N.apply(T.action.edit,{editor:A?.editor,label:T.action.title,quotableLabel:T.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:M!==w.OnSave,showPreview:A?.preview})).isApplied)&&T.action.command)try{await O.executeCommand(T.action.command.id,...T.action.command.arguments||[])}catch(W){const V=L(W);x.error(typeof V=="string"?V:t.localize(742,"An unknown error occurred while applying the code action"))}}function L(D){return typeof D=="string"?D:D instanceof Error&&typeof D.message=="string"?D.message:void 0}i.CommandsRegistry.registerCommand("_executeCodeActionProvider",async function(D,T,M,A,P){if(!(T instanceof y.URI))throw(0,I.illegalArgument)();const{codeActionProvider:N}=D.get(p.ILanguageFeaturesService),O=D.get(n.IModelService).getModel(T);if(!O)throw(0,I.illegalArgument)();const F=b.Selection.isISelection(M)?b.Selection.liftSelection(M):_.Range.isIRange(M)?O.validateRange(M):void 0;if(!F)throw(0,I.illegalArgument)();const x=typeof A=="string"?new a.HierarchicalKind(A):void 0,W=await C(N,O,F,{type:1,triggerAction:l.CodeActionTriggerSource.Default,filter:{includeSourceActions:!0,include:x}},g.Progress.None,k.CancellationToken.None),V=[],q=Math.min(W.validActions.length,typeof P=="number"?P:0);for(let H=0;HH.action)}finally{setTimeout(()=>W.dispose(),100)}})}),define(ne[733],se([1,0,91,98,157,134,31]),function(oe,e,d,k,I,E,y){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionKeybindingResolver=void 0;let _=class{static{m=this}static{this.codeActionCommands=[I.refactorCommandId,I.codeActionCommandId,I.sourceActionCommandId,I.organizeImportsCommandId,I.fixAllCommandId]}constructor(p){this.keybindingService=p}getResolver(){const p=new k.Lazy(()=>this.keybindingService.getKeybindings().filter(n=>m.codeActionCommands.indexOf(n.command)>=0).filter(n=>n.resolvedKeybinding).map(n=>{let o=n.commandArgs;return n.command===I.organizeImportsCommandId?o={kind:E.CodeActionKind.SourceOrganizeImports.value}:n.command===I.fixAllCommandId&&(o={kind:E.CodeActionKind.SourceFixAll.value}),{resolvedKeybinding:n.resolvedKeybinding,...E.CodeActionCommandArgs.fromUser(o,{kind:d.HierarchicalKind.None,apply:"never"})}}));return n=>{if(n.kind)return this.bestKeybindingForCodeAction(n,p.value)?.resolvedKeybinding}}bestKeybindingForCodeAction(p,n){if(!p.kind)return;const o=new d.HierarchicalKind(p.kind);return n.filter(t=>t.kind.contains(o)).filter(t=>t.preferred?p.isPreferred:!0).reduceRight((t,i)=>t?t.kind.contains(i.kind)?i:t:i,void 0)}};e.CodeActionKeybindingResolver=_,e.CodeActionKeybindingResolver=_=m=ke([ce(0,y.IKeybindingService)],_)}),define(ne[408],se([1,0,14,8,6,2,48,37,9,23,12,96,134,157,91,54]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionModel=e.CodeActionsState=e.APPLY_FIX_ALL_COMMAND_ID=e.SUPPORTED_CODE_ACTIONS=void 0,e.SUPPORTED_CODE_ACTIONS=new p.RawContextKey("supportedCodeAction",""),e.APPLY_FIX_ALL_COMMAND_ID="_typescript.applyFixAllCodeAction";class g extends E.Disposable{constructor(u,C,f,h=250){super(),this._editor=u,this._markerService=C,this._signalChange=f,this._delay=h,this._autoTriggerTimer=this._register(new d.TimeoutTimer),this._register(this._markerService.onMarkerChanged(v=>this._onMarkerChanges(v))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(u){const C=this._getRangeOfSelectionUnlessWhitespaceEnclosed(u);this._signalChange(C?{trigger:u,selection:C}:void 0)}_onMarkerChanges(u){const C=this._editor.getModel();C&&u.some(f=>(0,y.isEqual)(f,C.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:o.CodeActionTriggerSource.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(u){if(!this._editor.hasModel())return;const C=this._editor.getSelection();if(u.type===1)return C;const f=this._editor.getOption(65).enabled;if(f!==m.ShowLightbulbIconMode.Off){{if(f===m.ShowLightbulbIconMode.On)return C;if(f===m.ShowLightbulbIconMode.OnCode){if(!C.isEmpty())return C;const v=this._editor.getModel(),{lineNumber:w,column:S}=C.getPosition(),L=v.getLineContent(w);if(L.length===0)return;if(S===1){if(/\s/.test(L[0]))return}else if(S===v.getLineMaxColumn(w)){if(/\s/.test(L[L.length-1]))return}else if(/\s/.test(L[S-2])&&/\s/.test(L[S-1]))return}}return C}}}var c;(function(r){r.Empty={type:0};class u{constructor(f,h,v){this.trigger=f,this.position=h,this._cancellablePromise=v,this.type=1,this.actions=v.catch(w=>{if((0,k.isCancellationError)(w))return l;throw w})}cancel(){this._cancellablePromise.cancel()}}r.Triggered=u})(c||(e.CodeActionsState=c={}));const l=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class a extends E.Disposable{constructor(u,C,f,h,v,w,S){super(),this._editor=u,this._registry=C,this._markerService=f,this._progressService=v,this._configurationService=w,this._telemetryService=S,this._codeActionOracle=this._register(new E.MutableDisposable),this._state=c.Empty,this._onDidChangeState=this._register(new I.Emitter),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=e.SUPPORTED_CODE_ACTIONS.bindTo(h),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(L=>{L.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(c.Empty,!0))}_settingEnabledNearbyQuickfixes(){const u=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:u?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(c.Empty);const u=this._editor.getModel();if(u&&this._registry.has(u)&&!this._editor.getOption(92)){const C=this._registry.all(u).flatMap(f=>f.providedCodeActionKinds??[]);this._supportedCodeActions.set(C.join(" ")),this._codeActionOracle.value=new g(this._editor,this._markerService,f=>{if(!f){this.setState(c.Empty);return}const h=f.selection.getStartPosition(),v=(0,d.createCancelablePromise)(async L=>{if(this._settingEnabledNearbyQuickfixes()&&f.trigger.type===1&&(f.trigger.triggerAction===o.CodeActionTriggerSource.QuickFix||f.trigger.filter?.include?.contains(o.CodeActionKind.QuickFix))){const D=await(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L),T=[...D.allActions];if(L.isCancellationRequested)return l;const M=D.validActions?.some(P=>P.action.kind?o.CodeActionKind.QuickFix.contains(new i.HierarchicalKind(P.action.kind)):!1),A=this._markerService.read({resource:u.uri});if(M){for(const P of D.validActions)P.action.command?.arguments?.some(N=>typeof N=="string"&&N.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(P.action.diagnostics=[...A.filter(N=>N.relatedInformation)]);return{validActions:D.validActions,allActions:T,documentation:D.documentation,hasAutoFix:D.hasAutoFix,hasAIFix:D.hasAIFix,allAIFixes:D.allAIFixes,dispose:()=>{D.dispose()}}}else if(!M&&A.length>0){const P=f.selection.getPosition();let N=P,O=Number.MAX_VALUE;const F=[...D.validActions];for(const W of A){const V=W.endColumn,q=W.endLineNumber,H=W.startLineNumber;if(q===P.lineNumber||H===P.lineNumber){N=new _.Position(q,V);const z={type:f.trigger.type,triggerAction:f.trigger.triggerAction,filter:{include:f.trigger.filter?.include?f.trigger.filter?.include:o.CodeActionKind.QuickFix},autoApply:f.trigger.autoApply,context:{notAvailableMessage:f.trigger.context?.notAvailableMessage||"",position:N}},U=new b.Selection(N.lineNumber,N.column,N.lineNumber,N.column),j=await(0,t.getCodeActions)(this._registry,u,U,z,n.Progress.None,L);if(j.validActions.length!==0){for(const Y of j.validActions)Y.action.command?.arguments?.some(G=>typeof G=="string"&&G.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(Y.action.diagnostics=[...A.filter(G=>G.relatedInformation)]);D.allActions.length===0&&T.push(...j.allActions),Math.abs(P.column-V)q.findIndex(H=>H.action.title===W.action.title)===V);return x.sort((W,V)=>W.action.isPreferred&&!V.action.isPreferred?-1:!W.action.isPreferred&&V.action.isPreferred||W.action.isAI&&!V.action.isAI?1:!W.action.isAI&&V.action.isAI?-1:0),{validActions:x,allActions:T,documentation:D.documentation,hasAutoFix:D.hasAutoFix,hasAIFix:D.hasAIFix,allAIFixes:D.allAIFixes,dispose:()=>{D.dispose()}}}}if(f.trigger.type===1){const D=new s.StopWatch,T=await(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L);return this._telemetryService&&this._telemetryService.publicLog2("codeAction.invokedDurations",{codeActions:T.validActions.length,duration:D.elapsed()}),T}return(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L)});f.trigger.type===1&&this._progressService?.showWhile(v,250);const w=new c.Triggered(f.trigger,h,v);let S=!1;this._state.type===1&&(S=this._state.trigger.type===1&&w.type===1&&w.trigger.type===2&&this._state.position!==w.position),S?setTimeout(()=>{this.setState(w)},500):this.setState(w)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:o.CodeActionTriggerSource.Default})}else this._supportedCodeActions.reset()}trigger(u){this._codeActionOracle.value?.trigger(u)}setState(u,C){u!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=u,!C&&!this._disposed&&this._onDidChangeState.fire(u))}}e.CodeActionModel=a}),define(ne[734],se([1,0,15,165,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class E extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomIn",label:I.localize(919,"Increase Editor Font Size"),alias:"Increase Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(k.EditorZoom.getZoomLevel()+1)}}class y extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomOut",label:I.localize(920,"Decrease Editor Font Size"),alias:"Decrease Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(k.EditorZoom.getZoomLevel()-1)}}class m extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomReset",label:I.localize(921,"Reset Editor Font Size"),alias:"Reset Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(0)}}(0,d.registerEditorAction)(E),(0,d.registerEditorAction)(y),(0,d.registerEditorAction)(m)}),define(ne[409],se([1,0,13,18,8,53,73,19,22,122,168,9,4,23,100,78,337,24,674,7,17,62,137]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormattingConflicts=void 0,e.getRealAndSyntheticDocumentFormattersOrdered=f,e.formatDocumentRangesWithSelectedProvider=v,e.formatDocumentRangesWithProvider=w,e.formatDocumentWithSelectedProvider=S,e.formatDocumentWithProvider=L,e.getDocumentRangeFormattingEditsUntilResult=D,e.getDocumentFormattingEditsUntilResult=T,e.getOnTypeFormattingEdits=M;function f(A,P,N){const O=[],F=new l.ExtensionIdentifierSet,x=A.ordered(N);for(const V of x)O.push(V),V.extensionId&&F.add(V.extensionId);const W=P.ordered(N);for(const V of W){if(V.extensionId){if(F.has(V.extensionId))continue;F.add(V.extensionId)}O.push({displayName:V.displayName,extensionId:V.extensionId,provideDocumentFormattingEdits(q,H,z){return V.provideDocumentRangeFormattingEdits(q,q.getFullModelRange(),H,z)}})}return O}class h{static{this._selectors=new y.LinkedList}static setFormatterSelector(P){return{dispose:h._selectors.unshift(P)}}static async select(P,N,O,F){if(P.length===0)return;const x=E.Iterable.first(h._selectors);if(x)return await x(P,N,O,F)}}e.FormattingConflicts=h;async function v(A,P,N,O,F,x,W){const V=A.get(a.IInstantiationService),{documentRangeFormattingEditProvider:q}=A.get(r.ILanguageFeaturesService),H=(0,p.isCodeEditor)(P)?P.getModel():P,z=q.ordered(H),U=await h.select(z,H,O,2);U&&(F.report(U),await V.invokeFunction(w,U,P,N,x,W))}async function w(A,P,N,O,F,x){const W=A.get(i.IEditorWorkerService),V=A.get(u.ILogService),q=A.get(C.IAccessibilitySignalService);let H,z;(0,p.isCodeEditor)(N)?(H=N.getModel(),z=new b.EditorStateCancellationTokenSource(N,5,void 0,F)):(H=N,z=new b.TextModelCancellationTokenSource(N,F));const U=[];let j=0;for(const J of(0,d.asArray)(O).sort(o.Range.compareRangesUsingStarts))j>0&&o.Range.areIntersectingOrTouching(U[j-1],J)?U[j-1]=o.Range.fromPositions(U[j-1].getStartPosition(),J.getEndPosition()):j=U.push(J);const Y=async J=>{V.trace("[format][provideDocumentRangeFormattingEdits] (request)",P.extensionId?.value,J);const ie=await P.provideDocumentRangeFormattingEdits(H,J,H.getFormattingOptions(),z.token)||[];return V.trace("[format][provideDocumentRangeFormattingEdits] (response)",P.extensionId?.value,ie),ie},G=(J,ie)=>{if(!J.length||!ie.length)return!1;const ue=J.reduce((he,pe)=>o.Range.plusRange(he,pe.range),J[0].range);if(!ie.some(he=>o.Range.intersectRanges(ue,he.range)))return!1;for(const he of J)for(const pe of ie)if(o.Range.intersectRanges(he.range,pe.range))return!0;return!1},K=[],R=[];try{if(typeof P.provideDocumentRangesFormattingEdits=="function"){V.trace("[format][provideDocumentRangeFormattingEdits] (request)",P.extensionId?.value,U);const J=await P.provideDocumentRangesFormattingEdits(H,U,H.getFormattingOptions(),z.token)||[];V.trace("[format][provideDocumentRangeFormattingEdits] (response)",P.extensionId?.value,J),R.push(J)}else{for(const J of U){if(z.token.isCancellationRequested)return!0;R.push(await Y(J))}for(let J=0;J({text:ue.text,range:o.Range.lift(ue.range),forceMoveMarkers:!0})),ue=>{for(const{range:he}of ue)if(o.Range.areIntersectingOrTouching(he,ie))return[new t.Selection(he.startLineNumber,he.startColumn,he.endLineNumber,he.endColumn)];return null})}return q.playSignal(C.AccessibilitySignal.format,{userGesture:x}),!0}async function S(A,P,N,O,F,x){const W=A.get(a.IInstantiationService),V=A.get(r.ILanguageFeaturesService),q=(0,p.isCodeEditor)(P)?P.getModel():P,H=f(V.documentFormattingEditProvider,V.documentRangeFormattingEditProvider,q),z=await h.select(H,q,N,1);z&&(O.report(z),await W.invokeFunction(L,z,P,N,F,x))}async function L(A,P,N,O,F,x){const W=A.get(i.IEditorWorkerService),V=A.get(C.IAccessibilitySignalService);let q,H;(0,p.isCodeEditor)(N)?(q=N.getModel(),H=new b.EditorStateCancellationTokenSource(N,5,void 0,F)):(q=N,H=new b.TextModelCancellationTokenSource(N,F));let z;try{const U=await P.provideDocumentFormattingEdits(q,q.getFormattingOptions(),H.token);if(z=await W.computeMoreMinimalEdits(q.uri,U),H.token.isCancellationRequested)return!0}finally{H.dispose()}if(!z||z.length===0)return!1;if((0,p.isCodeEditor)(N))g.FormattingEdit.execute(N,z,O!==2),O!==2&&N.revealPositionInCenterIfOutsideViewport(N.getPosition(),1);else{const[{range:U}]=z,j=new t.Selection(U.startLineNumber,U.startColumn,U.endLineNumber,U.endColumn);q.pushEditOperations([j],z.map(Y=>({text:Y.text,range:o.Range.lift(Y.range),forceMoveMarkers:!0})),Y=>{for(const{range:G}of Y)if(o.Range.areIntersectingOrTouching(G,j))return[new t.Selection(G.startLineNumber,G.startColumn,G.endLineNumber,G.endColumn)];return null})}return V.playSignal(C.AccessibilitySignal.format,{userGesture:x}),!0}async function D(A,P,N,O,F,x){const W=P.documentRangeFormattingEditProvider.ordered(N);for(const V of W){const q=await Promise.resolve(V.provideDocumentRangeFormattingEdits(N,O,F,x)).catch(I.onUnexpectedExternalError);if((0,d.isNonEmptyArray)(q))return await A.computeMoreMinimalEdits(N.uri,q)}}async function T(A,P,N,O,F){const x=f(P.documentFormattingEditProvider,P.documentRangeFormattingEditProvider,N);for(const W of x){const V=await Promise.resolve(W.provideDocumentFormattingEdits(N,O,F)).catch(I.onUnexpectedExternalError);if((0,d.isNonEmptyArray)(V))return await A.computeMoreMinimalEdits(N.uri,V)}}function M(A,P,N,O,F,x,W){const V=P.onTypeFormattingEditProvider.ordered(N);return V.length===0||V[0].autoFormatTriggerCharacters.indexOf(F)<0?Promise.resolve(void 0):Promise.resolve(V[0].provideOnTypeFormattingEdits(N,O,F,x,W)).catch(I.onUnexpectedExternalError).then(q=>A.computeMoreMinimalEdits(N.uri,q))}c.CommandsRegistry.registerCommand("_executeFormatRangeProvider",async function(A,...P){const[N,O,F]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(o.Range.isIRange(O));const x=A.get(s.ITextModelService),W=A.get(i.IEditorWorkerService),V=A.get(r.ILanguageFeaturesService),q=await x.createModelReference(N);try{return D(W,V,q.object.textEditorModel,o.Range.lift(O),F,k.CancellationToken.None)}finally{q.dispose()}}),c.CommandsRegistry.registerCommand("_executeFormatDocumentProvider",async function(A,...P){const[N,O]=P;(0,m.assertType)(_.URI.isUri(N));const F=A.get(s.ITextModelService),x=A.get(i.IEditorWorkerService),W=A.get(r.ILanguageFeaturesService),V=await F.createModelReference(N);try{return T(x,W,V.object.textEditorModel,O,k.CancellationToken.None)}finally{V.dispose()}}),c.CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",async function(A,...P){const[N,O,F,x]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(n.Position.isIPosition(O)),(0,m.assertType)(typeof F=="string");const W=A.get(s.ITextModelService),V=A.get(i.IEditorWorkerService),q=A.get(r.ILanguageFeaturesService),H=await W.createModelReference(N);try{return M(V,q,H.object.textEditorModel,n.Position.lift(O),F,x,k.CancellationToken.None)}finally{H.dispose()}})}),define(ne[735],se([1,0,13,18,8,72,2,15,34,144,4,20,100,17,409,337,3,137,24,12,7,96]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormatOnType=void 0;let C=class{static{this.ID="editor.contrib.autoFormat"}constructor(S,L,D,T){this._editor=S,this._languageFeaturesService=L,this._workerService=D,this._accessibilitySignalService=T,this._disposables=new y.DisposableStore,this._sessionDisposables=new y.DisposableStore,this._disposables.add(L.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(S.onDidChangeModel(()=>this._update())),this._disposables.add(S.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(S.onDidChangeConfiguration(M=>{M.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const S=this._editor.getModel(),[L]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(S);if(!L||!L.autoFormatTriggerCharacters)return;const D=new b.CharacterSet;for(const T of L.autoFormatTriggerCharacters)D.add(T.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(T=>{const M=T.charCodeAt(T.length-1);D.has(M)&&this._trigger(String.fromCharCode(M))}))}_trigger(S){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const L=this._editor.getModel(),D=this._editor.getPosition(),T=new k.CancellationTokenSource,M=this._editor.onDidChangeModelContent(A=>{if(A.isFlush){T.cancel(),M.dispose();return}for(let P=0,N=A.changes.length;P{T.token.isCancellationRequested||(0,d.isNonEmptyArray)(A)&&(this._accessibilitySignalService.playSignal(c.AccessibilitySignal.format,{userGesture:!1}),s.FormattingEdit.execute(this._editor,A,!0))}).finally(()=>{M.dispose()})}};e.FormatOnType=C,e.FormatOnType=C=ke([ce(1,t.ILanguageFeaturesService),ce(2,o.IEditorWorkerService),ce(3,c.IAccessibilitySignalService)],C);let f=class{static{this.ID="editor.contrib.formatOnPaste"}constructor(S,L,D){this.editor=S,this._languageFeaturesService=L,this._instantiationService=D,this._callOnDispose=new y.DisposableStore,this._callOnModel=new y.DisposableStore,this._callOnDispose.add(S.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(S.onDidChangeModel(()=>this._update())),this._callOnDispose.add(S.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(L.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:S})=>this._trigger(S)))}_trigger(S){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(i.formatDocumentRangesWithSelectedProvider,this.editor,S,2,u.Progress.None,k.CancellationToken.None,!1).catch(I.onUnexpectedError))}};f=ke([ce(1,t.ILanguageFeaturesService),ce(2,r.IInstantiationService)],f);class h extends m.EditorAction{constructor(){super({id:"editor.action.formatDocument",label:g.localize(922,"Format Document"),alias:"Format Document",precondition:a.ContextKeyExpr.and(n.EditorContextKeys.notInCompositeEditor,n.EditorContextKeys.writable,n.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(S,L){if(L.hasModel()){const D=S.get(r.IInstantiationService);await S.get(u.IEditorProgressService).showWhile(D.invokeFunction(i.formatDocumentWithSelectedProvider,L,1,u.Progress.None,k.CancellationToken.None,!0),250)}}}class v extends m.EditorAction{constructor(){super({id:"editor.action.formatSelection",label:g.localize(923,"Format Selection"),alias:"Format Selection",precondition:a.ContextKeyExpr.and(n.EditorContextKeys.writable,n.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2084),weight:100},contextMenuOpts:{when:n.EditorContextKeys.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(S,L){if(!L.hasModel())return;const D=S.get(r.IInstantiationService),T=L.getModel(),M=L.getSelections().map(P=>P.isEmpty()?new p.Range(P.startLineNumber,1,P.startLineNumber,T.getLineMaxColumn(P.startLineNumber)):P);await S.get(u.IEditorProgressService).showWhile(D.invokeFunction(i.formatDocumentRangesWithSelectedProvider,L,M,1,u.Progress.None,k.CancellationToken.None,!0),250)}}(0,m.registerEditorContribution)(C.ID,C,2),(0,m.registerEditorContribution)(f.ID,f,2),(0,m.registerEditorAction)(h),(0,m.registerEditorAction)(v),l.CommandsRegistry.registerCommand("editor.action.format",async w=>{const S=w.get(_.ICodeEditorService).getFocusedCodeEditor();if(!S||!S.hasModel())return;const L=w.get(l.ICommandService);S.getSelection().isEmpty()?await L.executeCommand("editor.action.formatDocument"):await L.executeCommand("editor.action.formatSelection")})}),define(ne[277],se([1,0,13,18,8,42,15,17,178]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getDefinitionsAtPosition=n,e.getDeclarationsAtPosition=o,e.getImplementationsAtPosition=t,e.getTypeDefinitionsAtPosition=i,e.getReferencesAtPosition=s;function b(c,l){return l.uri.scheme===c.uri.scheme?!0:!(0,E.matchesSomeScheme)(l.uri,E.Schemas.walkThroughSnippet,E.Schemas.vscodeChatCodeBlock,E.Schemas.vscodeChatCodeCompareBlock)}async function p(c,l,a,r,u){const f=a.ordered(c,r).map(v=>Promise.resolve(u(v,c,l)).then(void 0,w=>{(0,I.onUnexpectedExternalError)(w)})),h=await Promise.all(f);return(0,d.coalesce)(h.flat()).filter(v=>b(c,v))}function n(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideDefinition(f,h,u))}function o(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideDeclaration(f,h,u))}function t(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideImplementation(f,h,u))}function i(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideTypeDefinition(f,h,u))}function s(c,l,a,r,u,C){return p(l,a,c,u,async(f,h,v)=>{const w=(await f.provideReferences(h,v,{includeDeclaration:!0},C))?.filter(L=>b(h,L));if(!r||!w||w.length!==2)return w;const S=(await f.provideReferences(h,v,{includeDeclaration:!1},C))?.filter(L=>b(h,L));return S&&S.length===1?S:w})}async function g(c){const l=await c(),a=new _.ReferencesModel(l,""),r=a.references.map(u=>u.link);return a.dispose(),r}(0,y.registerModelAndPositionCommand)("_executeDefinitionProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=n(r.definitionProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDefinitionProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=n(r.definitionProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeTypeDefinitionProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=i(r.typeDefinitionProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeTypeDefinitionProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=i(r.typeDefinitionProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDeclarationProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=o(r.declarationProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDeclarationProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=o(r.declarationProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeReferenceProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=s(r.referenceProvider,l,a,!1,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeReferenceProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=s(r.referenceProvider,l,a,!1,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeImplementationProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=t(r.implementationProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeImplementationProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=t(r.implementationProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)})}),define(ne[736],se([1,0,6,2,48,15,34,4,3,12,49,7,31,121,50]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISymbolNavigationService=e.ctxHasSymbols=void 0,e.ctxHasSymbols=new b.RawContextKey("hasSymbols",!1,(0,_.localize)(1003,"Whether there are symbol locations that can be navigated via keyboard-only.")),e.ISymbolNavigationService=(0,n.createDecorator)("ISymbolNavigationService");let s=class{constructor(l,a,r,u){this._editorService=a,this._notificationService=r,this._keybindingService=u,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=e.ctxHasSymbols.bindTo(l)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(l){const a=l.parent.parent;if(a.references.length<=1){this.reset();return}this._currentModel=a,this._currentIdx=a.references.indexOf(l),this._ctxHasSymbols.set(!0),this._showMessage();const r=new g(this._editorService),u=r.onDidChange(C=>{if(this._ignoreEditorChange)return;const f=this._editorService.getActiveCodeEditor();if(!f)return;const h=f.getModel(),v=f.getPosition();if(!h||!v)return;let w=!1,S=!1;for(const L of a.references)if((0,I.isEqual)(L.uri,h.uri))w=!0,S=S||m.Range.containsPosition(L.range,v);else if(w)break;(!w||!S)&&this.reset()});this._currentState=(0,k.combinedDisposable)(r,u)}revealNext(l){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const a=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:a.uri,options:{selection:m.Range.collapseToStart(a.range),selectionRevealType:3}},l).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.dispose();const l=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),a=l?(0,_.localize)(1004,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,l.getLabel()):(0,_.localize)(1005,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(a)}};s=ke([ce(0,b.IContextKeyService),ce(1,y.ICodeEditorService),ce(2,i.INotificationService),ce(3,o.IKeybindingService)],s),(0,p.registerSingleton)(e.ISymbolNavigationService,s,1),(0,E.registerEditorCommand)(new class extends E.EditorCommand{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:e.ctxHasSymbols,kbOpts:{weight:100,primary:70}})}runEditorCommand(c,l){return c.get(e.ISymbolNavigationService).revealNext(l)}}),t.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:e.ctxHasSymbols,primary:9,handler(c){c.get(e.ISymbolNavigationService).reset()}});let g=class{constructor(l){this._listener=new Map,this._disposables=new k.DisposableStore,this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(l.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(l.onCodeEditorAdd(this._onDidAddEditor,this)),l.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),(0,k.dispose)(this._listener.values())}_onDidAddEditor(l){this._listener.set(l,(0,k.combinedDisposable)(l.onDidChangeCursorPosition(a=>this._onDidChange.fire({editor:l})),l.onDidChangeModelContent(a=>this._onDidChange.fire({editor:l}))))}_onDidRemoveEditor(l){this._listener.get(l)?.dispose(),this._listener.delete(l)}};g=ke([ce(0,y.ICodeEditorService)],g)}),define(ne[410],se([1,0,14,18,8,15,17]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverProviderResult=void 0,e.getHoverProviderResultsAsAsyncIterable=b,e.getHoversPromise=p;class m{constructor(t,i,s){this.provider=t,this.hover=i,this.ordinal=s}}e.HoverProviderResult=m;async function _(o,t,i,s,g){const c=await Promise.resolve(o.provideHover(i,s,g)).catch(I.onUnexpectedExternalError);if(!(!c||!n(c)))return new m(o,c,t)}function b(o,t,i,s,g=!1){const l=o.ordered(t,g).map((a,r)=>_(a,r,t,i,s));return d.AsyncIterableObject.fromPromises(l).coalesce()}function p(o,t,i,s,g=!1){return b(o,t,i,s,g).map(c=>c.hover).toPromise()}(0,E.registerModelAndPositionCommand)("_executeHoverProvider",(o,t,i)=>{const s=o.get(y.ILanguageFeaturesService);return p(s.hoverProvider,t,i,k.CancellationToken.None)}),(0,E.registerModelAndPositionCommand)("_executeHoverProvider_recursive",(o,t,i)=>{const s=o.get(y.ILanguageFeaturesService);return p(s.hoverProvider,t,i,k.CancellationToken.None,!0)});function n(o){const t=typeof o.range<"u",i=typeof o.contents<"u"&&o.contents&&o.contents.length>0;return t&&i}}),define(ne[737],se([1,0,2,11,15,183,4,20,36,51,338,3,66,241,714,83]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentationToTabsCommand=e.IndentationToSpacesCommand=e.AutoIndentOnPaste=e.AutoIndentOnPasteCommand=e.ReindentSelectedLinesAction=e.ReindentLinesAction=e.DetectIndentation=e.ChangeTabDisplaySize=e.IndentUsingSpaces=e.IndentUsingTabs=e.ChangeIndentationSizeAction=e.IndentationToTabsAction=e.IndentationToSpacesAction=void 0;class g extends I.EditorAction{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:g.ID,label:n.localize(1045,"Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1057,"Convert the tab indentation to spaces.")}})}run(A,P){const N=P.getModel();if(!N)return;const O=N.getOptions(),F=P.getSelection();if(!F)return;const x=new D(F,O.tabSize);P.pushUndoStop(),P.executeCommands(this.id,[x]),P.pushUndoStop(),N.updateOptions({insertSpaces:!0})}}e.IndentationToSpacesAction=g;class c extends I.EditorAction{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:c.ID,label:n.localize(1046,"Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1058,"Convert the spaces indentation to tabs.")}})}run(A,P){const N=P.getModel();if(!N)return;const O=N.getOptions(),F=P.getSelection();if(!F)return;const x=new T(F,O.tabSize);P.pushUndoStop(),P.executeCommands(this.id,[x]),P.pushUndoStop(),N.updateOptions({insertSpaces:!1})}}e.IndentationToTabsAction=c;class l extends I.EditorAction{constructor(A,P,N){super(N),this.insertSpaces=A,this.displaySizeOnly=P}run(A,P){const N=A.get(o.IQuickInputService),O=A.get(b.IModelService),F=P.getModel();if(!F)return;const x=O.getCreationOptions(F.getLanguageId(),F.uri,F.isForSimpleWidget),W=F.getOptions(),V=[1,2,3,4,5,6,7,8].map(H=>({id:H.toString(),label:H.toString(),description:H===x.tabSize&&H===W.tabSize?n.localize(1047,"Configured Tab Size"):H===x.tabSize?n.localize(1048,"Default Tab Size"):H===W.tabSize?n.localize(1049,"Current Tab Size"):void 0})),q=Math.min(F.getOptions().tabSize-1,7);setTimeout(()=>{N.pick(V,{placeHolder:n.localize(1050,"Select Tab Size for Current File"),activeItem:V[q]}).then(H=>{if(H&&F&&!F.isDisposed()){const z=parseInt(H.label,10);this.displaySizeOnly?F.updateOptions({tabSize:z}):F.updateOptions({tabSize:z,indentSize:z,insertSpaces:this.insertSpaces})}})},50)}}e.ChangeIndentationSizeAction=l;class a extends l{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:a.ID,label:n.localize(1051,"Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0,metadata:{description:n.localize2(1059,"Use indentation with tabs.")}})}}e.IndentUsingTabs=a;class r extends l{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:r.ID,label:n.localize(1052,"Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0,metadata:{description:n.localize2(1060,"Use indentation with spaces.")}})}}e.IndentUsingSpaces=r;class u extends l{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:u.ID,label:n.localize(1053,"Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0,metadata:{description:n.localize2(1061,"Change the space size equivalent of the tab.")}})}}e.ChangeTabDisplaySize=u;class C extends I.EditorAction{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:C.ID,label:n.localize(1054,"Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0,metadata:{description:n.localize2(1062,"Detect the indentation from content.")}})}run(A,P){const N=A.get(b.IModelService),O=P.getModel();if(!O)return;const F=N.getCreationOptions(O.getLanguageId(),O.uri,O.isForSimpleWidget);O.detectIndentation(F.insertSpaces,F.tabSize)}}e.DetectIndentation=C;class f extends I.EditorAction{constructor(){super({id:"editor.action.reindentlines",label:n.localize(1055,"Reindent Lines"),alias:"Reindent Lines",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1063,"Reindent the lines of the editor.")}})}run(A,P){const N=A.get(_.ILanguageConfigurationService),O=P.getModel();if(!O)return;const F=(0,i.getReindentEditOperations)(O,N,1,O.getLineCount());F.length>0&&(P.pushUndoStop(),P.executeEdits(this.id,F),P.pushUndoStop())}}e.ReindentLinesAction=f;class h extends I.EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:n.localize(1056,"Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1064,"Reindent the selected lines of the editor.")}})}run(A,P){const N=A.get(_.ILanguageConfigurationService),O=P.getModel();if(!O)return;const F=P.getSelections();if(F===null)return;const x=[];for(const W of F){let V=W.startLineNumber,q=W.endLineNumber;if(V!==q&&W.endColumn===1&&q--,V===1){if(V===q)continue}else V--;const H=(0,i.getReindentEditOperations)(O,N,V,q);x.push(...H)}x.length>0&&(P.pushUndoStop(),P.executeEdits(this.id,x),P.pushUndoStop())}}e.ReindentSelectedLinesAction=h;class v{constructor(A,P){this._initialSelection=P,this._edits=[],this._selectionId=null;for(const N of A)N.range&&typeof N.text=="string"&&this._edits.push(N)}getEditOperations(A,P){for(const O of this._edits)P.addEditOperation(y.Range.lift(O.range),O.text);let N=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(N=!0,this._selectionId=P.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(N=!0,this._selectionId=P.trackSelection(this._initialSelection,!1))),N||(this._selectionId=P.trackSelection(this._initialSelection))}computeCursorState(A,P){return P.getTrackedSelection(this._selectionId)}}e.AutoIndentOnPasteCommand=v;let w=class{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(A,P){this.editor=A,this._languageConfigurationService=P,this.callOnDispose=new d.DisposableStore,this.callOnModel=new d.DisposableStore,this.callOnDispose.add(A.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(A.onDidChangeModel(()=>this.update())),this.callOnDispose.add(A.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:A})=>{this.trigger(A)}))}trigger(A){const P=this.editor.getSelections();if(P===null||P.length>1)return;const N=this.editor.getModel();if(!N||this.rangeContainsOnlyWhitespaceCharacters(N,A)||S(N,A)||!N.tokenization.isCheapToTokenize(A.getStartPosition().lineNumber))return;const F=this.editor.getOption(12),{tabSize:x,indentSize:W,insertSpaces:V}=N.getOptions(),q=[],H={shiftIndent:Y=>E.ShiftCommand.shiftIndent(Y,Y.length+1,x,W,V),unshiftIndent:Y=>E.ShiftCommand.unshiftIndent(Y,Y.length+1,x,W,V)};let z=A.startLineNumber;for(;z<=A.endLineNumber;){if(this.shouldIgnoreLine(N,z)){z++;continue}break}if(z>A.endLineNumber)return;let U=N.getLineContent(z);if(!/\S/.test(U.substring(0,A.startColumn-1))){const Y=(0,t.getGoodIndentForLine)(F,N,N.getLanguageId(),z,H,this._languageConfigurationService);if(Y!==null){const G=k.getLeadingWhitespace(U),K=p.getSpaceCnt(Y,x),R=p.getSpaceCnt(G,x);if(K!==R){const J=p.generateIndent(K,x,V);q.push({range:new y.Range(z,1,z,G.length+1),text:J}),U=J+U.substring(G.length)}else{const J=(0,t.getIndentMetadata)(N,z,this._languageConfigurationService);if(J===0||J===8)return}}}const j=z;for(;zN.tokenization.getLineTokens(K),getLanguageId:()=>N.getLanguageId(),getLanguageIdAtPosition:(K,R)=>N.getLanguageIdAtPosition(K,R)},getLineContent:K=>K===j?U:N.getLineContent(K)},G=(0,t.getGoodIndentForLine)(F,Y,N.getLanguageId(),z+1,H,this._languageConfigurationService);if(G!==null){const K=p.getSpaceCnt(G,x),R=p.getSpaceCnt(k.getLeadingWhitespace(N.getLineContent(z+1)),x);if(K!==R){const J=K-R;for(let ie=z+1;ie<=A.endLineNumber;ie++){const ue=N.getLineContent(ie),he=k.getLeadingWhitespace(ue),ae=p.getSpaceCnt(he,x)+J,ee=p.generateIndent(ae,x,V);ee!==he&&q.push({range:new y.Range(ie,1,ie,he.length+1),text:ee})}}}}if(q.length>0){this.editor.pushUndoStop();const Y=new v(q,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",Y),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(A,P){const N=F=>F.trim().length===0;let O=!0;if(P.startLineNumber===P.endLineNumber){const x=A.getLineContent(P.startLineNumber).substring(P.startColumn-1,P.endColumn-1);O=N(x)}else for(let F=P.startLineNumber;F<=P.endLineNumber;F++){const x=A.getLineContent(F);if(F===P.startLineNumber){const W=x.substring(P.startColumn-1);O=N(W)}else if(F===P.endLineNumber){const W=x.substring(0,P.endColumn-1);O=N(W)}else O=A.getLineFirstNonWhitespaceColumn(F)===0;if(!O)break}return O}shouldIgnoreLine(A,P){A.tokenization.forceTokenization(P);const N=A.getLineFirstNonWhitespaceColumn(P);if(N===0)return!0;const O=A.tokenization.getLineTokens(P);if(O.getCount()>0){const F=O.findTokenIndexAtOffset(N);if(F>=0&&O.getStandardTokenType(F)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};e.AutoIndentOnPaste=w,e.AutoIndentOnPaste=w=ke([ce(1,_.ILanguageConfigurationService)],w);function S(M,A){const P=N=>(0,s.getStandardTokenTypeAtPosition)(M,N)===2;return P(A.getStartPosition())||P(A.getEndPosition())}function L(M,A,P,N){if(M.getLineCount()===1&&M.getLineMaxColumn(1)===1)return;let O="";for(let x=0;x({selection:X,index:B,ignore:!1}));ee.sort((X,B)=>n.Range.compareRangesUsingStarts(X.selection,B.selection));let de=ee[0];for(let X=1;Xnew p.Position(Z.positionLineNumber,Z.positionColumn)));const ge=ae.getSelection();if(ge===null)return;const X=pe.get(r.IConfigurationService),B=ae.getModel(),$=X.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:B?.getLanguageId(),resource:B?.uri}),Q=new y.TrimTrailingWhitespaceCommand(ge,de,$);ae.pushUndoStop(),ae.executeCommands(this.id,[Q]),ae.pushUndoStop()}}e.TrimTrailingWhitespaceAction=A;class P extends I.EditorAction{constructor(){super({id:"editor.action.deleteLines",label:c.localize(1120,"Delete Line"),alias:"Delete Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(pe,ae){if(!ae.hasModel())return;const ee=this._getLinesToRemove(ae),de=ae.getModel();if(de.getLineCount()===1&&de.getLineMaxColumn(1)===1)return;let ge=0;const X=[],B=[];for(let $=0,Q=ee.length;$1&&(te-=1,le=de.getLineMaxColumn(te)),X.push(b.EditOperation.replace(new o.Selection(te,le,re,me),"")),B.push(new o.Selection(te-ge,Z.positionColumn,te-ge,Z.positionColumn)),ge+=Z.endLineNumber-Z.startLineNumber+1}ae.pushUndoStop(),ae.executeEdits(this.id,X,B),ae.pushUndoStop()}_getLinesToRemove(pe){const ae=pe.getSelections().map(ge=>{let X=ge.endLineNumber;return ge.startLineNumberge.startLineNumber===X.startLineNumber?ge.endLineNumber-X.endLineNumber:ge.startLineNumber-X.startLineNumber);const ee=[];let de=ae[0];for(let ge=1;ge=ae[ge].startLineNumber?de.endLineNumber=ae[ge].endLineNumber:(ee.push(de),de=ae[ge]);return ee.push(de),ee}}e.DeleteLinesAction=P;class N extends I.EditorAction{constructor(){super({id:"editor.action.indentLines",label:c.localize(1121,"Indent Line"),alias:"Indent Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2142,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,m.TypeOperations.indent(ee.cursorConfig,ae.getModel(),ae.getSelections())),ae.pushUndoStop())}}e.IndentLinesAction=N;class O extends I.EditorAction{constructor(){super({id:"editor.action.outdentLines",label:c.localize(1122,"Outdent Line"),alias:"Outdent Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2140,weight:100}})}run(pe,ae){k.CoreEditingCommands.Outdent.runEditorCommand(pe,ae,null)}}class F extends I.EditorAction{constructor(){super({id:"editor.action.insertLineBefore",label:c.localize(1123,"Insert Line Above"),alias:"Insert Line Above",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,_.EnterOperation.lineInsertBefore(ee.cursorConfig,ae.getModel(),ae.getSelections())))}}e.InsertLineBeforeAction=F;class x extends I.EditorAction{constructor(){super({id:"editor.action.insertLineAfter",label:c.localize(1124,"Insert Line Below"),alias:"Insert Line Below",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,_.EnterOperation.lineInsertAfter(ee.cursorConfig,ae.getModel(),ae.getSelections())))}}e.InsertLineAfterAction=x;class W extends I.EditorAction{run(pe,ae){if(!ae.hasModel())return;const ee=ae.getSelection(),de=this._getRangesToDelete(ae),ge=[];for(let $=0,Q=de.length-1;$b.EditOperation.replace($,""));ae.pushUndoStop(),ae.executeEdits(this.id,B,X),ae.pushUndoStop()}}e.AbstractDeleteAllToBoundaryAction=W;class V extends W{constructor(){super({id:"deleteAllLeft",label:c.localize(1125,"Delete All Left"),alias:"Delete All Left",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(pe,ae){let ee=null;const de=[];let ge=0;return ae.forEach(X=>{let B;if(X.endColumn===1&&ge>0){const $=X.startLineNumber-ge;B=new o.Selection($,X.startColumn,$,X.startColumn)}else B=new o.Selection(X.startLineNumber,X.startColumn,X.startLineNumber,X.startColumn);ge+=X.endLineNumber-X.startLineNumber,X.intersectRanges(pe)?ee=B:de.push(B)}),ee&&de.unshift(ee),de}_getRangesToDelete(pe){const ae=pe.getSelections();if(ae===null)return[];let ee=ae;const de=pe.getModel();return de===null?[]:(ee.sort(n.Range.compareRangesUsingStarts),ee=ee.map(ge=>{if(ge.isEmpty())if(ge.startColumn===1){const X=Math.max(1,ge.startLineNumber-1),B=ge.startLineNumber===1?1:de.getLineLength(X)+1;return new n.Range(X,B,ge.startLineNumber,1)}else return new n.Range(ge.startLineNumber,1,ge.startLineNumber,ge.startColumn);else return new n.Range(ge.startLineNumber,1,ge.endLineNumber,ge.endColumn)}),ee)}}e.DeleteAllLeftAction=V;class q extends W{constructor(){super({id:"deleteAllRight",label:c.localize(1126,"Delete All Right"),alias:"Delete All Right",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(pe,ae){let ee=null;const de=[];for(let ge=0,X=ae.length,B=0;ge{if(ge.isEmpty()){const X=ae.getLineMaxColumn(ge.startLineNumber);return ge.startColumn===X?new n.Range(ge.startLineNumber,ge.startColumn,ge.startLineNumber+1,1):new n.Range(ge.startLineNumber,ge.startColumn,ge.startLineNumber,X)}return ge});return de.sort(n.Range.compareRangesUsingStarts),de}}e.DeleteAllRightAction=q;class H extends I.EditorAction{constructor(){super({id:"editor.action.joinLines",label:c.localize(1127,"Join Lines"),alias:"Join Lines",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(pe,ae){const ee=ae.getSelections();if(ee===null)return;let de=ae.getSelection();if(de===null)return;ee.sort(n.Range.compareRangesUsingStarts);const ge=[],X=ee.reduce((re,le)=>re.isEmpty()?re.endLineNumber===le.startLineNumber?(de.equalsSelection(re)&&(de=le),le):le.startLineNumber>re.endLineNumber+1?(ge.push(re),le):new o.Selection(re.startLineNumber,re.startColumn,le.endLineNumber,le.endColumn):le.startLineNumber>re.endLineNumber?(ge.push(re),le):new o.Selection(re.startLineNumber,re.startColumn,le.endLineNumber,le.endColumn));ge.push(X);const B=ae.getModel();if(B===null)return;const $=[],Q=[];let Z=de,te=0;for(let re=0,le=ge.length;re=1){let Oe=!0;Ne===""&&(Oe=!1),Oe&&(Ne.charAt(Ne.length-1)===" "||Ne.charAt(Ne.length-1)===" ")&&(Oe=!1,Ne=Ne.replace(/[\s\uFEFF\xA0]+$/g," "));const Fe=Ge.substr(it-1);Ne+=(Oe?" ":"")+Fe,Oe?Le=Fe.length+1:Le=Fe.length}else Le=0}const Ke=new n.Range(Ce,ye,Ee,Me);if(!Ke.isEmpty()){let ze;me.isEmpty()?($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(Ke.startLineNumber-te,Ne.length-Le+1,Ce-te,Ne.length-Le+1)):me.startLineNumber===me.endLineNumber?($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(me.startLineNumber-te,me.startColumn,me.endLineNumber-te,me.endColumn)):($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(me.startLineNumber-te,me.startColumn,me.startLineNumber-te,Ne.length-Ae)),n.Range.intersectRanges(Ke,de)!==null?Z=ze:Q.push(ze)}te+=Ke.endLineNumber-Ke.startLineNumber}Q.unshift(Z),ae.pushUndoStop(),ae.executeEdits(this.id,$,Q),ae.pushUndoStop()}}e.JoinLinesAction=H;class z extends I.EditorAction{constructor(){super({id:"editor.action.transpose",label:c.localize(1128,"Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:t.EditorContextKeys.writable})}run(pe,ae){const ee=ae.getSelections();if(ee===null)return;const de=ae.getModel();if(de===null)return;const ge=[];for(let X=0,B=ee.length;X=Z){if(Q.lineNumber===de.getLineCount())continue;const te=new n.Range(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber+1,1),re=de.getValueInRange(te).split("").reverse().join("");ge.push(new E.ReplaceCommand(new o.Selection(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber+1,1),re))}else{const te=new n.Range(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber,Q.column+1),re=de.getValueInRange(te).split("").reverse().join("");ge.push(new E.ReplaceCommandThatPreservesSelection(te,re,new o.Selection(Q.lineNumber,Q.column+1,Q.lineNumber,Q.column+1)))}}ae.pushUndoStop(),ae.executeCommands(this.id,ge),ae.pushUndoStop()}}e.TransposeAction=z;class U extends I.EditorAction{run(pe,ae){const ee=ae.getSelections();if(ee===null)return;const de=ae.getModel();if(de===null)return;const ge=ae.getOption(132),X=[];for(const B of ee)if(B.isEmpty()){const $=B.getStartPosition(),Q=ae.getConfiguredWordAtPosition($);if(!Q)continue;const Z=new n.Range($.lineNumber,Q.startColumn,$.lineNumber,Q.endColumn),te=de.getValueInRange(Z);X.push(b.EditOperation.replace(Z,this._modifyText(te,ge)))}else{const $=de.getValueInRange(B);X.push(b.EditOperation.replace(B,this._modifyText($,ge)))}ae.pushUndoStop(),ae.executeEdits(this.id,X),ae.pushUndoStop()}}e.AbstractCaseAction=U;class j extends U{constructor(){super({id:"editor.action.transformToUppercase",label:c.localize(1129,"Transform to Uppercase"),alias:"Transform to Uppercase",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){return pe.toLocaleUpperCase()}}e.UpperCaseAction=j;class Y extends U{constructor(){super({id:"editor.action.transformToLowercase",label:c.localize(1130,"Transform to Lowercase"),alias:"Transform to Lowercase",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){return pe.toLocaleLowerCase()}}e.LowerCaseAction=Y;class G{constructor(pe,ae){this._pattern=pe,this._flags=ae,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class K extends U{static{this.titleBoundary=new G("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:c.localize(1131,"Transform to Title Case"),alias:"Transform to Title Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=K.titleBoundary.get();return ee?pe.toLocaleLowerCase().replace(ee,de=>de.toLocaleUpperCase()):pe}}e.TitleCaseAction=K;class R extends U{static{this.caseBoundary=new G("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new G("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:c.localize(1132,"Transform to Snake Case"),alias:"Transform to Snake Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=R.caseBoundary.get(),de=R.singleLetters.get();return!ee||!de?pe:pe.replace(ee,"$1_$2").replace(de,"$1_$2$3").toLocaleLowerCase()}}e.SnakeCaseAction=R;class J extends U{static{this.wordBoundary=new G("[_\\s-]","gm")}constructor(){super({id:"editor.action.transformToCamelcase",label:c.localize(1133,"Transform to Camel Case"),alias:"Transform to Camel Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=J.wordBoundary.get();if(!ee)return pe;const de=pe.split(ee);return de.shift()+de.map(X=>X.substring(0,1).toLocaleUpperCase()+X.substring(1)).join("")}}e.CamelCaseAction=J;class ie extends U{static{this.wordBoundary=new G("[_\\s-]","gm")}static{this.wordBoundaryToMaintain=new G("(?<=\\.)","gm")}constructor(){super({id:"editor.action.transformToPascalcase",label:c.localize(1134,"Transform to Pascal Case"),alias:"Transform to Pascal Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=ie.wordBoundary.get(),de=ie.wordBoundaryToMaintain.get();return!ee||!de?pe:pe.split(de).map(B=>B.split(ee)).flat().map(B=>B.substring(0,1).toLocaleUpperCase()+B.substring(1)).join("")}}e.PascalCaseAction=ie;class ue extends U{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(ae=>ae.isSupported())}static{this.caseBoundary=new G("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new G("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new G("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:c.localize(1135,"Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=ue.caseBoundary.get(),de=ue.singleLetters.get(),ge=ue.underscoreBoundary.get();return!ee||!de||!ge?pe:pe.replace(ge,"$1-$3").replace(ee,"$1-$2").replace(de,"$1-$2").toLocaleLowerCase()}}e.KebabCaseAction=ue,(0,I.registerEditorAction)(C),(0,I.registerEditorAction)(f),(0,I.registerEditorAction)(h),(0,I.registerEditorAction)(w),(0,I.registerEditorAction)(S),(0,I.registerEditorAction)(D),(0,I.registerEditorAction)(T),(0,I.registerEditorAction)(M),(0,I.registerEditorAction)(A),(0,I.registerEditorAction)(P),(0,I.registerEditorAction)(N),(0,I.registerEditorAction)(O),(0,I.registerEditorAction)(F),(0,I.registerEditorAction)(x),(0,I.registerEditorAction)(V),(0,I.registerEditorAction)(q),(0,I.registerEditorAction)(H),(0,I.registerEditorAction)(z),(0,I.registerEditorAction)(j),(0,I.registerEditorAction)(Y),R.caseBoundary.isSupported()&&R.singleLetters.isSupported()&&(0,I.registerEditorAction)(R),J.wordBoundary.isSupported()&&(0,I.registerEditorAction)(J),ie.wordBoundary.isSupported()&&(0,I.registerEditorAction)(ie),K.titleBoundary.isSupported()&&(0,I.registerEditorAction)(K),ue.isSupported()&&(0,I.registerEditorAction)(ue)}),define(ne[740],se([1,0,2,15]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class I extends d.Disposable{static{this.ID="editor.contrib.longLinesHelper"}constructor(y){super(),this._editor=y,this._register(this._editor.onMouseDown(m=>{const _=this._editor.getOption(118);_>=0&&m.target.type===6&&m.target.position.column>=_&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}(0,k.registerEditorContribution)(I.ID,I,2)}),define(ne[184],se([1,0,207,46,6,57,2,15,4,120,3,12,59,5,525]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.MessageController=void 0;let s=class{static{i=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new n.RawContextKey("messageVisible",!1,p.localize(1148,"Whether the editor is currently showing an inline message"))}static get(a){return a.getContribution(i.ID)}constructor(a,r,u){this._openerService=u,this._messageWidget=new y.MutableDisposable,this._messageListeners=new y.DisposableStore,this._mouseOverMessage=!1,this._editor=a,this._visible=i.MESSAGE_VISIBLE.bindTo(r)}dispose(){this._message?.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(a,r){(0,k.alert)((0,E.isMarkdownString)(a)?a.value:a),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=(0,E.isMarkdownString)(a)?(0,d.renderMarkdown)(a,{actionHandler:{callback:C=>{this.closeMessage(),(0,b.openLinkFromMarkdown)(this._openerService,C,(0,E.isMarkdownString)(a)?a.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new c(this._editor,r,typeof a=="string"?a:this._message.element),this._messageListeners.add(I.Event.debounce(this._editor.onDidBlurEditorText,(C,f)=>f,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&t.isAncestor(t.getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(t.addDisposableListener(this._messageWidget.value.getDomNode(),t.EventType.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(t.addDisposableListener(this._messageWidget.value.getDomNode(),t.EventType.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let u;this._messageListeners.add(this._editor.onMouseMove(C=>{C.target.position&&(u?u.containsPosition(C.target.position)||this.closeMessage():u=new _.Range(r.lineNumber-3,1,C.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(c.fadeOut(this._messageWidget.value))}};e.MessageController=s,e.MessageController=s=i=ke([ce(1,n.IContextKeyService),ce(2,o.IOpenerService)],s);const g=m.EditorCommand.bindToContribution(s.get);(0,m.registerEditorCommand)(new g({id:"leaveEditorMessage",precondition:s.MESSAGE_VISIBLE,handler:l=>l.closeMessage(),kbOpts:{weight:130,primary:9}}));class c{static fadeOut(a){const r=()=>{a.dispose(),clearTimeout(u),a.getDomNode().removeEventListener("animationend",r)},u=setTimeout(r,110);return a.getDomNode().addEventListener("animationend",r),a.getDomNode().classList.add("fadeOut"),{dispose:r}}constructor(a,{lineNumber:r,column:u},C){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=a,this._editor.revealLinesInCenterIfOutsideViewport(r,r,0),this._position={lineNumber:r,column:u},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const f=document.createElement("div");f.classList.add("anchor","top"),this._domNode.appendChild(f);const h=document.createElement("div");typeof C=="string"?(h.classList.add("message"),h.textContent=C):(C.classList.add("message"),h.appendChild(C)),this._domNode.appendChild(h);const v=document.createElement("div");v.classList.add("anchor","below"),this._domNode.appendChild(v),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(a){this._domNode.classList.toggle("below",a===2)}}(0,m.registerEditorContribution)(s.ID,s,4)}),define(ne[741],se([1,0,57,2,15,184,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadOnlyMessageController=void 0;class m extends k.Disposable{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(b){super(),this.editor=b,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const b=E.MessageController.get(this.editor);if(b&&this.editor.hasModel()){let p=this.editor.getOptions().get(93);p||(this.editor.isSimpleWidget?p=new d.MarkdownString(y.localize(1233,"Cannot edit in read-only input")):p=new d.MarkdownString(y.localize(1234,"Cannot edit in read-only editor"))),b.showMessage(p,this.editor.getPosition())}}}e.ReadOnlyMessageController=m,(0,I.registerEditorContribution)(m.ID,m,2)}),define(ne[742],se([1,0,13,18,8,15,9,4,23,20,340,621,3,29,24,17,78,19,22]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.SmartSelectController=void 0,e.provideSelectionRanges=v;class r{constructor(S,L){this.index=S,this.ranges=L}mov(S){const L=this.index+(S?1:-1);if(L<0||L>=this.ranges.length)return this;const D=new r(L,this.ranges);return D.ranges[L].equalsRange(this.ranges[this.index])?D.mov(S):D}}let u=class{static{a=this}static{this.ID="editor.contrib.smartSelectController"}static get(S){return S.getContribution(a.ID)}constructor(S,L){this._editor=S,this._languageFeaturesService=L,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(S){if(!this._editor.hasModel())return;const L=this._editor.getSelections(),D=this._editor.getModel();if(this._state||await v(this._languageFeaturesService.selectionRangeProvider,D,L.map(M=>M.getPosition()),this._editor.getOption(114),k.CancellationToken.None).then(M=>{if(!(!d.isNonEmptyArray(M)||M.length!==L.length)&&!(!this._editor.hasModel()||!d.equals(this._editor.getSelections(),L,(A,P)=>A.equalsSelection(P)))){for(let A=0;AP.containsPosition(L[A].getStartPosition())&&P.containsPosition(L[A].getEndPosition())),M[A].unshift(L[A]);this._state=M.map(A=>new r(0,A)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(this._selectionListener?.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(M=>M.mov(S));const T=this._state.map(M=>_.Selection.fromPositions(M.ranges[M.index].getStartPosition(),M.ranges[M.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(T)}finally{this._ignoreSelection=!1}}};e.SmartSelectController=u,e.SmartSelectController=u=a=ke([ce(1,s.ILanguageFeaturesService)],u);class C extends E.EditorAction{constructor(S,L){super(L),this._forward=S}async run(S,L){const D=u.get(L);D&&await D.run(this._forward)}}class f extends C{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:o.localize(1253,"Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"1_basic",title:o.localize(1254,"&&Expand Selection"),order:2}})}}i.CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class h extends C{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:o.localize(1255,"Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"1_basic",title:o.localize(1256,"&&Shrink Selection"),order:3}})}}(0,E.registerEditorContribution)(u.ID,u,4),(0,E.registerEditorAction)(f),(0,E.registerEditorAction)(h);async function v(w,S,L,D,T){const M=w.all(S).concat(new n.WordSelectionRangeProvider(D.selectSubwords));M.length===1&&M.unshift(new p.BracketSelectionRangeProvider);const A=[],P=[];for(const N of M)A.push(Promise.resolve(N.provideSelectionRanges(S,L,T)).then(O=>{if(d.isNonEmptyArray(O)&&O.length===L.length)for(let F=0;F{if(N.length===0)return[];N.sort((W,V)=>y.Position.isBefore(W.getStartPosition(),V.getStartPosition())?1:y.Position.isBefore(V.getStartPosition(),W.getStartPosition())||y.Position.isBefore(W.getEndPosition(),V.getEndPosition())?-1:y.Position.isBefore(V.getEndPosition(),W.getEndPosition())?1:0);const O=[];let F;for(const W of N)(!F||m.Range.containsRange(W,F)&&!m.Range.equalsRange(W,F))&&(O.push(W),F=W);if(!D.selectLeadingAndTrailingWhitespace)return O;const x=[O[0]];for(let W=1;W{g.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(g=>{g.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators()||p(this._codeEditorService,t)===!0||this._editor.getOption(92))return;if(this._config==="auto"){t.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let s;try{this._isPresentingDialog=!0,s=await this._dialogService.confirm({title:y.localize(1410,"Unusual Line Terminators"),message:y.localize(1411,"Detected unusual line terminators"),detail:y.localize(1412,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",(0,k.basename)(t.uri)),primaryButton:y.localize(1413,"&&Remove Unusual Line Terminators"),cancelButton:y.localize(1414,"Ignore")})}finally{this._isPresentingDialog=!1}if(!s.confirmed){b(this._codeEditorService,t,!0);return}t.removeUnusualLineTerminators(this._editor.getSelections())}};e.UnusualLineTerminatorsDetector=n,e.UnusualLineTerminatorsDetector=n=ke([ce(1,m.IDialogService),ce(2,E.ICodeEditorService)],n),(0,I.registerEditorContribution)(n.ID,n,1)}),define(ne[411],se([1,0,15,146,37,76,199,166,9,4,23,20,36,3,61,12,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DeleteInsideWord=e.DeleteWordRight=e.DeleteWordEndRight=e.DeleteWordStartRight=e.DeleteWordLeft=e.DeleteWordEndLeft=e.DeleteWordStartLeft=e.DeleteWordRightCommand=e.DeleteWordLeftCommand=e.DeleteWordCommand=e.CursorWordAccessibilityRightSelect=e.CursorWordAccessibilityRight=e.CursorWordRightSelect=e.CursorWordEndRightSelect=e.CursorWordStartRightSelect=e.CursorWordRight=e.CursorWordEndRight=e.CursorWordStartRight=e.CursorWordAccessibilityLeftSelect=e.CursorWordAccessibilityLeft=e.CursorWordLeftSelect=e.CursorWordEndLeftSelect=e.CursorWordStartLeftSelect=e.CursorWordLeft=e.CursorWordEndLeft=e.CursorWordStartLeft=e.WordRightCommand=e.WordLeftCommand=e.MoveWordCommand=void 0;class c extends d.EditorCommand{constructor(K){super(K),this._inSelectionMode=K.inSelectionMode,this._wordNavigationType=K.wordNavigationType}runEditorCommand(K,R,J){if(!R.hasModel())return;const ie=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),ue=R.getModel(),he=R.getSelections(),pe=he.length>1,ae=he.map(ee=>{const de=new _.Position(ee.positionLineNumber,ee.positionColumn),ge=this._move(ie,ue,de,this._wordNavigationType,pe);return this._moveTo(ee,ge,this._inSelectionMode)});if(ue.pushStackElement(),R._getViewModel().setCursorStates("moveWordCommand",3,ae.map(ee=>E.CursorState.fromModelSelection(ee))),ae.length===1){const ee=new _.Position(ae[0].positionLineNumber,ae[0].positionColumn);R.revealPosition(ee,0)}}_moveTo(K,R,J){return J?new p.Selection(K.selectionStartLineNumber,K.selectionStartColumn,R.lineNumber,R.column):new p.Selection(R.lineNumber,R.column,R.lineNumber,R.column)}}e.MoveWordCommand=c;class l extends c{_move(K,R,J,ie,ue){return y.WordOperations.moveWordLeft(K,R,J,ie,ue)}}e.WordLeftCommand=l;class a extends c{_move(K,R,J,ie,ue){return y.WordOperations.moveWordRight(K,R,J,ie)}}e.WordRightCommand=a;class r extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}e.CursorWordStartLeft=r;class u extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}e.CursorWordEndLeft=u;class C extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}e.CursorWordLeft=C;class f extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}e.CursorWordStartLeftSelect=f;class h extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}e.CursorWordEndLeftSelect=h;class v extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}e.CursorWordLeftSelect=v;class w extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityLeft=w;class S extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityLeftSelect=S;class L extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}e.CursorWordStartRight=L;class D extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}e.CursorWordEndRight=D;class T extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}e.CursorWordRight=T;class M extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}e.CursorWordStartRightSelect=M;class A extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}e.CursorWordEndRightSelect=A;class P extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}e.CursorWordRightSelect=P;class N extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityRight=N;class O extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityRightSelect=O;class F extends d.EditorCommand{constructor(K){super(K),this._whitespaceHeuristics=K.whitespaceHeuristics,this._wordNavigationType=K.wordNavigationType}runEditorCommand(K,R,J){const ie=K.get(o.ILanguageConfigurationService);if(!R.hasModel())return;const ue=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),he=R.getModel(),pe=R.getSelections(),ae=R.getOption(6),ee=R.getOption(11),de=ie.getLanguageConfiguration(he.getLanguageId()).getAutoClosingPairs(),ge=R._getViewModel(),X=pe.map(B=>{const $=this._delete({wordSeparators:ue,model:he,selection:B,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:R.getOption(9),autoClosingBrackets:ae,autoClosingQuotes:ee,autoClosingPairs:de,autoClosedCharacters:ge.getCursorAutoClosedCharacters()},this._wordNavigationType);return new k.ReplaceCommand($,"")});R.pushUndoStop(),R.executeCommands(this.id,X),R.pushUndoStop()}}e.DeleteWordCommand=F;class x extends F{_delete(K,R){const J=y.WordOperations.deleteWordLeft(K,R);return J||new b.Range(1,1,1,1)}}e.DeleteWordLeftCommand=x;class W extends F{_delete(K,R){const J=y.WordOperations.deleteWordRight(K,R);if(J)return J;const ie=K.model.getLineCount(),ue=K.model.getLineMaxColumn(ie);return new b.Range(ie,ue,ie,ue)}}e.DeleteWordRightCommand=W;class V extends x{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:n.EditorContextKeys.writable})}}e.DeleteWordStartLeft=V;class q extends x{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:n.EditorContextKeys.writable})}}e.DeleteWordEndLeft=q;class H extends x{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}e.DeleteWordLeft=H;class z extends W{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:n.EditorContextKeys.writable})}}e.DeleteWordStartRight=z;class U extends W{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:n.EditorContextKeys.writable})}}e.DeleteWordEndRight=U;class j extends W{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}e.DeleteWordRight=j;class Y extends d.EditorAction{constructor(){super({id:"deleteInsideWord",precondition:n.EditorContextKeys.writable,label:t.localize(1427,"Delete Word"),alias:"Delete Word"})}run(K,R,J){if(!R.hasModel())return;const ie=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),ue=R.getModel(),pe=R.getSelections().map(ae=>{const ee=y.WordOperations.deleteInsideWord(ie,ue,ae);return new k.ReplaceCommand(ee,"")});R.pushUndoStop(),R.executeCommands(this.id,pe),R.pushUndoStop()}}e.DeleteInsideWord=Y,(0,d.registerEditorCommand)(new r),(0,d.registerEditorCommand)(new u),(0,d.registerEditorCommand)(new C),(0,d.registerEditorCommand)(new f),(0,d.registerEditorCommand)(new h),(0,d.registerEditorCommand)(new v),(0,d.registerEditorCommand)(new L),(0,d.registerEditorCommand)(new D),(0,d.registerEditorCommand)(new T),(0,d.registerEditorCommand)(new M),(0,d.registerEditorCommand)(new A),(0,d.registerEditorCommand)(new P),(0,d.registerEditorCommand)(new w),(0,d.registerEditorCommand)(new S),(0,d.registerEditorCommand)(new N),(0,d.registerEditorCommand)(new O),(0,d.registerEditorCommand)(new V),(0,d.registerEditorCommand)(new q),(0,d.registerEditorCommand)(new H),(0,d.registerEditorCommand)(new z),(0,d.registerEditorCommand)(new U),(0,d.registerEditorCommand)(new j),(0,d.registerEditorAction)(Y)}),define(ne[745],se([1,0,15,199,4,20,411,24]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorWordPartRightSelect=e.CursorWordPartRight=e.WordPartRightCommand=e.CursorWordPartLeftSelect=e.CursorWordPartLeft=e.WordPartLeftCommand=e.DeleteWordPartRight=e.DeleteWordPartLeft=void 0;class _ extends y.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:E.EditorContextKeys.writable,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(c,l){const a=k.WordPartOperations.deleteWordPartLeft(c);return a||new I.Range(1,1,1,1)}}e.DeleteWordPartLeft=_;class b extends y.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:E.EditorContextKeys.writable,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(c,l){const a=k.WordPartOperations.deleteWordPartRight(c);if(a)return a;const r=c.model.getLineCount(),u=c.model.getLineMaxColumn(r);return new I.Range(r,u,r,u)}}e.DeleteWordPartRight=b;class p extends y.MoveWordCommand{_move(c,l,a,r,u){return k.WordPartOperations.moveWordPartLeft(c,l,a,u)}}e.WordPartLeftCommand=p;class n extends p{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}e.CursorWordPartLeft=n,m.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class o extends p{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}e.CursorWordPartLeftSelect=o,m.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class t extends y.MoveWordCommand{_move(c,l,a,r,u){return k.WordPartOperations.moveWordPartRight(c,l,a)}}e.WordPartRightCommand=t;class i extends t{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}e.CursorWordPartRight=i;class s extends t{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}e.CursorWordPartRightSelect=s,(0,d.registerEditorCommand)(new _),(0,d.registerEditorCommand)(new b),(0,d.registerEditorCommand)(new n),(0,d.registerEditorCommand)(new o),(0,d.registerEditorCommand)(new i),(0,d.registerEditorCommand)(new s)}),define(ne[746],se([1,0,5,2,15,16,538]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IPadShowKeyboard=void 0;class y extends k.Disposable{static{this.ID="editor.contrib.iPadShowKeyboard"}constructor(b){super(),this.editor=b,this.widget=null,E.isIOS&&(this._register(b.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const b=!this.editor.getOption(92);!this.widget&&b?this.widget=new m(this.editor):this.widget&&!b&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}e.IPadShowKeyboard=y;class m extends k.Disposable{static{this.ID="editor.contrib.ShowKeyboardWidget"}constructor(b){super(),this.editor=b,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(d.addDisposableListener(this._domNode,"touchstart",p=>{this.editor.focus()})),this._register(d.addDisposableListener(this._domNode,"focus",p=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return m.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}(0,I.registerEditorContribution)(y.ID,y,3)}),define(ne[747],se([1,0,5,33,2,15,27,148,177,43,153,107,539]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0});let t=class extends I.Disposable{static{o=this}static{this.ID="editor.contrib.inspectTokens"}static get(a){return a.getContribution(o.ID)}constructor(a,r,u){super(),this._editor=a,this._languageService=u,this._widget=null,this._register(this._editor.onDidChangeModel(C=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(C=>this.stop())),this._register(y.TokenizationRegistry.onDidChange(C=>this.stop())),this._register(this._editor.onKeyUp(C=>C.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new c(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};t=o=ke([ce(1,p.IStandaloneThemeService),ce(2,b.ILanguageService)],t);class i extends E.EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:n.InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(a,r){t.get(r)?.launch()}}function s(l){let a="";for(let r=0,u=l.length;r_.NullState,tokenize:(C,f,h)=>(0,_.nullTokenize)(a,h),tokenizeEncoded:(C,f,h)=>(0,_.nullTokenizeEncoded)(u,h)}}class c extends I.Disposable{static{this._ID="editor.contrib.inspectTokensWidget"}constructor(a,r){super(),this.allowEditorOverflow=!0,this._editor=a,this._languageService=r,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=g(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(u=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return c._ID}_compute(a){const r=this._getTokensAtLine(a.lineNumber);let u=0;for(let w=r.tokens1.length-1;w>=0;w--){const S=r.tokens1[w];if(a.column-1>=S.offset){u=w;break}}let C=0;for(let w=r.tokens2.length>>>1;w>=0;w--)if(a.column-1>=r.tokens2[w<<1]){C=w;break}const f=this._model.getLineContent(a.lineNumber);let h="";if(u"}static{this.TFIDF_THRESHOLD=.5}static{this.TFIDF_MAX_RESULTS=5}static{this.WORD_FILTER=(0,I.or)(I.matchesPrefix,I.matchesWords,I.matchesContiguousSubString)}constructor(h,v,w,S,L,D){super(a.PREFIX,h),this.instantiationService=v,this.keybindingService=w,this.commandService=S,this.telemetryService=L,this.dialogService=D,this.commandsHistory=this._register(this.instantiationService.createInstance(C)),this.options=h}async _getPicks(h,v,w,S){const L=await this.getCommandPicks(w);if(w.isCancellationRequested)return[];const D=(0,E.createSingleCallFunction)(()=>{const F=new _.TfIdfCalculator;F.updateDocuments(L.map(W=>({key:W.commandId,textChunks:[this.getTfIdfChunk(W)]})));const x=F.calculateScores(h,w);return(0,_.normalizeTfIdfScores)(x).filter(W=>W.score>a.TFIDF_THRESHOLD).slice(0,a.TFIDF_MAX_RESULTS)}),T=[];for(const F of L){const x=a.WORD_FILTER(h,F.label)??void 0,W=F.commandAlias?a.WORD_FILTER(h,F.commandAlias)??void 0:void 0;if(x||W)F.highlights={label:x,detail:this.options.showAlias?W:void 0},T.push(F);else if(h===F.commandId)T.push(F);else if(h.length>=3){const V=D();if(w.isCancellationRequested)return[];const q=V.find(H=>H.key===F.commandId);q&&(F.tfIdfScore=q.score,T.push(F))}}const M=new Map;for(const F of T){const x=M.get(F.label);x?(F.description=F.commandId,x.description=x.commandId):M.set(F.label,F)}T.sort((F,x)=>{if(F.tfIdfScore&&x.tfIdfScore)return F.tfIdfScore===x.tfIdfScore?F.label.localeCompare(x.label):x.tfIdfScore-F.tfIdfScore;if(F.tfIdfScore)return 1;if(x.tfIdfScore)return-1;const W=this.commandsHistory.peek(F.commandId),V=this.commandsHistory.peek(x.commandId);if(W&&V)return W>V?-1:1;if(W)return-1;if(V)return 1;if(this.options.suggestedCommandIds){const q=this.options.suggestedCommandIds.has(F.commandId),H=this.options.suggestedCommandIds.has(x.commandId);if(q&&H)return 0;if(q)return-1;if(H)return 1}return F.label.localeCompare(x.label)});const A=[];let P=!1,N=!0,O=!!this.options.suggestedCommandIds;for(let F=0;F{const F=await this.getAdditionalCommandPicks(L,T,h,w);if(w.isCancellationRequested)return[];const x=F.map(W=>this.toCommandPick(W,S));return N&&x[0]?.type!=="separator"&&x.unshift({type:"separator",label:(0,b.localize)(1576,"similar commands")}),x})()}:A}toCommandPick(h,v){if(h.type==="separator")return h;const w=this.keybindingService.lookupKeybinding(h.commandId),S=w?(0,b.localize)(1577,"{0}, {1}",h.label,w.getAriaLabel()):h.label;return{...h,ariaLabel:S,detail:this.options.showAlias&&h.commandAlias!==h.label?h.commandAlias:void 0,keybinding:w,accept:async()=>{this.commandsHistory.push(h.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:v?.from??"quick open"});try{h.args?.length?await this.commandService.executeCommand(h.commandId,...h.args):await this.commandService.executeCommand(h.commandId)}catch(L){(0,k.isCancellationError)(L)||this.dialogService.error((0,b.localize)(1578,"Command '{0}' resulted in an error",h.label),(0,d.toErrorMessage)(L))}}}}getTfIdfChunk({label:h,commandAlias:v,commandDescription:w}){let S=h;return v&&v!==h&&(S+=` - ${v}`),w&&w.value!==h&&(S+=` - ${w.value===w.original?w.value:`${w.value} (${w.original})`}`),S}};e.AbstractCommandsQuickAccessProvider=u,e.AbstractCommandsQuickAccessProvider=u=a=ke([ce(1,t.IInstantiationService),ce(2,i.IKeybindingService),ce(3,p.ICommandService),ce(4,l.ITelemetryService),ce(5,o.IDialogService)],u);let C=class extends y.Disposable{static{r=this}static{this.DEFAULT_COMMANDS_HISTORY_LENGTH=50}static{this.PREF_KEY_CACHE="commandPalette.mru.cache"}static{this.PREF_KEY_COUNTER="commandPalette.mru.counter"}static{this.counter=1}static{this.hasChanges=!1}constructor(h,v,w){super(),this.storageService=h,this.configurationService=v,this.logService=w,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(h=>this.updateConfiguration(h))),this._register(this.storageService.onWillSaveState(h=>{h.reason===c.WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(h){h&&!h.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=r.getConfiguredCommandHistoryLength(this.configurationService),r.cache&&r.cache.limit!==this.configuredCommandsHistoryLength&&(r.cache.limit=this.configuredCommandsHistoryLength,r.hasChanges=!0))}load(){const h=this.storageService.get(r.PREF_KEY_CACHE,0);let v;if(h)try{v=JSON.parse(h)}catch(S){this.logService.error(`[CommandsHistory] invalid data: ${S}`)}const w=r.cache=new m.LRUCache(this.configuredCommandsHistoryLength,1);if(v){let S;v.usesLRU?S=v.entries:S=v.entries.sort((L,D)=>L.value-D.value),S.forEach(L=>w.set(L.key,L.value))}r.counter=this.storageService.getNumber(r.PREF_KEY_COUNTER,0,r.counter)}push(h){r.cache&&(r.cache.set(h,r.counter++),r.hasChanges=!0)}peek(h){return r.cache?.peek(h)}saveState(){if(!r.cache||!r.hasChanges)return;const h={usesLRU:!0,entries:[]};r.cache.forEach((v,w)=>h.entries.push({key:w,value:v})),this.storageService.store(r.PREF_KEY_CACHE,JSON.stringify(h),0,0),this.storageService.store(r.PREF_KEY_COUNTER,r.counter,0,0),r.hasChanges=!1}static getConfiguredCommandHistoryLength(h){const w=h.getValue().workbench?.commandPalette?.history;return typeof w=="number"?w:r.DEFAULT_COMMANDS_HISTORY_LENGTH}};e.CommandsHistory=C,e.CommandsHistory=C=r=ke([ce(0,c.IStorageService),ce(1,n.IConfigurationService),ce(2,s.ILogService)],C)}),define(ne[749],se([1,0,142,381,748]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorCommandsQuickAccessProvider=void 0;class E extends I.AbstractCommandsQuickAccessProvider{constructor(m,_,b,p,n,o){super(m,_,b,p,n,o)}getCodeEditorCommandPicks(){const m=this.activeTextEditorControl;if(!m)return[];const _=[];for(const b of m.getSupportedActions()){let p;b.metadata?.description&&((0,k.isLocalizedString)(b.metadata.description)?p=b.metadata.description:p={original:b.metadata.description,value:b.metadata.description}),_.push({commandId:b.id,commandAlias:b.alias,commandDescription:p,label:(0,d.stripIcons)(b.label)||b.id})}return _}}e.AbstractEditorCommandsQuickAccessProvider=E}),define(ne[750],se([1,0,38,156,107,34,749,7,31,24,63,180,15,20,66]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneCommandsQuickAccessProvider=void 0;let s=class extends y.AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(l,a,r,u,C,f){super({showAlias:!1},l,r,u,C,f),this.codeEditorService=a}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};e.StandaloneCommandsQuickAccessProvider=s,e.StandaloneCommandsQuickAccessProvider=s=ke([ce(0,m.IInstantiationService),ce(1,E.ICodeEditorService),ce(2,_.IKeybindingService),ce(3,b.ICommandService),ce(4,p.ITelemetryService),ce(5,n.IDialogService)],s);class g extends o.EditorAction{static{this.ID="editor.action.quickCommand"}constructor(){super({id:g.ID,label:I.QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:t.EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(l){l.get(i.IQuickInputService).quickAccess.show(s.PREFIX)}}e.GotoLineAction=g,(0,o.registerEditorAction)(g),d.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:s,prefix:s.PREFIX,helpEntries:[{description:I.QuickCommandNLS.quickCommandHelp,commandId:g.ID}]})}),define(ne[89],se([1,0,90,14,33,6,273,38,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.workbenchColorsSchemaId=e.DEFAULT_COLOR_CONFIG_VALUE=e.Extensions=void 0,e.asCssVariableName=b,e.asCssVariable=p,e.asCssVariableWithDefault=n,e.isColorDefaults=o,e.registerColor=s,e.executeTransform=g,e.darken=c,e.lighten=l,e.transparent=a,e.oneOf=r,e.ifDefinedThenElse=u,e.lessProminent=C,e.resolveColorValue=f;function b(w){return`--vscode-${w.replace(/\./g,"-")}`}function p(w){return`var(${b(w)})`}function n(w,S){return`var(${b(w)}, ${S})`}function o(w){return w!==null&&typeof w=="object"&&"light"in w&&"dark"in w}e.Extensions={ColorContribution:"base.contributions.colors"},e.DEFAULT_COLOR_CONFIG_VALUE="default";class t{constructor(){this._onDidChangeSchema=new E.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(S,L,D,T=!1,M){const A={id:S,description:D,defaults:L,needsTransparency:T,deprecationMessage:M};this.colorsById[S]=A;const P={type:"string",format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return M&&(P.deprecationMessage=M),T&&(P.pattern="^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",P.patternErrorMessage=_.localize(1836,"This color must be transparent or it will obscure content")),this.colorSchema.properties[S]={description:D,oneOf:[P,{type:"string",const:e.DEFAULT_COLOR_CONFIG_VALUE,description:_.localize(1837,"Use the default color.")}]},this.colorReferenceSchema.enum.push(S),this.colorReferenceSchema.enumDescriptions.push(D),this._onDidChangeSchema.fire(),S}getColors(){return Object.keys(this.colorsById).map(S=>this.colorsById[S])}resolveDefaultColor(S,L){const D=this.colorsById[S];if(D?.defaults){const T=o(D.defaults)?D.defaults[L.type]:D.defaults;return f(T,L)}}getColorSchema(){return this.colorSchema}toString(){const S=(L,D)=>{const T=L.indexOf(".")===-1?0:1,M=D.indexOf(".")===-1?0:1;return T!==M?T-M:L.localeCompare(D)};return Object.keys(this.colorsById).sort(S).map(L=>`- \`${L}\`: ${this.colorsById[L].description}`).join(` -`)}}const i=new t;m.Registry.add(e.Extensions.ColorContribution,i);function s(w,S,L,D,T){return i.registerColor(w,S,L,D,T)}function g(w,S){switch(w.op){case 0:return f(w.value,S)?.darken(w.factor);case 1:return f(w.value,S)?.lighten(w.factor);case 2:return f(w.value,S)?.transparent(w.factor);case 3:{const L=f(w.background,S);return L?f(w.value,S)?.makeOpaque(L):f(w.value,S)}case 4:for(const L of w.values){const D=f(L,S);if(D)return D}return;case 6:return f(S.defines(w.if)?w.then:w.else,S);case 5:{const L=f(w.value,S);if(!L)return;const D=f(w.background,S);return D?L.isDarkerThan(D)?I.Color.getLighterColor(L,D,w.factor).transparent(w.transparency):I.Color.getDarkerColor(L,D,w.factor).transparent(w.transparency):L.transparent(w.factor*w.transparency)}default:throw(0,d.assertNever)(w)}}function c(w,S){return{op:0,value:w,factor:S}}function l(w,S){return{op:1,value:w,factor:S}}function a(w,S){return{op:2,value:w,factor:S}}function r(...w){return{op:4,values:w}}function u(w,S,L){return{op:6,if:w,then:S,else:L}}function C(w,S,L,D){return{op:5,value:w,background:S,factor:L,transparency:D}}function f(w,S){if(w!==null){if(typeof w=="string")return w[0]==="#"?I.Color.fromHex(w):S.getColor(w);if(w instanceof I.Color)return w;if(typeof w=="object")return g(w,S)}}e.workbenchColorsSchemaId="vscode://schemas/workbench-colors";const h=m.Registry.as(y.Extensions.JSONContribution);h.registerSchema(e.workbenchColorsSchemaId,i.getColorSchema());const v=new k.RunOnceScheduler(()=>h.notifySchemaChanged(e.workbenchColorsSchemaId),200);i.onDidChangeSchema(()=>{v.isScheduled()||v.schedule()})}),define(ne[123],se([1,0,3,33,89]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.textCodeBlockBackground=e.textBlockQuoteBorder=e.textBlockQuoteBackground=e.textPreformatBackground=e.textPreformatForeground=e.textSeparatorForeground=e.textLinkActiveForeground=e.textLinkForeground=e.selectionBackground=e.activeContrastBorder=e.contrastBorder=e.focusBorder=e.iconForeground=e.descriptionForeground=e.errorForeground=e.disabledForeground=e.foreground=void 0,e.foreground=(0,I.registerColor)("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},d.localize(1599,"Overall foreground color. This color is only used if not overridden by a component.")),e.disabledForeground=(0,I.registerColor)("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},d.localize(1600,"Overall foreground for disabled elements. This color is only used if not overridden by a component.")),e.errorForeground=(0,I.registerColor)("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},d.localize(1601,"Overall foreground color for error messages. This color is only used if not overridden by a component.")),e.descriptionForeground=(0,I.registerColor)("descriptionForeground",{light:"#717171",dark:(0,I.transparent)(e.foreground,.7),hcDark:(0,I.transparent)(e.foreground,.7),hcLight:(0,I.transparent)(e.foreground,.7)},d.localize(1602,"Foreground color for description text providing additional information, for example for a label.")),e.iconForeground=(0,I.registerColor)("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},d.localize(1603,"The default color for icons in the workbench.")),e.focusBorder=(0,I.registerColor)("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},d.localize(1604,"Overall border color for focused elements. This color is only used if not overridden by a component.")),e.contrastBorder=(0,I.registerColor)("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},d.localize(1605,"An extra border around elements to separate them from others for greater contrast.")),e.activeContrastBorder=(0,I.registerColor)("contrastActiveBorder",{light:null,dark:null,hcDark:e.focusBorder,hcLight:e.focusBorder},d.localize(1606,"An extra border around active elements to separate them from others for greater contrast.")),e.selectionBackground=(0,I.registerColor)("selection.background",null,d.localize(1607,"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),e.textLinkForeground=(0,I.registerColor)("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},d.localize(1608,"Foreground color for links in text.")),e.textLinkActiveForeground=(0,I.registerColor)("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},d.localize(1609,"Foreground color for links in text when clicked on and on mouse hover.")),e.textSeparatorForeground=(0,I.registerColor)("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:k.Color.black,hcLight:"#292929"},d.localize(1610,"Color for text separators.")),e.textPreformatForeground=(0,I.registerColor)("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},d.localize(1611,"Foreground color for preformatted text segments.")),e.textPreformatBackground=(0,I.registerColor)("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},d.localize(1612,"Background color for preformatted text segments.")),e.textBlockQuoteBackground=(0,I.registerColor)("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},d.localize(1613,"Background color for block quotes in text.")),e.textBlockQuoteBorder=(0,I.registerColor)("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:k.Color.white,hcLight:"#292929"},d.localize(1614,"Border color for block quotes in text.")),e.textCodeBlockBackground=(0,I.registerColor)("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:k.Color.black,hcLight:"#F2F2F2"},d.localize(1615,"Background color for code blocks in text."))}),define(ne[278],se([1,0,3,33,89,123]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.progressBarBackground=e.scrollbarSliderActiveBackground=e.scrollbarSliderHoverBackground=e.scrollbarSliderBackground=e.scrollbarShadow=e.badgeForeground=e.badgeBackground=e.sashHoverBorder=void 0,e.sashHoverBorder=(0,I.registerColor)("sash.hoverBorder",E.focusBorder,d.localize(1816,"Border color of active sashes.")),e.badgeBackground=(0,I.registerColor)("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:k.Color.black,hcLight:"#0F4A85"},d.localize(1817,"Badge background color. Badges are small information labels, e.g. for search results count.")),e.badgeForeground=(0,I.registerColor)("badge.foreground",{dark:k.Color.white,light:"#333",hcDark:k.Color.white,hcLight:k.Color.white},d.localize(1818,"Badge foreground color. Badges are small information labels, e.g. for search results count.")),e.scrollbarShadow=(0,I.registerColor)("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},d.localize(1819,"Scrollbar shadow to indicate that the view is scrolled.")),e.scrollbarSliderBackground=(0,I.registerColor)("scrollbarSlider.background",{dark:k.Color.fromHex("#797979").transparent(.4),light:k.Color.fromHex("#646464").transparent(.4),hcDark:(0,I.transparent)(E.contrastBorder,.6),hcLight:(0,I.transparent)(E.contrastBorder,.4)},d.localize(1820,"Scrollbar slider background color.")),e.scrollbarSliderHoverBackground=(0,I.registerColor)("scrollbarSlider.hoverBackground",{dark:k.Color.fromHex("#646464").transparent(.7),light:k.Color.fromHex("#646464").transparent(.7),hcDark:(0,I.transparent)(E.contrastBorder,.8),hcLight:(0,I.transparent)(E.contrastBorder,.8)},d.localize(1821,"Scrollbar slider background color when hovering.")),e.scrollbarSliderActiveBackground=(0,I.registerColor)("scrollbarSlider.activeBackground",{dark:k.Color.fromHex("#BFBFBF").transparent(.4),light:k.Color.fromHex("#000000").transparent(.6),hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1822,"Scrollbar slider background color when clicked on.")),e.progressBarBackground=(0,I.registerColor)("progressBar.background",{dark:k.Color.fromHex("#0E70C0"),light:k.Color.fromHex("#0E70C0"),hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1823,"Background color of the progress bar that can show for long running operations."))}),define(ne[138],se([1,0,3,33,89,123,278]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.problemsInfoIconForeground=e.problemsWarningIconForeground=e.problemsErrorIconForeground=e.overviewRulerSelectionHighlightForeground=e.overviewRulerFindMatchForeground=e.overviewRulerCommonContentForeground=e.overviewRulerIncomingContentForeground=e.overviewRulerCurrentContentForeground=e.mergeBorder=e.mergeCommonContentBackground=e.mergeCommonHeaderBackground=e.mergeIncomingContentBackground=e.mergeIncomingHeaderBackground=e.mergeCurrentContentBackground=e.mergeCurrentHeaderBackground=e.breadcrumbsPickerBackground=e.breadcrumbsActiveSelectionForeground=e.breadcrumbsFocusForeground=e.breadcrumbsBackground=e.breadcrumbsForeground=e.toolbarActiveBackground=e.toolbarHoverOutline=e.toolbarHoverBackground=e.widgetBorder=e.widgetShadow=e.diffUnchangedTextBackground=e.diffUnchangedRegionForeground=e.diffUnchangedRegionBackground=e.diffDiagonalFill=e.diffBorder=e.diffRemovedOutline=e.diffInsertedOutline=e.diffOverviewRulerRemoved=e.diffOverviewRulerInserted=e.diffRemovedLineGutter=e.diffInsertedLineGutter=e.diffRemovedLine=e.diffInsertedLine=e.diffRemoved=e.diffInserted=e.defaultRemoveColor=e.defaultInsertColor=e.snippetFinalTabstopHighlightBorder=e.snippetFinalTabstopHighlightBackground=e.snippetTabstopHighlightBorder=e.snippetTabstopHighlightBackground=e.editorLightBulbAiForeground=e.editorLightBulbAutoFixForeground=e.editorLightBulbForeground=e.editorInlayHintParameterBackground=e.editorInlayHintParameterForeground=e.editorInlayHintTypeBackground=e.editorInlayHintTypeForeground=e.editorInlayHintBackground=e.editorInlayHintForeground=e.editorHoverStatusBarBackground=e.editorHoverBorder=e.editorHoverForeground=e.editorHoverBackground=e.editorHoverHighlight=e.editorFindRangeHighlightBorder=e.editorFindMatchHighlightBorder=e.editorFindMatchBorder=e.editorFindRangeHighlight=e.editorFindMatchHighlightForeground=e.editorFindMatchHighlight=e.editorFindMatchForeground=e.editorFindMatch=e.editorSelectionHighlightBorder=e.editorSelectionHighlight=e.editorInactiveSelection=e.editorSelectionForeground=e.editorSelectionBackground=e.editorActiveLinkForeground=e.editorHintBorder=e.editorHintForeground=e.editorInfoBorder=e.editorInfoForeground=e.editorInfoBackground=e.editorWarningBorder=e.editorWarningForeground=e.editorWarningBackground=e.editorErrorBorder=e.editorErrorForeground=e.editorErrorBackground=e.editorWidgetResizeBorder=e.editorWidgetBorder=e.editorWidgetForeground=e.editorWidgetBackground=e.editorStickyScrollShadow=e.editorStickyScrollBorder=e.editorStickyScrollHoverBackground=e.editorStickyScrollBackground=e.editorForeground=e.editorBackground=void 0,e.editorBackground=(0,I.registerColor)("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1624,"Editor background color.")),e.editorForeground=(0,I.registerColor)("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:k.Color.white,hcLight:E.foreground},d.localize(1625,"Editor default foreground color.")),e.editorStickyScrollBackground=(0,I.registerColor)("editorStickyScroll.background",e.editorBackground,d.localize(1626,"Background color of sticky scroll in the editor")),e.editorStickyScrollHoverBackground=(0,I.registerColor)("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1627,"Background color of sticky scroll on hover in the editor")),e.editorStickyScrollBorder=(0,I.registerColor)("editorStickyScroll.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1628,"Border color of sticky scroll in the editor")),e.editorStickyScrollShadow=(0,I.registerColor)("editorStickyScroll.shadow",y.scrollbarShadow,d.localize(1629," Shadow color of sticky scroll in the editor")),e.editorWidgetBackground=(0,I.registerColor)("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:k.Color.white},d.localize(1630,"Background color of editor widgets, such as find/replace.")),e.editorWidgetForeground=(0,I.registerColor)("editorWidget.foreground",E.foreground,d.localize(1631,"Foreground color of editor widgets, such as find/replace.")),e.editorWidgetBorder=(0,I.registerColor)("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1632,"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),e.editorWidgetResizeBorder=(0,I.registerColor)("editorWidget.resizeBorder",null,d.localize(1633,"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),e.editorErrorBackground=(0,I.registerColor)("editorError.background",null,d.localize(1634,"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorErrorForeground=(0,I.registerColor)("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},d.localize(1635,"Foreground color of error squigglies in the editor.")),e.editorErrorBorder=(0,I.registerColor)("editorError.border",{dark:null,light:null,hcDark:k.Color.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},d.localize(1636,"If set, color of double underlines for errors in the editor.")),e.editorWarningBackground=(0,I.registerColor)("editorWarning.background",null,d.localize(1637,"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorWarningForeground=(0,I.registerColor)("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},d.localize(1638,"Foreground color of warning squigglies in the editor.")),e.editorWarningBorder=(0,I.registerColor)("editorWarning.border",{dark:null,light:null,hcDark:k.Color.fromHex("#FFCC00").transparent(.8),hcLight:k.Color.fromHex("#FFCC00").transparent(.8)},d.localize(1639,"If set, color of double underlines for warnings in the editor.")),e.editorInfoBackground=(0,I.registerColor)("editorInfo.background",null,d.localize(1640,"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorInfoForeground=(0,I.registerColor)("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},d.localize(1641,"Foreground color of info squigglies in the editor.")),e.editorInfoBorder=(0,I.registerColor)("editorInfo.border",{dark:null,light:null,hcDark:k.Color.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},d.localize(1642,"If set, color of double underlines for infos in the editor.")),e.editorHintForeground=(0,I.registerColor)("editorHint.foreground",{dark:k.Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},d.localize(1643,"Foreground color of hint squigglies in the editor.")),e.editorHintBorder=(0,I.registerColor)("editorHint.border",{dark:null,light:null,hcDark:k.Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},d.localize(1644,"If set, color of double underlines for hints in the editor.")),e.editorActiveLinkForeground=(0,I.registerColor)("editorLink.activeForeground",{dark:"#4E94CE",light:k.Color.blue,hcDark:k.Color.cyan,hcLight:"#292929"},d.localize(1645,"Color of active links.")),e.editorSelectionBackground=(0,I.registerColor)("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},d.localize(1646,"Color of the editor selection.")),e.editorSelectionForeground=(0,I.registerColor)("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:k.Color.white},d.localize(1647,"Color of the selected text for high contrast.")),e.editorInactiveSelection=(0,I.registerColor)("editor.inactiveSelectionBackground",{light:(0,I.transparent)(e.editorSelectionBackground,.5),dark:(0,I.transparent)(e.editorSelectionBackground,.5),hcDark:(0,I.transparent)(e.editorSelectionBackground,.7),hcLight:(0,I.transparent)(e.editorSelectionBackground,.5)},d.localize(1648,"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSelectionHighlight=(0,I.registerColor)("editor.selectionHighlightBackground",{light:(0,I.lessProminent)(e.editorSelectionBackground,e.editorBackground,.3,.6),dark:(0,I.lessProminent)(e.editorSelectionBackground,e.editorBackground,.3,.6),hcDark:null,hcLight:null},d.localize(1649,"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSelectionHighlightBorder=(0,I.registerColor)("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1650,"Border color for regions with the same content as the selection.")),e.editorFindMatch=(0,I.registerColor)("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},d.localize(1651,"Color of the current search match.")),e.editorFindMatchForeground=(0,I.registerColor)("editor.findMatchForeground",null,d.localize(1652,"Text color of the current search match.")),e.editorFindMatchHighlight=(0,I.registerColor)("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},d.localize(1653,"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorFindMatchHighlightForeground=(0,I.registerColor)("editor.findMatchHighlightForeground",null,d.localize(1654,"Foreground color of the other search matches."),!0),e.editorFindRangeHighlight=(0,I.registerColor)("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},d.localize(1655,"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorFindMatchBorder=(0,I.registerColor)("editor.findMatchBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1656,"Border color of the current search match.")),e.editorFindMatchHighlightBorder=(0,I.registerColor)("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1657,"Border color of the other search matches.")),e.editorFindRangeHighlightBorder=(0,I.registerColor)("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:(0,I.transparent)(E.activeContrastBorder,.4),hcLight:(0,I.transparent)(E.activeContrastBorder,.4)},d.localize(1658,"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorHoverHighlight=(0,I.registerColor)("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},d.localize(1659,"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorHoverBackground=(0,I.registerColor)("editorHoverWidget.background",e.editorWidgetBackground,d.localize(1660,"Background color of the editor hover.")),e.editorHoverForeground=(0,I.registerColor)("editorHoverWidget.foreground",e.editorWidgetForeground,d.localize(1661,"Foreground color of the editor hover.")),e.editorHoverBorder=(0,I.registerColor)("editorHoverWidget.border",e.editorWidgetBorder,d.localize(1662,"Border color of the editor hover.")),e.editorHoverStatusBarBackground=(0,I.registerColor)("editorHoverWidget.statusBarBackground",{dark:(0,I.lighten)(e.editorHoverBackground,.2),light:(0,I.darken)(e.editorHoverBackground,.05),hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},d.localize(1663,"Background color of the editor hover status bar.")),e.editorInlayHintForeground=(0,I.registerColor)("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:k.Color.white,hcLight:k.Color.black},d.localize(1664,"Foreground color of inline hints")),e.editorInlayHintBackground=(0,I.registerColor)("editorInlayHint.background",{dark:(0,I.transparent)(y.badgeBackground,.1),light:(0,I.transparent)(y.badgeBackground,.1),hcDark:(0,I.transparent)(k.Color.white,.1),hcLight:(0,I.transparent)(y.badgeBackground,.1)},d.localize(1665,"Background color of inline hints")),e.editorInlayHintTypeForeground=(0,I.registerColor)("editorInlayHint.typeForeground",e.editorInlayHintForeground,d.localize(1666,"Foreground color of inline hints for types")),e.editorInlayHintTypeBackground=(0,I.registerColor)("editorInlayHint.typeBackground",e.editorInlayHintBackground,d.localize(1667,"Background color of inline hints for types")),e.editorInlayHintParameterForeground=(0,I.registerColor)("editorInlayHint.parameterForeground",e.editorInlayHintForeground,d.localize(1668,"Foreground color of inline hints for parameters")),e.editorInlayHintParameterBackground=(0,I.registerColor)("editorInlayHint.parameterBackground",e.editorInlayHintBackground,d.localize(1669,"Background color of inline hints for parameters")),e.editorLightBulbForeground=(0,I.registerColor)("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},d.localize(1670,"The color used for the lightbulb actions icon.")),e.editorLightBulbAutoFixForeground=(0,I.registerColor)("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},d.localize(1671,"The color used for the lightbulb auto fix actions icon.")),e.editorLightBulbAiForeground=(0,I.registerColor)("editorLightBulbAi.foreground",e.editorLightBulbForeground,d.localize(1672,"The color used for the lightbulb AI icon.")),e.snippetTabstopHighlightBackground=(0,I.registerColor)("editor.snippetTabstopHighlightBackground",{dark:new k.Color(new k.RGBA(124,124,124,.3)),light:new k.Color(new k.RGBA(10,50,100,.2)),hcDark:new k.Color(new k.RGBA(124,124,124,.3)),hcLight:new k.Color(new k.RGBA(10,50,100,.2))},d.localize(1673,"Highlight background color of a snippet tabstop.")),e.snippetTabstopHighlightBorder=(0,I.registerColor)("editor.snippetTabstopHighlightBorder",null,d.localize(1674,"Highlight border color of a snippet tabstop.")),e.snippetFinalTabstopHighlightBackground=(0,I.registerColor)("editor.snippetFinalTabstopHighlightBackground",null,d.localize(1675,"Highlight background color of the final tabstop of a snippet.")),e.snippetFinalTabstopHighlightBorder=(0,I.registerColor)("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new k.Color(new k.RGBA(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},d.localize(1676,"Highlight border color of the final tabstop of a snippet.")),e.defaultInsertColor=new k.Color(new k.RGBA(155,185,85,.2)),e.defaultRemoveColor=new k.Color(new k.RGBA(255,0,0,.2)),e.diffInserted=(0,I.registerColor)("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},d.localize(1677,"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffRemoved=(0,I.registerColor)("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},d.localize(1678,"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffInsertedLine=(0,I.registerColor)("diffEditor.insertedLineBackground",{dark:e.defaultInsertColor,light:e.defaultInsertColor,hcDark:null,hcLight:null},d.localize(1679,"Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffRemovedLine=(0,I.registerColor)("diffEditor.removedLineBackground",{dark:e.defaultRemoveColor,light:e.defaultRemoveColor,hcDark:null,hcLight:null},d.localize(1680,"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffInsertedLineGutter=(0,I.registerColor)("diffEditorGutter.insertedLineBackground",null,d.localize(1681,"Background color for the margin where lines got inserted.")),e.diffRemovedLineGutter=(0,I.registerColor)("diffEditorGutter.removedLineBackground",null,d.localize(1682,"Background color for the margin where lines got removed.")),e.diffOverviewRulerInserted=(0,I.registerColor)("diffEditorOverview.insertedForeground",null,d.localize(1683,"Diff overview ruler foreground for inserted content.")),e.diffOverviewRulerRemoved=(0,I.registerColor)("diffEditorOverview.removedForeground",null,d.localize(1684,"Diff overview ruler foreground for removed content.")),e.diffInsertedOutline=(0,I.registerColor)("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},d.localize(1685,"Outline color for the text that got inserted.")),e.diffRemovedOutline=(0,I.registerColor)("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},d.localize(1686,"Outline color for text that got removed.")),e.diffBorder=(0,I.registerColor)("diffEditor.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1687,"Border color between the two text editors.")),e.diffDiagonalFill=(0,I.registerColor)("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},d.localize(1688,"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),e.diffUnchangedRegionBackground=(0,I.registerColor)("diffEditor.unchangedRegionBackground","sideBar.background",d.localize(1689,"The background color of unchanged blocks in the diff editor.")),e.diffUnchangedRegionForeground=(0,I.registerColor)("diffEditor.unchangedRegionForeground","foreground",d.localize(1690,"The foreground color of unchanged blocks in the diff editor.")),e.diffUnchangedTextBackground=(0,I.registerColor)("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},d.localize(1691,"The background color of unchanged code in the diff editor.")),e.widgetShadow=(0,I.registerColor)("widget.shadow",{dark:(0,I.transparent)(k.Color.black,.36),light:(0,I.transparent)(k.Color.black,.16),hcDark:null,hcLight:null},d.localize(1692,"Shadow color of widgets such as find/replace inside the editor.")),e.widgetBorder=(0,I.registerColor)("widget.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1693,"Border color of widgets such as find/replace inside the editor.")),e.toolbarHoverBackground=(0,I.registerColor)("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},d.localize(1694,"Toolbar background when hovering over actions using the mouse")),e.toolbarHoverOutline=(0,I.registerColor)("toolbar.hoverOutline",{dark:null,light:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1695,"Toolbar outline when hovering over actions using the mouse")),e.toolbarActiveBackground=(0,I.registerColor)("toolbar.activeBackground",{dark:(0,I.lighten)(e.toolbarHoverBackground,.1),light:(0,I.darken)(e.toolbarHoverBackground,.1),hcDark:null,hcLight:null},d.localize(1696,"Toolbar background when holding the mouse over actions")),e.breadcrumbsForeground=(0,I.registerColor)("breadcrumb.foreground",(0,I.transparent)(E.foreground,.8),d.localize(1697,"Color of focused breadcrumb items.")),e.breadcrumbsBackground=(0,I.registerColor)("breadcrumb.background",e.editorBackground,d.localize(1698,"Background color of breadcrumb items.")),e.breadcrumbsFocusForeground=(0,I.registerColor)("breadcrumb.focusForeground",{light:(0,I.darken)(E.foreground,.2),dark:(0,I.lighten)(E.foreground,.1),hcDark:(0,I.lighten)(E.foreground,.1),hcLight:(0,I.lighten)(E.foreground,.1)},d.localize(1699,"Color of focused breadcrumb items.")),e.breadcrumbsActiveSelectionForeground=(0,I.registerColor)("breadcrumb.activeSelectionForeground",{light:(0,I.darken)(E.foreground,.2),dark:(0,I.lighten)(E.foreground,.1),hcDark:(0,I.lighten)(E.foreground,.1),hcLight:(0,I.lighten)(E.foreground,.1)},d.localize(1700,"Color of selected breadcrumb items.")),e.breadcrumbsPickerBackground=(0,I.registerColor)("breadcrumbPicker.background",e.editorWidgetBackground,d.localize(1701,"Background color of breadcrumb item picker."));const m=.5,_=k.Color.fromHex("#40C8AE").transparent(m),b=k.Color.fromHex("#40A6FF").transparent(m),p=k.Color.fromHex("#606060").transparent(.4),n=.4,o=1;e.mergeCurrentHeaderBackground=(0,I.registerColor)("merge.currentHeaderBackground",{dark:_,light:_,hcDark:null,hcLight:null},d.localize(1702,"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCurrentContentBackground=(0,I.registerColor)("merge.currentContentBackground",(0,I.transparent)(e.mergeCurrentHeaderBackground,n),d.localize(1703,"Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeIncomingHeaderBackground=(0,I.registerColor)("merge.incomingHeaderBackground",{dark:b,light:b,hcDark:null,hcLight:null},d.localize(1704,"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeIncomingContentBackground=(0,I.registerColor)("merge.incomingContentBackground",(0,I.transparent)(e.mergeIncomingHeaderBackground,n),d.localize(1705,"Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCommonHeaderBackground=(0,I.registerColor)("merge.commonHeaderBackground",{dark:p,light:p,hcDark:null,hcLight:null},d.localize(1706,"Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCommonContentBackground=(0,I.registerColor)("merge.commonContentBackground",(0,I.transparent)(e.mergeCommonHeaderBackground,n),d.localize(1707,"Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeBorder=(0,I.registerColor)("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},d.localize(1708,"Border color on headers and the splitter in inline merge-conflicts.")),e.overviewRulerCurrentContentForeground=(0,I.registerColor)("editorOverviewRuler.currentContentForeground",{dark:(0,I.transparent)(e.mergeCurrentHeaderBackground,o),light:(0,I.transparent)(e.mergeCurrentHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1709,"Current overview ruler foreground for inline merge-conflicts.")),e.overviewRulerIncomingContentForeground=(0,I.registerColor)("editorOverviewRuler.incomingContentForeground",{dark:(0,I.transparent)(e.mergeIncomingHeaderBackground,o),light:(0,I.transparent)(e.mergeIncomingHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1710,"Incoming overview ruler foreground for inline merge-conflicts.")),e.overviewRulerCommonContentForeground=(0,I.registerColor)("editorOverviewRuler.commonContentForeground",{dark:(0,I.transparent)(e.mergeCommonHeaderBackground,o),light:(0,I.transparent)(e.mergeCommonHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1711,"Common ancestor overview ruler foreground for inline merge-conflicts.")),e.overviewRulerFindMatchForeground=(0,I.registerColor)("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:"#AB5A00"},d.localize(1712,"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),e.overviewRulerSelectionHighlightForeground=(0,I.registerColor)("editorOverviewRuler.selectionHighlightForeground","#A0A0A0CC",d.localize(1713,"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),e.problemsErrorIconForeground=(0,I.registerColor)("problemsErrorIcon.foreground",e.editorErrorForeground,d.localize(1714,"The color used for the problems error icon.")),e.problemsWarningIconForeground=(0,I.registerColor)("problemsWarningIcon.foreground",e.editorWarningForeground,d.localize(1715,"The color used for the problems warning icon.")),e.problemsInfoIconForeground=(0,I.registerColor)("problemsInfoIcon.foreground",e.editorInfoForeground,d.localize(1716,"The color used for the problems info icon."))}),define(ne[412],se([1,0,3,33,89,123,138]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.keybindingLabelBottomBorder=e.keybindingLabelBorder=e.keybindingLabelForeground=e.keybindingLabelBackground=e.checkboxSelectBorder=e.checkboxBorder=e.checkboxForeground=e.checkboxSelectBackground=e.checkboxBackground=e.radioInactiveHoverBackground=e.radioInactiveBorder=e.radioInactiveBackground=e.radioInactiveForeground=e.radioActiveBorder=e.radioActiveBackground=e.radioActiveForeground=e.buttonSecondaryHoverBackground=e.buttonSecondaryBackground=e.buttonSecondaryForeground=e.buttonBorder=e.buttonHoverBackground=e.buttonBackground=e.buttonSeparator=e.buttonForeground=e.selectBorder=e.selectForeground=e.selectListBackground=e.selectBackground=e.inputValidationErrorBorder=e.inputValidationErrorForeground=e.inputValidationErrorBackground=e.inputValidationWarningBorder=e.inputValidationWarningForeground=e.inputValidationWarningBackground=e.inputValidationInfoBorder=e.inputValidationInfoForeground=e.inputValidationInfoBackground=e.inputPlaceholderForeground=e.inputActiveOptionForeground=e.inputActiveOptionBackground=e.inputActiveOptionHoverBackground=e.inputActiveOptionBorder=e.inputBorder=e.inputForeground=e.inputBackground=void 0,e.inputBackground=(0,I.registerColor)("input.background",{dark:"#3C3C3C",light:k.Color.white,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1717,"Input box background.")),e.inputForeground=(0,I.registerColor)("input.foreground",E.foreground,d.localize(1718,"Input box foreground.")),e.inputBorder=(0,I.registerColor)("input.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1719,"Input box border.")),e.inputActiveOptionBorder=(0,I.registerColor)("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1720,"Border color of activated options in input fields.")),e.inputActiveOptionHoverBackground=(0,I.registerColor)("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},d.localize(1721,"Background color of activated options in input fields.")),e.inputActiveOptionBackground=(0,I.registerColor)("inputOption.activeBackground",{dark:(0,I.transparent)(E.focusBorder,.4),light:(0,I.transparent)(E.focusBorder,.2),hcDark:k.Color.transparent,hcLight:k.Color.transparent},d.localize(1722,"Background hover color of options in input fields.")),e.inputActiveOptionForeground=(0,I.registerColor)("inputOption.activeForeground",{dark:k.Color.white,light:k.Color.black,hcDark:E.foreground,hcLight:E.foreground},d.localize(1723,"Foreground color of activated options in input fields.")),e.inputPlaceholderForeground=(0,I.registerColor)("input.placeholderForeground",{light:(0,I.transparent)(E.foreground,.5),dark:(0,I.transparent)(E.foreground,.5),hcDark:(0,I.transparent)(E.foreground,.7),hcLight:(0,I.transparent)(E.foreground,.7)},d.localize(1724,"Input box foreground color for placeholder text.")),e.inputValidationInfoBackground=(0,I.registerColor)("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1725,"Input validation background color for information severity.")),e.inputValidationInfoForeground=(0,I.registerColor)("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1726,"Input validation foreground color for information severity.")),e.inputValidationInfoBorder=(0,I.registerColor)("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1727,"Input validation border color for information severity.")),e.inputValidationWarningBackground=(0,I.registerColor)("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1728,"Input validation background color for warning severity.")),e.inputValidationWarningForeground=(0,I.registerColor)("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1729,"Input validation foreground color for warning severity.")),e.inputValidationWarningBorder=(0,I.registerColor)("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1730,"Input validation border color for warning severity.")),e.inputValidationErrorBackground=(0,I.registerColor)("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1731,"Input validation background color for error severity.")),e.inputValidationErrorForeground=(0,I.registerColor)("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1732,"Input validation foreground color for error severity.")),e.inputValidationErrorBorder=(0,I.registerColor)("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1733,"Input validation border color for error severity.")),e.selectBackground=(0,I.registerColor)("dropdown.background",{dark:"#3C3C3C",light:k.Color.white,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1734,"Dropdown background.")),e.selectListBackground=(0,I.registerColor)("dropdown.listBackground",{dark:null,light:null,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1735,"Dropdown list background.")),e.selectForeground=(0,I.registerColor)("dropdown.foreground",{dark:"#F0F0F0",light:E.foreground,hcDark:k.Color.white,hcLight:E.foreground},d.localize(1736,"Dropdown foreground.")),e.selectBorder=(0,I.registerColor)("dropdown.border",{dark:e.selectBackground,light:"#CECECE",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1737,"Dropdown border.")),e.buttonForeground=(0,I.registerColor)("button.foreground",k.Color.white,d.localize(1738,"Button foreground color.")),e.buttonSeparator=(0,I.registerColor)("button.separator",(0,I.transparent)(e.buttonForeground,.4),d.localize(1739,"Button separator color.")),e.buttonBackground=(0,I.registerColor)("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},d.localize(1740,"Button background color.")),e.buttonHoverBackground=(0,I.registerColor)("button.hoverBackground",{dark:(0,I.lighten)(e.buttonBackground,.2),light:(0,I.darken)(e.buttonBackground,.2),hcDark:e.buttonBackground,hcLight:e.buttonBackground},d.localize(1741,"Button background color when hovering.")),e.buttonBorder=(0,I.registerColor)("button.border",E.contrastBorder,d.localize(1742,"Button border color.")),e.buttonSecondaryForeground=(0,I.registerColor)("button.secondaryForeground",{dark:k.Color.white,light:k.Color.white,hcDark:k.Color.white,hcLight:E.foreground},d.localize(1743,"Secondary button foreground color.")),e.buttonSecondaryBackground=(0,I.registerColor)("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:k.Color.white},d.localize(1744,"Secondary button background color.")),e.buttonSecondaryHoverBackground=(0,I.registerColor)("button.secondaryHoverBackground",{dark:(0,I.lighten)(e.buttonSecondaryBackground,.2),light:(0,I.darken)(e.buttonSecondaryBackground,.2),hcDark:null,hcLight:null},d.localize(1745,"Secondary button background color when hovering.")),e.radioActiveForeground=(0,I.registerColor)("radio.activeForeground",e.inputActiveOptionForeground,d.localize(1746,"Foreground color of active radio option.")),e.radioActiveBackground=(0,I.registerColor)("radio.activeBackground",e.inputActiveOptionBackground,d.localize(1747,"Background color of active radio option.")),e.radioActiveBorder=(0,I.registerColor)("radio.activeBorder",e.inputActiveOptionBorder,d.localize(1748,"Border color of the active radio option.")),e.radioInactiveForeground=(0,I.registerColor)("radio.inactiveForeground",null,d.localize(1749,"Foreground color of inactive radio option.")),e.radioInactiveBackground=(0,I.registerColor)("radio.inactiveBackground",null,d.localize(1750,"Background color of inactive radio option.")),e.radioInactiveBorder=(0,I.registerColor)("radio.inactiveBorder",{light:(0,I.transparent)(e.radioActiveForeground,.2),dark:(0,I.transparent)(e.radioActiveForeground,.2),hcDark:(0,I.transparent)(e.radioActiveForeground,.4),hcLight:(0,I.transparent)(e.radioActiveForeground,.2)},d.localize(1751,"Border color of the inactive radio option.")),e.radioInactiveHoverBackground=(0,I.registerColor)("radio.inactiveHoverBackground",e.inputActiveOptionHoverBackground,d.localize(1752,"Background color of inactive active radio option when hovering.")),e.checkboxBackground=(0,I.registerColor)("checkbox.background",e.selectBackground,d.localize(1753,"Background color of checkbox widget.")),e.checkboxSelectBackground=(0,I.registerColor)("checkbox.selectBackground",y.editorWidgetBackground,d.localize(1754,"Background color of checkbox widget when the element it's in is selected.")),e.checkboxForeground=(0,I.registerColor)("checkbox.foreground",e.selectForeground,d.localize(1755,"Foreground color of checkbox widget.")),e.checkboxBorder=(0,I.registerColor)("checkbox.border",e.selectBorder,d.localize(1756,"Border color of checkbox widget.")),e.checkboxSelectBorder=(0,I.registerColor)("checkbox.selectBorder",E.iconForeground,d.localize(1757,"Border color of checkbox widget when the element it's in is selected.")),e.keybindingLabelBackground=(0,I.registerColor)("keybindingLabel.background",{dark:new k.Color(new k.RGBA(128,128,128,.17)),light:new k.Color(new k.RGBA(221,221,221,.4)),hcDark:k.Color.transparent,hcLight:k.Color.transparent},d.localize(1758,"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelForeground=(0,I.registerColor)("keybindingLabel.foreground",{dark:k.Color.fromHex("#CCCCCC"),light:k.Color.fromHex("#555555"),hcDark:k.Color.white,hcLight:E.foreground},d.localize(1759,"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelBorder=(0,I.registerColor)("keybindingLabel.border",{dark:new k.Color(new k.RGBA(51,51,51,.6)),light:new k.Color(new k.RGBA(204,204,204,.4)),hcDark:new k.Color(new k.RGBA(111,195,223)),hcLight:E.contrastBorder},d.localize(1760,"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelBottomBorder=(0,I.registerColor)("keybindingLabel.bottomBorder",{dark:new k.Color(new k.RGBA(68,68,68,.6)),light:new k.Color(new k.RGBA(187,187,187,.4)),hcDark:new k.Color(new k.RGBA(111,195,223)),hcLight:E.foreground},d.localize(1761,"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut."))}),define(ne[279],se([1,0,3,33,89,123,138]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorActionListFocusBackground=e.editorActionListFocusForeground=e.editorActionListForeground=e.editorActionListBackground=e.tableOddRowsBackgroundColor=e.tableColumnsBorder=e.treeInactiveIndentGuidesStroke=e.treeIndentGuidesStroke=e.listDeemphasizedForeground=e.listFilterMatchHighlightBorder=e.listFilterMatchHighlight=e.listFilterWidgetShadow=e.listFilterWidgetNoMatchesOutline=e.listFilterWidgetOutline=e.listFilterWidgetBackground=e.listWarningForeground=e.listErrorForeground=e.listInvalidItemForeground=e.listFocusHighlightForeground=e.listHighlightForeground=e.listDropBetweenBackground=e.listDropOverBackground=e.listHoverForeground=e.listHoverBackground=e.listInactiveFocusOutline=e.listInactiveFocusBackground=e.listInactiveSelectionIconForeground=e.listInactiveSelectionForeground=e.listInactiveSelectionBackground=e.listActiveSelectionIconForeground=e.listActiveSelectionForeground=e.listActiveSelectionBackground=e.listFocusAndSelectionOutline=e.listFocusOutline=e.listFocusForeground=e.listFocusBackground=void 0,e.listFocusBackground=(0,I.registerColor)("list.focusBackground",null,d.localize(1762,"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusForeground=(0,I.registerColor)("list.focusForeground",null,d.localize(1763,"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusOutline=(0,I.registerColor)("list.focusOutline",{dark:E.focusBorder,light:E.focusBorder,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1764,"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusAndSelectionOutline=(0,I.registerColor)("list.focusAndSelectionOutline",null,d.localize(1765,"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionBackground=(0,I.registerColor)("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1766,"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionForeground=(0,I.registerColor)("list.activeSelectionForeground",{dark:k.Color.white,light:k.Color.white,hcDark:null,hcLight:null},d.localize(1767,"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionIconForeground=(0,I.registerColor)("list.activeSelectionIconForeground",null,d.localize(1768,"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionBackground=(0,I.registerColor)("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1769,"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionForeground=(0,I.registerColor)("list.inactiveSelectionForeground",null,d.localize(1770,"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionIconForeground=(0,I.registerColor)("list.inactiveSelectionIconForeground",null,d.localize(1771,"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveFocusBackground=(0,I.registerColor)("list.inactiveFocusBackground",null,d.localize(1772,"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveFocusOutline=(0,I.registerColor)("list.inactiveFocusOutline",null,d.localize(1773,"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listHoverBackground=(0,I.registerColor)("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:k.Color.white.transparent(.1),hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1774,"List/Tree background when hovering over items using the mouse.")),e.listHoverForeground=(0,I.registerColor)("list.hoverForeground",null,d.localize(1775,"List/Tree foreground when hovering over items using the mouse.")),e.listDropOverBackground=(0,I.registerColor)("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},d.localize(1776,"List/Tree drag and drop background when moving items over other items when using the mouse.")),e.listDropBetweenBackground=(0,I.registerColor)("list.dropBetweenBackground",{dark:E.iconForeground,light:E.iconForeground,hcDark:null,hcLight:null},d.localize(1777,"List/Tree drag and drop border color when moving items between items when using the mouse.")),e.listHighlightForeground=(0,I.registerColor)("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:E.focusBorder,hcLight:E.focusBorder},d.localize(1778,"List/Tree foreground color of the match highlights when searching inside the list/tree.")),e.listFocusHighlightForeground=(0,I.registerColor)("list.focusHighlightForeground",{dark:e.listHighlightForeground,light:(0,I.ifDefinedThenElse)(e.listActiveSelectionBackground,e.listHighlightForeground,"#BBE7FF"),hcDark:e.listHighlightForeground,hcLight:e.listHighlightForeground},d.localize(1779,"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.")),e.listInvalidItemForeground=(0,I.registerColor)("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},d.localize(1780,"List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),e.listErrorForeground=(0,I.registerColor)("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},d.localize(1781,"Foreground color of list items containing errors.")),e.listWarningForeground=(0,I.registerColor)("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},d.localize(1782,"Foreground color of list items containing warnings.")),e.listFilterWidgetBackground=(0,I.registerColor)("listFilterWidget.background",{light:(0,I.darken)(y.editorWidgetBackground,0),dark:(0,I.lighten)(y.editorWidgetBackground,0),hcDark:y.editorWidgetBackground,hcLight:y.editorWidgetBackground},d.localize(1783,"Background color of the type filter widget in lists and trees.")),e.listFilterWidgetOutline=(0,I.registerColor)("listFilterWidget.outline",{dark:k.Color.transparent,light:k.Color.transparent,hcDark:"#f38518",hcLight:"#007ACC"},d.localize(1784,"Outline color of the type filter widget in lists and trees.")),e.listFilterWidgetNoMatchesOutline=(0,I.registerColor)("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1785,"Outline color of the type filter widget in lists and trees, when there are no matches.")),e.listFilterWidgetShadow=(0,I.registerColor)("listFilterWidget.shadow",y.widgetShadow,d.localize(1786,"Shadow color of the type filter widget in lists and trees.")),e.listFilterMatchHighlight=(0,I.registerColor)("list.filterMatchBackground",{dark:y.editorFindMatchHighlight,light:y.editorFindMatchHighlight,hcDark:null,hcLight:null},d.localize(1787,"Background color of the filtered match.")),e.listFilterMatchHighlightBorder=(0,I.registerColor)("list.filterMatchBorder",{dark:y.editorFindMatchHighlightBorder,light:y.editorFindMatchHighlightBorder,hcDark:E.contrastBorder,hcLight:E.activeContrastBorder},d.localize(1788,"Border color of the filtered match.")),e.listDeemphasizedForeground=(0,I.registerColor)("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},d.localize(1789,"List/Tree foreground color for items that are deemphasized.")),e.treeIndentGuidesStroke=(0,I.registerColor)("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},d.localize(1790,"Tree stroke color for the indentation guides.")),e.treeInactiveIndentGuidesStroke=(0,I.registerColor)("tree.inactiveIndentGuidesStroke",(0,I.transparent)(e.treeIndentGuidesStroke,.4),d.localize(1791,"Tree stroke color for the indentation guides that are not active.")),e.tableColumnsBorder=(0,I.registerColor)("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},d.localize(1792,"Table border color between columns.")),e.tableOddRowsBackgroundColor=(0,I.registerColor)("tree.tableOddRowsBackground",{dark:(0,I.transparent)(E.foreground,.04),light:(0,I.transparent)(E.foreground,.04),hcDark:null,hcLight:null},d.localize(1793,"Background color for odd table rows.")),e.editorActionListBackground=(0,I.registerColor)("editorActionList.background",y.editorWidgetBackground,d.localize(1794,"Action List background color.")),e.editorActionListForeground=(0,I.registerColor)("editorActionList.foreground",y.editorWidgetForeground,d.localize(1795,"Action List foreground color.")),e.editorActionListFocusForeground=(0,I.registerColor)("editorActionList.focusForeground",e.listActiveSelectionForeground,d.localize(1796,"Action List foreground color for the focused item.")),e.editorActionListFocusBackground=(0,I.registerColor)("editorActionList.focusBackground",e.listActiveSelectionBackground,d.localize(1797,"Action List background color for the focused item."))}),define(ne[751],se([1,0,3,89,123,412,279]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.menuSeparatorBackground=e.menuSelectionBorder=e.menuSelectionBackground=e.menuSelectionForeground=e.menuBackground=e.menuForeground=e.menuBorder=void 0,e.menuBorder=(0,k.registerColor)("menu.border",{dark:null,light:null,hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(1798,"Border color of menus.")),e.menuForeground=(0,k.registerColor)("menu.foreground",E.selectForeground,d.localize(1799,"Foreground color of menu items.")),e.menuBackground=(0,k.registerColor)("menu.background",E.selectBackground,d.localize(1800,"Background color of menu items.")),e.menuSelectionForeground=(0,k.registerColor)("menu.selectionForeground",y.listActiveSelectionForeground,d.localize(1801,"Foreground color of the selected menu item in menus.")),e.menuSelectionBackground=(0,k.registerColor)("menu.selectionBackground",y.listActiveSelectionBackground,d.localize(1802,"Background color of the selected menu item in menus.")),e.menuSelectionBorder=(0,k.registerColor)("menu.selectionBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(1803,"Border color of the selected menu item in menus.")),e.menuSeparatorBackground=(0,k.registerColor)("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(1804,"Color of a separator menu item in menus."))}),define(ne[413],se([1,0,3,33,89,138,278]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.minimapSliderActiveBackground=e.minimapSliderHoverBackground=e.minimapSliderBackground=e.minimapForegroundOpacity=e.minimapBackground=e.minimapError=e.minimapWarning=e.minimapInfo=e.minimapSelection=e.minimapSelectionOccurrenceHighlight=e.minimapFindMatch=void 0,e.minimapFindMatch=(0,I.registerColor)("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},d.localize(1805,"Minimap marker color for find matches."),!0),e.minimapSelectionOccurrenceHighlight=(0,I.registerColor)("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},d.localize(1806,"Minimap marker color for repeating editor selections."),!0),e.minimapSelection=(0,I.registerColor)("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},d.localize(1807,"Minimap marker color for the editor selection."),!0),e.minimapInfo=(0,I.registerColor)("minimap.infoHighlight",{dark:E.editorInfoForeground,light:E.editorInfoForeground,hcDark:E.editorInfoBorder,hcLight:E.editorInfoBorder},d.localize(1808,"Minimap marker color for infos.")),e.minimapWarning=(0,I.registerColor)("minimap.warningHighlight",{dark:E.editorWarningForeground,light:E.editorWarningForeground,hcDark:E.editorWarningBorder,hcLight:E.editorWarningBorder},d.localize(1809,"Minimap marker color for warnings.")),e.minimapError=(0,I.registerColor)("minimap.errorHighlight",{dark:new k.Color(new k.RGBA(255,18,18,.7)),light:new k.Color(new k.RGBA(255,18,18,.7)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:"#B5200D"},d.localize(1810,"Minimap marker color for errors.")),e.minimapBackground=(0,I.registerColor)("minimap.background",null,d.localize(1811,"Minimap background color.")),e.minimapForegroundOpacity=(0,I.registerColor)("minimap.foregroundOpacity",k.Color.fromHex("#000f"),d.localize(1812,'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),e.minimapSliderBackground=(0,I.registerColor)("minimapSlider.background",(0,I.transparent)(y.scrollbarSliderBackground,.5),d.localize(1813,"Minimap slider background color.")),e.minimapSliderHoverBackground=(0,I.registerColor)("minimapSlider.hoverBackground",(0,I.transparent)(y.scrollbarSliderHoverBackground,.5),d.localize(1814,"Minimap slider background color when hovering.")),e.minimapSliderActiveBackground=(0,I.registerColor)("minimapSlider.activeBackground",(0,I.transparent)(y.scrollbarSliderActiveBackground,.5),d.localize(1815,"Minimap slider background color when clicked on."))}),define(ne[752],se([1,0,3,89,123,138,413]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.chartsPurple=e.chartsGreen=e.chartsOrange=e.chartsYellow=e.chartsBlue=e.chartsRed=e.chartsLines=e.chartsForeground=void 0,e.chartsForeground=(0,k.registerColor)("charts.foreground",I.foreground,d.localize(1616,"The foreground color used in charts.")),e.chartsLines=(0,k.registerColor)("charts.lines",(0,k.transparent)(I.foreground,.5),d.localize(1617,"The color used for horizontal lines in charts.")),e.chartsRed=(0,k.registerColor)("charts.red",E.editorErrorForeground,d.localize(1618,"The red color used in chart visualizations.")),e.chartsBlue=(0,k.registerColor)("charts.blue",E.editorInfoForeground,d.localize(1619,"The blue color used in chart visualizations.")),e.chartsYellow=(0,k.registerColor)("charts.yellow",E.editorWarningForeground,d.localize(1620,"The yellow color used in chart visualizations.")),e.chartsOrange=(0,k.registerColor)("charts.orange",y.minimapFindMatch,d.localize(1621,"The orange color used in chart visualizations.")),e.chartsGreen=(0,k.registerColor)("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},d.localize(1622,"The green color used in chart visualizations.")),e.chartsPurple=(0,k.registerColor)("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},d.localize(1623,"The purple color used in chart visualizations."))}),define(ne[753],se([1,0,3,33,89,138,279]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.quickInputListFocusBackground=e.quickInputListFocusIconForeground=e.quickInputListFocusForeground=e._deprecatedQuickInputListFocusBackground=e.pickerGroupBorder=e.pickerGroupForeground=e.quickInputTitleBackground=e.quickInputForeground=e.quickInputBackground=void 0,e.quickInputBackground=(0,I.registerColor)("quickInput.background",E.editorWidgetBackground,d.localize(1824,"Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),e.quickInputForeground=(0,I.registerColor)("quickInput.foreground",E.editorWidgetForeground,d.localize(1825,"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),e.quickInputTitleBackground=(0,I.registerColor)("quickInputTitle.background",{dark:new k.Color(new k.RGBA(255,255,255,.105)),light:new k.Color(new k.RGBA(0,0,0,.06)),hcDark:"#000000",hcLight:k.Color.white},d.localize(1826,"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),e.pickerGroupForeground=(0,I.registerColor)("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(1827,"Quick picker color for grouping labels.")),e.pickerGroupBorder=(0,I.registerColor)("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(1828,"Quick picker color for grouping borders.")),e._deprecatedQuickInputListFocusBackground=(0,I.registerColor)("quickInput.list.focusBackground",null,"",void 0,d.localize(1829,"Please use quickInputList.focusBackground instead")),e.quickInputListFocusForeground=(0,I.registerColor)("quickInputList.focusForeground",y.listActiveSelectionForeground,d.localize(1830,"Quick picker foreground color for the focused item.")),e.quickInputListFocusIconForeground=(0,I.registerColor)("quickInputList.focusIconForeground",y.listActiveSelectionIconForeground,d.localize(1831,"Quick picker icon foreground color for the focused item.")),e.quickInputListFocusBackground=(0,I.registerColor)("quickInputList.focusBackground",{dark:(0,I.oneOf)(e._deprecatedQuickInputListFocusBackground,y.listActiveSelectionBackground),light:(0,I.oneOf)(e._deprecatedQuickInputListFocusBackground,y.listActiveSelectionBackground),hcDark:null,hcLight:null},d.localize(1832,"Quick picker background color for the focused item."))}),define(ne[754],se([1,0,3,89,123,138]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.searchEditorFindMatchBorder=e.searchEditorFindMatch=e.searchResultsInfoForeground=void 0,e.searchResultsInfoForeground=(0,k.registerColor)("search.resultsInfoForeground",{light:I.foreground,dark:(0,k.transparent)(I.foreground,.65),hcDark:I.foreground,hcLight:I.foreground},d.localize(1833,"Color of the text in the search viewlet's completion message.")),e.searchEditorFindMatch=(0,k.registerColor)("searchEditor.findMatchBackground",{light:(0,k.transparent)(E.editorFindMatchHighlight,.66),dark:(0,k.transparent)(E.editorFindMatchHighlight,.66),hcDark:E.editorFindMatchHighlight,hcLight:E.editorFindMatchHighlight},d.localize(1834,"Color of the Search Editor query matches.")),e.searchEditorFindMatchBorder=(0,k.registerColor)("searchEditor.findMatchBorder",{light:(0,k.transparent)(E.editorFindMatchHighlightBorder,.66),dark:(0,k.transparent)(E.editorFindMatchHighlightBorder,.66),hcDark:E.editorFindMatchHighlightBorder,hcLight:E.editorFindMatchHighlightBorder},d.localize(1835,"Border color of the Search Editor query matches."))});var ci=this&&this.__createBinding||(Object.create?function(oe,e,d,k){k===void 0&&(k=d);var I=Object.getOwnPropertyDescriptor(e,d);(!I||("get"in I?!e.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return e[d]}}),Object.defineProperty(oe,k,I)}:function(oe,e,d,k){k===void 0&&(k=d),oe[k]=e[d]}),Lt=this&&this.__exportStar||function(oe,e){for(var d in oe)d!=="default"&&!Object.prototype.hasOwnProperty.call(e,d)&&ci(e,oe,d)};define(ne[32],se([1,0,89,123,752,138,412,279,751,413,278,753,754]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Lt(d,e),Lt(k,e),Lt(I,e),Lt(E,e),Lt(y,e),Lt(m,e),Lt(_,e),Lt(b,e),Lt(p,e),Lt(n,e),Lt(o,e)}),define(ne[185],se([1,0,5,172,77,14,2,32]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicCssRules=e.GlobalEditorPointerMoveMonitor=e.EditorPointerEventFactory=e.EditorMouseEventFactory=e.EditorMouseEvent=e.CoordinatesRelativeToEditor=e.EditorPagePosition=e.ClientCoordinates=e.PageCoordinates=void 0,e.createEditorPagePosition=o,e.createCoordinatesRelativeToEditor=t;class _{constructor(C,f){this.x=C,this.y=f,this._pageCoordinatesBrand=void 0}toClientCoordinates(C){return new b(this.x-C.scrollX,this.y-C.scrollY)}}e.PageCoordinates=_;class b{constructor(C,f){this.clientX=C,this.clientY=f,this._clientCoordinatesBrand=void 0}toPageCoordinates(C){return new _(this.clientX+C.scrollX,this.clientY+C.scrollY)}}e.ClientCoordinates=b;class p{constructor(C,f,h,v){this.x=C,this.y=f,this.width=h,this.height=v,this._editorPagePositionBrand=void 0}}e.EditorPagePosition=p;class n{constructor(C,f){this.x=C,this.y=f,this._positionRelativeToEditorBrand=void 0}}e.CoordinatesRelativeToEditor=n;function o(u){const C=d.getDomNodePagePosition(u);return new p(C.left,C.top,C.width,C.height)}function t(u,C,f){const h=C.width/u.offsetWidth,v=C.height/u.offsetHeight,w=(f.x-C.x)/h,S=(f.y-C.y)/v;return new n(w,S)}class i extends I.StandardMouseEvent{constructor(C,f,h){super(d.getWindow(h),C),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=f,this.pos=new _(this.posx,this.posy),this.editorPos=o(h),this.relativePos=t(h,this.editorPos,this.pos)}}e.EditorMouseEvent=i;class s{constructor(C){this._editorViewDomNode=C}_create(C){return new i(C,!1,this._editorViewDomNode)}onContextMenu(C,f){return d.addDisposableListener(C,"contextmenu",h=>{f(this._create(h))})}onMouseUp(C,f){return d.addDisposableListener(C,"mouseup",h=>{f(this._create(h))})}onMouseDown(C,f){return d.addDisposableListener(C,d.EventType.MOUSE_DOWN,h=>{f(this._create(h))})}onPointerDown(C,f){return d.addDisposableListener(C,d.EventType.POINTER_DOWN,h=>{f(this._create(h),h.pointerId)})}onMouseLeave(C,f){return d.addDisposableListener(C,d.EventType.MOUSE_LEAVE,h=>{f(this._create(h))})}onMouseMove(C,f){return d.addDisposableListener(C,"mousemove",h=>f(this._create(h)))}}e.EditorMouseEventFactory=s;class g{constructor(C){this._editorViewDomNode=C}_create(C){return new i(C,!1,this._editorViewDomNode)}onPointerUp(C,f){return d.addDisposableListener(C,"pointerup",h=>{f(this._create(h))})}onPointerDown(C,f){return d.addDisposableListener(C,d.EventType.POINTER_DOWN,h=>{f(this._create(h),h.pointerId)})}onPointerLeave(C,f){return d.addDisposableListener(C,d.EventType.POINTER_LEAVE,h=>{f(this._create(h))})}onPointerMove(C,f){return d.addDisposableListener(C,"pointermove",h=>f(this._create(h)))}}e.EditorPointerEventFactory=g;class c extends y.Disposable{constructor(C){super(),this._editorViewDomNode=C,this._globalPointerMoveMonitor=this._register(new k.GlobalPointerMoveMonitor),this._keydownListener=null}startMonitoring(C,f,h,v,w){this._keydownListener=d.addStandardDisposableListener(C.ownerDocument,"keydown",S=>{S.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,S.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(C,f,h,S=>{v(new i(S,!0,this._editorViewDomNode))},S=>{this._keydownListener.dispose(),w(S)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}e.GlobalEditorPointerMoveMonitor=c;class l{static{this._idPool=0}constructor(C){this._editor=C,this._instanceId=++l._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new E.RunOnceScheduler(()=>this.garbageCollect(),1e3)}createClassNameRef(C){const f=this.getOrCreateRule(C);return f.increaseRefCount(),{className:f.className,dispose:()=>{f.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(C){const f=this.computeUniqueKey(C);let h=this._rules.get(f);if(!h){const v=this._counter++;h=new a(f,`dyn-rule-${this._instanceId}-${v}`,d.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,C),this._rules.set(f,h)}return h}computeUniqueKey(C){return JSON.stringify(C)}garbageCollect(){for(const C of this._rules.values())C.hasReferences()||(this._rules.delete(C.key),C.dispose())}}e.DynamicCssRules=l;class a{constructor(C,f,h,v){this.key=C,this.className=f,this.properties=v,this._referenceCount=0,this._styleElementDisposables=new y.DisposableStore,this._styleElement=d.createStyleSheet(h,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(C,f){let h=`.${C} {`;for(const v in f){const w=f[v];let S;typeof w=="object"?S=(0,m.asCssVariable)(w.id):S=w;const L=r(v);h+=` - ${L}: ${S};`}return h+=` -}`,h}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function r(u){return u.replace(/(^[A-Z])/,([C])=>C.toLowerCase()).replace(/([A-Z])/g,([C])=>`-${C.toLowerCase()}`)}}),define(ne[755],se([1,0,5,39,172,2,16,11,262,56,37,4,311,374,95,32,23,69,551,127,45,347,491]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Minimap=void 0;const C=140,f=2;class h{constructor(N,O,F){const x=N.options,W=x.get(144),V=x.get(146),q=V.minimap,H=x.get(50),z=x.get(73);this.renderMinimap=q.renderMinimap,this.size=z.size,this.minimapHeightIsEditorHeight=q.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=x.get(106),this.paddingTop=x.get(84).top,this.paddingBottom=x.get(84).bottom,this.showSlider=z.showSlider,this.autohide=z.autohide,this.pixelRatio=W,this.typicalHalfwidthCharacterWidth=H.typicalHalfwidthCharacterWidth,this.lineHeight=x.get(67),this.minimapLeft=q.minimapLeft,this.minimapWidth=q.minimapWidth,this.minimapHeight=V.height,this.canvasInnerWidth=q.minimapCanvasInnerWidth,this.canvasInnerHeight=q.minimapCanvasInnerHeight,this.canvasOuterWidth=q.minimapCanvasOuterWidth,this.canvasOuterHeight=q.minimapCanvasOuterHeight,this.isSampling=q.minimapIsSampling,this.editorHeight=V.height,this.fontScale=q.minimapScale,this.minimapLineHeight=q.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=u.DEFAULT_FONT_FAMILY,this.sectionHeaderFontSize=z.sectionHeaderFontSize*W,this.sectionHeaderLetterSpacing=z.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=h._getSectionHeaderColor(O,F.getColor(1)),this.charRenderer=(0,a.createSingleCallFunction)(()=>l.MinimapCharRendererFactory.create(this.fontScale,H.fontFamily)),this.defaultBackgroundColor=F.getColor(2),this.backgroundColor=h._getMinimapBackground(O,this.defaultBackgroundColor),this.foregroundAlpha=h._getMinimapForegroundOpacity(O)}static _getMinimapBackground(N,O){const F=N.getColor(s.minimapBackground);return F?new o.RGBA8(F.rgba.r,F.rgba.g,F.rgba.b,Math.round(255*F.rgba.a)):O}static _getMinimapForegroundOpacity(N){const O=N.getColor(s.minimapForegroundOpacity);return O?o.RGBA8._clamp(Math.round(255*O.rgba.a)):255}static _getSectionHeaderColor(N,O){const F=N.getColor(s.editorForeground);return F?new o.RGBA8(F.rgba.r,F.rgba.g,F.rgba.b,Math.round(255*F.rgba.a)):O}equals(N){return this.renderMinimap===N.renderMinimap&&this.size===N.size&&this.minimapHeightIsEditorHeight===N.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===N.scrollBeyondLastLine&&this.paddingTop===N.paddingTop&&this.paddingBottom===N.paddingBottom&&this.showSlider===N.showSlider&&this.autohide===N.autohide&&this.pixelRatio===N.pixelRatio&&this.typicalHalfwidthCharacterWidth===N.typicalHalfwidthCharacterWidth&&this.lineHeight===N.lineHeight&&this.minimapLeft===N.minimapLeft&&this.minimapWidth===N.minimapWidth&&this.minimapHeight===N.minimapHeight&&this.canvasInnerWidth===N.canvasInnerWidth&&this.canvasInnerHeight===N.canvasInnerHeight&&this.canvasOuterWidth===N.canvasOuterWidth&&this.canvasOuterHeight===N.canvasOuterHeight&&this.isSampling===N.isSampling&&this.editorHeight===N.editorHeight&&this.fontScale===N.fontScale&&this.minimapLineHeight===N.minimapLineHeight&&this.minimapCharWidth===N.minimapCharWidth&&this.sectionHeaderFontSize===N.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===N.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(N.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(N.backgroundColor)&&this.foregroundAlpha===N.foregroundAlpha}}class v{constructor(N,O,F,x,W,V,q,H,z){this.scrollTop=N,this.scrollHeight=O,this.sliderNeeded=F,this._computedSliderRatio=x,this.sliderTop=W,this.sliderHeight=V,this.topPaddingLineCount=q,this.startLineNumber=H,this.endLineNumber=z}getDesiredScrollTopFromDelta(N){return Math.round(this.scrollTop+N/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(N){return Math.round((N-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(N){const O=Math.max(this.startLineNumber,N.startLineNumber),F=Math.min(this.endLineNumber,N.endLineNumber);return O>F?null:[O,F]}getYForLineNumber(N,O){return+(N-this.startLineNumber+this.topPaddingLineCount)*O}static create(N,O,F,x,W,V,q,H,z,U,j){const Y=N.pixelRatio,G=N.minimapLineHeight,K=Math.floor(N.canvasInnerHeight/G),R=N.lineHeight;if(N.minimapHeightIsEditorHeight){let ee=H*N.lineHeight+N.paddingTop+N.paddingBottom;N.scrollBeyondLastLine&&(ee+=Math.max(0,W-N.lineHeight-N.paddingBottom));const de=Math.max(1,Math.floor(W*W/ee)),ge=Math.max(0,N.minimapHeight-de),X=ge/(U-W),B=z*X,$=ge>0,Q=Math.floor(N.canvasInnerHeight/N.minimapLineHeight),Z=Math.floor(N.paddingTop/N.lineHeight);return new v(z,U,$,X,B,de,Z,1,Math.min(q,Q))}let J;if(V&&F!==q){const ee=F-O+1;J=Math.floor(ee*G/Y)}else{const ee=W/R;J=Math.floor(ee*G/Y)}const ie=Math.floor(N.paddingTop/R);let ue=Math.floor(N.paddingBottom/R);if(N.scrollBeyondLastLine){const ee=W/R;ue=Math.max(ue,ee-1)}let he;if(ue>0){const ee=W/R;he=(ie+q+ue-ee-1)*G/Y}else he=Math.max(0,(ie+q)*G/Y-J);he=Math.min(N.minimapHeight-J,he);const pe=he/(U-W),ae=z*pe;if(K>=ie+q+ue){const ee=he>0;return new v(z,U,ee,pe,ae,J,ie,1,q)}else{let ee;O>1?ee=O+ie:ee=Math.max(1,z/R);let de,ge=Math.max(1,Math.floor(ee-ae*Y/G));gez&&(ge=Math.min(ge,j.startLineNumber),de=Math.max(de,j.topPaddingLineCount)),j.scrollTop=N.paddingTop?$=(O-ge+de+B)*G/Y:$=z/N.paddingTop*(de+B)*G/Y,new v(z,U,!0,pe,$,J,de,ge,X)}}}class w{static{this.INVALID=new w(-1)}constructor(N){this.dy=N}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}class S{constructor(N,O,F){this.renderedLayout=N,this._imageData=O,this._renderedLines=new _.RenderedLinesCollection({createLine:()=>w.INVALID}),this._renderedLines._set(N.startLineNumber,F)}linesEquals(N){if(!this.scrollEquals(N))return!1;const F=this._renderedLines._get().lines;for(let x=0,W=F.length;x1){for(let ie=0,ue=x-1;ie0&&this.minimapLines[F-1]>=N;)F--;let x=this.modelLineToMinimapLine(O)-1;for(;x+1O)return null}return[F+1,x+1]}decorationLineRangeToMinimapLineRange(N,O){let F=this.modelLineToMinimapLine(N),x=this.modelLineToMinimapLine(O);return N!==O&&x===F&&(x===this.minimapLines.length?F>1&&F--:x++),[F,x]}onLinesDeleted(N){const O=N.toLineNumber-N.fromLineNumber+1;let F=this.minimapLines.length,x=0;for(let W=this.minimapLines.length-1;W>=0&&!(this.minimapLines[W]=0&&!(this.minimapLines[F]0,scrollWidth:N.scrollWidth,scrollHeight:N.scrollHeight,viewportStartLineNumber:O,viewportEndLineNumber:F,viewportStartLineNumberVerticalOffset:N.getVerticalOffsetForLineNumber(O),scrollTop:N.scrollTop,scrollLeft:N.scrollLeft,viewportWidth:N.viewportWidth,viewportHeight:N.viewportHeight};this._actual.render(x)}_recreateLineSampling(){this._minimapSelections=null;const N=!!this._samplingState,[O,F]=D.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=O,N&&this._samplingState)for(const x of F)switch(x.type){case"deleted":this._actual.onLinesDeleted(x.deleteFromLineNumber,x.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(x.insertFromLineNumber,x.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(N){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[N-1]):this._context.viewModel.getLineContent(N)}getLineMaxColumn(N){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[N-1]):this._context.viewModel.getLineMaxColumn(N)}getMinimapLinesRenderingData(N,O,F){if(this._samplingState){const x=[];for(let W=0,V=O-N+1;W!x.options.minimap?.sectionHeaderStyle);if(this._samplingState){const x=[];for(const W of F){if(!W.options.minimap)continue;const V=W.range,q=this._samplingState.modelLineToMinimapLine(V.startLineNumber),H=this._samplingState.modelLineToMinimapLine(V.endLineNumber);x.push(new i.ViewModelDecoration(new n.Range(q,V.startColumn,H,V.endColumn),W.options))}return x}return F}getSectionHeaderDecorationsInViewport(N,O){const F=this.options.minimapLineHeight,W=this.options.sectionHeaderFontSize/F;return N=Math.floor(Math.max(1,N-W)),this._getMinimapDecorationsInViewport(N,O).filter(V=>!!V.options.minimap?.sectionHeaderStyle)}_getMinimapDecorationsInViewport(N,O){let F;if(this._samplingState){const x=this._samplingState.minimapLines[N-1],W=this._samplingState.minimapLines[O-1];F=new n.Range(x,1,W,this._context.viewModel.getLineMaxColumn(W))}else F=new n.Range(N,1,O,this._context.viewModel.getLineMaxColumn(O));return this._context.viewModel.getMinimapDecorationsInRange(F)}getSectionHeaderText(N,O){const F=N.options.minimap?.sectionHeaderText;if(!F)return null;const x=this._sectionHeaderCache.get(F);if(x)return x;const W=O(F);return this._sectionHeaderCache.set(F,W),W}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(N){this._samplingState&&(N=this._samplingState.minimapLines[N-1]),this._context.viewModel.revealRange("mouse",!1,new n.Range(N,1,N,1),1,0)}setScrollTop(N){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:N},1)}}e.Minimap=T;class M extends E.Disposable{constructor(N,O){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=N,this._model=O,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(s.minimapSelection),this._domNode=(0,k.createFastDomNode)(document.createElement("div")),b.PartFingerprints.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=(0,k.createFastDomNode)(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=(0,k.createFastDomNode)(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=(0,k.createFastDomNode)(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=(0,k.createFastDomNode)(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=(0,k.createFastDomNode)(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=d.addStandardDisposableListener(this._domNode.domNode,d.EventType.POINTER_DOWN,F=>{if(F.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(F.button===0&&this._lastRenderData){const z=d.getDomNodePagePosition(this._slider.domNode),U=z.top+z.height/2;this._startSliderDragging(F,U,this._lastRenderData.renderedLayout)}return}const W=this._model.options.minimapLineHeight,V=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*F.offsetY;let H=Math.floor(V/W)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;H=Math.min(H,this._model.getLineCount()),this._model.revealLineNumber(H)}),this._sliderPointerMoveMonitor=new I.GlobalPointerMoveMonitor,this._sliderPointerDownListener=d.addStandardDisposableListener(this._slider.domNode,d.EventType.POINTER_DOWN,F=>{F.preventDefault(),F.stopPropagation(),F.button===0&&this._lastRenderData&&this._startSliderDragging(F,F.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=c.Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=d.addDisposableListener(this._domNode.domNode,c.EventType.Start,F=>{F.preventDefault(),F.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(F))},{passive:!1}),this._sliderTouchMoveListener=d.addDisposableListener(this._domNode.domNode,c.EventType.Change,F=>{F.preventDefault(),F.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(F)},{passive:!1}),this._sliderTouchEndListener=d.addStandardDisposableListener(this._domNode.domNode,c.EventType.End,F=>{F.preventDefault(),F.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(N,O,F){if(!N.target||!(N.target instanceof Element))return;const x=N.pageX;this._slider.toggleClassName("active",!0);const W=(V,q)=>{const H=d.getDomNodePagePosition(this._domNode.domNode),z=Math.min(Math.abs(q-x),Math.abs(q-H.left),Math.abs(q-H.left-H.width));if(y.isWindows&&z>C){this._model.setScrollTop(F.scrollTop);return}const U=V-O;this._model.setScrollTop(F.getDesiredScrollTopFromDelta(U))};N.pageY!==O&&W(N.pageY,x),this._sliderPointerMoveMonitor.startMonitoring(N.target,N.pointerId,N.buttons,V=>W(V.pageY,V.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(N){const O=this._domNode.domNode.getBoundingClientRect().top,F=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(N.pageY-O);this._model.setScrollTop(F)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const N=["minimap"];return this._model.options.showSlider==="always"?N.push("slider-always"):N.push("slider-mouseover"),this._model.options.autohide&&N.push("autohide"),N.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new L(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(N,O){return this._lastRenderData?this._lastRenderData.onLinesChanged(N,O):!1}onLinesDeleted(N,O){return this._lastRenderData?.onLinesDeleted(N,O),!0}onLinesInserted(N,O){return this._lastRenderData?.onLinesInserted(N,O),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(s.minimapSelection),this._renderDecorations=!0,!0}onTokensChanged(N){return this._lastRenderData?this._lastRenderData.onTokensChanged(N):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(N){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}N.scrollLeft+N.viewportWidth>=N.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const F=v.create(this._model.options,N.viewportStartLineNumber,N.viewportEndLineNumber,N.viewportStartLineNumberVerticalOffset,N.viewportHeight,N.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),N.scrollTop,N.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(F.sliderNeeded?"block":"none"),this._slider.setTop(F.sliderTop),this._slider.setHeight(F.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(F.sliderHeight),this.renderDecorations(F),this._lastRenderData=this.renderLines(F)}renderDecorations(N){if(this._renderDecorations){this._renderDecorations=!1;const O=this._model.getSelections();O.sort(n.Range.compareRangesUsingStarts);const F=this._model.getMinimapDecorationsInViewport(N.startLineNumber,N.endLineNumber);F.sort((Y,G)=>(Y.options.zIndex||0)-(G.options.zIndex||0));const{canvasInnerWidth:x,canvasInnerHeight:W}=this._model.options,V=this._model.options.minimapLineHeight,q=this._model.options.minimapCharWidth,H=this._model.getOptions().tabSize,z=this._decorationsCanvas.domNode.getContext("2d");z.clearRect(0,0,x,W);const U=new A(N.startLineNumber,N.endLineNumber,!1);this._renderSelectionLineHighlights(z,O,U,N,V),this._renderDecorationsLineHighlights(z,F,U,N,V);const j=new A(N.startLineNumber,N.endLineNumber,null);this._renderSelectionsHighlights(z,O,j,N,V,H,q,x),this._renderDecorationsHighlights(z,F,j,N,V,H,q,x),this._renderSectionHeaders(N)}}_renderSelectionLineHighlights(N,O,F,x,W){if(!this._selectionColor||this._selectionColor.isTransparent())return;N.fillStyle=this._selectionColor.transparent(.5).toString();let V=0,q=0;for(const H of O){const z=x.intersectWithViewport(H);if(!z)continue;const[U,j]=z;for(let K=U;K<=j;K++)F.set(K,!0);const Y=x.getYForLineNumber(U,W),G=x.getYForLineNumber(j,W);q>=Y||(q>V&&N.fillRect(p.MINIMAP_GUTTER_WIDTH,V,N.canvas.width,q-V),V=Y),q=G}q>V&&N.fillRect(p.MINIMAP_GUTTER_WIDTH,V,N.canvas.width,q-V)}_renderDecorationsLineHighlights(N,O,F,x,W){const V=new Map;for(let q=O.length-1;q>=0;q--){const H=O[q],z=H.options.minimap;if(!z||z.position!==1)continue;const U=x.intersectWithViewport(H.range);if(!U)continue;const[j,Y]=U,G=z.getColor(this._theme.value);if(!G||G.isTransparent())continue;let K=V.get(G.toString());K||(K=G.transparent(.5).toString(),V.set(G.toString(),K)),N.fillStyle=K;for(let R=j;R<=Y;R++){if(F.has(R))continue;F.set(R,!0);const J=x.getYForLineNumber(j,W);N.fillRect(p.MINIMAP_GUTTER_WIDTH,J,N.canvas.width,W)}}}_renderSelectionsHighlights(N,O,F,x,W,V,q,H){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const z of O){const U=x.intersectWithViewport(z);if(!U)continue;const[j,Y]=U;for(let G=j;G<=Y;G++)this.renderDecorationOnLine(N,F,z,this._selectionColor,x,G,W,W,V,q,H)}}_renderDecorationsHighlights(N,O,F,x,W,V,q,H){for(const z of O){const U=z.options.minimap;if(!U)continue;const j=x.intersectWithViewport(z.range);if(!j)continue;const[Y,G]=j,K=U.getColor(this._theme.value);if(!(!K||K.isTransparent()))for(let R=Y;R<=G;R++)switch(U.position){case 1:this.renderDecorationOnLine(N,F,z.range,K,x,R,W,W,V,q,H);continue;case 2:{const J=x.getYForLineNumber(R,W);this.renderDecoration(N,K,2,J,f,W);continue}}}}renderDecorationOnLine(N,O,F,x,W,V,q,H,z,U,j){const Y=W.getYForLineNumber(V,H);if(Y+q<0||Y>this._model.options.canvasInnerHeight)return;const{startLineNumber:G,endLineNumber:K}=F,R=G===V?F.startColumn:1,J=K===V?F.endColumn:this._model.getLineMaxColumn(V),ie=this.getXOffsetForPosition(O,V,R,z,U,j),ue=this.getXOffsetForPosition(O,V,J,z,U,j);this.renderDecoration(N,x,ie,Y,ue-ie,q)}getXOffsetForPosition(N,O,F,x,W,V){if(F===1)return p.MINIMAP_GUTTER_WIDTH;if((F-1)*W>=V)return V;let H=N.get(O);if(!H){const z=this._model.getLineContent(O);H=[p.MINIMAP_GUTTER_WIDTH];let U=p.MINIMAP_GUTTER_WIDTH;for(let j=1;j=V){H[j]=V;break}H[j]=K,U=K}N.set(O,H)}return F-1R.range.startLineNumber-J.range.startLineNumber);const K=M._fitSectionHeader.bind(null,Y,V-p.MINIMAP_GUTTER_WIDTH);for(const R of G){const J=N.getYForLineNumber(R.range.startLineNumber,O)+F,ie=J-F,ue=ie+2,he=this._model.getSectionHeaderText(R,K);M._renderSectionLabel(Y,he,R.options.minimap?.sectionHeaderStyle===2,H,U,V,ie,W,J,ue)}}static _fitSectionHeader(N,O,F){if(!F)return F;const x="\u2026",W=N.measureText(F).width,V=N.measureText(x).width;if(W<=O||W<=V)return F;const q=F.length,H=W/F.length,z=Math.floor((O-V)/H)-1;let U=Math.ceil(z/2);for(;U>0&&/\s/.test(F[U-1]);)--U;return F.substring(0,U)+x+F.substring(q-(z-U))}static _renderSectionLabel(N,O,F,x,W,V,q,H,z,U){O&&(N.fillStyle=x,N.fillRect(0,q,V,H),N.fillStyle=W,N.fillText(O,p.MINIMAP_GUTTER_WIDTH,z)),F&&(N.beginPath(),N.moveTo(0,U),N.lineTo(V,U),N.closePath(),N.stroke())}renderLines(N){const O=N.startLineNumber,F=N.endLineNumber,x=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(N)){const re=this._lastRenderData._get();return new S(N,re.imageData,re.lines)}const W=this._getBuffer();if(!W)return null;const[V,q,H]=M._renderUntouchedLines(W,N.topPaddingLineCount,O,F,x,this._lastRenderData),z=this._model.getMinimapLinesRenderingData(O,F,H),U=this._model.getOptions().tabSize,j=this._model.options.defaultBackgroundColor,Y=this._model.options.backgroundColor,G=this._model.options.foregroundAlpha,K=this._model.tokensColorTracker,R=K.backgroundIsLight(),J=this._model.options.renderMinimap,ie=this._model.options.charRenderer(),ue=this._model.options.fontScale,he=this._model.options.minimapCharWidth,ae=(J===1?2:3)*ue,ee=x>ae?Math.floor((x-ae)/2):0,de=Y.a/255,ge=new o.RGBA8(Math.round((Y.r-j.r)*de+j.r),Math.round((Y.g-j.g)*de+j.g),Math.round((Y.b-j.b)*de+j.b),255);let X=N.topPaddingLineCount*x;const B=[];for(let re=0,le=F-O+1;re=0&&$ue)return;const Q=J.charCodeAt(ae);if(Q===9){const Z=Y-(ae+ee)%Y;ee+=Z-1,pe+=Z*V}else if(Q===32)pe+=V;else{const Z=m.isFullWidthCharacter(Q)?2:1;for(let te=0;teue)return}}}}}class A{constructor(N,O,F){this._startLineNumber=N,this._endLineNumber=O,this._defaultValue=F,this._values=[];for(let x=0,W=this._endLineNumber-this._startLineNumber+1;xthis._endLineNumber||(this._values[N-this._startLineNumber]=O)}get(N){return Nthis._endLineNumber?this._defaultValue:this._values[N-this._startLineNumber]}}}),define(ne[756],se([1,0,3,32]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.multiDiffEditorBorder=e.multiDiffEditorBackground=e.multiDiffEditorHeaderBackground=void 0,e.multiDiffEditorHeaderBackground=(0,k.registerColor)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,d.localize)(129,"The background color of the diff editor's header")),e.multiDiffEditorBackground=(0,k.registerColor)("multiDiffEditor.background",k.editorBackground,(0,d.localize)(130,"The background color of the multi file diff editor")),e.multiDiffEditorBorder=(0,k.registerColor)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,d.localize)(131,"The border color of the multi file diff editor"))}),define(ne[280],se([1,0,3,32,533]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SYMBOL_ICON_VARIABLE_FOREGROUND=e.SYMBOL_ICON_UNIT_FOREGROUND=e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=e.SYMBOL_ICON_TEXT_FOREGROUND=e.SYMBOL_ICON_STRUCT_FOREGROUND=e.SYMBOL_ICON_STRING_FOREGROUND=e.SYMBOL_ICON_SNIPPET_FOREGROUND=e.SYMBOL_ICON_REFERENCE_FOREGROUND=e.SYMBOL_ICON_PROPERTY_FOREGROUND=e.SYMBOL_ICON_PACKAGE_FOREGROUND=e.SYMBOL_ICON_OPERATOR_FOREGROUND=e.SYMBOL_ICON_OBJECT_FOREGROUND=e.SYMBOL_ICON_NUMBER_FOREGROUND=e.SYMBOL_ICON_NULL_FOREGROUND=e.SYMBOL_ICON_NAMESPACE_FOREGROUND=e.SYMBOL_ICON_MODULE_FOREGROUND=e.SYMBOL_ICON_METHOD_FOREGROUND=e.SYMBOL_ICON_KEYWORD_FOREGROUND=e.SYMBOL_ICON_KEY_FOREGROUND=e.SYMBOL_ICON_INTERFACE_FOREGROUND=e.SYMBOL_ICON_FUNCTION_FOREGROUND=e.SYMBOL_ICON_FOLDER_FOREGROUND=e.SYMBOL_ICON_FILE_FOREGROUND=e.SYMBOL_ICON_FIELD_FOREGROUND=e.SYMBOL_ICON_EVENT_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=e.SYMBOL_ICON_CONSTANT_FOREGROUND=e.SYMBOL_ICON_COLOR_FOREGROUND=e.SYMBOL_ICON_CLASS_FOREGROUND=e.SYMBOL_ICON_BOOLEAN_FOREGROUND=e.SYMBOL_ICON_ARRAY_FOREGROUND=void 0,e.SYMBOL_ICON_ARRAY_FOREGROUND=(0,k.registerColor)("symbolIcon.arrayForeground",k.foreground,(0,d.localize)(1348,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_BOOLEAN_FOREGROUND=(0,k.registerColor)("symbolIcon.booleanForeground",k.foreground,(0,d.localize)(1349,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CLASS_FOREGROUND=(0,k.registerColor)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1350,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_COLOR_FOREGROUND=(0,k.registerColor)("symbolIcon.colorForeground",k.foreground,(0,d.localize)(1351,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CONSTANT_FOREGROUND=(0,k.registerColor)("symbolIcon.constantForeground",k.foreground,(0,d.localize)(1352,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=(0,k.registerColor)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1353,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1354,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1355,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_EVENT_FOREGROUND=(0,k.registerColor)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1356,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FIELD_FOREGROUND=(0,k.registerColor)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1357,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FILE_FOREGROUND=(0,k.registerColor)("symbolIcon.fileForeground",k.foreground,(0,d.localize)(1358,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FOLDER_FOREGROUND=(0,k.registerColor)("symbolIcon.folderForeground",k.foreground,(0,d.localize)(1359,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FUNCTION_FOREGROUND=(0,k.registerColor)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1360,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_INTERFACE_FOREGROUND=(0,k.registerColor)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1361,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_KEY_FOREGROUND=(0,k.registerColor)("symbolIcon.keyForeground",k.foreground,(0,d.localize)(1362,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_KEYWORD_FOREGROUND=(0,k.registerColor)("symbolIcon.keywordForeground",k.foreground,(0,d.localize)(1363,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_METHOD_FOREGROUND=(0,k.registerColor)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1364,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_MODULE_FOREGROUND=(0,k.registerColor)("symbolIcon.moduleForeground",k.foreground,(0,d.localize)(1365,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NAMESPACE_FOREGROUND=(0,k.registerColor)("symbolIcon.namespaceForeground",k.foreground,(0,d.localize)(1366,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NULL_FOREGROUND=(0,k.registerColor)("symbolIcon.nullForeground",k.foreground,(0,d.localize)(1367,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NUMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.numberForeground",k.foreground,(0,d.localize)(1368,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_OBJECT_FOREGROUND=(0,k.registerColor)("symbolIcon.objectForeground",k.foreground,(0,d.localize)(1369,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_OPERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.operatorForeground",k.foreground,(0,d.localize)(1370,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_PACKAGE_FOREGROUND=(0,k.registerColor)("symbolIcon.packageForeground",k.foreground,(0,d.localize)(1371,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_PROPERTY_FOREGROUND=(0,k.registerColor)("symbolIcon.propertyForeground",k.foreground,(0,d.localize)(1372,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_REFERENCE_FOREGROUND=(0,k.registerColor)("symbolIcon.referenceForeground",k.foreground,(0,d.localize)(1373,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_SNIPPET_FOREGROUND=(0,k.registerColor)("symbolIcon.snippetForeground",k.foreground,(0,d.localize)(1374,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_STRING_FOREGROUND=(0,k.registerColor)("symbolIcon.stringForeground",k.foreground,(0,d.localize)(1375,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_STRUCT_FOREGROUND=(0,k.registerColor)("symbolIcon.structForeground",k.foreground,(0,d.localize)(1376,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_TEXT_FOREGROUND=(0,k.registerColor)("symbolIcon.textForeground",k.foreground,(0,d.localize)(1377,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=(0,k.registerColor)("symbolIcon.typeParameterForeground",k.foreground,(0,d.localize)(1378,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_UNIT_FOREGROUND=(0,k.registerColor)("symbolIcon.unitForeground",k.foreground,(0,d.localize)(1379,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_VARIABLE_FOREGROUND=(0,k.registerColor)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1380,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."))}),define(ne[757],se([1,0,26,134,3,91,195,280]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toMenuItems=_;const y=Object.freeze({kind:E.HierarchicalKind.Empty,title:(0,I.localize)(777,"More Actions...")}),m=Object.freeze([{kind:k.CodeActionKind.QuickFix,title:(0,I.localize)(778,"Quick Fix")},{kind:k.CodeActionKind.RefactorExtract,title:(0,I.localize)(779,"Extract"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorInline,title:(0,I.localize)(780,"Inline"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorRewrite,title:(0,I.localize)(781,"Rewrite"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorMove,title:(0,I.localize)(782,"Move"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.SurroundWith,title:(0,I.localize)(783,"Surround With"),icon:d.Codicon.surroundWith},{kind:k.CodeActionKind.Source,title:(0,I.localize)(784,"Source Action"),icon:d.Codicon.symbolFile},y]);function _(b,p,n){if(!p)return b.map(i=>({kind:"action",item:i,group:y,disabled:!!i.action.disabled,label:i.action.disabled||i.action.title,canPreview:!!i.action.edit?.edits.length}));const o=m.map(i=>({group:i,actions:[]}));for(const i of b){const s=i.action.kind?new E.HierarchicalKind(i.action.kind):E.HierarchicalKind.None;for(const g of o)if(g.group.kind.contains(s)){g.actions.push(i);break}}const t=[];for(const i of o)if(i.actions.length){t.push({kind:"header",group:i.group});for(const s of i.actions){const g=i.group;t.push({kind:"action",item:s,group:s.action.isAI?{title:g.title,kind:g.kind,icon:d.Codicon.sparkle}:g,label:s.action.title,disabled:!!s.action.disabled,keybinding:n(s.action)})}}return t}}),define(ne[110],se([1,0,32,33]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultMenuStyles=e.defaultSelectBoxStyles=e.defaultListStyles=e.defaultBreadcrumbsWidgetStyles=e.defaultCountBadgeStyles=e.defaultFindWidgetStyles=e.defaultInputBoxStyles=e.defaultDialogStyles=e.defaultCheckboxStyles=e.defaultRadioStyles=e.defaultToggleStyles=e.defaultProgressBarStyles=e.defaultButtonStyles=e.defaultKeybindingLabelStyles=void 0,e.getListStyles=E;function I(y,m){const _={...m};for(const b in y){const p=y[b];_[b]=p!==void 0?(0,d.asCssVariable)(p):void 0}return _}e.defaultKeybindingLabelStyles={keybindingLabelBackground:(0,d.asCssVariable)(d.keybindingLabelBackground),keybindingLabelForeground:(0,d.asCssVariable)(d.keybindingLabelForeground),keybindingLabelBorder:(0,d.asCssVariable)(d.keybindingLabelBorder),keybindingLabelBottomBorder:(0,d.asCssVariable)(d.keybindingLabelBottomBorder),keybindingLabelShadow:(0,d.asCssVariable)(d.widgetShadow)},e.defaultButtonStyles={buttonForeground:(0,d.asCssVariable)(d.buttonForeground),buttonSeparator:(0,d.asCssVariable)(d.buttonSeparator),buttonBackground:(0,d.asCssVariable)(d.buttonBackground),buttonHoverBackground:(0,d.asCssVariable)(d.buttonHoverBackground),buttonSecondaryForeground:(0,d.asCssVariable)(d.buttonSecondaryForeground),buttonSecondaryBackground:(0,d.asCssVariable)(d.buttonSecondaryBackground),buttonSecondaryHoverBackground:(0,d.asCssVariable)(d.buttonSecondaryHoverBackground),buttonBorder:(0,d.asCssVariable)(d.buttonBorder)},e.defaultProgressBarStyles={progressBarBackground:(0,d.asCssVariable)(d.progressBarBackground)},e.defaultToggleStyles={inputActiveOptionBorder:(0,d.asCssVariable)(d.inputActiveOptionBorder),inputActiveOptionForeground:(0,d.asCssVariable)(d.inputActiveOptionForeground),inputActiveOptionBackground:(0,d.asCssVariable)(d.inputActiveOptionBackground)},e.defaultRadioStyles={activeForeground:(0,d.asCssVariable)(d.radioActiveForeground),activeBackground:(0,d.asCssVariable)(d.radioActiveBackground),activeBorder:(0,d.asCssVariable)(d.radioActiveBorder),inactiveForeground:(0,d.asCssVariable)(d.radioInactiveForeground),inactiveBackground:(0,d.asCssVariable)(d.radioInactiveBackground),inactiveBorder:(0,d.asCssVariable)(d.radioInactiveBorder),inactiveHoverBackground:(0,d.asCssVariable)(d.radioInactiveHoverBackground)},e.defaultCheckboxStyles={checkboxBackground:(0,d.asCssVariable)(d.checkboxBackground),checkboxBorder:(0,d.asCssVariable)(d.checkboxBorder),checkboxForeground:(0,d.asCssVariable)(d.checkboxForeground)},e.defaultDialogStyles={dialogBackground:(0,d.asCssVariable)(d.editorWidgetBackground),dialogForeground:(0,d.asCssVariable)(d.editorWidgetForeground),dialogShadow:(0,d.asCssVariable)(d.widgetShadow),dialogBorder:(0,d.asCssVariable)(d.contrastBorder),errorIconForeground:(0,d.asCssVariable)(d.problemsErrorIconForeground),warningIconForeground:(0,d.asCssVariable)(d.problemsWarningIconForeground),infoIconForeground:(0,d.asCssVariable)(d.problemsInfoIconForeground),textLinkForeground:(0,d.asCssVariable)(d.textLinkForeground)},e.defaultInputBoxStyles={inputBackground:(0,d.asCssVariable)(d.inputBackground),inputForeground:(0,d.asCssVariable)(d.inputForeground),inputBorder:(0,d.asCssVariable)(d.inputBorder),inputValidationInfoBorder:(0,d.asCssVariable)(d.inputValidationInfoBorder),inputValidationInfoBackground:(0,d.asCssVariable)(d.inputValidationInfoBackground),inputValidationInfoForeground:(0,d.asCssVariable)(d.inputValidationInfoForeground),inputValidationWarningBorder:(0,d.asCssVariable)(d.inputValidationWarningBorder),inputValidationWarningBackground:(0,d.asCssVariable)(d.inputValidationWarningBackground),inputValidationWarningForeground:(0,d.asCssVariable)(d.inputValidationWarningForeground),inputValidationErrorBorder:(0,d.asCssVariable)(d.inputValidationErrorBorder),inputValidationErrorBackground:(0,d.asCssVariable)(d.inputValidationErrorBackground),inputValidationErrorForeground:(0,d.asCssVariable)(d.inputValidationErrorForeground)},e.defaultFindWidgetStyles={listFilterWidgetBackground:(0,d.asCssVariable)(d.listFilterWidgetBackground),listFilterWidgetOutline:(0,d.asCssVariable)(d.listFilterWidgetOutline),listFilterWidgetNoMatchesOutline:(0,d.asCssVariable)(d.listFilterWidgetNoMatchesOutline),listFilterWidgetShadow:(0,d.asCssVariable)(d.listFilterWidgetShadow),inputBoxStyles:e.defaultInputBoxStyles,toggleStyles:e.defaultToggleStyles},e.defaultCountBadgeStyles={badgeBackground:(0,d.asCssVariable)(d.badgeBackground),badgeForeground:(0,d.asCssVariable)(d.badgeForeground),badgeBorder:(0,d.asCssVariable)(d.contrastBorder)},e.defaultBreadcrumbsWidgetStyles={breadcrumbsBackground:(0,d.asCssVariable)(d.breadcrumbsBackground),breadcrumbsForeground:(0,d.asCssVariable)(d.breadcrumbsForeground),breadcrumbsHoverForeground:(0,d.asCssVariable)(d.breadcrumbsFocusForeground),breadcrumbsFocusForeground:(0,d.asCssVariable)(d.breadcrumbsFocusForeground),breadcrumbsFocusAndSelectionForeground:(0,d.asCssVariable)(d.breadcrumbsActiveSelectionForeground)},e.defaultListStyles={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:(0,d.asCssVariable)(d.listFocusBackground),listFocusForeground:(0,d.asCssVariable)(d.listFocusForeground),listFocusOutline:(0,d.asCssVariable)(d.listFocusOutline),listActiveSelectionBackground:(0,d.asCssVariable)(d.listActiveSelectionBackground),listActiveSelectionForeground:(0,d.asCssVariable)(d.listActiveSelectionForeground),listActiveSelectionIconForeground:(0,d.asCssVariable)(d.listActiveSelectionIconForeground),listFocusAndSelectionOutline:(0,d.asCssVariable)(d.listFocusAndSelectionOutline),listFocusAndSelectionBackground:(0,d.asCssVariable)(d.listActiveSelectionBackground),listFocusAndSelectionForeground:(0,d.asCssVariable)(d.listActiveSelectionForeground),listInactiveSelectionBackground:(0,d.asCssVariable)(d.listInactiveSelectionBackground),listInactiveSelectionIconForeground:(0,d.asCssVariable)(d.listInactiveSelectionIconForeground),listInactiveSelectionForeground:(0,d.asCssVariable)(d.listInactiveSelectionForeground),listInactiveFocusBackground:(0,d.asCssVariable)(d.listInactiveFocusBackground),listInactiveFocusOutline:(0,d.asCssVariable)(d.listInactiveFocusOutline),listHoverBackground:(0,d.asCssVariable)(d.listHoverBackground),listHoverForeground:(0,d.asCssVariable)(d.listHoverForeground),listDropOverBackground:(0,d.asCssVariable)(d.listDropOverBackground),listDropBetweenBackground:(0,d.asCssVariable)(d.listDropBetweenBackground),listSelectionOutline:(0,d.asCssVariable)(d.activeContrastBorder),listHoverOutline:(0,d.asCssVariable)(d.activeContrastBorder),treeIndentGuidesStroke:(0,d.asCssVariable)(d.treeIndentGuidesStroke),treeInactiveIndentGuidesStroke:(0,d.asCssVariable)(d.treeInactiveIndentGuidesStroke),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:(0,d.asCssVariable)(d.scrollbarShadow),tableColumnsBorder:(0,d.asCssVariable)(d.tableColumnsBorder),tableOddRowsBackgroundColor:(0,d.asCssVariable)(d.tableOddRowsBackgroundColor)};function E(y){return I(y,e.defaultListStyles)}e.defaultSelectBoxStyles={selectBackground:(0,d.asCssVariable)(d.selectBackground),selectListBackground:(0,d.asCssVariable)(d.selectListBackground),selectForeground:(0,d.asCssVariable)(d.selectForeground),decoratorRightForeground:(0,d.asCssVariable)(d.pickerGroupForeground),selectBorder:(0,d.asCssVariable)(d.selectBorder),focusBorder:(0,d.asCssVariable)(d.focusBorder),listFocusBackground:(0,d.asCssVariable)(d.quickInputListFocusBackground),listInactiveSelectionIconForeground:(0,d.asCssVariable)(d.quickInputListFocusIconForeground),listFocusForeground:(0,d.asCssVariable)(d.quickInputListFocusForeground),listFocusOutline:(0,d.asCssVariableWithDefault)(d.activeContrastBorder,k.Color.transparent.toString()),listHoverBackground:(0,d.asCssVariable)(d.listHoverBackground),listHoverForeground:(0,d.asCssVariable)(d.listHoverForeground),listHoverOutline:(0,d.asCssVariable)(d.activeContrastBorder),selectListBorder:(0,d.asCssVariable)(d.editorWidgetBorder),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},e.defaultMenuStyles={shadowColor:(0,d.asCssVariable)(d.widgetShadow),borderColor:(0,d.asCssVariable)(d.menuBorder),foregroundColor:(0,d.asCssVariable)(d.menuForeground),backgroundColor:(0,d.asCssVariable)(d.menuBackground),selectionForegroundColor:(0,d.asCssVariable)(d.menuSelectionForeground),selectionBackgroundColor:(0,d.asCssVariable)(d.menuSelectionBackground),selectionBorderColor:(0,d.asCssVariable)(d.menuSelectionBorder),separatorColor:(0,d.asCssVariable)(d.menuSeparatorBackground),scrollbarShadow:(0,d.asCssVariable)(d.scrollbarShadow),scrollbarSliderBackground:(0,d.asCssVariable)(d.scrollbarSliderBackground),scrollbarSliderHoverBackground:(0,d.asCssVariable)(d.scrollbarSliderHoverBackground),scrollbarSliderActiveBackground:(0,d.asCssVariable)(d.scrollbarSliderActiveBackground)}}),define(ne[758],se([1,0,5,354,355,254,82,2,48,78,3,7,31,181,110,178]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityProvider=e.OneReferenceRenderer=e.FileReferencesRenderer=e.IdentityProvider=e.StringRepresentationProvider=e.Delegate=e.DataSource=void 0;let c=class{constructor(S){this._resolverService=S}hasChildren(S){return S instanceof s.ReferencesModel||S instanceof s.FileReferences}getChildren(S){if(S instanceof s.ReferencesModel)return S.groups;if(S instanceof s.FileReferences)return S.resolve(this._resolverService).then(L=>L.children);throw new Error("bad tree")}};e.DataSource=c,e.DataSource=c=ke([ce(0,b.ITextModelService)],c);class l{getHeight(){return 23}getTemplateId(S){return S instanceof s.FileReferences?C.id:h.id}}e.Delegate=l;let a=class{constructor(S){this._keybindingService=S}getKeyboardNavigationLabel(S){if(S instanceof s.OneReference){const L=S.parent.getPreview(S)?.preview(S.range);if(L)return L.value}return(0,_.basename)(S.uri)}};e.StringRepresentationProvider=a,e.StringRepresentationProvider=a=ke([ce(0,o.IKeybindingService)],a);class r{getId(S){return S instanceof s.OneReference?S.id:S.uri}}e.IdentityProvider=r;let u=class extends m.Disposable{constructor(S,L){super(),this._labelService=L;const D=document.createElement("div");D.classList.add("reference-file"),this.file=this._register(new E.IconLabel(D,{supportHighlights:!0})),this.badge=new k.CountBadge(d.append(D,d.$(".count")),{},i.defaultCountBadgeStyles),S.appendChild(D)}set(S,L){const D=(0,_.dirname)(S.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(S.uri),this._labelService.getUriLabel(D,{relative:!0}),{title:this._labelService.getUriLabel(S.uri),matches:L});const T=S.children.length;this.badge.setCount(T),T>1?this.badge.setTitleFormat((0,p.localize)(989,"{0} references",T)):this.badge.setTitleFormat((0,p.localize)(990,"{0} reference",T))}};u=ke([ce(1,t.ILabelService)],u);let C=class{static{g=this}static{this.id="FileReferencesRenderer"}constructor(S){this._instantiationService=S,this.templateId=g.id}renderTemplate(S){return this._instantiationService.createInstance(u,S)}renderElement(S,L,D){D.set(S.element,(0,y.createMatches)(S.filterData))}disposeTemplate(S){S.dispose()}};e.FileReferencesRenderer=C,e.FileReferencesRenderer=C=g=ke([ce(0,n.IInstantiationService)],C);class f extends m.Disposable{constructor(S){super(),this.label=this._register(new I.HighlightedLabel(S))}set(S,L){const D=S.parent.getPreview(S)?.preview(S.range);if(!D||!D.value)this.label.set(`${(0,_.basename)(S.uri)}:${S.range.startLineNumber+1}:${S.range.startColumn+1}`);else{const{value:T,highlight:M}=D;L&&!y.FuzzyScore.isDefault(L)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(T,(0,y.createMatches)(L))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(T,[M]))}}}class h{constructor(){this.templateId=h.id}static{this.id="OneReferenceRenderer"}renderTemplate(S){return new f(S)}renderElement(S,L,D){D.set(S.element,S.filterData)}disposeTemplate(S){S.dispose()}}e.OneReferenceRenderer=h;class v{getWidgetAriaLabel(){return(0,p.localize)(991,"References")}getAriaLabel(S){return S.ariaMessage}}e.AccessibilityProvider=v}),define(ne[759],se([1,0,5,206,115,18,26,2,16,30,3,58,31,110,32,306]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionList=e.previewSelectedActionCommand=e.acceptSelectedActionCommand=void 0,e.acceptSelectedActionCommand="acceptSelectedCodeAction",e.previewSelectedActionCommand="previewSelectedCodeAction";class s{get templateId(){return"header"}renderTemplate(f){f.classList.add("group-header");const h=document.createElement("span");return f.append(h),{container:f,text:h}}renderElement(f,h,v){v.text.textContent=f.group?.title??""}disposeTemplate(f){}}let g=class{get templateId(){return"action"}constructor(f,h){this._supportsPreview=f,this._keybindingService=h}renderTemplate(f){f.classList.add(this.templateId);const h=document.createElement("div");h.className="icon",f.append(h);const v=document.createElement("span");v.className="title",f.append(v);const w=new k.KeybindingLabel(f,_.OS);return{container:f,icon:h,text:v,keybinding:w}}renderElement(f,h,v){if(f.group?.icon?(v.icon.className=b.ThemeIcon.asClassName(f.group.icon),f.group.icon.color&&(v.icon.style.color=(0,i.asCssVariable)(f.group.icon.color.id))):(v.icon.className=b.ThemeIcon.asClassName(y.Codicon.lightBulb),v.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!f.item||!f.label)return;v.text.textContent=u(f.label),v.keybinding.set(f.keybinding),d.setVisibility(!!f.keybinding,v.keybinding.element);const w=this._keybindingService.lookupKeybinding(e.acceptSelectedActionCommand)?.getLabel(),S=this._keybindingService.lookupKeybinding(e.previewSelectedActionCommand)?.getLabel();v.container.classList.toggle("option-disabled",f.disabled),f.disabled?v.container.title=f.label:w&&S?this._supportsPreview&&f.canPreview?v.container.title=(0,p.localize)(1492,"{0} to Apply, {1} to Preview",w,S):v.container.title=(0,p.localize)(1493,"{0} to Apply",w):v.container.title=""}disposeTemplate(f){f.keybinding.dispose()}};g=ke([ce(1,o.IKeybindingService)],g);class c extends UIEvent{constructor(){super("acceptSelectedAction")}}class l extends UIEvent{constructor(){super("previewSelectedAction")}}function a(C){if(C.kind==="action")return C.label}let r=class extends m.Disposable{constructor(f,h,v,w,S,L){super(),this._delegate=w,this._contextViewService=S,this._keybindingService=L,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new E.CancellationTokenSource),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const D={getHeight:T=>T.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:T=>T.kind};this._list=this._register(new I.List(f,this.domNode,D,[new g(h,this._keybindingService),new s],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:a},accessibilityProvider:{getAriaLabel:T=>{if(T.kind==="action"){let M=T.label?u(T?.label):"";return T.disabled&&(M=(0,p.localize)(1494,"{0}, Disabled Reason: {1}",M,T.disabled)),M}return null},getWidgetAriaLabel:()=>(0,p.localize)(1495,"Action Widget"),getRole:T=>T.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(t.defaultListStyles),this._register(this._list.onMouseClick(T=>this.onListClick(T))),this._register(this._list.onMouseOver(T=>this.onListHover(T))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(T=>this.onListSelection(T))),this._allMenuItems=v,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(f){return!f.disabled&&f.kind==="action"}hide(f){this._delegate.onHide(f),this.cts.cancel(),this._contextViewService.hideContextView()}layout(f){const h=this._allMenuItems.filter(T=>T.kind==="header").length,w=this._allMenuItems.length*this._actionLineHeight+h*this._headerLineHeight-h*this._actionLineHeight;this._list.layout(w);let S=f;if(this._allMenuItems.length>=50)S=380;else{const T=this._allMenuItems.map((M,A)=>{const P=this.domNode.ownerDocument.getElementById(this._list.getElementID(A));if(P){P.style.width="auto";const N=P.getBoundingClientRect().width;return P.style.width="",N}return 0});S=Math.max(...T,f)}const D=Math.min(w,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(D,S),this.domNode.style.height=`${D}px`,this._list.domFocus(),S}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(f){const h=this._list.getFocus();if(h.length===0)return;const v=h[0],w=this._list.element(v);if(!this.focusCondition(w))return;const S=f?new l:new c;this._list.setSelection([v],S)}onListSelection(f){if(!f.elements.length)return;const h=f.elements[0];h.item&&this.focusCondition(h)?this._delegate.onSelect(h.item,f.browserEvent instanceof l):this._list.setSelection([])}onFocus(){const f=this._list.getFocus();if(f.length===0)return;const h=f[0],v=this._list.element(h);this._delegate.onFocus?.(v.item)}async onListHover(f){const h=f.element;if(h&&h.item&&this.focusCondition(h)){if(this._delegate.onHover&&!h.disabled&&h.kind==="action"){const v=await this._delegate.onHover(h.item,this.cts.token);h.canPreview=v?v.canPreview:void 0}f.index&&this._list.splice(f.index,1,[h])}this._list.setFocus(typeof f.index=="number"?[f.index]:[])}onListClick(f){f.element&&this.focusCondition(f.element)&&this._list.setFocus([])}};e.ActionList=r,e.ActionList=r=ke([ce(4,n.IContextViewService),ce(5,o.IKeybindingService)],r);function u(C){return C.replace(/\r\n|\r|\n/g," ")}}),define(ne[760],se([1,0,5,87,2,3,759,29,12,58,49,7,32,306]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IActionWidgetService=void 0,(0,o.registerColor)("actionBar.toggledBackground",o.inputActiveOptionBackground,(0,E.localize)(1496,"Background color for toggled action items in action bar."));const t={Visible:new _.RawContextKey("codeActionMenuVisible",!1,(0,E.localize)(1497,"Whether the action widget list is visible"))};e.IActionWidgetService=(0,n.createDecorator)("actionWidgetService");let i=class extends I.Disposable{get isVisible(){return t.Visible.getValue(this._contextKeyService)||!1}constructor(c,l,a){super(),this._contextViewService=c,this._contextKeyService=l,this._instantiationService=a,this._list=this._register(new I.MutableDisposable)}show(c,l,a,r,u,C,f){const h=t.Visible.bindTo(this._contextKeyService),v=this._instantiationService.createInstance(y.ActionList,c,l,a,r);this._contextViewService.showContextView({getAnchor:()=>u,render:w=>(h.set(!0),this._renderWidget(w,v,f??[])),onHide:w=>{h.reset(),this._onWidgetClosed(w)}},C,!1)}acceptSelected(c){this._list.value?.acceptSelected(c)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}hide(c){this._list.value?.hide(c),this._list.clear()}_renderWidget(c,l,a){const r=document.createElement("div");if(r.classList.add("action-widget"),c.appendChild(r),this._list.value=l,this._list.value)r.appendChild(this._list.value.domNode);else throw new Error("List has no value");const u=new I.DisposableStore,C=document.createElement("div"),f=c.appendChild(C);f.classList.add("context-view-block"),u.add(d.addDisposableListener(f,d.EventType.MOUSE_DOWN,D=>D.stopPropagation()));const h=document.createElement("div"),v=c.appendChild(h);v.classList.add("context-view-pointerBlock"),u.add(d.addDisposableListener(v,d.EventType.POINTER_MOVE,()=>v.remove())),u.add(d.addDisposableListener(v,d.EventType.MOUSE_DOWN,()=>v.remove()));let w=0;if(a.length){const D=this._createActionBar(".action-widget-action-bar",a);D&&(r.appendChild(D.getContainer().parentElement),u.add(D),w=D.getContainer().offsetWidth)}const S=this._list.value?.layout(w);r.style.width=`${S}px`;const L=u.add(d.trackFocus(c));return u.add(L.onDidBlur(()=>this.hide(!0))),u}_createActionBar(c,l){if(!l.length)return;const a=d.$(c),r=new k.ActionBar(a);return r.push(l,{icon:!1,label:!0}),r}_onWidgetClosed(c){this._list.value?.hide(c)}};i=ke([ce(0,b.IContextViewService),ce(1,_.IContextKeyService),ce(2,n.IInstantiationService)],i),(0,p.registerSingleton)(e.IActionWidgetService,i,1);const s=1100;(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"hideCodeActionWidget",title:(0,E.localize2)(1498,"Hide action widget"),precondition:t.Visible,keybinding:{weight:s,primary:9,secondary:[1033]}})}run(g){g.get(e.IActionWidgetService).hide(!0)}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"selectPrevCodeAction",title:(0,E.localize2)(1499,"Select previous action"),precondition:t.Visible,keybinding:{weight:s,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.focusPrevious()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"selectNextCodeAction",title:(0,E.localize2)(1500,"Select next action"),precondition:t.Visible,keybinding:{weight:s,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.focusNext()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:y.acceptSelectedActionCommand,title:(0,E.localize2)(1501,"Accept selected action"),precondition:t.Visible,keybinding:{weight:s,primary:3,secondary:[2137]}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.acceptSelected()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:y.previewSelectedActionCommand,title:(0,E.localize2)(1502,"Preview selected action"),precondition:t.Visible,keybinding:{weight:s,primary:2051}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.acceptSelected(!0)}})}),define(ne[761],se([1,0,5,77,642,41,8,2,110]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuHandler=void 0;class b{constructor(n,o,t,i){this.contextViewService=n,this.telemetryService=o,this.notificationService=t,this.keybindingService=i,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(n){this.options=n}showContextMenu(n){const o=n.getActions();if(!o.length)return;this.focusToReturn=(0,d.getActiveElement)();let t;const i=(0,d.isHTMLElement)(n.domForShadowRoot)?n.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>n.getAnchor(),canRelayout:!1,anchorAlignment:n.anchorAlignment,anchorAxisAlignment:n.anchorAxisAlignment,render:s=>{this.lastContainer=s;const g=n.getMenuClassName?n.getMenuClassName():"";g&&(s.className+=" "+g),this.options.blockMouse&&(this.block=s.appendChild((0,d.$)(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",this.blockDisposable?.dispose(),this.blockDisposable=(0,d.addDisposableListener)(this.block,d.EventType.MOUSE_DOWN,r=>r.stopPropagation()));const c=new m.DisposableStore,l=n.actionRunner||new E.ActionRunner;l.onWillRun(r=>this.onActionRun(r,!n.skipTelemetry),this,c),l.onDidRun(this.onDidActionRun,this,c),t=new I.Menu(s,o,{actionViewItemProvider:n.getActionViewItem,context:n.getActionsContext?n.getActionsContext():null,actionRunner:l,getKeyBinding:n.getKeyBinding?n.getKeyBinding:r=>this.keybindingService.lookupKeybinding(r.id)},_.defaultMenuStyles),t.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,c),t.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,c);const a=(0,d.getWindow)(s);return c.add((0,d.addDisposableListener)(a,d.EventType.BLUR,()=>this.contextViewService.hideContextView(!0))),c.add((0,d.addDisposableListener)(a,d.EventType.MOUSE_DOWN,r=>{if(r.defaultPrevented)return;const u=new k.StandardMouseEvent(a,r);let C=u.target;if(!u.rightButton){for(;C;){if(C===s)return;C=C.parentElement}this.contextViewService.hideContextView(!0)}})),(0,m.combinedDisposable)(c,t)},focus:()=>{t?.focus(!!n.autoSelectFirstItem)},onHide:s=>{n.onHide?.(!!s),this.block&&(this.block.remove(),this.block=null),this.blockDisposable?.dispose(),this.blockDisposable=null,this.lastContainer&&((0,d.getActiveElement)()===this.lastContainer||(0,d.isAncestor)((0,d.getActiveElement)(),this.lastContainer))&&this.focusToReturn?.focus(),this.lastContainer=null}},i,!!i)}onActionRun(n,o){o&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:n.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(n){n.error&&!(0,y.isCancellationError)(n.error)&&this.notificationService.error(n.error)}}e.ContextMenuHandler=b}),define(ne[216],se([1,0,5,637,115,638,176,645,644,360,6,2,3,28,109,12,179,58,7,31,38,110]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkbenchCompressibleAsyncDataTree=e.WorkbenchAsyncDataTree=e.WorkbenchDataTree=e.WorkbenchCompressibleObjectTree=e.WorkbenchObjectTree=e.WorkbenchTable=e.WorkbenchPagedList=e.WorkbenchList=e.WorkbenchTreeFindOpen=e.WorkbenchTreeElementHasChild=e.WorkbenchTreeElementCanExpand=e.WorkbenchTreeElementHasParent=e.WorkbenchTreeElementCanCollapse=e.WorkbenchListSupportsFind=e.WorkbenchListSelectionNavigation=e.WorkbenchListMultiSelection=e.WorkbenchListDoubleSelection=e.WorkbenchListHasSelectionOrFocus=e.WorkbenchListFocusContextKey=e.WorkbenchListSupportsMultiSelectContextKey=e.WorkbenchTreeStickyScrollFocused=e.RawWorkbenchListFocusContextKey=e.WorkbenchListScrollAtBottomContextKey=e.WorkbenchListScrollAtTopContextKey=e.RawWorkbenchListScrollAtBoundaryContextKey=e.ListService=e.IListService=void 0,e.IListService=(0,l.createDecorator)("listService");class C{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new n.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(le){le!==this._lastFocusedWidget&&(this._lastFocusedWidget?.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=le,this._lastFocusedWidget?.getHTMLElement().classList.add("last-focused"))}register(le,me){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new I.DefaultStyleController((0,d.createStyleSheet)(),"").style(u.defaultListStyles)),this.lists.some(ye=>ye.widget===le))throw new Error("Cannot register the same widget multiple times");const Ce={widget:le,extraContextKeys:me};return this.lists.push(Ce),(0,d.isActiveElement)(le.getHTMLElement())&&this.setLastFocusedList(le),(0,n.combinedDisposable)(le.onDidFocus(()=>this.setLastFocusedList(le)),(0,n.toDisposable)(()=>this.lists.splice(this.lists.indexOf(Ce),1)),le.onDidDispose(()=>{this.lists=this.lists.filter(ye=>ye!==Ce),this._lastFocusedWidget===le&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}e.ListService=C,e.RawWorkbenchListScrollAtBoundaryContextKey=new s.RawContextKey("listScrollAtBoundary","none"),e.WorkbenchListScrollAtTopContextKey=s.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("top"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.WorkbenchListScrollAtBottomContextKey=s.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("bottom"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.RawWorkbenchListFocusContextKey=new s.RawContextKey("listFocus",!0),e.WorkbenchTreeStickyScrollFocused=new s.RawContextKey("treestickyScrollFocused",!1),e.WorkbenchListSupportsMultiSelectContextKey=new s.RawContextKey("listSupportsMultiselect",!0),e.WorkbenchListFocusContextKey=s.ContextKeyExpr.and(e.RawWorkbenchListFocusContextKey,s.ContextKeyExpr.not(g.InputFocusedContextKey),e.WorkbenchTreeStickyScrollFocused.negate()),e.WorkbenchListHasSelectionOrFocus=new s.RawContextKey("listHasSelectionOrFocus",!1),e.WorkbenchListDoubleSelection=new s.RawContextKey("listDoubleSelection",!1),e.WorkbenchListMultiSelection=new s.RawContextKey("listMultiSelection",!1),e.WorkbenchListSelectionNavigation=new s.RawContextKey("listSelectionNavigation",!1),e.WorkbenchListSupportsFind=new s.RawContextKey("listSupportsFind",!0),e.WorkbenchTreeElementCanCollapse=new s.RawContextKey("treeElementCanCollapse",!1),e.WorkbenchTreeElementHasParent=new s.RawContextKey("treeElementHasParent",!1),e.WorkbenchTreeElementCanExpand=new s.RawContextKey("treeElementCanExpand",!1),e.WorkbenchTreeElementHasChild=new s.RawContextKey("treeElementHasChild",!1),e.WorkbenchTreeFindOpen=new s.RawContextKey("treeFindOpen",!1);const f="listTypeNavigationMode",h="listAutomaticKeyboardNavigation";function v(re,le){const me=re.createScoped(le.getHTMLElement());return e.RawWorkbenchListFocusContextKey.bindTo(me),me}function w(re,le){const me=e.RawWorkbenchListScrollAtBoundaryContextKey.bindTo(re),Ce=()=>{const ye=le.scrollTop===0,Le=le.scrollHeight-le.renderHeight-le.scrollTop<1;ye&&Le?me.set("both"):ye?me.set("top"):Le?me.set("bottom"):me.set("none")};return Ce(),le.onDidScroll(Ce)}const S="workbench.list.multiSelectModifier",L="workbench.list.openMode",D="workbench.list.horizontalScrolling",T="workbench.list.defaultFindMode",M="workbench.list.typeNavigationMode",A="workbench.list.keyboardNavigation",P="workbench.list.scrollByPage",N="workbench.list.defaultFindMatchType",O="workbench.tree.indent",F="workbench.tree.renderIndentGuides",x="workbench.list.smoothScrolling",W="workbench.list.mouseWheelScrollSensitivity",V="workbench.list.fastScrollSensitivity",q="workbench.tree.expandMode",H="workbench.tree.enableStickyScroll",z="workbench.tree.stickyScrollMaxItemCount";function U(re){return re.getValue(S)==="alt"}class j extends n.Disposable{constructor(le){super(),this.configurationService=le,this.useAltAsMultipleSelectionModifier=U(le),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(le=>{le.affectsConfiguration(S)&&(this.useAltAsMultipleSelectionModifier=U(this.configurationService))}))}isSelectionSingleChangeEvent(le){return this.useAltAsMultipleSelectionModifier?le.browserEvent.altKey:(0,I.isSelectionSingleChangeEvent)(le)}isSelectionRangeChangeEvent(le){return(0,I.isSelectionRangeChangeEvent)(le)}}function Y(re,le){const me=re.get(t.IConfigurationService),Ce=re.get(a.IKeybindingService),ye=new n.DisposableStore;return[{...le,keyboardNavigationDelegate:{mightProducePrintableCharacter(Ee){return Ce.mightProducePrintableCharacter(Ee)}},smoothScrolling:!!me.getValue(x),mouseWheelScrollSensitivity:me.getValue(W),fastScrollSensitivity:me.getValue(V),multipleSelectionController:le.multipleSelectionController??ye.add(new j(me)),keyboardNavigationEventFilter:pe(Ce),scrollByPage:!!me.getValue(P)},ye]}let G=class extends I.List{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const Ke=typeof Le.horizontalScrolling<"u"?Le.horizontalScrolling:!!Ae.getValue(D),[ze,Ge]=Ne.invokeFunction(Y,Le);super(le,me,Ce,ye,{keyboardSupport:!1,...ze,horizontalScrolling:Ke}),this.disposables.add(Ge),this.contextKeyService=v(Ee,this),this.disposables.add(w(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Le.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Le.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=Le.horizontalScrolling,this._useAltAsMultipleSelectionModifier=U(Ae),this.disposables.add(this.contextKeyService),this.disposables.add(Me.register(this)),this.updateStyles(Le.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const Oe=this.getSelection(),Fe=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(Oe.length>0||Fe.length>0),this.listMultiSelection.set(Oe.length>1),this.listDoubleSelection.set(Oe.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const Oe=this.getSelection(),Fe=this.getFocus();this.listHasSelectionOrFocus.set(Oe.length>0||Fe.length>0)})),this.disposables.add(Ae.onDidChangeConfiguration(Oe=>{Oe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ae));let Fe={};if(Oe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const fe=!!Ae.getValue(D);Fe={...Fe,horizontalScrolling:fe}}if(Oe.affectsConfiguration(P)){const fe=!!Ae.getValue(P);Fe={...Fe,scrollByPage:fe}}if(Oe.affectsConfiguration(x)){const fe=!!Ae.getValue(x);Fe={...Fe,smoothScrolling:fe}}if(Oe.affectsConfiguration(W)){const fe=Ae.getValue(W);Fe={...Fe,mouseWheelScrollSensitivity:fe}}if(Oe.affectsConfiguration(V)){const fe=Ae.getValue(V);Fe={...Fe,fastScrollSensitivity:fe}}Object.keys(Fe).length>0&&this.updateOptions(Fe)})),this.navigator=new ie(this,{configurationService:Ae,...Le}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}};e.WorkbenchList=G,e.WorkbenchList=G=ke([ce(5,s.IContextKeyService),ce(6,e.IListService),ce(7,t.IConfigurationService),ce(8,l.IInstantiationService)],G);let K=class extends k.PagedList{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const Ke=typeof Le.horizontalScrolling<"u"?Le.horizontalScrolling:!!Ae.getValue(D),[ze,Ge]=Ne.invokeFunction(Y,Le);super(le,me,Ce,ye,{keyboardSupport:!1,...ze,horizontalScrolling:Ke}),this.disposables=new n.DisposableStore,this.disposables.add(Ge),this.contextKeyService=v(Ee,this),this.disposables.add(w(this.contextKeyService,this.widget)),this.horizontalScrolling=Le.horizontalScrolling,this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Le.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Le.selectionNavigation),this._useAltAsMultipleSelectionModifier=U(Ae),this.disposables.add(this.contextKeyService),this.disposables.add(Me.register(this)),this.updateStyles(Le.overrideStyles),this.disposables.add(Ae.onDidChangeConfiguration(Oe=>{Oe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ae));let Fe={};if(Oe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const fe=!!Ae.getValue(D);Fe={...Fe,horizontalScrolling:fe}}if(Oe.affectsConfiguration(P)){const fe=!!Ae.getValue(P);Fe={...Fe,scrollByPage:fe}}if(Oe.affectsConfiguration(x)){const fe=!!Ae.getValue(x);Fe={...Fe,smoothScrolling:fe}}if(Oe.affectsConfiguration(W)){const fe=Ae.getValue(W);Fe={...Fe,mouseWheelScrollSensitivity:fe}}if(Oe.affectsConfiguration(V)){const fe=Ae.getValue(V);Fe={...Fe,fastScrollSensitivity:fe}}Object.keys(Fe).length>0&&this.updateOptions(Fe)})),this.navigator=new ie(this,{configurationService:Ae,...Le}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchPagedList=K,e.WorkbenchPagedList=K=ke([ce(5,s.IContextKeyService),ce(6,e.IListService),ce(7,t.IConfigurationService),ce(8,l.IInstantiationService)],K);let R=class extends E.Table{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const ze=typeof Ee.horizontalScrolling<"u"?Ee.horizontalScrolling:!!Ne.getValue(D),[Ge,it]=Ke.invokeFunction(Y,Ee);super(le,me,Ce,ye,Le,{keyboardSupport:!1,...Ge,horizontalScrolling:ze}),this.disposables.add(it),this.contextKeyService=v(Me,this),this.disposables.add(w(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Ee.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Ee.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=Ee.horizontalScrolling,this._useAltAsMultipleSelectionModifier=U(Ne),this.disposables.add(this.contextKeyService),this.disposables.add(Ae.register(this)),this.updateStyles(Ee.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const Fe=this.getSelection(),fe=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(Fe.length>0||fe.length>0),this.listMultiSelection.set(Fe.length>1),this.listDoubleSelection.set(Fe.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const Fe=this.getSelection(),fe=this.getFocus();this.listHasSelectionOrFocus.set(Fe.length>0||fe.length>0)})),this.disposables.add(Ne.onDidChangeConfiguration(Fe=>{Fe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ne));let fe={};if(Fe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const _e=!!Ne.getValue(D);fe={...fe,horizontalScrolling:_e}}if(Fe.affectsConfiguration(P)){const _e=!!Ne.getValue(P);fe={...fe,scrollByPage:_e}}if(Fe.affectsConfiguration(x)){const _e=!!Ne.getValue(x);fe={...fe,smoothScrolling:_e}}if(Fe.affectsConfiguration(W)){const _e=Ne.getValue(W);fe={...fe,mouseWheelScrollSensitivity:_e}}if(Fe.affectsConfiguration(V)){const _e=Ne.getValue(V);fe={...fe,fastScrollSensitivity:_e}}Object.keys(fe).length>0&&this.updateOptions(fe)})),this.navigator=new ue(this,{configurationService:Ne,...Ee}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchTable=R,e.WorkbenchTable=R=ke([ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService),ce(9,l.IInstantiationService)],R);class J extends n.Disposable{constructor(le,me){super(),this.widget=le,this._onDidOpen=this._register(new p.Emitter),this.onDidOpen=this._onDidOpen.event,this._register(p.Event.filter(this.widget.onDidChangeSelection,Ce=>(0,d.isKeyboardEvent)(Ce.browserEvent))(Ce=>this.onSelectionFromKeyboard(Ce))),this._register(this.widget.onPointer(Ce=>this.onPointer(Ce.element,Ce.browserEvent))),this._register(this.widget.onMouseDblClick(Ce=>this.onMouseDblClick(Ce.element,Ce.browserEvent))),typeof me?.openOnSingleClick!="boolean"&&me?.configurationService?(this.openOnSingleClick=me?.configurationService.getValue(L)!=="doubleClick",this._register(me?.configurationService.onDidChangeConfiguration(Ce=>{Ce.affectsConfiguration(L)&&(this.openOnSingleClick=me?.configurationService.getValue(L)!=="doubleClick")}))):this.openOnSingleClick=me?.openOnSingleClick??!0}onSelectionFromKeyboard(le){if(le.elements.length!==1)return;const me=le.browserEvent,Ce=typeof me.preserveFocus=="boolean"?me.preserveFocus:!0,ye=typeof me.pinned=="boolean"?me.pinned:!Ce;this._open(this.getSelectedElement(),Ce,ye,!1,le.browserEvent)}onPointer(le,me){if(!this.openOnSingleClick||me.detail===2)return;const ye=me.button===1,Le=!0,Ee=ye,Me=me.ctrlKey||me.metaKey||me.altKey;this._open(le,Le,Ee,Me,me)}onMouseDblClick(le,me){if(!me)return;const Ce=me.target;if(Ce.classList.contains("monaco-tl-twistie")||Ce.classList.contains("monaco-icon-label")&&Ce.classList.contains("folder-icon")&&me.offsetX<16)return;const Le=!1,Ee=!0,Me=me.ctrlKey||me.metaKey||me.altKey;this._open(le,Le,Ee,Me,me)}_open(le,me,Ce,ye,Le){le&&this._onDidOpen.fire({editorOptions:{preserveFocus:me,pinned:Ce,revealIfVisible:!0},sideBySide:ye,element:le,browserEvent:Le})}}class ie extends J{constructor(le,me){super(le,me),this.widget=le}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class ue extends J{constructor(le,me){super(le,me)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class he extends J{constructor(le,me){super(le,me)}getSelectedElement(){return this.widget.getSelection()[0]??void 0}}function pe(re){let le=!1;return me=>{if(me.toKeyCodeChord().isModifierKey())return!1;if(le)return le=!1,!1;const Ce=re.softDispatch(me,me.target);return Ce.kind===1?(le=!0,!1):(le=!1,Ce.kind===0)}}let ae=class extends b.ObjectTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const{options:Ke,getTypeNavigationMode:ze,disposable:Ge}=Ee.invokeFunction(Q,Le);super(le,me,Ce,ye,Ke),this.disposables.add(Ge),this.internals=new Z(this,Le,ze,Le.overrideStyles,Me,Ae,Ne),this.disposables.add(this.internals)}updateOptions(le){super.updateOptions(le),this.internals.updateOptions(le)}};e.WorkbenchObjectTree=ae,e.WorkbenchObjectTree=ae=ke([ce(5,l.IInstantiationService),ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService)],ae);let ee=class extends b.CompressibleObjectTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const{options:Ke,getTypeNavigationMode:ze,disposable:Ge}=Ee.invokeFunction(Q,Le);super(le,me,Ce,ye,Ke),this.disposables.add(Ge),this.internals=new Z(this,Le,ze,Le.overrideStyles,Me,Ae,Ne),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchCompressibleObjectTree=ee,e.WorkbenchCompressibleObjectTree=ee=ke([ce(5,l.IInstantiationService),ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService)],ee);let de=class extends _.DataTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const{options:ze,getTypeNavigationMode:Ge,disposable:it}=Me.invokeFunction(Q,Ee);super(le,me,Ce,ye,Le,ze),this.disposables.add(it),this.internals=new Z(this,Ee,Ge,Ee.overrideStyles,Ae,Ne,Ke),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles!==void 0&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchDataTree=de,e.WorkbenchDataTree=de=ke([ce(6,l.IInstantiationService),ce(7,s.IContextKeyService),ce(8,e.IListService),ce(9,t.IConfigurationService)],de);let ge=class extends m.AsyncDataTree{get onDidOpen(){return this.internals.onDidOpen}constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const{options:ze,getTypeNavigationMode:Ge,disposable:it}=Me.invokeFunction(Q,Ee);super(le,me,Ce,ye,Le,ze),this.disposables.add(it),this.internals=new Z(this,Ee,Ge,Ee.overrideStyles,Ae,Ne,Ke),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchAsyncDataTree=ge,e.WorkbenchAsyncDataTree=ge=ke([ce(6,l.IInstantiationService),ce(7,s.IContextKeyService),ce(8,e.IListService),ce(9,t.IConfigurationService)],ge);let X=class extends m.CompressibleAsyncDataTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke,ze){const{options:Ge,getTypeNavigationMode:it,disposable:Oe}=Ae.invokeFunction(Q,Me);super(le,me,Ce,ye,Le,Ee,Ge),this.disposables.add(Oe),this.internals=new Z(this,Me,it,Me.overrideStyles,Ne,Ke,ze),this.disposables.add(this.internals)}updateOptions(le){super.updateOptions(le),this.internals.updateOptions(le)}};e.WorkbenchCompressibleAsyncDataTree=X,e.WorkbenchCompressibleAsyncDataTree=X=ke([ce(7,l.IInstantiationService),ce(8,s.IContextKeyService),ce(9,e.IListService),ce(10,t.IConfigurationService)],X);function B(re){const le=re.getValue(T);if(le==="highlight")return y.TreeFindMode.Highlight;if(le==="filter")return y.TreeFindMode.Filter;const me=re.getValue(A);if(me==="simple"||me==="highlight")return y.TreeFindMode.Highlight;if(me==="filter")return y.TreeFindMode.Filter}function $(re){const le=re.getValue(N);if(le==="fuzzy")return y.TreeFindMatchType.Fuzzy;if(le==="contiguous")return y.TreeFindMatchType.Contiguous}function Q(re,le){const me=re.get(t.IConfigurationService),Ce=re.get(c.IContextViewService),ye=re.get(s.IContextKeyService),Le=re.get(l.IInstantiationService),Ee=()=>{const Ge=ye.getContextKeyValue(f);if(Ge==="automatic")return I.TypeNavigationMode.Automatic;if(Ge==="trigger"||ye.getContextKeyValue(h)===!1)return I.TypeNavigationMode.Trigger;const Oe=me.getValue(M);if(Oe==="automatic")return I.TypeNavigationMode.Automatic;if(Oe==="trigger")return I.TypeNavigationMode.Trigger},Me=le.horizontalScrolling!==void 0?le.horizontalScrolling:!!me.getValue(D),[Ae,Ne]=Le.invokeFunction(Y,le),Ke=le.paddingBottom,ze=le.renderIndentGuides!==void 0?le.renderIndentGuides:me.getValue(F);return{getTypeNavigationMode:Ee,disposable:Ne,options:{keyboardSupport:!1,...Ae,indent:typeof me.getValue(O)=="number"?me.getValue(O):void 0,renderIndentGuides:ze,smoothScrolling:!!me.getValue(x),defaultFindMode:B(me),defaultFindMatchType:$(me),horizontalScrolling:Me,scrollByPage:!!me.getValue(P),paddingBottom:Ke,hideTwistiesOfChildlessElements:le.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:le.expandOnlyOnTwistieClick??me.getValue(q)==="doubleClick",contextViewProvider:Ce,findWidgetStyles:u.defaultFindWidgetStyles,enableStickyScroll:!!me.getValue(H),stickyScrollMaxItemCount:Number(me.getValue(z))}}}let Z=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(le,me,Ce,ye,Le,Ee,Me){this.tree=le,this.disposables=[],this.contextKeyService=v(Le,le),this.disposables.push(w(this.contextKeyService,le)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(me.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!me.selectionNavigation),this.listSupportFindWidget=e.WorkbenchListSupportsFind.bindTo(this.contextKeyService),this.listSupportFindWidget.set(me.findWidgetEnabled??!0),this.hasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.treeElementCanCollapse=e.WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService),this.treeElementHasParent=e.WorkbenchTreeElementHasParent.bindTo(this.contextKeyService),this.treeElementCanExpand=e.WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService),this.treeElementHasChild=e.WorkbenchTreeElementHasChild.bindTo(this.contextKeyService),this.treeFindOpen=e.WorkbenchTreeFindOpen.bindTo(this.contextKeyService),this.treeStickyScrollFocused=e.WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=U(Me),this.updateStyleOverrides(ye);const Ne=()=>{const ze=le.getFocus()[0];if(!ze)return;const Ge=le.getNode(ze);this.treeElementCanCollapse.set(Ge.collapsible&&!Ge.collapsed),this.treeElementHasParent.set(!!le.getParentElement(ze)),this.treeElementCanExpand.set(Ge.collapsible&&Ge.collapsed),this.treeElementHasChild.set(!!le.getFirstElementChild(ze))},Ke=new Set;Ke.add(f),Ke.add(h),this.disposables.push(this.contextKeyService,Ee.register(le),le.onDidChangeSelection(()=>{const ze=le.getSelection(),Ge=le.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(ze.length>0||Ge.length>0),this.hasMultiSelection.set(ze.length>1),this.hasDoubleSelection.set(ze.length===2)})}),le.onDidChangeFocus(()=>{const ze=le.getSelection(),Ge=le.getFocus();this.hasSelectionOrFocus.set(ze.length>0||Ge.length>0),Ne()}),le.onDidChangeCollapseState(Ne),le.onDidChangeModel(Ne),le.onDidChangeFindOpenState(ze=>this.treeFindOpen.set(ze)),le.onDidChangeStickyScrollFocused(ze=>this.treeStickyScrollFocused.set(ze)),Me.onDidChangeConfiguration(ze=>{let Ge={};if(ze.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Me)),ze.affectsConfiguration(O)){const it=Me.getValue(O);Ge={...Ge,indent:it}}if(ze.affectsConfiguration(F)&&me.renderIndentGuides===void 0){const it=Me.getValue(F);Ge={...Ge,renderIndentGuides:it}}if(ze.affectsConfiguration(x)){const it=!!Me.getValue(x);Ge={...Ge,smoothScrolling:it}}if(ze.affectsConfiguration(T)||ze.affectsConfiguration(A)){const it=B(Me);Ge={...Ge,defaultFindMode:it}}if(ze.affectsConfiguration(M)||ze.affectsConfiguration(A)){const it=Ce();Ge={...Ge,typeNavigationMode:it}}if(ze.affectsConfiguration(N)){const it=$(Me);Ge={...Ge,defaultFindMatchType:it}}if(ze.affectsConfiguration(D)&&me.horizontalScrolling===void 0){const it=!!Me.getValue(D);Ge={...Ge,horizontalScrolling:it}}if(ze.affectsConfiguration(P)){const it=!!Me.getValue(P);Ge={...Ge,scrollByPage:it}}if(ze.affectsConfiguration(q)&&me.expandOnlyOnTwistieClick===void 0&&(Ge={...Ge,expandOnlyOnTwistieClick:Me.getValue(q)==="doubleClick"}),ze.affectsConfiguration(H)){const it=Me.getValue(H);Ge={...Ge,enableStickyScroll:it}}if(ze.affectsConfiguration(z)){const it=Math.max(1,Me.getValue(z));Ge={...Ge,stickyScrollMaxItemCount:it}}if(ze.affectsConfiguration(W)){const it=Me.getValue(W);Ge={...Ge,mouseWheelScrollSensitivity:it}}if(ze.affectsConfiguration(V)){const it=Me.getValue(V);Ge={...Ge,fastScrollSensitivity:it}}Object.keys(Ge).length>0&&le.updateOptions(Ge)}),this.contextKeyService.onDidChangeContext(ze=>{ze.affectsSome(Ke)&&le.updateOptions({typeNavigationMode:Ce()})})),this.navigator=new he(le,{configurationService:Me,...me}),this.disposables.push(this.navigator)}updateOptions(le){le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyleOverrides(le){this.tree.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables=(0,n.dispose)(this.disposables)}};Z=ke([ce(4,s.IContextKeyService),ce(5,e.IListService),ce(6,t.IConfigurationService)],Z),r.Registry.as(i.Extensions.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,o.localize)(1542,"Workbench"),type:"object",properties:{[S]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,o.localize)(1543,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,o.localize)(1544,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,o.localize)(1545,"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[L]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,o.localize)(1546,"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[D]:{type:"boolean",default:!1,description:(0,o.localize)(1547,"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[P]:{type:"boolean",default:!1,description:(0,o.localize)(1548,"Controls whether clicks in the scrollbar scroll page by page.")},[O]:{type:"number",default:8,minimum:4,maximum:40,description:(0,o.localize)(1549,"Controls tree indentation in pixels.")},[F]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,o.localize)(1550,"Controls whether the tree should render indent guides.")},[x]:{type:"boolean",default:!1,description:(0,o.localize)(1551,"Controls whether lists and trees have smooth scrolling.")},[W]:{type:"number",default:1,markdownDescription:(0,o.localize)(1552,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[V]:{type:"number",default:5,markdownDescription:(0,o.localize)(1553,"Scrolling speed multiplier when pressing `Alt`.")},[T]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,o.localize)(1554,"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),(0,o.localize)(1555,"Filter elements when searching.")],default:"highlight",description:(0,o.localize)(1556,"Controls the default find mode for lists and trees in the workbench.")},[A]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,o.localize)(1557,"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,o.localize)(1558,"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,o.localize)(1559,"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,o.localize)(1560,"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:(0,o.localize)(1561,"Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[N]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[(0,o.localize)(1562,"Use fuzzy matching when searching."),(0,o.localize)(1563,"Use contiguous matching when searching.")],default:"fuzzy",description:(0,o.localize)(1564,"Controls the type of matching used when searching lists and trees in the workbench.")},[q]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,o.localize)(1565,"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[H]:{type:"boolean",default:!0,description:(0,o.localize)(1566,"Controls whether sticky scrolling is enabled in trees.")},[z]:{type:"number",minimum:1,default:7,markdownDescription:(0,o.localize)(1567,"Controls the number of sticky elements displayed in the tree when {0} is enabled.","`#workbench.tree.enableStickyScroll#`")},[M]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:(0,o.localize)(1568,"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}})}),define(ne[71],se([1,0,14,26,191,30,6,19,22,3,273,38]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.spinningLoading=e.syncing=e.gotoNextLocation=e.gotoPreviousLocation=e.widgetClose=e.iconsSchemaId=e.IconFontDefinition=e.IconContribution=e.Extensions=void 0,e.registerIcon=g,e.getIconRegistry=c,e.Extensions={IconContribution:"base.contributions.icons"};var o;(function(u){function C(f,h){let v=f.defaults;for(;E.ThemeIcon.isThemeIcon(v);){const w=s.getIcon(v.id);if(!w)return;v=w.defaults}return v}u.getDefinition=C})(o||(e.IconContribution=o={}));var t;(function(u){function C(h){return{weight:h.weight,style:h.style,src:h.src.map(v=>({format:v.format,location:v.location.toString()}))}}u.toJSONObject=C;function f(h){const v=w=>(0,m.isString)(w)?w:void 0;if(h&&Array.isArray(h.src)&&h.src.every(w=>(0,m.isString)(w.format)&&(0,m.isString)(w.location)))return{weight:v(h.weight),style:v(h.style),src:h.src.map(w=>({format:w.format,location:_.URI.parse(w.location)}))}}u.fromJSONObject=f})(t||(e.IconFontDefinition=t={}));class i{constructor(){this._onDidChange=new y.Emitter,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,b.localize)(1838,"The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,b.localize)(1839,"The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${E.ThemeIcon.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(C,f,h,v){const w=this.iconsById[C];if(w){if(h&&!w.description){w.description=h,this.iconSchema.properties[C].markdownDescription=`${h} $(${C})`;const D=this.iconReferenceSchema.enum.indexOf(C);D!==-1&&(this.iconReferenceSchema.enumDescriptions[D]=h),this._onDidChange.fire()}return w}const S={id:C,description:h,defaults:f,deprecationMessage:v};this.iconsById[C]=S;const L={$ref:"#/definitions/icons"};return v&&(L.deprecationMessage=v),h&&(L.markdownDescription=`${h}: $(${C})`),this.iconSchema.properties[C]=L,this.iconReferenceSchema.enum.push(C),this.iconReferenceSchema.enumDescriptions.push(h||""),this._onDidChange.fire(),{id:C}}getIcons(){return Object.keys(this.iconsById).map(C=>this.iconsById[C])}getIcon(C){return this.iconsById[C]}getIconSchema(){return this.iconSchema}toString(){const C=(w,S)=>w.id.localeCompare(S.id),f=w=>{for(;E.ThemeIcon.isThemeIcon(w.defaults);)w=this.iconsById[w.defaults.id];return`codicon codicon-${w?w.id:""}`},h=[];h.push("| preview | identifier | default codicon ID | description"),h.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const v=Object.keys(this.iconsById).map(w=>this.iconsById[w]);for(const w of v.filter(S=>!!S.description).sort(C))h.push(`||${w.id}|${E.ThemeIcon.isThemeIcon(w.defaults)?w.defaults.id:w.id}|${w.description||""}|`);h.push("| preview | identifier "),h.push("| ----------- | --------------------------------- |");for(const w of v.filter(S=>!E.ThemeIcon.isThemeIcon(S.defaults)).sort(C))h.push(`||${w.id}|`);return h.join(` -`)}}const s=new i;n.Registry.add(e.Extensions.IconContribution,s);function g(u,C,f,h){return s.registerIcon(u,C,f,h)}function c(){return s}function l(){const u=(0,I.getCodiconFontCharacters)();for(const C in u){const f="\\"+u[C].toString(16);s.registerIcon(C,{fontCharacter:f})}}l(),e.iconsSchemaId="vscode://schemas/icons";const a=n.Registry.as(p.Extensions.JSONContribution);a.registerSchema(e.iconsSchemaId,s.getIconSchema());const r=new d.RunOnceScheduler(()=>a.notifySchemaChanged(e.iconsSchemaId),200);s.onDidChange(()=>{r.isScheduled()||r.schedule()}),e.widgetClose=g("widget-close",k.Codicon.close,(0,b.localize)(1840,"Icon for the close action in widgets.")),e.gotoPreviousLocation=g("goto-previous-location",k.Codicon.arrowUp,(0,b.localize)(1841,"Icon for goto previous editor location.")),e.gotoNextLocation=g("goto-next-location",k.Codicon.arrowDown,(0,b.localize)(1842,"Icon for goto next editor location.")),e.syncing=E.ThemeIcon.modify(k.Codicon.sync,"spin"),e.spinningLoading=E.ThemeIcon.modify(k.Codicon.loading,"spin")}),define(ne[762],se([1,0,5,103,87,86,41,13,26,2,21,30,74,88,37,55,68,9,4,105,43,83,136,95,3,137,7,71,499]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerModelFromEditors=e.AccessibleDiffViewer=void 0;const L=(0,S.registerIcon)("diff-review-insert",_.Codicon.add,(0,h.localize)(84,"Icon for 'Insert' in accessible diff viewer.")),D=(0,S.registerIcon)("diff-review-remove",_.Codicon.remove,(0,h.localize)(85,"Icon for 'Remove' in accessible diff viewer.")),T=(0,S.registerIcon)("diff-review-close",_.Codicon.close,(0,h.localize)(86,"Icon for 'Close' in accessible diff viewer."));let M=class extends b.Disposable{static{this._ttPolicy=(0,k.createTrustedTypesPolicy)("diffReview",{createHTML:j=>j})}constructor(j,Y,G,K,R,J,ie,ue,he){super(),this._parentNode=j,this._visible=Y,this._setVisible=G,this._canClose=K,this._width=R,this._height=J,this._diffs=ie,this._models=ue,this._instantiationService=he,this._state=(0,p.derivedWithStore)(this,(pe,ae)=>{const ee=this._visible.read(pe);if(this._parentNode.style.visibility=ee?"visible":"hidden",!ee)return null;const de=ae.add(this._instantiationService.createInstance(A,this._diffs,this._models,this._setVisible,this._canClose)),ge=ae.add(this._instantiationService.createInstance(H,this._parentNode,de,this._width,this._height,this._models));return{model:de,view:ge}}).recomputeInitiallyAndOnChange(this._store)}next(){(0,p.transaction)(j=>{const Y=this._visible.get();this._setVisible(!0,j),Y&&this._state.get().model.nextGroup(j)})}prev(){(0,p.transaction)(j=>{this._setVisible(!0,j),this._state.get().model.previousGroup(j)})}close(){(0,p.transaction)(j=>{this._setVisible(!1,j)})}};e.AccessibleDiffViewer=M,e.AccessibleDiffViewer=M=ke([ce(8,w.IInstantiationService)],M);let A=class extends b.Disposable{constructor(j,Y,G,K,R){super(),this._diffs=j,this._models=Y,this._setVisible=G,this.canClose=K,this._accessibilitySignalService=R,this._groups=(0,p.observableValue)(this,[]),this._currentGroupIdx=(0,p.observableValue)(this,0),this._currentElementIdx=(0,p.observableValue)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((J,ie)=>this._groups.read(ie)[J]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((J,ie)=>this.currentGroup.read(ie)?.lines[J]),this._register((0,p.autorun)(J=>{const ie=this._diffs.read(J);if(!ie){this._groups.set([],void 0);return}const ue=N(ie,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,p.transaction)(he=>{const pe=this._models.getModifiedPosition();if(pe){const ae=ue.findIndex(ee=>pe?.lineNumber{const ie=this.currentElement.read(J);ie?.type===O.Deleted?this._accessibilitySignalService.playSignal(v.AccessibilitySignal.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):ie?.type===O.Added&&this._accessibilitySignalService.playSignal(v.AccessibilitySignal.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register((0,p.autorun)(J=>{const ie=this.currentElement.read(J);if(ie&&ie.type!==O.Header){const ue=ie.modifiedLineNumber??ie.diff.modified.startLineNumber;this._models.modifiedSetSelection(l.Range.fromPositions(new c.Position(ue,1)))}}))}_goToGroupDelta(j,Y){const G=this.groups.get();!G||G.length<=1||(0,p.subtransaction)(Y,K=>{this._currentGroupIdx.set(g.OffsetRange.ofLength(G.length).clipCyclic(this._currentGroupIdx.get()+j),K),this._currentElementIdx.set(0,K)})}nextGroup(j){this._goToGroupDelta(1,j)}previousGroup(j){this._goToGroupDelta(-1,j)}_goToLineDelta(j){const Y=this.currentGroup.get();!Y||Y.lines.length<=1||(0,p.transaction)(G=>{this._currentElementIdx.set(g.OffsetRange.ofLength(Y.lines.length).clip(this._currentElementIdx.get()+j),G)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(j){const Y=this.currentGroup.get();if(!Y)return;const G=Y.lines.indexOf(j);G!==-1&&(0,p.transaction)(K=>{this._currentElementIdx.set(G,K)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const j=this.currentElement.get();j&&(j.type===O.Deleted?this._models.originalReveal(l.Range.fromPositions(new c.Position(j.originalLineNumber,1))):this._models.modifiedReveal(j.type!==O.Header?l.Range.fromPositions(new c.Position(j.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};A=ke([ce(4,v.IAccessibilitySignalService)],A);const P=3;function N(U,j,Y){const G=[];for(const K of(0,m.groupAdjacentBy)(U,(R,J)=>J.modified.startLineNumber-R.modified.endLineNumberExclusive<2*P)){const R=[];R.push(new x);const J=new s.LineRange(Math.max(1,K[0].original.startLineNumber-P),Math.min(K[K.length-1].original.endLineNumberExclusive+P,j+1)),ie=new s.LineRange(Math.max(1,K[0].modified.startLineNumber-P),Math.min(K[K.length-1].modified.endLineNumberExclusive+P,Y+1));(0,m.forEachAdjacent)(K,(pe,ae)=>{const ee=new s.LineRange(pe?pe.original.endLineNumberExclusive:J.startLineNumber,ae?ae.original.startLineNumber:J.endLineNumberExclusive),de=new s.LineRange(pe?pe.modified.endLineNumberExclusive:ie.startLineNumber,ae?ae.modified.startLineNumber:ie.endLineNumberExclusive);ee.forEach(ge=>{R.push(new q(ge,de.startLineNumber+(ge-ee.startLineNumber)))}),ae&&(ae.original.forEach(ge=>{R.push(new W(ae,ge))}),ae.modified.forEach(ge=>{R.push(new V(ae,ge))}))});const ue=K[0].modified.join(K[K.length-1].modified),he=K[0].original.join(K[K.length-1].original);G.push(new F(new a.LineRangeMapping(ue,he),R))}return G}var O;(function(U){U[U.Header=0]="Header",U[U.Unchanged=1]="Unchanged",U[U.Deleted=2]="Deleted",U[U.Added=3]="Added"})(O||(O={}));class F{constructor(j,Y){this.range=j,this.lines=Y}}class x{constructor(){this.type=O.Header}}class W{constructor(j,Y){this.diff=j,this.originalLineNumber=Y,this.type=O.Deleted,this.modifiedLineNumber=void 0}}class V{constructor(j,Y){this.diff=j,this.modifiedLineNumber=Y,this.type=O.Added,this.originalLineNumber=void 0}}class q{constructor(j,Y){this.originalLineNumber=j,this.modifiedLineNumber=Y,this.type=O.Unchanged}}let H=class extends b.Disposable{constructor(j,Y,G,K,R,J){super(),this._element=j,this._model=Y,this._width=G,this._height=K,this._models=R,this._languageService=J,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const ie=document.createElement("div");ie.className="diff-review-actions",this._actionBar=this._register(new I.ActionBar(ie)),this._register((0,p.autorun)(ue=>{this._actionBar.clear(),this._model.canClose.read(ue)&&this._actionBar.push(new y.Action("diffreview.close",(0,h.localize)(87,"Close"),"close-diff-review "+n.ThemeIcon.asClassName(T),!0,async()=>Y.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new E.DomScrollableElement(this._content,{})),(0,d.reset)(this.domNode,this._scrollbar.getDomNode(),ie),this._register((0,p.autorun)(ue=>{this._height.read(ue),this._width.read(ue),this._scrollbar.scanDomNode()})),this._register((0,b.toDisposable)(()=>{(0,d.reset)(this.domNode)})),this._register((0,t.applyStyle)(this.domNode,{width:this._width,height:this._height})),this._register((0,t.applyStyle)(this._content,{width:this._width,height:this._height})),this._register((0,p.autorunWithStore)((ue,he)=>{this._model.currentGroup.read(ue),this._render(he)})),this._register((0,d.addStandardDisposableListener)(this.domNode,"keydown",ue=>{(ue.equals(18)||ue.equals(2066)||ue.equals(530))&&(ue.preventDefault(),this._model.goToNextLine()),(ue.equals(16)||ue.equals(2064)||ue.equals(528))&&(ue.preventDefault(),this._model.goToPreviousLine()),(ue.equals(9)||ue.equals(2057)||ue.equals(521)||ue.equals(1033))&&(ue.preventDefault(),this._model.close()),(ue.equals(10)||ue.equals(3))&&(ue.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(j){const Y=this._models.getOriginalOptions(),G=this._models.getModifiedOptions(),K=document.createElement("div");K.className="diff-review-table",K.setAttribute("role","list"),K.setAttribute("aria-label",(0,h.localize)(88,"Accessible Diff Viewer. Use arrow up and down to navigate.")),(0,o.applyFontInfo)(K,G.get(50)),(0,d.reset)(this._content,K);const R=this._models.getOriginalModel(),J=this._models.getModifiedModel();if(!R||!J)return;const ie=R.getOptions(),ue=J.getOptions(),he=G.get(67),pe=this._model.currentGroup.get();for(const ae of pe?.lines||[]){if(!pe)break;let ee;if(ae.type===O.Header){const ge=document.createElement("div");ge.className="diff-review-row",ge.setAttribute("role","listitem");const X=pe.range,B=this._model.currentGroupIndex.get(),$=this._model.groups.get().length,Q=le=>le===0?(0,h.localize)(89,"no lines changed"):le===1?(0,h.localize)(90,"1 line changed"):(0,h.localize)(91,"{0} lines changed",le),Z=Q(X.original.length),te=Q(X.modified.length);ge.setAttribute("aria-label",(0,h.localize)(92,"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",B+1,$,X.original.startLineNumber,Z,X.modified.startLineNumber,te));const re=document.createElement("div");re.className="diff-review-cell diff-review-summary",re.appendChild(document.createTextNode(`${B+1}/${$}: @@ -${X.original.startLineNumber},${X.original.length} +${X.modified.startLineNumber},${X.modified.length} @@`)),ge.appendChild(re),ee=ge}else ee=this._createRow(ae,he,this._width.get(),Y,R,ie,G,J,ue);K.appendChild(ee);const de=(0,p.derived)(ge=>this._model.currentElement.read(ge)===ae);j.add((0,p.autorun)(ge=>{const X=de.read(ge);ee.tabIndex=X?0:-1,X&&ee.focus()})),j.add((0,d.addDisposableListener)(ee,"focus",()=>{this._model.goToLine(ae)}))}this._scrollbar.scanDomNode()}_createRow(j,Y,G,K,R,J,ie,ue,he){const pe=K.get(146),ae=pe.glyphMarginWidth+pe.lineNumbersWidth,ee=ie.get(146),de=10+ee.glyphMarginWidth+ee.lineNumbersWidth;let ge="diff-review-row",X="";const B="diff-review-spacer";let $=null;switch(j.type){case O.Added:ge="diff-review-row line-insert",X=" char-insert",$=L;break;case O.Deleted:ge="diff-review-row line-delete",X=" char-delete",$=D;break}const Q=document.createElement("div");Q.style.minWidth=G+"px",Q.className=ge,Q.setAttribute("role","listitem"),Q.ariaLevel="";const Z=document.createElement("div");Z.className="diff-review-cell",Z.style.height=`${Y}px`,Q.appendChild(Z);const te=document.createElement("span");te.style.width=ae+"px",te.style.minWidth=ae+"px",te.className="diff-review-line-number"+X,j.originalLineNumber!==void 0?te.appendChild(document.createTextNode(String(j.originalLineNumber))):te.innerText="\xA0",Z.appendChild(te);const re=document.createElement("span");re.style.width=de+"px",re.style.minWidth=de+"px",re.style.paddingRight="10px",re.className="diff-review-line-number"+X,j.modifiedLineNumber!==void 0?re.appendChild(document.createTextNode(String(j.modifiedLineNumber))):re.innerText="\xA0",Z.appendChild(re);const le=document.createElement("span");if(le.className=B,$){const ye=document.createElement("span");ye.className=n.ThemeIcon.asClassName($),ye.innerText="\xA0\xA0",le.appendChild(ye)}else le.innerText="\xA0\xA0";Z.appendChild(le);let me;if(j.modifiedLineNumber!==void 0){let ye=this._getLineHtml(ue,ie,he.tabSize,j.modifiedLineNumber,this._languageService.languageIdCodec);M._ttPolicy&&(ye=M._ttPolicy.createHTML(ye)),Z.insertAdjacentHTML("beforeend",ye),me=ue.getLineContent(j.modifiedLineNumber)}else{let ye=this._getLineHtml(R,K,J.tabSize,j.originalLineNumber,this._languageService.languageIdCodec);M._ttPolicy&&(ye=M._ttPolicy.createHTML(ye)),Z.insertAdjacentHTML("beforeend",ye),me=R.getLineContent(j.originalLineNumber)}me.length===0&&(me=(0,h.localize)(93,"blank"));let Ce="";switch(j.type){case O.Unchanged:j.originalLineNumber===j.modifiedLineNumber?Ce=(0,h.localize)(94,"{0} unchanged line {1}",me,j.originalLineNumber):Ce=(0,h.localize)(95,"{0} original line {1} modified line {2}",me,j.originalLineNumber,j.modifiedLineNumber);break;case O.Added:Ce=(0,h.localize)(96,"+ {0} modified line {1}",me,j.modifiedLineNumber);break;case O.Deleted:Ce=(0,h.localize)(97,"- {0} original line {1}",me,j.originalLineNumber);break}return Q.setAttribute("aria-label",Ce),Q}_getLineHtml(j,Y,G,K,R){const J=j.getLineContent(K),ie=Y.get(50),ue=u.LineTokens.createEmpty(J,R),he=f.ViewLineRenderingData.isBasicASCII(J,j.mightContainNonBasicASCII()),pe=f.ViewLineRenderingData.containsRTL(J,he,j.mightContainRTL());return(0,C.renderViewLine2)(new C.RenderLineInput(ie.isMonospace&&!Y.get(33),ie.canUseHalfwidthRightwardsArrow,J,!1,he,pe,0,ue,[],G,0,ie.spaceWidth,ie.middotWidth,ie.wsmiddotWidth,Y.get(118),Y.get(100),Y.get(95),Y.get(51)!==i.EditorFontLigatures.OFF,null)).html}};H=ke([ce(5,r.ILanguageService)],H);class z{constructor(j){this.editors=j}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(j){this.editors.original.revealRange(j),this.editors.original.setSelection(j),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(j){j&&(this.editors.modified.revealRange(j),this.editors.modified.setSelection(j)),this.editors.modified.focus()}modifiedSetSelection(j){this.editors.modified.setSelection(j)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){return this.editors.modified.getPosition()??void 0}}e.AccessibleDiffViewerModelFromEditors=z}),define(ne[763],se([1,0,253,5,172,85,26,33,6,2,30,3,32,71,227]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerWidget=e.InsertButton=e.ColorPickerBody=e.ColorPickerHeader=void 0;const i=k.$;class s extends b.Disposable{constructor(v,w,S,L=!1){super(),this.model=w,this.showingStandaloneColorPicker=L,this._closeButton=null,this._domNode=i(".colorpicker-header"),k.append(v,this._domNode),this._pickedColorNode=k.append(this._domNode,i(".picked-color")),k.append(this._pickedColorNode,i("span.codicon.codicon-color-mode")),this._pickedColorPresentation=k.append(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const D=(0,n.localize)(796,"Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",D),this._originalColorNode=k.append(this._domNode,i(".original-color")),this._originalColorNode.style.backgroundColor=m.Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=S.getColorTheme().getColor(o.editorHoverBackground)||m.Color.white,this._register(S.onDidColorThemeChange(T=>{this.backgroundColor=T.getColor(o.editorHoverBackground)||m.Color.white})),this._register(k.addDisposableListener(this._pickedColorNode,k.EventType.CLICK,()=>this.model.selectNextColorPresentation())),this._register(k.addDisposableListener(this._originalColorNode,k.EventType.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(w.onDidChangeColor(this.onDidChangeColor,this)),this._register(w.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=m.Color.Format.CSS.format(w.color)||"",this._pickedColorNode.classList.toggle("light",w.color.rgba.a<.5?this.backgroundColor.isLighter():w.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new g(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(v){this._pickedColorNode.style.backgroundColor=m.Color.Format.CSS.format(v)||"",this._pickedColorNode.classList.toggle("light",v.rgba.a<.5?this.backgroundColor.isLighter():v.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}e.ColorPickerHeader=s;class g extends b.Disposable{constructor(v){super(),this._onClicked=this._register(new _.Emitter),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),k.append(v,this._button);const w=document.createElement("div");w.classList.add("close-button-inner-div"),k.append(this._button,w),k.append(w,i(".button"+p.ThemeIcon.asCSSSelector((0,t.registerIcon)("color-picker-close",y.Codicon.close,(0,n.localize)(797,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}}class c extends b.Disposable{constructor(v,w,S,L=!1){super(),this.model=w,this.pixelRatio=S,this._insertButton=null,this._domNode=i(".colorpicker-body"),k.append(v,this._domNode),this._saturationBox=new l(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new r(this._domNode,this.model,L),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new u(this._domNode,this.model,L),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),L&&(this._insertButton=this._register(new C(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:v,v:w}){const S=this.model.color.hsva;this.model.color=new m.Color(new m.HSVA(S.h,v,w,S.a))}onDidOpacityChange(v){const w=this.model.color.hsva;this.model.color=new m.Color(new m.HSVA(w.h,w.s,w.v,v))}onDidHueChange(v){const w=this.model.color.hsva,S=(1-v)*360;this.model.color=new m.Color(new m.HSVA(S===360?0:S,w.s,w.v,w.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}e.ColorPickerBody=c;class l extends b.Disposable{constructor(v,w,S){super(),this.model=w,this.pixelRatio=S,this._onDidChange=new _.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new _.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._domNode=i(".saturation-wrap"),k.append(v,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",k.append(this._domNode,this._canvas),this.selection=i(".saturation-selection"),k.append(this._domNode,this.selection),this.layout(),this._register(k.addDisposableListener(this._domNode,k.EventType.POINTER_DOWN,L=>this.onPointerDown(L))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(v){if(!v.target||!(v.target instanceof Element))return;this.monitor=this._register(new I.GlobalPointerMoveMonitor);const w=k.getDomNodePagePosition(this._domNode);v.target!==this.selection&&this.onDidChangePosition(v.offsetX,v.offsetY),this.monitor.startMonitoring(v.target,v.pointerId,v.buttons,L=>this.onDidChangePosition(L.pageX-w.left,L.pageY-w.top),()=>null);const S=k.addDisposableListener(v.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),S.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(v,w){const S=Math.max(0,Math.min(1,v/this.width)),L=Math.max(0,Math.min(1,1-w/this.height));this.paintSelection(S,L),this._onDidChange.fire({s:S,v:L})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const v=this.model.color.hsva;this.paintSelection(v.s,v.v)}paint(){const v=this.model.color.hsva,w=new m.Color(new m.HSVA(v.h,1,1,1)),S=this._canvas.getContext("2d"),L=S.createLinearGradient(0,0,this._canvas.width,0);L.addColorStop(0,"rgba(255, 255, 255, 1)"),L.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),L.addColorStop(1,"rgba(255, 255, 255, 0)");const D=S.createLinearGradient(0,0,0,this._canvas.height);D.addColorStop(0,"rgba(0, 0, 0, 0)"),D.addColorStop(1,"rgba(0, 0, 0, 1)"),S.rect(0,0,this._canvas.width,this._canvas.height),S.fillStyle=m.Color.Format.CSS.format(w),S.fill(),S.fillStyle=L,S.fill(),S.fillStyle=D,S.fill()}paintSelection(v,w){this.selection.style.left=`${v*this.width}px`,this.selection.style.top=`${this.height-w*this.height}px`}onDidChangeColor(v){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const w=v.hsva;this.paintSelection(w.s,w.v)}}class a extends b.Disposable{constructor(v,w,S=!1){super(),this.model=w,this._onDidChange=new _.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new _.Emitter,this.onColorFlushed=this._onColorFlushed.event,S?(this.domNode=k.append(v,i(".standalone-strip")),this.overlay=k.append(this.domNode,i(".standalone-overlay"))):(this.domNode=k.append(v,i(".strip")),this.overlay=k.append(this.domNode,i(".overlay"))),this.slider=k.append(this.domNode,i(".slider")),this.slider.style.top="0px",this._register(k.addDisposableListener(this.domNode,k.EventType.POINTER_DOWN,L=>this.onPointerDown(L))),this._register(w.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const v=this.getValue(this.model.color);this.updateSliderPosition(v)}onDidChangeColor(v){const w=this.getValue(v);this.updateSliderPosition(w)}onPointerDown(v){if(!v.target||!(v.target instanceof Element))return;const w=this._register(new I.GlobalPointerMoveMonitor),S=k.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),v.target!==this.slider&&this.onDidChangeTop(v.offsetY),w.startMonitoring(v.target,v.pointerId,v.buttons,D=>this.onDidChangeTop(D.pageY-S.top),()=>null);const L=k.addDisposableListener(v.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),L.dispose(),w.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(v){const w=Math.max(0,Math.min(1,1-v/this.height));this.updateSliderPosition(w),this._onDidChange.fire(w)}updateSliderPosition(v){this.slider.style.top=`${(1-v)*this.height}px`}}class r extends a{constructor(v,w,S=!1){super(v,w,S),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(v){super.onDidChangeColor(v);const{r:w,g:S,b:L}=v.rgba,D=new m.Color(new m.RGBA(w,S,L,1)),T=new m.Color(new m.RGBA(w,S,L,0));this.overlay.style.background=`linear-gradient(to bottom, ${D} 0%, ${T} 100%)`}getValue(v){return v.hsva.a}}class u extends a{constructor(v,w,S=!1){super(v,w,S),this.domNode.classList.add("hue-strip")}getValue(v){return 1-v.hsva.h/360}}class C extends b.Disposable{constructor(v){super(),this._onClicked=this._register(new _.Emitter),this.onClicked=this._onClicked.event,this._button=k.append(v,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}e.InsertButton=C;class f extends E.Widget{constructor(v,w,S,L,D=!1){super(),this.model=w,this.pixelRatio=S,this._register(d.PixelRatio.getInstance(k.getWindow(v)).onDidChange(()=>this.layout())),this._domNode=i(".colorpicker-widget"),v.appendChild(this._domNode),this.header=this._register(new s(this._domNode,this.model,L,D)),this.body=this._register(new c(this._domNode,this.model,this.pixelRatio,D))}layout(){this.body.layout()}get domNode(){return this._domNode}}e.ColorPickerWidget=f}),define(ne[217],se([1,0,5,13,18,57,2,120,264,4,43,84,3,28,59,17,27,71,26,30,8,31,174,118,14,410,24]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownHoverParticipant=e.MarkdownHover=void 0,e.renderMarkdownHovers=O,e.labelForHoverVerbosityAction=x;const S=d.$,L=(0,c.registerIcon)("hover-increase-verbosity",l.Codicon.add,o.localize(1031,"Icon for increaseing hover verbosity.")),D=(0,c.registerIcon)("hover-decrease-verbosity",l.Codicon.remove,o.localize(1032,"Icon for decreasing hover verbosity."));class T{constructor(V,q,H,z,U,j=void 0){this.owner=V,this.range=q,this.contents=H,this.isBeforeContent=z,this.ordinal=U,this.source=j}isValidForHoverAnchor(V){return V.type===1&&this.range.startColumn<=V.range.startColumn&&this.range.endColumn>=V.range.endColumn}}e.MarkdownHover=T;class M{constructor(V,q,H){this.hover=V,this.hoverProvider=q,this.hoverPosition=H}supportsVerbosityAction(V){switch(V){case g.HoverVerbosityAction.Increase:return this.hover.canIncreaseVerbosity??!1;case g.HoverVerbosityAction.Decrease:return this.hover.canDecreaseVerbosity??!1}}}let A=class{constructor(V,q,H,z,U,j,Y,G){this._editor=V,this._languageService=q,this._openerService=H,this._configurationService=z,this._languageFeaturesService=U,this._keybindingService=j,this._hoverService=Y,this._commandService=G,this.hoverOrdinal=3}createLoadingMessage(V){return new T(this,V.range,[new E.MarkdownString().appendText(o.localize(1033,"Loading..."))],!1,2e3)}computeSync(V,q){if(!this._editor.hasModel()||V.type!==1)return[];const H=this._editor.getModel(),z=V.range.startLineNumber,U=H.getLineMaxColumn(z),j=[];let Y=1e3;const G=H.getLineLength(z),K=H.getLanguageIdAtPosition(V.range.startLineNumber,V.range.startColumn),R=this._editor.getOption(118),J=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:K});let ie=!1;R>=0&&G>R&&V.range.startColumn>=R&&(ie=!0,j.push(new T(this,V.range,[{value:o.localize(1034,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,Y++))),!ie&&typeof J=="number"&&G>=J&&j.push(new T(this,V.range,[{value:o.localize(1035,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,Y++));let ue=!1;for(const he of q){const pe=he.range.startLineNumber===z?he.range.startColumn:1,ae=he.range.endLineNumber===z?he.range.endColumn:U,ee=he.options.hoverMessage;if(!ee||(0,E.isEmptyMarkdownString)(ee))continue;he.options.beforeContentClassName&&(ue=!0);const de=new b.Range(V.range.startLineNumber,pe,V.range.startLineNumber,ae);j.push(new T(this,de,(0,k.asArray)(ee),ue,Y++))}return j}computeAsync(V,q,H){if(!this._editor.hasModel()||V.type!==1)return h.AsyncIterableObject.EMPTY;const z=this._editor.getModel(),U=this._languageFeaturesService.hoverProvider;return U.has(z)?this._getMarkdownHovers(U,z,V,H):h.AsyncIterableObject.EMPTY}_getMarkdownHovers(V,q,H,z){const U=H.range.getStartPosition();return(0,v.getHoverProviderResultsAsAsyncIterable)(V,q,U,z).filter(G=>!(0,E.isEmptyMarkdownString)(G.hover.contents)).map(G=>{const K=G.hover.range?b.Range.lift(G.hover.range):H.range,R=new M(G.hover,G.provider,U);return new T(this,K,G.hover.contents,!1,G.ordinal,R)})}renderHoverParts(V,q){return this._renderedHoverParts=new N(q,V.fragment,this,this._editor,this._languageService,this._openerService,this._commandService,this._keybindingService,this._hoverService,this._configurationService,V.onContentsChanged),this._renderedHoverParts}updateMarkdownHoverVerbosityLevel(V,q,H){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(V,q,H))}};e.MarkdownHoverParticipant=A,e.MarkdownHoverParticipant=A=ke([ce(1,p.ILanguageService),ce(2,i.IOpenerService),ce(3,t.IConfigurationService),ce(4,s.ILanguageFeaturesService),ce(5,u.IKeybindingService),ce(6,f.IHoverService),ce(7,w.ICommandService)],A);class P{constructor(V,q,H){this.hoverPart=V,this.hoverElement=q,this.disposables=H}dispose(){this.disposables.dispose()}}class N{constructor(V,q,H,z,U,j,Y,G,K,R,J){this._hoverParticipant=H,this._editor=z,this._languageService=U,this._openerService=j,this._commandService=Y,this._keybindingService=G,this._hoverService=K,this._configurationService=R,this._onFinishedRendering=J,this._ongoingHoverOperations=new Map,this._disposables=new y.DisposableStore,this.renderedHoverParts=this._renderHoverParts(V,q,this._onFinishedRendering),this._disposables.add((0,y.toDisposable)(()=>{this.renderedHoverParts.forEach(ie=>{ie.dispose()}),this._ongoingHoverOperations.forEach(ie=>{ie.tokenSource.dispose(!0)})}))}_renderHoverParts(V,q,H){return V.sort((0,k.compareBy)(z=>z.ordinal,k.numberComparator)),V.map(z=>{const U=this._renderHoverPart(z,H);return q.appendChild(U.hoverElement),U})}_renderHoverPart(V,q){const H=this._renderMarkdownHover(V,q),z=H.hoverElement,U=V.source,j=new y.DisposableStore;if(j.add(H),!U)return new P(V,z,j);const Y=U.supportsVerbosityAction(g.HoverVerbosityAction.Increase),G=U.supportsVerbosityAction(g.HoverVerbosityAction.Decrease);if(!Y&&!G)return new P(V,z,j);const K=S("div.verbosity-actions");return z.prepend(K),j.add(this._renderHoverExpansionAction(K,g.HoverVerbosityAction.Increase,Y)),j.add(this._renderHoverExpansionAction(K,g.HoverVerbosityAction.Decrease,G)),new P(V,z,j)}_renderMarkdownHover(V,q){return F(this._editor,V,this._languageService,this._openerService,q)}_renderHoverExpansionAction(V,q,H){const z=new y.DisposableStore,U=q===g.HoverVerbosityAction.Increase,j=d.append(V,S(a.ThemeIcon.asCSSSelector(U?L:D)));j.tabIndex=0;const Y=new f.WorkbenchHoverDelegate("mouse",!1,{target:V,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(z.add(this._hoverService.setupManagedHover(Y,j,x(this._keybindingService,q))),!H)return j.classList.add("disabled"),z;j.classList.add("enabled");const G=()=>this._commandService.executeCommand(q===g.HoverVerbosityAction.Increase?_.INCREASE_HOVER_VERBOSITY_ACTION_ID:_.DECREASE_HOVER_VERBOSITY_ACTION_ID);return z.add(new C.ClickAction(j,G)),z.add(new C.KeyDownAction(j,G,[3,10])),z}async updateMarkdownHoverPartVerbosityLevel(V,q,H=!0){const z=this._editor.getModel();if(!z)return;const U=this._getRenderedHoverPartAtIndex(q),j=U?.hoverPart.source;if(!U||!j?.supportsVerbosityAction(V))return;const Y=await this._fetchHover(j,z,V);if(!Y)return;const G=new M(Y,j.hoverProvider,j.hoverPosition),K=U.hoverPart,R=new T(this._hoverParticipant,K.range,Y.contents,K.isBeforeContent,K.ordinal,G),J=this._renderHoverPart(R,this._onFinishedRendering);return this._replaceRenderedHoverPartAtIndex(q,J,R),H&&this._focusOnHoverPartWithIndex(q),{hoverPart:R,hoverElement:J.hoverElement}}async _fetchHover(V,q,H){let z=H===g.HoverVerbosityAction.Increase?1:-1;const U=V.hoverProvider,j=this._ongoingHoverOperations.get(U);j&&(j.tokenSource.cancel(),z+=j.verbosityDelta);const Y=new I.CancellationTokenSource;this._ongoingHoverOperations.set(U,{verbosityDelta:z,tokenSource:Y});const G={verbosityRequest:{verbosityDelta:z,previousHover:V.hover}};let K;try{K=await Promise.resolve(U.provideHover(q,V.hoverPosition,Y.token,G))}catch(R){(0,r.onUnexpectedExternalError)(R)}return Y.dispose(),this._ongoingHoverOperations.delete(U),K}_replaceRenderedHoverPartAtIndex(V,q,H){if(V>=this.renderedHoverParts.length||V<0)return;const z=this.renderedHoverParts[V],U=z.hoverElement,j=q.hoverElement,Y=Array.from(j.children);U.replaceChildren(...Y);const G=new P(H,U,q.disposables);U.focus(),z.dispose(),this.renderedHoverParts[V]=G}_focusOnHoverPartWithIndex(V){this.renderedHoverParts[V].hoverElement.focus()}_getRenderedHoverPartAtIndex(V){return this.renderedHoverParts[V]}dispose(){this._disposables.dispose()}}function O(W,V,q,H,z){V.sort((0,k.compareBy)(j=>j.ordinal,k.numberComparator));const U=[];for(const j of V)U.push(F(q,j,H,z,W.onContentsChanged));return new n.RenderedHoverParts(U)}function F(W,V,q,H,z){const U=new y.DisposableStore,j=S("div.hover-row"),Y=S("div.hover-row-contents");j.appendChild(Y);const G=V.contents;for(const R of G){if((0,E.isEmptyMarkdownString)(R))continue;const J=S("div.markdown-hover"),ie=d.append(J,S("div.hover-contents")),ue=U.add(new m.MarkdownRenderer({editor:W},q,H));U.add(ue.onDidRenderAsync(()=>{ie.className="hover-contents code-hover-contents",z()}));const he=U.add(ue.render(R));ie.appendChild(he.element),Y.appendChild(J)}return{hoverPart:V,hoverElement:j,dispose(){U.dispose()}}}function x(W,V){switch(V){case g.HoverVerbosityAction.Increase:{const q=W.lookupKeybinding(_.INCREASE_HOVER_VERBOSITY_ACTION_ID);return q?o.localize(1036,"Increase Hover Verbosity ({0})",q.getLabel()):o.localize(1037,"Increase Hover Verbosity")}case g.HoverVerbosityAction.Decrease:{const q=W.lookupKeybinding(_.DECREASE_HOVER_VERBOSITY_ACTION_ID);return q?o.localize(1038,"Decrease Hover Verbosity ({0})",q.getLabel()):o.localize(1039,"Decrease Hover Verbosity")}}}}),define(ne[764],se([1,0,5,46,86,26,6,2,11,19,37,43,120,270,3,12,59,32,71,30,54,63,526]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";var C;Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsWidget=void 0;const f=d.$,h=(0,l.registerIcon)("parameter-hints-next",E.Codicon.chevronDown,i.localize(1173,"Icon for show next parameter hint.")),v=(0,l.registerIcon)("parameter-hints-previous",E.Codicon.chevronUp,i.localize(1174,"Icon for show previous parameter hint."));let w=class extends m.Disposable{static{C=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(L,D,T,M,A,P){super(),this.editor=L,this.model=D,this.telemetryService=P,this.renderDisposeables=this._register(new m.DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new o.MarkdownRenderer({editor:L},A,M)),this.keyVisible=t.Context.Visible.bindTo(T),this.keyMultipleSignatures=t.Context.MultipleSignatures.bindTo(T)}createParameterHintDOMNodes(){const L=f(".editor-widget.parameter-hints-widget"),D=d.append(L,f(".phwrapper"));D.tabIndex=-1;const T=d.append(D,f(".controls")),M=d.append(T,f(".button"+a.ThemeIcon.asCSSSelector(v))),A=d.append(T,f(".overloads")),P=d.append(T,f(".button"+a.ThemeIcon.asCSSSelector(h)));this._register(d.addDisposableListener(M,"click",V=>{d.EventHelper.stop(V),this.previous()})),this._register(d.addDisposableListener(P,"click",V=>{d.EventHelper.stop(V),this.next()}));const N=f(".body"),O=new I.DomScrollableElement(N,{alwaysConsumeMouseWheel:!0});this._register(O),D.appendChild(O.getDomNode());const F=d.append(N,f(".signature")),x=d.append(N,f(".docs"));L.style.userSelect="text",this.domNodes={element:L,signature:F,overloads:A,docs:x,scrollbar:O},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(V=>{this.visible&&this.editor.layoutContentWidget(this)}));const W=()=>{if(!this.domNodes)return;const V=this.editor.getOption(50),q=this.domNodes.element;q.style.fontSize=`${V.fontSize}px`,q.style.lineHeight=`${V.lineHeight/V.fontSize}`,q.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",V.fontFamily),q.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",p.EDITOR_FONT_DEFAULTS.fontFamily)};W(),this._register(y.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),V=>V.filter(q=>q.hasChanged(50)))(W)),this._register(this.editor.onDidLayoutChange(V=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(L){if(this.renderDisposeables.clear(),!this.domNodes)return;const D=L.signatures.length>1;this.domNodes.element.classList.toggle("multiple",D),this.keyMultipleSignatures.set(D),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const T=L.signatures[L.activeSignature];if(!T)return;const M=d.append(this.domNodes.signature,f(".code")),A=T.parameters.length>0,P=T.activeParameter??L.activeParameter;if(A)this.renderParameters(M,T,P);else{const F=d.append(M,f("span"));F.textContent=T.label}const N=T.parameters[P];if(N?.documentation){const F=f("span.documentation");if(typeof N.documentation=="string")F.textContent=N.documentation;else{const x=this.renderMarkdownDocs(N.documentation);F.appendChild(x.element)}d.append(this.domNodes.docs,f("p",{},F))}if(T.documentation!==void 0)if(typeof T.documentation=="string")d.append(this.domNodes.docs,f("p",{},T.documentation));else{const F=this.renderMarkdownDocs(T.documentation);d.append(this.domNodes.docs,F.element)}const O=this.hasDocs(T,N);if(this.domNodes.signature.classList.toggle("has-docs",O),this.domNodes.docs.classList.toggle("empty",!O),this.domNodes.overloads.textContent=String(L.activeSignature+1).padStart(L.signatures.length.toString().length,"0")+"/"+L.signatures.length,N){let F="";const x=T.parameters[P];Array.isArray(x.label)?F=T.label.substring(x.label[0],x.label[1]):F=x.label,x.documentation&&(F+=typeof x.documentation=="string"?`, ${x.documentation}`:`, ${x.documentation.value}`),T.documentation&&(F+=typeof T.documentation=="string"?`, ${T.documentation}`:`, ${T.documentation.value}`),this.announcedLabel!==F&&(k.alert(i.localize(1175,"{0}, hint",F)),this.announcedLabel=F)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(L){const D=new r.StopWatch,T=this.renderDisposeables.add(this.markdownRenderer.render(L,{asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));T.element.classList.add("markdown-docs");const M=D.elapsed();return M>300&&this.telemetryService.publicLog2("parameterHints.parseMarkdown",{renderDuration:M}),T}hasDocs(L,D){return!!(D&&typeof D.documentation=="string"&&(0,b.assertIsDefined)(D.documentation).length>0||D&&typeof D.documentation=="object"&&(0,b.assertIsDefined)(D.documentation).value.length>0||L.documentation&&typeof L.documentation=="string"&&(0,b.assertIsDefined)(L.documentation).length>0||L.documentation&&typeof L.documentation=="object"&&(0,b.assertIsDefined)(L.documentation.value).length>0)}renderParameters(L,D,T){const[M,A]=this.getParameterLabelOffsets(D,T),P=document.createElement("span");P.textContent=D.label.substring(0,M);const N=document.createElement("span");N.textContent=D.label.substring(M,A),N.className="parameter active";const O=document.createElement("span");O.textContent=D.label.substring(A),d.append(L,P,N,O)}getParameterLabelOffsets(L,D){const T=L.parameters[D];if(T){if(Array.isArray(T.label))return T.label;if(T.label.length){const M=new RegExp(`(\\W|^)${(0,_.escapeRegExpCharacters)(T.label)}(?=\\W|$)`,"g");M.test(L.label);const A=M.lastIndex-T.label.length;return A>=0?[A,M.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return C.ID}updateMaxHeight(){if(!this.domNodes)return;const D=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=D;const T=this.domNodes.element.getElementsByClassName("phwrapper");T.length&&(T[0].style.maxHeight=D)}};e.ParameterHintsWidget=w,e.ParameterHintsWidget=w=C=ke([ce(2,s.IContextKeyService),ce(3,g.IOpenerService),ce(4,n.ILanguageService),ce(5,u.ITelemetryService)],w),(0,c.registerColor)("editorHoverWidget.highlightForeground",c.listHighlightForeground,i.localize(1176,"Foreground color of the active item in the parameter hint."))}),define(ne[765],se([1,0,98,2,15,20,27,17,683,270,3,12,7,764]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerParameterHintsAction=e.ParameterHintsController=void 0;let s=class extends k.Disposable{static{i=this}static{this.ID="editor.controller.parameterHints"}static get(r){return r.getContribution(i.ID)}constructor(r,u,C){super(),this.editor=r,this.model=this._register(new _.ParameterHintsModel(r,C.signatureHelpProvider)),this._register(this.model.onChangedHints(f=>{f?(this.widget.value.show(),this.widget.value.render(f)):this.widget.rawValue?.hide()})),this.widget=new d.Lazy(()=>this._register(u.createInstance(t.ParameterHintsWidget,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(r){this.model.trigger(r,0)}};e.ParameterHintsController=s,e.ParameterHintsController=s=i=ke([ce(1,o.IInstantiationService),ce(2,m.ILanguageFeaturesService)],s);class g extends I.EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:p.localize(1172,"Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:E.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:E.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(r,u){s.get(u)?.trigger({triggerKind:y.SignatureHelpTriggerKind.Invoke})}}e.TriggerParameterHintsAction=g,(0,I.registerEditorContribution)(s.ID,s,2),(0,I.registerEditorAction)(g);const c=175,l=I.EditorCommand.bindToContribution(s.get);(0,I.registerEditorCommand)(new l({id:"closeParameterHints",precondition:b.Context.Visible,handler:a=>a.cancel(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,I.registerEditorCommand)(new l({id:"showPrevParameterHint",precondition:n.ContextKeyExpr.and(b.Context.Visible,b.Context.MultipleSignatures),handler:a=>a.previous(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,I.registerEditorCommand)(new l({id:"showNextParameterHint",precondition:n.ContextKeyExpr.and(b.Context.Visible,b.Context.MultipleSignatures),handler:a=>a.next(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))}),define(ne[766],se([1,0,5,87,41,2,120,7,702,71,30,534]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BannerController=void 0;const n=26;let o=class extends E.Disposable{constructor(s,g){super(),this._editor=s,this.instantiationService=g,this.banner=this._register(this.instantiationService.createInstance(t))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(s){this.banner.show({...s,onClose:()=>{this.hide(),s.onClose?.()}}),this._editor.setBanner(this.banner.element,n)}};e.BannerController=o,e.BannerController=o=ke([ce(1,m.IInstantiationService)],o);let t=class extends E.Disposable{constructor(s){super(),this.instantiationService=s,this.markdownRenderer=this.instantiationService.createInstance(y.MarkdownRenderer,{}),this.element=(0,d.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(s){if(s.ariaLabel)return s.ariaLabel;if(typeof s.message=="string")return s.message}getBannerMessage(s){if(typeof s=="string"){const g=(0,d.$)("span");return g.innerText=s,g}return this.markdownRenderer.render(s).element}clear(){(0,d.clearNode)(this.element)}show(s){(0,d.clearNode)(this.element);const g=this.getAriaLabel(s);g&&this.element.setAttribute("aria-label",g);const c=(0,d.append)(this.element,(0,d.$)("div.icon-container"));c.setAttribute("aria-hidden","true"),s.icon&&c.appendChild((0,d.$)(`div${p.ThemeIcon.asCSSSelector(s.icon)}`));const l=(0,d.append)(this.element,(0,d.$)("div.message-container"));if(l.setAttribute("aria-hidden","true"),l.appendChild(this.getBannerMessage(s.message)),this.messageActionsContainer=(0,d.append)(this.element,(0,d.$)("div.message-actions-container")),s.actions)for(const r of s.actions)this._register(this.instantiationService.createInstance(_.Link,this.messageActionsContainer,{...r,tabIndex:-1},{}));const a=(0,d.append)(this.element,(0,d.$)("div.action-container"));this.actionBar=this._register(new k.ActionBar(a)),this.actionBar.push(this._register(new I.Action("banner.close","Close Banner",p.ThemeIcon.asClassName(b.widgetClose),!0,()=>{typeof s.onClose=="function"&&s.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};t=ke([ce(0,m.IInstantiationService)],t)}),define(ne[767],se([1,0,5,6,2,30,71]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnthemedProductIconTheme=void 0,e.getIconsStyleSheet=m;function m(b){const p=new I.DisposableStore,n=p.add(new k.Emitter),o=(0,y.getIconRegistry)();return p.add(o.onDidChange(()=>n.fire())),b&&p.add(b.onDidProductIconThemeChange(()=>n.fire())),{dispose:()=>p.dispose(),onDidChange:n.event,getCSS(){const t=b?b.getProductIconTheme():new _,i={},s=[],g=[];for(const c of o.getIcons()){const l=t.getIcon(c);if(!l)continue;const a=l.font,r=`--vscode-icon-${c.id}-font-family`,u=`--vscode-icon-${c.id}-content`;a?(i[a.id]=a.definition,g.push(`${r}: ${(0,d.asCSSPropertyValue)(a.id)};`,`${u}: '${l.fontCharacter}';`),s.push(`.codicon-${c.id}:before { content: '${l.fontCharacter}'; font-family: ${(0,d.asCSSPropertyValue)(a.id)}; }`)):(g.push(`${u}: '${l.fontCharacter}'; ${r}: 'codicon';`),s.push(`.codicon-${c.id}:before { content: '${l.fontCharacter}'; }`))}for(const c in i){const l=i[c],a=l.weight?`font-weight: ${l.weight};`:"",r=l.style?`font-style: ${l.style};`:"",u=l.src.map(C=>`${(0,d.asCSSUrl)(C.location)} format('${C.format}')`).join(", ");s.push(`@font-face { src: ${u}; font-family: ${(0,d.asCSSPropertyValue)(c)};${a}${r} font-display: block; }`)}return s.push(`:root { ${g.join(" ")} }`),s.join(` -`)}}}class _{getIcon(p){const n=(0,y.getIconRegistry)();let o=p.defaults;for(;E.ThemeIcon.isThemeIcon(o);){const t=n.getIcon(o.id);if(!t)return;o=t.defaults}return o}}e.UnthemedProductIconTheme=_}),define(ne[97],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorScheme=void 0,e.isHighContrast=k,e.isDark=I;var d;(function(E){E.DARK="dark",E.LIGHT="light",E.HIGH_CONTRAST_DARK="hcDark",E.HIGH_CONTRAST_LIGHT="hcLight"})(d||(e.ColorScheme=d={}));function k(E){return E===d.HIGH_CONTRAST_DARK||E===d.HIGH_CONTRAST_LIGHT}function I(E){return E===d.DARK||E===d.HIGH_CONTRAST_DARK}}),define(ne[281],se([1,0,64,39,16,548,164,150,136,97,37]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewLine=e.ViewLineOptions=void 0,e.getColumnOfNodeOffset=u;const n=function(){return I.isNative?!0:!(I.isLinux||d.isFirefox||d.isSafari)}();let o=!0;class t{constructor(f,h){this.themeType=h;const v=f.options,w=v.get(50);v.get(38)==="off"?this.renderWhitespace=v.get(100):this.renderWhitespace="none",this.renderControlCharacters=v.get(95),this.spaceWidth=w.spaceWidth,this.middotWidth=w.middotWidth,this.wsmiddotWidth=w.wsmiddotWidth,this.useMonospaceOptimizations=w.isMonospace&&!v.get(33),this.canUseHalfwidthRightwardsArrow=w.canUseHalfwidthRightwardsArrow,this.lineHeight=v.get(67),this.stopRenderingLineAfter=v.get(118),this.fontLigatures=v.get(51)}equals(f){return this.themeType===f.themeType&&this.renderWhitespace===f.renderWhitespace&&this.renderControlCharacters===f.renderControlCharacters&&this.spaceWidth===f.spaceWidth&&this.middotWidth===f.middotWidth&&this.wsmiddotWidth===f.wsmiddotWidth&&this.useMonospaceOptimizations===f.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===f.canUseHalfwidthRightwardsArrow&&this.lineHeight===f.lineHeight&&this.stopRenderingLineAfter===f.stopRenderingLineAfter&&this.fontLigatures===f.fontLigatures}}e.ViewLineOptions=t;class i{static{this.CLASS_NAME="view-line"}constructor(f){this._options=f,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(f){if(this._renderedViewLine)this._renderedViewLine.domNode=(0,k.createFastDomNode)(f);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(f){this._isMaybeInvalid=!0,this._options=f}onSelectionChanged(){return(0,b.isHighContrast)(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(f,h,v,w,S){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const L=w.getViewLineRenderingData(f),D=this._options,T=m.LineDecoration.filter(L.inlineDecorations,f,L.minColumn,L.maxColumn);let M=null;if((0,b.isHighContrast)(D.themeType)||this._options.renderWhitespace==="selection"){const O=w.selections;for(const F of O){if(F.endLineNumberf)continue;const x=F.startLineNumber===f?F.startColumn:L.minColumn,W=F.endLineNumber===f?F.endColumn:L.maxColumn;x');const P=(0,_.renderViewLine)(A,S);S.appendString("");let N=null;return o&&n&&L.isBasicASCII&&D.useMonospaceOptimizations&&P.containsForeignElements===0&&(N=new s(this._renderedViewLine?this._renderedViewLine.domNode:null,A,P.characterMapping)),N||(N=l(this._renderedViewLine?this._renderedViewLine.domNode:null,A,P.characterMapping,P.containsRTL,P.containsForeignElements)),this._renderedViewLine=N,!0}layoutLine(f,h,v){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(h),this._renderedViewLine.domNode.setHeight(v))}getWidth(f){return this._renderedViewLine?this._renderedViewLine.getWidth(f):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof s:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof s?this._renderedViewLine.monospaceAssumptionsAreValid():o}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof s&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(f,h,v,w){if(!this._renderedViewLine)return null;h=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,h)),v=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,v));const S=this._renderedViewLine.input.stopRenderingLineAfter;if(S!==-1&&h>S+1&&v>S+1)return new y.VisibleRanges(!0,[new y.FloatHorizontalRange(this.getWidth(w),0)]);S!==-1&&h>S+1&&(h=S+1),S!==-1&&v>S+1&&(v=S+1);const L=this._renderedViewLine.getVisibleRangesForRange(f,h,v,w);return L&&L.length>0?new y.VisibleRanges(!1,L):null}getColumnOfNodeOffset(f,h){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(f,h):1}}e.ViewLine=i;class s{constructor(f,h,v){this._cachedWidth=-1,this.domNode=f,this.input=h;const w=Math.floor(h.lineContent.length/300);if(w>0){this._keyColumnPixelOffsetCache=new Float32Array(w);for(let S=0;S=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),o=!1)}return o}toSlowRenderedLine(){return l(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(f,h,v,w){const S=this._getColumnPixelOffset(f,h,w),L=this._getColumnPixelOffset(f,v,w);return[new y.FloatHorizontalRange(S,L-S)]}_getColumnPixelOffset(f,h,v){if(h<=300){const M=this._characterMapping.getHorizontalOffset(h);return this._charWidth*M}const w=Math.floor((h-1)/300)-1,S=(w+1)*300+1;let L=-1;if(this._keyColumnPixelOffsetCache&&(L=this._keyColumnPixelOffsetCache[w],L===-1&&(L=this._actualReadPixelOffset(f,S,v),this._keyColumnPixelOffsetCache[w]=L)),L===-1){const M=this._characterMapping.getHorizontalOffset(h);return this._charWidth*M}const D=this._characterMapping.getHorizontalOffset(S),T=this._characterMapping.getHorizontalOffset(h);return L+this._charWidth*(T-D)}_getReadingTarget(f){return f.domNode.firstChild}_actualReadPixelOffset(f,h,v){if(!this.domNode)return-1;const w=this._characterMapping.getDomPosition(h),S=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),w.partIndex,w.charIndex,w.partIndex,w.charIndex,v);return!S||S.length===0?-1:S[0].left}getColumnOfNodeOffset(f,h){return u(this._characterMapping,f,h)}}class g{constructor(f,h,v,w,S){if(this.domNode=f,this.input=h,this._characterMapping=v,this._isWhitespaceOnly=/^\s*$/.test(h.lineContent),this._containsForeignElements=S,this._cachedWidth=-1,this._pixelOffsetCache=null,!w||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let L=0,D=this._characterMapping.length;L<=D;L++)this._pixelOffsetCache[L]=-1}}_getReadingTarget(f){return f.domNode.firstChild}getWidth(f){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,f?.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(f,h,v,w){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const S=this._readPixelOffset(this.domNode,f,h,w);if(S===-1)return null;const L=this._readPixelOffset(this.domNode,f,v,w);return L===-1?null:[new y.FloatHorizontalRange(S,L-S)]}return this._readVisibleRangesForRange(this.domNode,f,h,v,w)}_readVisibleRangesForRange(f,h,v,w,S){if(v===w){const L=this._readPixelOffset(f,h,v,S);return L===-1?null:[new y.FloatHorizontalRange(L,0)]}else return this._readRawVisibleRangesForRange(f,v,w,S)}_readPixelOffset(f,h,v,w){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(w);const S=this._getReadingTarget(f);return S.firstChild?(w.markDidDomLayout(),S.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const S=this._pixelOffsetCache[v];if(S!==-1)return S;const L=this._actualReadPixelOffset(f,h,v,w);return this._pixelOffsetCache[v]=L,L}return this._actualReadPixelOffset(f,h,v,w)}_actualReadPixelOffset(f,h,v,w){if(this._characterMapping.length===0){const T=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),0,0,0,0,w);return!T||T.length===0?-1:T[0].left}if(v===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(w);const S=this._characterMapping.getDomPosition(v),L=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),S.partIndex,S.charIndex,S.partIndex,S.charIndex,w);if(!L||L.length===0)return-1;const D=L[0].left;if(this.input.isBasicASCII){const T=this._characterMapping.getHorizontalOffset(v),M=Math.round(this.input.spaceWidth*T);if(Math.abs(M-D)<=1)return M}return D}_readRawVisibleRangesForRange(f,h,v,w){if(h===1&&v===this._characterMapping.length)return[new y.FloatHorizontalRange(0,this.getWidth(w))];const S=this._characterMapping.getDomPosition(h),L=this._characterMapping.getDomPosition(v);return E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),S.partIndex,S.charIndex,L.partIndex,L.charIndex,w)}getColumnOfNodeOffset(f,h){return u(this._characterMapping,f,h)}}class c extends g{_readVisibleRangesForRange(f,h,v,w,S){const L=super._readVisibleRangesForRange(f,h,v,w,S);if(!L||L.length===0||v===w||v===1&&w===this._characterMapping.length)return L;if(!this.input.containsRTL){const D=this._readPixelOffset(f,h,w,S);if(D!==-1){const T=L[L.length-1];T.left=4&&w[0]===3&&w[3]===8}static isStrictChildOfViewLines(w){return w.length>4&&w[0]===3&&w[3]===8}static isChildOfScrollableElement(w){return w.length>=2&&w[0]===3&&w[1]===6}static isChildOfMinimap(w){return w.length>=2&&w[0]===3&&w[1]===9}static isChildOfContentWidgets(w){return w.length>=4&&w[0]===3&&w[3]===1}static isChildOfOverflowGuard(w){return w.length>=1&&w[0]===3}static isChildOfOverflowingContentWidgets(w){return w.length>=1&&w[0]===2}static isChildOfOverlayWidgets(w){return w.length>=2&&w[0]===3&&w[1]===4}static isChildOfOverflowingOverlayWidgets(w){return w.length>=1&&w[0]===5}}class c{constructor(w,S,L){this.viewModel=w.viewModel;const D=w.configuration.options;this.layoutInfo=D.get(146),this.viewDomNode=S.viewDomNode,this.lineHeight=D.get(67),this.stickyTabStops=D.get(117),this.typicalHalfwidthCharacterWidth=D.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=L,this._context=w,this._viewHelper=S}getZoneAtCoord(w){return c.getZoneAtCoord(this._context,w)}static getZoneAtCoord(w,S){const L=w.viewLayout.getWhitespaceAtVerticalOffset(S);if(L){const D=L.verticalOffset+L.height/2,T=w.viewModel.getLineCount();let M=null,A,P=null;return L.afterLineNumber!==T&&(P=new E.Position(L.afterLineNumber+1,1)),L.afterLineNumber>0&&(M=new E.Position(L.afterLineNumber,w.viewModel.getLineMaxColumn(L.afterLineNumber))),P===null?A=M:M===null?A=P:S=w.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,C._getMouseColumn(this.mouseContentHorizontalOffset,w.typicalHalfwidthCharacterWidth))}}class a extends l{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=k.PartFingerprints.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(w,S,L,D,T){super(w,S,L,D),this.hitTestResult=new p.Lazy(()=>C.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=w,this._eventTarget=T;const M=!!this._eventTarget;this._useHitTestTarget=!M}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} - target: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(w=null){return w&&w.columnM.contentLeft+M.width)continue;const A=w.getVerticalOffsetForLineNumber(M.position.lineNumber);if(A<=T&&T<=A+M.height)return S.fulfillContentText(M.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(w,S){const L=w.getZoneAtCoord(S.mouseVerticalOffset);if(L){const D=S.isInContentArea?8:5;return S.fulfillViewZone(D,L.position,L)}return null}static _hitTestTextArea(w,S){return g.isTextArea(S.targetPath)?w.lastRenderData.lastTextareaPosition?S.fulfillContentText(w.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):S.fulfillTextarea():null}static _hitTestMargin(w,S){if(S.isInMarginArea){const L=w.getFullLineRangeAtCoord(S.mouseVerticalOffset),D=L.range.getStartPosition();let T=Math.abs(S.relativePos.x);const M={isAfterLines:L.isAfterLines,glyphMarginLeft:w.layoutInfo.glyphMarginLeft,glyphMarginWidth:w.layoutInfo.glyphMarginWidth,lineNumbersWidth:w.layoutInfo.lineNumbersWidth,offsetX:T};if(T-=w.layoutInfo.glyphMarginLeft,T<=w.layoutInfo.glyphMarginWidth){const A=w.viewModel.coordinatesConverter.convertViewPositionToModelPosition(L.range.getStartPosition()),P=w.viewModel.glyphLanes.getLanesAtLine(A.lineNumber);return M.glyphMarginLane=P[Math.floor(T/w.lineHeight)],S.fulfillMargin(2,D,L.range,M)}return T-=w.layoutInfo.glyphMarginWidth,T<=w.layoutInfo.lineNumbersWidth?S.fulfillMargin(3,D,L.range,M):(T-=w.layoutInfo.lineNumbersWidth,S.fulfillMargin(4,D,L.range,M))}return null}static _hitTestViewLines(w,S){if(!g.isChildOfViewLines(S.targetPath))return null;if(w.isInTopPadding(S.mouseVerticalOffset))return S.fulfillContentEmpty(new E.Position(1,1),r);if(w.isAfterLines(S.mouseVerticalOffset)||w.isInBottomPadding(S.mouseVerticalOffset)){const D=w.viewModel.getLineCount(),T=w.viewModel.getLineMaxColumn(D);return S.fulfillContentEmpty(new E.Position(D,T),r)}if(g.isStrictChildOfViewLines(S.targetPath)){const D=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset);if(w.viewModel.getLineLength(D)===0){const M=w.getLineWidth(D),A=u(S.mouseContentHorizontalOffset-M);return S.fulfillContentEmpty(new E.Position(D,1),A)}const T=w.getLineWidth(D);if(S.mouseContentHorizontalOffset>=T){const M=u(S.mouseContentHorizontalOffset-T),A=new E.Position(D,w.viewModel.getLineMaxColumn(D));return S.fulfillContentEmpty(A,M)}}const L=S.hitTestResult.value;return L.type===1?C.createMouseTargetFromHitTestPosition(w,S,L.spanNode,L.position,L.injectedText):S.wouldBenefitFromHitTestTargetSwitch?(S.switchToHitTestTarget(),this._createMouseTarget(w,S)):S.fulfillUnknown()}static _hitTestMinimap(w,S){if(g.isChildOfMinimap(S.targetPath)){const L=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),D=w.viewModel.getLineMaxColumn(L);return S.fulfillScrollbar(new E.Position(L,D))}return null}static _hitTestScrollbarSlider(w,S){if(g.isChildOfScrollableElement(S.targetPath)&&S.target&&S.target.nodeType===1){const L=S.target.className;if(L&&/\b(slider|scrollbar)\b/.test(L)){const D=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),T=w.viewModel.getLineMaxColumn(D);return S.fulfillScrollbar(new E.Position(D,T))}}return null}static _hitTestScrollbar(w,S){if(g.isChildOfScrollableElement(S.targetPath)){const L=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),D=w.viewModel.getLineMaxColumn(L);return S.fulfillScrollbar(new E.Position(L,D))}return null}getMouseColumn(w){const S=this._context.configuration.options,L=S.get(146),D=this._context.viewLayout.getCurrentScrollLeft()+w.x-L.contentLeft;return C._getMouseColumn(D,S.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(w,S){return w<0?1:Math.round(w/S)+1}static createMouseTargetFromHitTestPosition(w,S,L,D,T){const M=D.lineNumber,A=D.column,P=w.getLineWidth(M);if(S.mouseContentHorizontalOffset>P){const z=u(S.mouseContentHorizontalOffset-P);return S.fulfillContentEmpty(D,z)}const N=w.visibleRangeForPosition(M,A);if(!N)return S.fulfillUnknown(D);const O=N.left;if(Math.abs(S.mouseContentHorizontalOffset-O)<1)return S.fulfillContentText(D,null,{mightBeForeignElement:!!T,injectedText:T});const F=[];if(F.push({offset:N.left,column:A}),A>1){const z=w.visibleRangeForPosition(M,A-1);z&&F.push({offset:z.left,column:A-1})}const x=w.viewModel.getLineMaxColumn(M);if(Az.offset-U.offset);const W=S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)),V=L.getBoundingClientRect(),q=V.left<=W.clientX&&W.clientX<=V.right;let H=null;for(let z=1;zT)){const A=Math.floor((D+T)/2);let P=S.pos.y+(A-S.mouseVerticalOffset);P<=S.editorPos.y&&(P=S.editorPos.y+1),P>=S.editorPos.y+S.editorPos.height&&(P=S.editorPos.y+S.editorPos.height-1);const N=new d.PageCoordinates(S.pos.x,P),O=this._actualDoHitTestWithCaretRangeFromPoint(w,N.toClientCoordinates(_.getWindow(w.viewDomNode)));if(O.type===1)return O}return this._actualDoHitTestWithCaretRangeFromPoint(w,S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(w,S){const L=_.getShadowRoot(w.viewDomNode);let D;if(L?typeof L.caretRangeFromPoint>"u"?D=f(L,S.clientX,S.clientY):D=L.caretRangeFromPoint(S.clientX,S.clientY):D=w.viewDomNode.ownerDocument.caretRangeFromPoint(S.clientX,S.clientY),!D||!D.startContainer)return new n;const T=D.startContainer;if(T.nodeType===T.TEXT_NODE){const M=T.parentNode,A=M?M.parentNode:null,P=A?A.parentNode:null;return(P&&P.nodeType===P.ELEMENT_NODE?P.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,M,D.startOffset):new n(T.parentNode)}else if(T.nodeType===T.ELEMENT_NODE){const M=T.parentNode,A=M?M.parentNode:null;return(A&&A.nodeType===A.ELEMENT_NODE?A.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,T,T.textContent.length):new n(T)}return new n}static _doHitTestWithCaretPositionFromPoint(w,S){const L=w.viewDomNode.ownerDocument.caretPositionFromPoint(S.clientX,S.clientY);if(L.offsetNode.nodeType===L.offsetNode.TEXT_NODE){const D=L.offsetNode.parentNode,T=D?D.parentNode:null,M=T?T.parentNode:null;return(M&&M.nodeType===M.ELEMENT_NODE?M.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,L.offsetNode.parentNode,L.offset):new n(L.offsetNode.parentNode)}if(L.offsetNode.nodeType===L.offsetNode.ELEMENT_NODE){const D=L.offsetNode.parentNode,T=D&&D.nodeType===D.ELEMENT_NODE?D.className:null,M=D?D.parentNode:null,A=M&&M.nodeType===M.ELEMENT_NODE?M.className:null;if(T===I.ViewLine.CLASS_NAME){const P=L.offsetNode.childNodes[Math.min(L.offset,L.offsetNode.childNodes.length-1)];if(P)return t.createFromDOMInfo(w,P,0)}else if(A===I.ViewLine.CLASS_NAME)return t.createFromDOMInfo(w,L.offsetNode,0)}return new n(L.offsetNode)}static _snapToSoftTabBoundary(w,S){const L=S.getLineContent(w.lineNumber),{tabSize:D}=S.model.getOptions(),T=b.AtomicTabMoveOperations.atomicPosition(L,w.column-1,D,2);return T!==-1?new E.Position(w.lineNumber,T+1):w}static doHitTest(w,S){let L=new n;if(typeof w.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?L=this._doHitTestWithCaretRangeFromPoint(w,S):w.viewDomNode.ownerDocument.caretPositionFromPoint&&(L=this._doHitTestWithCaretPositionFromPoint(w,S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)))),L.type===1){const D=w.viewModel.getInjectedTextAt(L.position),T=w.viewModel.normalizePosition(L.position,2);(D||!T.equals(L.position))&&(L=new o(T,L.spanNode,D))}return L}}e.MouseTargetFactory=C;function f(v,w,S){const L=document.createRange();let D=v.elementFromPoint(w,S);if(D!==null){for(;D&&D.firstChild&&D.firstChild.nodeType!==D.firstChild.TEXT_NODE&&D.lastChild&&D.lastChild.firstChild;)D=D.lastChild;const T=D.getBoundingClientRect(),M=_.getWindow(D),A=M.getComputedStyle(D,null).getPropertyValue("font-style"),P=M.getComputedStyle(D,null).getPropertyValue("font-variant"),N=M.getComputedStyle(D,null).getPropertyValue("font-weight"),O=M.getComputedStyle(D,null).getPropertyValue("font-size"),F=M.getComputedStyle(D,null).getPropertyValue("line-height"),x=M.getComputedStyle(D,null).getPropertyValue("font-family"),W=`${A} ${P} ${N} ${O}/${F} ${x}`,V=D.innerText;let q=T.left,H=0,z;if(w>T.left+T.width)H=V.length;else{const U=h.getInstance();for(let j=0;jthis._createMouseTarget(h,v),h=>this._getMouseColumn(h))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(146).height;const C=new m.EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(C.onContextMenu(this.viewHelper.viewDomNode,h=>this._onContextMenu(h,!0))),this._register(C.onMouseMove(this.viewHelper.viewDomNode,h=>{this._onMouseMove(h),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=d.addDisposableListener(this.viewHelper.viewDomNode.ownerDocument,"mousemove",v=>{this.viewHelper.viewDomNode.contains(v.target)||this._onMouseLeave(new m.EditorMouseEvent(v,!1,this.viewHelper.viewDomNode))}))})),this._register(C.onMouseUp(this.viewHelper.viewDomNode,h=>this._onMouseUp(h))),this._register(C.onMouseLeave(this.viewHelper.viewDomNode,h=>this._onMouseLeave(h)));let f=0;this._register(C.onPointerDown(this.viewHelper.viewDomNode,(h,v)=>{f=v})),this._register(d.addDisposableListener(this.viewHelper.viewDomNode,d.EventType.POINTER_UP,h=>{this._mouseDownOperation.onPointerUp()})),this._register(C.onMouseDown(this.viewHelper.viewDomNode,h=>this._onMouseDown(h,f))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const a=o.MouseWheelClassifier.INSTANCE;let r=0,u=_.EditorZoom.getZoomLevel(),C=!1,f=0;const h=w=>{if(this.viewController.emitMouseWheel(w),!this._context.configuration.options.get(76))return;const S=new k.StandardWheelEvent(w);if(a.acceptStandardWheelEvent(S),a.isPhysicalMouseWheel()){if(v(w)){const L=_.EditorZoom.getZoomLevel(),D=S.deltaY>0?1:-1;_.EditorZoom.setZoomLevel(L+D),S.preventDefault(),S.stopPropagation()}}else Date.now()-r>50&&(u=_.EditorZoom.getZoomLevel(),C=v(w),f=0),r=Date.now(),f+=S.deltaY,C&&(_.EditorZoom.setZoomLevel(u+f/5),S.preventDefault(),S.stopPropagation())};this._register(d.addDisposableListener(this.viewHelper.viewDomNode,d.EventType.MOUSE_WHEEL,h,{capture:!0,passive:!1}));function v(w){return E.isMacintosh?(w.metaKey||w.ctrlKey)&&!w.shiftKey&&!w.altKey:w.ctrlKey&&!w.metaKey&&!w.shiftKey&&!w.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(a){if(a.hasChanged(146)){const r=this._context.configuration.options.get(146).height;this._height!==r&&(this._height=r,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(a){return this._mouseDownOperation.onCursorStateChanged(a),!1}onFocusChanged(a){return!1}getTargetAtClientPoint(a,r){const C=new m.ClientCoordinates(a,r).toPageCoordinates(d.getWindow(this.viewHelper.viewDomNode)),f=(0,m.createEditorPagePosition)(this.viewHelper.viewDomNode);if(C.yf.y+f.height||C.xf.x+f.width)return null;const h=(0,m.createCoordinatesRelativeToEditor)(this.viewHelper.viewDomNode,f,C);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),f,C,h,null)}_createMouseTarget(a,r){let u=a.target;if(!this.viewHelper.viewDomNode.contains(u)){const C=d.getShadowRoot(this.viewHelper.viewDomNode);C&&(u=C.elementsFromPoint(a.posx,a.posy).find(f=>this.viewHelper.viewDomNode.contains(f)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),a.editorPos,a.pos,a.relativePos,r?u:null)}_getMouseColumn(a){return this.mouseTargetFactory.getMouseColumn(a.relativePos)}_onContextMenu(a,r){this.viewController.emitContextMenu({event:a,target:this._createMouseTarget(a,r)})}_onMouseMove(a){this.mouseTargetFactory.mouseTargetIsWidget(a)||a.preventDefault(),!(this._mouseDownOperation.isActive()||a.timestamp{a.preventDefault(),this.viewHelper.focusTextArea()};if(L&&(C||h&&v))D(),this._mouseDownOperation.start(u.type,a,r);else if(f)a.preventDefault();else if(w){const T=u.detail;L&&this.viewHelper.shouldSuppressMouseDownOnViewZone(T.viewZoneId)&&(D(),this._mouseDownOperation.start(u.type,a,r),a.preventDefault())}else S&&this.viewHelper.shouldSuppressMouseDownOnWidget(u.detail)&&(D(),a.preventDefault());this.viewController.emitMouseDown({event:a,target:u})}}e.MouseHandler=t;class i extends I.Disposable{constructor(a,r,u,C,f,h){super(),this._context=a,this._viewController=r,this._viewHelper=u,this._mouseTargetFactory=C,this._createMouseTarget=f,this._getMouseColumn=h,this._mouseMoveMonitor=this._register(new m.GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new s(this._context,this._viewHelper,this._mouseTargetFactory,(v,w,S)=>this._dispatchMouse(v,w,S))),this._mouseState=new c,this._currentSelection=new p.Selection(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(a){this._lastMouseEvent=a,this._mouseState.setModifiers(a);const r=this._findMousePosition(a,!1);r&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:a,target:r}):r.type===13&&(r.outsidePosition==="above"||r.outsidePosition==="below")?this._topBottomDragScrolling.start(r,a):(this._topBottomDragScrolling.stop(),this._dispatchMouse(r,!0,1)))}start(a,r,u){this._lastMouseEvent=r,this._mouseState.setStartedOnLineNumbers(a===3),this._mouseState.setStartButtons(r),this._mouseState.setModifiers(r);const C=this._findMousePosition(r,!0);if(!C||!C.position)return;this._mouseState.trySetCount(r.detail,C.position),r.detail=this._mouseState.count;const f=this._context.configuration.options;if(!f.get(92)&&f.get(35)&&!f.get(22)&&!this._mouseState.altKey&&r.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&C.type===6&&C.position&&this._currentSelection.containsPosition(C.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,u,r.buttons,h=>this._onMouseDownThenMove(h),h=>{const v=this._findMousePosition(this._lastMouseEvent,!1);d.isKeyboardEvent(h)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:v?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(C,r.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,u,r.buttons,h=>this._onMouseDownThenMove(h),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(a){this._currentSelection=a.selections[0]}_getPositionOutsideEditor(a){const r=a.editorPos,u=this._context.viewModel,C=this._context.viewLayout,f=this._getMouseColumn(a);if(a.posyr.y+r.height){const v=a.posy-r.y-r.height,w=C.getCurrentScrollTop()+a.relativePos.y,S=y.HitTestContext.getZoneAtCoord(this._context,w);if(S){const D=this._helpPositionJumpOverViewZone(S);if(D)return y.MouseTarget.createOutsideEditor(f,D,"below",v)}const L=C.getLineNumberAtVerticalOffset(w);return y.MouseTarget.createOutsideEditor(f,new b.Position(L,u.getLineMaxColumn(L)),"below",v)}const h=C.getLineNumberAtVerticalOffset(C.getCurrentScrollTop()+a.relativePos.y);if(a.posxr.x+r.width){const v=a.posx-r.x-r.width;return y.MouseTarget.createOutsideEditor(f,new b.Position(h,u.getLineMaxColumn(h)),"right",v)}return null}_findMousePosition(a,r){const u=this._getPositionOutsideEditor(a);if(u)return u;const C=this._createMouseTarget(a,r);if(!C.position)return null;if(C.type===8||C.type===5){const h=this._helpPositionJumpOverViewZone(C.detail);if(h)return y.MouseTarget.createViewZone(C.type,C.element,C.mouseColumn,h,C.detail)}return C}_helpPositionJumpOverViewZone(a){const r=new b.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),u=a.positionBefore,C=a.positionAfter;return u&&C?u.isBefore(r)?u:C:null}_dispatchMouse(a,r,u){a.position&&this._viewController.dispatchMouse({position:a.position,mouseColumn:a.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:u,inSelectionMode:r,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:a.type===6&&a.detail.injectedText!==null})}}class s extends I.Disposable{constructor(a,r,u,C){super(),this._context=a,this._viewHelper=r,this._mouseTargetFactory=u,this._dispatchMouse=C,this._operation=null}dispose(){super.dispose(),this.stop()}start(a,r){this._operation?this._operation.setPosition(a,r):this._operation=new g(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,a,r)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class g extends I.Disposable{constructor(a,r,u,C,f,h){super(),this._context=a,this._viewHelper=r,this._mouseTargetFactory=u,this._dispatchMouse=C,this._position=f,this._mouseEvent=h,this._lastTime=Date.now(),this._animationFrameDisposable=d.scheduleAtNextAnimationFrame(d.getWindow(h.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(a,r){this._position=a,this._mouseEvent=r}_tick(){const a=Date.now(),r=a-this._lastTime;return this._lastTime=a,r}_getScrollSpeed(){const a=this._context.configuration.options.get(67),r=this._context.configuration.options.get(146).height/a,u=this._position.outsideDistance/a;return u<=1.5?Math.max(30,r*(1+u)):u<=3?Math.max(60,r*(2+u)):Math.max(200,r*(7+u))}_execute(){const a=this._context.configuration.options.get(67),r=this._getScrollSpeed(),u=this._tick(),C=r*(u/1e3)*a,f=this._position.outsidePosition==="above"?-C:C;this._context.viewModel.viewLayout.deltaScrollNow(0,f),this._viewHelper.renderNow();const h=this._context.viewLayout.getLinesViewportData(),v=this._position.outsidePosition==="above"?h.startLineNumber:h.endLineNumber;let w;{const S=(0,m.createEditorPagePosition)(this._viewHelper.viewDomNode),L=this._context.configuration.options.get(146).horizontalScrollbarHeight,D=new m.PageCoordinates(this._mouseEvent.pos.x,S.y+S.height-L-.1),T=(0,m.createCoordinatesRelativeToEditor)(this._viewHelper.viewDomNode,S,D);w=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),S,D,T,null)}(!w.position||w.position.lineNumber!==v)&&(this._position.outsidePosition==="above"?w=y.MouseTarget.createOutsideEditor(this._position.mouseColumn,new b.Position(v,1),"above",this._position.outsideDistance):w=y.MouseTarget.createOutsideEditor(this._position.mouseColumn,new b.Position(v,this._context.viewModel.getLineMaxColumn(v)),"below",this._position.outsideDistance)),this._dispatchMouse(w,!0,2),this._animationFrameDisposable=d.scheduleAtNextAnimationFrame(d.getWindow(w.element),()=>this._execute())}}class c{static{this.CLEAR_MOUSE_DOWN_COUNT_TIME=400}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(a){this._altKey=a.altKey,this._ctrlKey=a.ctrlKey,this._metaKey=a.metaKey,this._shiftKey=a.shiftKey}setStartButtons(a){this._leftButton=a.leftButton,this._middleButton=a.middleButton}setStartedOnLineNumbers(a){this._startedOnLineNumbers=a}trySetCount(a,r){const u=new Date().getTime();u-this._lastSetMouseDownCountTime>c.CLEAR_MOUSE_DOWN_COUNT_TIME&&(a=1),this._lastSetMouseDownCountTime=u,a>this._lastMouseDownCount+1&&(a=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(r)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=r,this._lastMouseDownCount=Math.min(a,this._lastMouseDownPositionEqualCount)}}}),define(ne[769],se([1,0,248,5,69,52,2,16,768,212,185]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PointerHandler=e.PointerEventHandler=void 0;class n extends _.MouseHandler{constructor(s,g,c){super(s,g,c),this._register(I.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Tap,a=>this.onTap(a))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Change,a=>this.onChange(a))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Contextmenu,a=>this._onContextMenu(new p.EditorMouseEvent(a,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",a=>{const r=a.pointerType;if(r==="mouse"){this._lastPointerType="mouse";return}else r==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const l=new p.EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(l.onPointerMove(this.viewHelper.viewDomNode,a=>this._onMouseMove(a))),this._register(l.onPointerUp(this.viewHelper.viewDomNode,a=>this._onMouseUp(a))),this._register(l.onPointerLeave(this.viewHelper.viewDomNode,a=>this._onMouseLeave(a))),this._register(l.onPointerDown(this.viewHelper.viewDomNode,(a,r)=>this._onMouseDown(a,r)))}onTap(s){!s.initialTarget||!this.viewHelper.linesContentDomNode.contains(s.initialTarget)||(s.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(s,!1))}onChange(s){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-s.translationX,-s.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(s,!0)}_dispatchGesture(s,g){const c=this._createMouseTarget(new p.EditorMouseEvent(s,!1,this.viewHelper.viewDomNode),!1);c.position&&this.viewController.dispatchMouse({position:c.position,mouseColumn:c.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:s.tapCount,inSelectionMode:g,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:c.type===6&&c.detail.injectedText!==null})}_onMouseDown(s,g){s.browserEvent.pointerType!=="touch"&&super._onMouseDown(s,g)}}e.PointerEventHandler=n;class o extends _.MouseHandler{constructor(s,g,c){super(s,g,c),this._register(I.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Tap,l=>this.onTap(l))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Change,l=>this.onChange(l))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Contextmenu,l=>this._onContextMenu(new p.EditorMouseEvent(l,!1,this.viewHelper.viewDomNode),!1)))}onTap(s){s.preventDefault(),this.viewHelper.focusTextArea();const g=this._createMouseTarget(new p.EditorMouseEvent(s,!1,this.viewHelper.viewDomNode),!1);if(g.position){const c=document.createEvent("CustomEvent");c.initEvent(b.TextAreaSyntethicEvents.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(c),this.viewController.moveTo(g.position,1)}}onChange(s){this._context.viewModel.viewLayout.deltaScrollNow(-s.translationX,-s.translationY)}}class t extends y.Disposable{constructor(s,g,c){super(),(m.isIOS||m.isAndroid&&m.isMobile)&&d.BrowserFeatures.pointerEvents?this.handler=this._register(new n(s,g,c)):E.mainWindow.TouchEvent?this.handler=this._register(new o(s,g,c)):this.handler=this._register(new _.MouseHandler(s,g,c))}getTargetAtClientPoint(s,g){return this.handler.getTargetAtClientPoint(s,g)}}e.PointerHandler=t}),define(ne[770],se([1,0,226,14,16,74,164,262,56,547,281,9,4,487]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewLines=void 0;class t{constructor(){this._currentVisibleRange=new o.Range(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(l){this._currentVisibleRange=l}}class i{constructor(l,a,r,u,C,f,h){this.minimalReveal=l,this.lineNumber=a,this.startColumn=r,this.endColumn=u,this.startScrollTop=C,this.stopScrollTop=f,this.scrollType=h,this.type="range",this.minLineNumber=a,this.maxLineNumber=a}}class s{constructor(l,a,r,u,C){this.minimalReveal=l,this.selections=a,this.startScrollTop=r,this.stopScrollTop=u,this.scrollType=C,this.type="selections";let f=a[0].startLineNumber,h=a[0].endLineNumber;for(let v=1,w=a.length;vnew p.ViewLine(this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,_.PartFingerprints.write(this.domNode,8),this.domNode.setClassName(`view-lines ${d.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),(0,E.applyFontInfo)(this.domNode,C),this._maxLineWidth=0,this._asyncUpdateLineWidths=new k.RunOnceScheduler(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new k.RunOnceScheduler(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new t,this._horizontalRevealRequest=null,this._stickyScrollEnabled=u.get(116).enabled,this._maxNumberStickyLines=u.get(116).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(l){this._visibleLines.onConfigurationChanged(l),l.hasChanged(147)&&(this._maxLineWidth=0);const a=this._context.configuration.options,r=a.get(50),u=a.get(147);return this._lineHeight=a.get(67),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._isViewportWrapping=u.isViewportWrapping,this._revealHorizontalRightPadding=a.get(101),this._cursorSurroundingLines=a.get(29),this._cursorSurroundingLinesStyle=a.get(30),this._canUseLayerHinting=!a.get(32),this._stickyScrollEnabled=a.get(116).enabled,this._maxNumberStickyLines=a.get(116).maxLineCount,(0,E.applyFontInfo)(this.domNode,r),this._onOptionsMaybeChanged(),l.hasChanged(146)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const l=this._context.configuration,a=new p.ViewLineOptions(l,this._context.theme.type);if(!this._viewLineOptions.equals(a)){this._viewLineOptions=a;const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++)this._visibleLines.getVisibleLine(C).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(l){const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();let u=!1;for(let C=a;C<=r;C++)u=this._visibleLines.getVisibleLine(C).onSelectionChanged()||u;return u}onDecorationsChanged(l){{const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let u=a;u<=r;u++)this._visibleLines.getVisibleLine(u).onDecorationsChanged()}return!0}onFlushed(l){const a=this._visibleLines.onFlushed(l);return this._maxLineWidth=0,a}onLinesChanged(l){return this._visibleLines.onLinesChanged(l)}onLinesDeleted(l){return this._visibleLines.onLinesDeleted(l)}onLinesInserted(l){return this._visibleLines.onLinesInserted(l)}onRevealRangeRequest(l){const a=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),l.source,l.minimalReveal,l.range,l.selections,l.verticalType);if(a===-1)return!1;let r=this._context.viewLayout.validateScrollPosition({scrollTop:a});l.revealHorizontal?l.range&&l.range.startLineNumber!==l.range.endLineNumber?r={scrollTop:r.scrollTop,scrollLeft:0}:l.range?this._horizontalRevealRequest=new i(l.minimalReveal,l.range.startLineNumber,l.range.startColumn,l.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,l.scrollType):l.selections&&l.selections.length>0&&(this._horizontalRevealRequest=new s(l.minimalReveal,l.selections,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,l.scrollType)):this._horizontalRevealRequest=null;const C=Math.abs(this._context.viewLayout.getCurrentScrollTop()-r.scrollTop)<=this._lineHeight?1:l.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(r,C),!0}onScrollChanged(l){if(this._horizontalRevealRequest&&l.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&l.scrollTopChanged){const a=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),r=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(l.scrollTopr)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(l.scrollWidth),this._visibleLines.onScrollChanged(l)||!0}onTokensChanged(l){return this._visibleLines.onTokensChanged(l)}onZonesChanged(l){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(l)}onThemeChanged(l){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(l,a){const r=this._getViewLineDomNode(l);if(r===null)return null;const u=this._getLineNumberFor(r);if(u===-1||u<1||u>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(u)===1)return new n.Position(u,1);const C=this._visibleLines.getStartLineNumber(),f=this._visibleLines.getEndLineNumber();if(uf)return null;let h=this._visibleLines.getVisibleLine(u).getColumnOfNodeOffset(l,a);const v=this._context.viewModel.getLineMinColumn(u);return hr)return-1;const u=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),C=this._visibleLines.getVisibleLine(l).getWidth(u);return this._updateLineWidthsSlowIfDomDidLayout(u),C}linesVisibleRangesForRange(l,a){if(this.shouldRender())return null;const r=l.endLineNumber,u=o.Range.intersectRanges(l,this._lastRenderedData.getCurrentVisibleRange());if(!u)return null;const C=[];let f=0;const h=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let v=0;a&&(v=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new n.Position(u.startLineNumber,1)).lineNumber);const w=this._visibleLines.getStartLineNumber(),S=this._visibleLines.getEndLineNumber();for(let L=u.startLineNumber;L<=u.endLineNumber;L++){if(LS)continue;const D=L===u.startLineNumber?u.startColumn:1,T=L!==u.endLineNumber,M=T?this._context.viewModel.getLineMaxColumn(L):u.endColumn,A=this._visibleLines.getVisibleLine(L).getVisibleRangesForRange(L,D,M,h);if(A){if(a&&Lthis._visibleLines.getEndLineNumber())return null;const u=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),C=this._visibleLines.getVisibleLine(l).getVisibleRangesForRange(l,a,r,u);return this._updateLineWidthsSlowIfDomDidLayout(u),C}visibleRangeForPosition(l){const a=this._visibleRangesForLineRange(l.lineNumber,l.column,l.column);return a?new y.HorizontalPosition(a.outsideRenderedLine,a.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(l){l.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(l){const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();let u=1,C=!0;for(let f=a;f<=r;f++){const h=this._visibleLines.getVisibleLine(f);if(l&&!h.getWidthIsFast()){C=!1;continue}u=Math.max(u,h.getWidth(null))}return C&&a===1&&r===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(u),C}_checkMonospaceFontAssumptions(){let l=-1,a=-1;const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++){const f=this._visibleLines.getVisibleLine(C);if(f.needsMonospaceFontCheck()){const h=f.getWidth(null);h>a&&(a=h,l=C)}}if(l!==-1&&!this._visibleLines.getVisibleLine(l).monospaceAssumptionsAreValid())for(let C=r;C<=u;C++)this._visibleLines.getVisibleLine(C).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(l){if(this._visibleLines.renderLines(l),this._lastRenderedData.setCurrentVisibleRange(l.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const r=this._horizontalRevealRequest;if(l.startLineNumber<=r.minLineNumber&&r.maxLineNumber<=l.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const u=this._computeScrollLeftToReveal(r);u&&(this._isViewportWrapping||this._ensureMaxLineWidth(u.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:u.scrollLeft},r.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),I.isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++)if(this._visibleLines.getVisibleLine(C).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const a=this._context.viewLayout.getCurrentScrollTop()-l.bigNumbersDelta;this._linesContent.setTop(-a),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(l){const a=Math.ceil(l);this._maxLineWidth0){let N=C[0].startLineNumber,O=C[0].endLineNumber;for(let F=1,x=C.length;Fv){if(!S)return-1;P=L}else if(f===5||f===6)if(f===6&&h<=L&&D<=w)P=h;else{const N=Math.max(5*this._lineHeight,v*.2),O=L-N,F=D-v;P=Math.max(F,O)}else if(f===1||f===2)if(f===2&&h<=L&&D<=w)P=h;else{const N=(L+D)/2;P=Math.max(0,N-v/2)}else P=this._computeMinimumScrolling(h,w,L,D,f===3,f===4);return P}_computeScrollLeftToReveal(l){const a=this._context.viewLayout.getCurrentViewport(),r=this._context.configuration.options.get(146),u=a.left,C=u+a.width-r.verticalScrollbarWidth;let f=1073741824,h=0;if(l.type==="range"){const w=this._visibleRangesForLineRange(l.lineNumber,l.startColumn,l.endColumn);if(!w)return null;for(const S of w.ranges)f=Math.min(f,Math.round(S.left)),h=Math.max(h,Math.round(S.left+S.width))}else for(const w of l.selections){if(w.startLineNumber!==w.endLineNumber)return null;const S=this._visibleRangesForLineRange(w.startLineNumber,w.startColumn,w.endColumn);if(!S)return null;for(const L of S.ranges)f=Math.min(f,Math.round(L.left)),h=Math.max(h,Math.round(L.left+L.width))}return l.minimalReveal||(f=Math.max(0,f-g.HORIZONTAL_EXTRA_PX),h+=this._revealHorizontalRightPadding),l.type==="selections"&&h-f>a.width?null:{scrollLeft:this._computeMinimumScrolling(u,C,f,h),maxHorizontalOffset:h}}_computeMinimumScrolling(l,a,r,u,C,f){l=l|0,a=a|0,r=r|0,u=u|0,C=!!C,f=!!f;const h=a-l;if(u-ra)return Math.max(0,u-h)}else return r;return l}}e.ViewLines=g}),define(ne[25],se([1,0,6,2,7,38,97]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Themable=e.Extensions=e.IThemeService=void 0,e.themeColorFromId=m,e.getThemeTypeSelector=_,e.registerThemingParticipant=n,e.IThemeService=(0,I.createDecorator)("themeService");function m(t){return{id:t}}function _(t){switch(t){case y.ColorScheme.DARK:return"vs-dark";case y.ColorScheme.HIGH_CONTRAST_DARK:return"hc-black";case y.ColorScheme.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}e.Extensions={ThemingContribution:"base.contributions.theming"};class b{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new d.Emitter}onColorThemeChange(i){return this.themingParticipants.push(i),this.onThemingParticipantAddedEmitter.fire(i),(0,k.toDisposable)(()=>{const s=this.themingParticipants.indexOf(i);this.themingParticipants.splice(s,1)})}getThemingParticipants(){return this.themingParticipants}}const p=new b;E.Registry.add(e.Extensions.ThemingContribution,p);function n(t){return p.onColorThemeChange(t)}class o extends k.Disposable{constructor(i){super(),this.themeService=i,this.theme=i.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(s=>this.onThemeChange(s)))}onThemeChange(i){this.theme=i,this.updateStyles()}updateStyles(){}}e.Themable=o}),define(ne[771],se([1,0,6,2,73,25]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalStyleSheet=e.AbstractCodeEditorService=void 0;let y=class extends k.Disposable{constructor(b){super(),this._themeService=b,this._onWillCreateCodeEditor=this._register(new d.Emitter),this._onCodeEditorAdd=this._register(new d.Emitter),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new d.Emitter),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new d.Emitter),this._onDiffEditorAdd=this._register(new d.Emitter),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new d.Emitter),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new I.LinkedList,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(b){this._codeEditors[b.getId()]=b,this._onCodeEditorAdd.fire(b)}removeCodeEditor(b){delete this._codeEditors[b.getId()]&&this._onCodeEditorRemove.fire(b)}listCodeEditors(){return Object.keys(this._codeEditors).map(b=>this._codeEditors[b])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(b){this._diffEditors[b.getId()]=b,this._onDiffEditorAdd.fire(b)}listDiffEditors(){return Object.keys(this._diffEditors).map(b=>this._diffEditors[b])}getFocusedCodeEditor(){let b=null;const p=this.listCodeEditors();for(const n of p){if(n.hasTextFocus())return n;n.hasWidgetFocus()&&(b=n)}return b}removeDecorationType(b){const p=this._decorationOptionProviders.get(b);p&&(p.refCount--,p.refCount<=0&&(this._decorationOptionProviders.delete(b),p.dispose(),this.listCodeEditors().forEach(n=>n.removeDecorationsByType(b))))}setModelProperty(b,p,n){const o=b.toString();let t;this._modelProperties.has(o)?t=this._modelProperties.get(o):(t=new Map,this._modelProperties.set(o,t)),t.set(p,n)}getModelProperty(b,p){const n=b.toString();if(this._modelProperties.has(n))return this._modelProperties.get(n).get(p)}async openCodeEditor(b,p,n){for(const o of this._codeEditorOpenHandlers){const t=await o(b,p,n);if(t!==null)return t}return null}registerCodeEditorOpenHandler(b){const p=this._codeEditorOpenHandlers.unshift(b);return(0,k.toDisposable)(p)}};e.AbstractCodeEditorService=y,e.AbstractCodeEditorService=y=ke([ce(0,E.IThemeService)],y);class m{constructor(b){this._styleSheet=b}}e.GlobalStyleSheet=m}),define(ne[772],se([1,0,49,25,32,118,58,7,705,2,5,31,47,61,119,52,395,648,14]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverService=void 0;let a=class extends b.Disposable{constructor(h,v,w,S,L){super(),this._instantiationService=h,this._keybindingService=w,this._layoutService=S,this._accessibilityService=L,this._managedHovers=new Map,v.onDidShowContextMenu(()=>this.hideHover()),this._contextViewHandler=this._register(new g.ContextViewHandler(this._layoutService))}showHover(h,v,w){if(r(this._currentHoverOptions)===r(h)||this._currentHover&&this._currentHoverOptions?.persistence?.sticky)return;this._currentHoverOptions=h,this._lastHoverOptions=h;const S=h.trapFocus||this._accessibilityService.isScreenReaderOptimized(),L=(0,p.getActiveElement)();w||(S&&L?L.classList.contains("monaco-hover")||(this._lastFocusedElementBeforeOpen=L):this._lastFocusedElementBeforeOpen=void 0);const D=new b.DisposableStore,T=this._instantiationService.createInstance(_.HoverWidget,h);if(h.persistence?.sticky&&(T.isLocked=!0),T.onDispose(()=>{this._currentHover?.domNode&&(0,p.isAncestorOfActiveElement)(this._currentHover.domNode)&&this._lastFocusedElementBeforeOpen?.focus(),this._currentHoverOptions===h&&(this._currentHoverOptions=void 0),D.dispose()},void 0,D),!h.container){const M=(0,p.isHTMLElement)(h.target)?h.target:h.target.targetElements[0];h.container=this._layoutService.getContainer((0,p.getWindow)(M))}if(this._contextViewHandler.showContextView(new u(T,v),h.container),T.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,D),h.persistence?.sticky)D.add((0,p.addDisposableListener)((0,p.getWindow)(h.container).document,p.EventType.MOUSE_DOWN,M=>{(0,p.isAncestor)(M.target,T.domNode)||this.doHideHover()}));else{if("targetElements"in h.target)for(const A of h.target.targetElements)D.add((0,p.addDisposableListener)(A,p.EventType.CLICK,()=>this.hideHover()));else D.add((0,p.addDisposableListener)(h.target,p.EventType.CLICK,()=>this.hideHover()));const M=(0,p.getActiveElement)();if(M){const A=(0,p.getWindow)(M).document;D.add((0,p.addDisposableListener)(M,p.EventType.KEY_DOWN,P=>this._keyDown(P,T,!!h.persistence?.hideOnKeyDown))),D.add((0,p.addDisposableListener)(A,p.EventType.KEY_DOWN,P=>this._keyDown(P,T,!!h.persistence?.hideOnKeyDown))),D.add((0,p.addDisposableListener)(M,p.EventType.KEY_UP,P=>this._keyUp(P,T))),D.add((0,p.addDisposableListener)(A,p.EventType.KEY_UP,P=>this._keyUp(P,T)))}}if("IntersectionObserver"in s.mainWindow){const M=new IntersectionObserver(P=>this._intersectionChange(P,T),{threshold:0}),A="targetElements"in h.target?h.target.targetElements[0]:h.target;M.observe(A),D.add((0,b.toDisposable)(()=>M.disconnect()))}return this._currentHover=T,T}hideHover(){this._currentHover?.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(h,v){h[h.length-1].isIntersecting||v.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showHover(this._lastHoverOptions,!0,!0)}_keyDown(h,v,w){if(h.key==="Alt"){v.isLocked=!0;return}const S=new o.StandardKeyboardEvent(h);this._keybindingService.resolveKeyboardEvent(S).getSingleModifierDispatchChords().some(D=>!!D)||this._keybindingService.softDispatch(S,S.target).kind!==0||w&&(!this._currentHoverOptions?.trapFocus||h.key!=="Tab")&&(this.hideHover(),this._lastFocusedElementBeforeOpen?.focus())}_keyUp(h,v){h.key==="Alt"&&(v.isLocked=!1,v.isMouseIn||(this.hideHover(),this._lastFocusedElementBeforeOpen?.focus()))}setupManagedHover(h,v,w,S){v.setAttribute("custom-hover","true"),v.title!==""&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",v.title),v.title="");let L,D;const T=(z,U)=>{const j=D!==void 0;z&&(D?.dispose(),D=void 0),U&&(L?.dispose(),L=void 0),j&&(h.onDidHideHover?.(),D=void 0)},M=(z,U,j,Y)=>new l.TimeoutTimer(async()=>{(!D||D.isDisposed)&&(D=new c.ManagedHoverWidget(h,j||v,z>0),await D.update(typeof w=="function"?w():w,U,{...S,trapFocus:Y}))},z);let A=!1;const P=(0,p.addDisposableListener)(v,p.EventType.MOUSE_DOWN,()=>{A=!0,T(!0,!0)},!0),N=(0,p.addDisposableListener)(v,p.EventType.MOUSE_UP,()=>{A=!1},!0),O=(0,p.addDisposableListener)(v,p.EventType.MOUSE_LEAVE,z=>{A=!1,T(!1,z.fromElement===v)},!0),F=z=>{if(L)return;const U=new b.DisposableStore,j={targetElements:[v],dispose:()=>{}};if(h.placement===void 0||h.placement==="mouse"){const Y=G=>{j.x=G.x+10,(0,p.isHTMLElement)(G.target)&&C(G.target,v)!==v&&T(!0,!0)};U.add((0,p.addDisposableListener)(v,p.EventType.MOUSE_MOVE,Y,!0))}L=U,!((0,p.isHTMLElement)(z.target)&&C(z.target,v)!==v)&&U.add(M(h.delay,!1,j))},x=(0,p.addDisposableListener)(v,p.EventType.MOUSE_OVER,F,!0),W=()=>{if(A||L)return;const z={targetElements:[v],dispose:()=>{}},U=new b.DisposableStore,j=()=>T(!0,!0);U.add((0,p.addDisposableListener)(v,p.EventType.BLUR,j,!0)),U.add(M(h.delay,!1,z)),L=U};let V;const q=v.tagName.toLowerCase();q!=="input"&&q!=="textarea"&&(V=(0,p.addDisposableListener)(v,p.EventType.FOCUS,W,!0));const H={show:z=>{T(!1,!0),M(0,z,void 0,z)},hide:()=>{T(!0,!0)},update:async(z,U)=>{w=z,await D?.update(w,void 0,U)},dispose:()=>{this._managedHovers.delete(v),x.dispose(),O.dispose(),P.dispose(),N.dispose(),V?.dispose(),T(!0,!0)}};return this._managedHovers.set(v,H),H}showManagedHover(h){const v=this._managedHovers.get(h);v&&v.show(!0)}dispose(){this._managedHovers.forEach(h=>h.dispose()),super.dispose()}};e.HoverService=a,e.HoverService=a=ke([ce(0,m.IInstantiationService),ce(1,y.IContextMenuService),ce(2,n.IKeybindingService),ce(3,i.ILayoutService),ce(4,t.IAccessibilityService)],a);function r(f){if(f!==void 0)return f?.id??f}class u{get anchorPosition(){return this._hover.anchor}constructor(h,v=!1){this._hover=h,this._focus=v,this.layer=1}render(h){return this._hover.render(h),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function C(f,h){for(h=h??(0,p.getWindow)(f).document.body;!f.hasAttribute("custom-hover")&&f!==h;)f=f.parentElement;return f}(0,d.registerSingleton)(E.IHoverService,a,1),(0,k.registerThemingParticipant)((f,h)=>{const v=f.getColor(I.editorHoverBorder);v&&(h.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${v.transparent(.5)}; }`),h.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${v.transparent(.5)}; }`))})}),define(ne[773],se([1,0,5,39,86,56,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScrollbar=void 0;class m extends E.ViewPart{constructor(b,p,n,o){super(b);const t=this._context.configuration.options,i=t.get(104),s=t.get(75),g=t.get(40),c=t.get(107),l={listenOnDomNode:n.domNode,className:"editor-scrollable "+(0,y.getThemeTypeSelector)(b.theme.type),useShadows:!1,lazyRender:!0,vertical:i.vertical,horizontal:i.horizontal,verticalHasArrows:i.verticalHasArrows,horizontalHasArrows:i.horizontalHasArrows,verticalScrollbarSize:i.verticalScrollbarSize,verticalSliderSize:i.verticalSliderSize,horizontalScrollbarSize:i.horizontalScrollbarSize,horizontalSliderSize:i.horizontalSliderSize,handleMouseWheel:i.handleMouseWheel,alwaysConsumeMouseWheel:i.alwaysConsumeMouseWheel,arrowSize:i.arrowSize,mouseWheelScrollSensitivity:s,fastScrollSensitivity:g,scrollPredominantAxis:c,scrollByPage:i.scrollByPage};this.scrollbar=this._register(new I.SmoothScrollableElement(p.domNode,l,this._context.viewLayout.getScrollable())),E.PartFingerprints.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=(0,k.createFastDomNode)(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const a=(r,u,C)=>{const f={};if(u){const h=r.scrollTop;h&&(f.scrollTop=this._context.viewLayout.getCurrentScrollTop()+h,r.scrollTop=0)}if(C){const h=r.scrollLeft;h&&(f.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+h,r.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(f,1)};this._register(d.addDisposableListener(n.domNode,"scroll",r=>a(n.domNode,!0,!0))),this._register(d.addDisposableListener(p.domNode,"scroll",r=>a(p.domNode,!0,!1))),this._register(d.addDisposableListener(o.domNode,"scroll",r=>a(o.domNode,!0,!1))),this._register(d.addDisposableListener(this.scrollbarDomNode.domNode,"scroll",r=>a(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const b=this._context.configuration.options,p=b.get(146);this.scrollbarDomNode.setLeft(p.contentLeft),b.get(73).side==="right"?this.scrollbarDomNode.setWidth(p.contentWidth+p.minimap.minimapWidth):this.scrollbarDomNode.setWidth(p.contentWidth),this.scrollbarDomNode.setHeight(p.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(b){this.scrollbar.delegateVerticalScrollbarPointerDown(b)}delegateScrollFromMouseWheelEvent(b){this.scrollbar.delegateScrollFromMouseWheelEvent(b)}onConfigurationChanged(b){if(b.hasChanged(104)||b.hasChanged(75)||b.hasChanged(40)){const p=this._context.configuration.options,n=p.get(104),o=p.get(75),t=p.get(40),i=p.get(107),s={vertical:n.vertical,horizontal:n.horizontal,verticalScrollbarSize:n.verticalScrollbarSize,horizontalScrollbarSize:n.horizontalScrollbarSize,scrollByPage:n.scrollByPage,handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:o,fastScrollSensitivity:t,scrollPredominantAxis:i};this.scrollbar.updateOptions(s)}return b.hasChanged(146)&&this._setLayout(),!0}onScrollChanged(b){return!0}onThemeChanged(b){return this.scrollbar.updateClassName("editor-scrollable "+(0,y.getThemeTypeSelector)(this._context.theme.type)),!0}prepareRender(b){}render(b){this.scrollbar.renderNow()}}e.EditorScrollbar=m}),define(ne[774],se([1,0,133,32,25,495]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionsOverlay=void 0;class E{constructor(o){this.left=o.left,this.width=o.width,this.startStyle=null,this.endStyle=null}}class y{constructor(o,t){this.lineNumber=o,this.ranges=t}}function m(n){return new E(n)}function _(n){return new y(n.lineNumber,n.ranges.map(m))}class b extends d.DynamicViewOverlay{static{this.SELECTION_CLASS_NAME="selected-text"}static{this.SELECTION_TOP_LEFT="top-left-radius"}static{this.SELECTION_BOTTOM_LEFT="bottom-left-radius"}static{this.SELECTION_TOP_RIGHT="top-right-radius"}static{this.SELECTION_BOTTOM_RIGHT="bottom-right-radius"}static{this.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background"}static{this.ROUNDED_PIECE_WIDTH=10}constructor(o){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=o;const t=this._context.configuration.options;this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(o){const t=this._context.configuration.options;return this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(o){return this._selections=o.selections.slice(0),!0}onDecorationsChanged(o){return!0}onFlushed(o){return!0}onLinesChanged(o){return!0}onLinesDeleted(o){return!0}onLinesInserted(o){return!0}onScrollChanged(o){return o.scrollTopChanged}onZonesChanged(o){return!0}_visibleRangesHaveGaps(o){for(let t=0,i=o.length;t1)return!0;return!1}_enrichVisibleRangesWithStyle(o,t,i){const s=this._typicalHalfwidthCharacterWidth/4;let g=null,c=null;if(i&&i.length>0&&t.length>0){const l=t[0].lineNumber;if(l===o.startLineNumber)for(let r=0;!g&&r=0;r--)i[r].lineNumber===a&&(c=i[r].ranges[0]);g&&!g.startStyle&&(g=null),c&&!c.startStyle&&(c=null)}for(let l=0,a=t.length;l0){const v=t[l-1].ranges[0].left,w=t[l-1].ranges[0].left+t[l-1].ranges[0].width;p(u-v)v&&(f.top=1),p(C-w)'}_actualRenderOneSelection(o,t,i,s){if(s.length===0)return;const g=!!s[0].ranges[0].startStyle,c=s[0].lineNumber,l=s[s.length-1].lineNumber;for(let a=0,r=s.length;a1,r)}this._previousFrameVisibleRangesWithStyle=g,this._renderResult=t.map(([c,l])=>c+l)}render(o,t){if(!this._renderResult)return"";const i=t-o;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}e.SelectionsOverlay=b,(0,I.registerThemingParticipant)((n,o)=>{const t=n.getColor(k.editorSelectionForeground);t&&!t.isTransparent()&&o.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function p(n){return n<0?-n:n}}),define(ne[415],se([1,0,5,39,223,2,21,88,9,332,32,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerFeature=void 0;let t=class extends E.Disposable{static{o=this}static{this.ONE_OVERVIEW_WIDTH=15}static{this.ENTIRE_DIFF_OVERVIEW_WIDTH=this.ONE_OVERVIEW_WIDTH*2}constructor(s,g,c,l,a,r,u){super(),this._editors=s,this._rootElement=g,this._diffModel=c,this._rootWidth=l,this._rootHeight=a,this._modifiedEditorLayoutInfo=r,this._themeService=u,this.width=o.ENTIRE_DIFF_OVERVIEW_WIDTH;const C=(0,y.observableFromEvent)(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),f=(0,y.derived)(w=>{const S=C.read(w),L=S.getColor(p.diffOverviewRulerInserted)||(S.getColor(p.diffInserted)||p.defaultInsertColor).transparent(2),D=S.getColor(p.diffOverviewRulerRemoved)||(S.getColor(p.diffRemoved)||p.defaultRemoveColor).transparent(2);return{insertColor:L,removeColor:D}}),h=(0,k.createFastDomNode)(document.createElement("div"));h.setClassName("diffViewport"),h.setPosition("absolute");const v=(0,d.h)("div.diffOverview",{style:{position:"absolute",top:"0px",width:o.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register((0,m.appendRemoveOnDispose)(v,h.domNode)),this._register((0,d.addStandardDisposableListener)(v,d.EventType.POINTER_DOWN,w=>{this._editors.modified.delegateVerticalScrollbarPointerDown(w)})),this._register((0,d.addDisposableListener)(v,d.EventType.MOUSE_WHEEL,w=>{this._editors.modified.delegateScrollFromMouseWheelEvent(w)},{passive:!1})),this._register((0,m.appendRemoveOnDispose)(this._rootElement,v)),this._register((0,y.autorunWithStore)((w,S)=>{const L=this._diffModel.read(w),D=this._editors.original.createOverviewRuler("original diffOverviewRuler");D&&(S.add(D),S.add((0,m.appendRemoveOnDispose)(v,D.getDomNode())));const T=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(T&&(S.add(T),S.add((0,m.appendRemoveOnDispose)(v,T.getDomNode()))),!D||!T)return;const M=(0,y.observableSignalFromEvent)("viewZoneChanged",this._editors.original.onDidChangeViewZones),A=(0,y.observableSignalFromEvent)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),P=(0,y.observableSignalFromEvent)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),N=(0,y.observableSignalFromEvent)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);S.add((0,y.autorun)(O=>{M.read(O),A.read(O),P.read(O),N.read(O);const F=f.read(O),x=L?.diff.read(O)?.mappings;function W(H,z,U){const j=U._getViewModel();return j?H.filter(Y=>Y.length>0).map(Y=>{const G=j.coordinatesConverter.convertModelPositionToViewPosition(new _.Position(Y.startLineNumber,1)),K=j.coordinatesConverter.convertModelPositionToViewPosition(new _.Position(Y.endLineNumberExclusive,1)),R=K.lineNumber-G.lineNumber;return new b.OverviewRulerZone(G.lineNumber,K.lineNumber,R,z.toString())}):[]}const V=W((x||[]).map(H=>H.lineRangeMapping.original),F.removeColor,this._editors.original),q=W((x||[]).map(H=>H.lineRangeMapping.modified),F.insertColor,this._editors.modified);D?.setZones(V),T?.setZones(q)})),S.add((0,y.autorun)(O=>{const F=this._rootHeight.read(O),x=this._rootWidth.read(O),W=this._modifiedEditorLayoutInfo.read(O);if(W){const V=o.ENTIRE_DIFF_OVERVIEW_WIDTH-2*o.ONE_OVERVIEW_WIDTH;D.setLayout({top:0,height:F,right:V+o.ONE_OVERVIEW_WIDTH,width:o.ONE_OVERVIEW_WIDTH}),T.setLayout({top:0,height:F,right:0,width:o.ONE_OVERVIEW_WIDTH});const q=this._editors.modifiedScrollTop.read(O),H=this._editors.modifiedScrollHeight.read(O),z=this._editors.modified.getOption(104),U=new I.ScrollbarState(z.verticalHasArrows?z.arrowSize:0,z.verticalScrollbarSize,0,W.height,H,q);h.setTop(U.getSliderPosition()),h.setHeight(U.getSliderSize())}else h.setTop(0),h.setHeight(0);v.style.height=F+"px",v.style.left=x-o.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",h.setWidth(o.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};e.OverviewRulerFeature=t,e.OverviewRulerFeature=t=o=ke([ce(6,n.IThemeService)],t)}),define(ne[775],se([1,0,6,2,21,112,415,37,9,3,7,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorEditors=void 0;let o=class extends k.Disposable{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(i,s,g,c,l,a,r){super(),this.originalEditorElement=i,this.modifiedEditorElement=s,this._options=g,this._argCodeEditorWidgetOptions=c,this._createInnerEditor=l,this._instantiationService=a,this._keybindingService=r,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new d.Emitter),this.modifiedScrollTop=(0,I.observableFromEvent)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=(0,I.observableFromEvent)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=(0,E.observableCodeEditor)(this.modified),this.originalObs=(0,E.observableCodeEditor)(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=(0,I.observableFromEvent)(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=(0,I.derivedOpts)({owner:this,equalsFn:_.Position.equals},u=>this.modifiedSelections.read(u)[0]?.getPosition()??new _.Position(1,1)),this.originalCursor=(0,I.observableFromEvent)(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new _.Position(1,1)),this._argCodeEditorWidgetOptions=null,this._register((0,I.autorunHandleChanges)({createEmptyChangeSummary:()=>({}),handleChange:(u,C)=>(u.didChange(g.editorOptions)&&Object.assign(C,u.change.changedOptions),!0)},(u,C)=>{g.editorOptions.read(u),this._options.renderSideBySide.read(u),this.modified.updateOptions(this._adjustOptionsForRightHandSide(u,C)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(u,C))}))}_createLeftHandSideEditor(i,s){const g=this._adjustOptionsForLeftHandSide(void 0,i),c=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,g,s);return c.setContextValue("isInDiffLeftEditor",!0),c}_createRightHandSideEditor(i,s){const g=this._adjustOptionsForRightHandSide(void 0,i),c=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,g,s);return c.setContextValue("isInDiffRightEditor",!0),c}_constructInnerEditor(i,s,g,c){const l=this._createInnerEditor(i,s,g,c);return this._register(l.onDidContentSizeChange(a=>{const r=this.original.getContentWidth()+this.modified.getContentWidth()+y.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,u=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:u,contentWidth:r,contentHeightChanged:a.contentHeightChanged,contentWidthChanged:a.contentWidthChanged})})),l}_adjustOptionsForLeftHandSide(i,s){const g=this._adjustOptionsForSubEditor(s);return this._options.renderSideBySide.get()?(g.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},g.wordWrapOverride1=this._options.diffWordWrap.get()):(g.wordWrapOverride1="off",g.wordWrapOverride2="off",g.stickyScroll={enabled:!1},g.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),g.glyphMargin=this._options.renderSideBySide.get(),s.originalAriaLabel&&(g.ariaLabel=s.originalAriaLabel),g.ariaLabel=this._updateAriaLabel(g.ariaLabel),g.readOnly=!this._options.originalEditable.get(),g.dropIntoEditor={enabled:!g.readOnly},g.extraEditorClassName="original-in-monaco-diff-editor",g}_adjustOptionsForRightHandSide(i,s){const g=this._adjustOptionsForSubEditor(s);return s.modifiedAriaLabel&&(g.ariaLabel=s.modifiedAriaLabel),g.ariaLabel=this._updateAriaLabel(g.ariaLabel),g.wordWrapOverride1=this._options.diffWordWrap.get(),g.revealHorizontalRightPadding=m.EditorOptions.revealHorizontalRightPadding.defaultValue+y.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,g.scrollbar.verticalHasArrows=!1,g.extraEditorClassName="modified-in-monaco-diff-editor",g}_adjustOptionsForSubEditor(i){const s={...i,dimension:{height:0,width:0}};return s.inDiffEditor=!0,s.automaticLayout=!1,s.scrollbar={...s.scrollbar||{}},s.folding=!1,s.codeLens=this._options.diffCodeLens.get(),s.fixedOverflowWidgets=!0,s.minimap={...s.minimap||{}},s.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?s.stickyScroll={enabled:!1}:s.stickyScroll=this._options.editorOptions.get().stickyScroll,s}_updateAriaLabel(i){i||(i="");const s=(0,b.localize)(98," use {0} to open the accessibility help.",this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel());return this._options.accessibilityVerbose.get()?i+s:i?i.replaceAll(s,""):""}};e.DiffEditorEditors=o,e.DiffEditorEditors=o=ke([ce(5,p.IInstantiationService),ce(6,n.IKeybindingService)],o)}),define(ne[80],se([1,0,3,33,32,25]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorUnicodeHighlightBackground=e.editorUnicodeHighlightBorder=e.editorBracketPairGuideActiveBackground6=e.editorBracketPairGuideActiveBackground5=e.editorBracketPairGuideActiveBackground4=e.editorBracketPairGuideActiveBackground3=e.editorBracketPairGuideActiveBackground2=e.editorBracketPairGuideActiveBackground1=e.editorBracketPairGuideBackground6=e.editorBracketPairGuideBackground5=e.editorBracketPairGuideBackground4=e.editorBracketPairGuideBackground3=e.editorBracketPairGuideBackground2=e.editorBracketPairGuideBackground1=e.editorBracketHighlightingUnexpectedBracketForeground=e.editorBracketHighlightingForeground6=e.editorBracketHighlightingForeground5=e.editorBracketHighlightingForeground4=e.editorBracketHighlightingForeground3=e.editorBracketHighlightingForeground2=e.editorBracketHighlightingForeground1=e.overviewRulerInfo=e.overviewRulerWarning=e.overviewRulerError=e.overviewRulerRangeHighlight=e.ghostTextBackground=e.ghostTextForeground=e.ghostTextBorder=e.editorUnnecessaryCodeOpacity=e.editorUnnecessaryCodeBorder=e.editorGutter=e.editorOverviewRulerBackground=e.editorOverviewRulerBorder=e.editorBracketMatchBorder=e.editorBracketMatchBackground=e.editorCodeLensForeground=e.editorRuler=e.editorDimmedLineNumber=e.editorActiveLineNumber=e.editorActiveIndentGuide6=e.editorActiveIndentGuide5=e.editorActiveIndentGuide4=e.editorActiveIndentGuide3=e.editorActiveIndentGuide2=e.editorActiveIndentGuide1=e.editorIndentGuide6=e.editorIndentGuide5=e.editorIndentGuide4=e.editorIndentGuide3=e.editorIndentGuide2=e.editorIndentGuide1=e.deprecatedEditorActiveIndentGuides=e.deprecatedEditorIndentGuides=e.editorLineNumbers=e.editorWhitespaces=e.editorMultiCursorSecondaryBackground=e.editorMultiCursorSecondaryForeground=e.editorMultiCursorPrimaryBackground=e.editorMultiCursorPrimaryForeground=e.editorCursorBackground=e.editorCursorForeground=e.editorSymbolHighlightBorder=e.editorSymbolHighlight=e.editorRangeHighlightBorder=e.editorRangeHighlight=e.editorLineHighlightBorder=e.editorLineHighlight=void 0,e.editorLineHighlight=(0,I.registerColor)("editor.lineHighlightBackground",null,d.localize(551,"Background color for the highlight of line at the cursor position.")),e.editorLineHighlightBorder=(0,I.registerColor)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:I.contrastBorder},d.localize(552,"Background color for the border around the line at the cursor position.")),e.editorRangeHighlight=(0,I.registerColor)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},d.localize(553,"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorRangeHighlightBorder=(0,I.registerColor)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(554,"Background color of the border around highlighted ranges.")),e.editorSymbolHighlight=(0,I.registerColor)("editor.symbolHighlightBackground",{dark:I.editorFindMatchHighlight,light:I.editorFindMatchHighlight,hcDark:null,hcLight:null},d.localize(555,"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSymbolHighlightBorder=(0,I.registerColor)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(556,"Background color of the border around highlighted symbols.")),e.editorCursorForeground=(0,I.registerColor)("editorCursor.foreground",{dark:"#AEAFAD",light:k.Color.black,hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(557,"Color of the editor cursor.")),e.editorCursorBackground=(0,I.registerColor)("editorCursor.background",null,d.localize(558,"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),e.editorMultiCursorPrimaryForeground=(0,I.registerColor)("editorMultiCursor.primary.foreground",e.editorCursorForeground,d.localize(559,"Color of the primary editor cursor when multiple cursors are present.")),e.editorMultiCursorPrimaryBackground=(0,I.registerColor)("editorMultiCursor.primary.background",e.editorCursorBackground,d.localize(560,"The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),e.editorMultiCursorSecondaryForeground=(0,I.registerColor)("editorMultiCursor.secondary.foreground",e.editorCursorForeground,d.localize(561,"Color of secondary editor cursors when multiple cursors are present.")),e.editorMultiCursorSecondaryBackground=(0,I.registerColor)("editorMultiCursor.secondary.background",e.editorCursorBackground,d.localize(562,"The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),e.editorWhitespaces=(0,I.registerColor)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},d.localize(563,"Color of whitespace characters in the editor.")),e.editorLineNumbers=(0,I.registerColor)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:k.Color.white,hcLight:"#292929"},d.localize(564,"Color of editor line numbers.")),e.deprecatedEditorIndentGuides=(0,I.registerColor)("editorIndentGuide.background",e.editorWhitespaces,d.localize(565,"Color of the editor indentation guides."),!1,d.localize(566,"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),e.deprecatedEditorActiveIndentGuides=(0,I.registerColor)("editorIndentGuide.activeBackground",e.editorWhitespaces,d.localize(567,"Color of the active editor indentation guides."),!1,d.localize(568,"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),e.editorIndentGuide1=(0,I.registerColor)("editorIndentGuide.background1",e.deprecatedEditorIndentGuides,d.localize(569,"Color of the editor indentation guides (1).")),e.editorIndentGuide2=(0,I.registerColor)("editorIndentGuide.background2","#00000000",d.localize(570,"Color of the editor indentation guides (2).")),e.editorIndentGuide3=(0,I.registerColor)("editorIndentGuide.background3","#00000000",d.localize(571,"Color of the editor indentation guides (3).")),e.editorIndentGuide4=(0,I.registerColor)("editorIndentGuide.background4","#00000000",d.localize(572,"Color of the editor indentation guides (4).")),e.editorIndentGuide5=(0,I.registerColor)("editorIndentGuide.background5","#00000000",d.localize(573,"Color of the editor indentation guides (5).")),e.editorIndentGuide6=(0,I.registerColor)("editorIndentGuide.background6","#00000000",d.localize(574,"Color of the editor indentation guides (6).")),e.editorActiveIndentGuide1=(0,I.registerColor)("editorIndentGuide.activeBackground1",e.deprecatedEditorActiveIndentGuides,d.localize(575,"Color of the active editor indentation guides (1).")),e.editorActiveIndentGuide2=(0,I.registerColor)("editorIndentGuide.activeBackground2","#00000000",d.localize(576,"Color of the active editor indentation guides (2).")),e.editorActiveIndentGuide3=(0,I.registerColor)("editorIndentGuide.activeBackground3","#00000000",d.localize(577,"Color of the active editor indentation guides (3).")),e.editorActiveIndentGuide4=(0,I.registerColor)("editorIndentGuide.activeBackground4","#00000000",d.localize(578,"Color of the active editor indentation guides (4).")),e.editorActiveIndentGuide5=(0,I.registerColor)("editorIndentGuide.activeBackground5","#00000000",d.localize(579,"Color of the active editor indentation guides (5).")),e.editorActiveIndentGuide6=(0,I.registerColor)("editorIndentGuide.activeBackground6","#00000000",d.localize(580,"Color of the active editor indentation guides (6)."));const y=(0,I.registerColor)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(581,"Color of editor active line number"),!1,d.localize(582,"Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));e.editorActiveLineNumber=(0,I.registerColor)("editorLineNumber.activeForeground",y,d.localize(583,"Color of editor active line number")),e.editorDimmedLineNumber=(0,I.registerColor)("editorLineNumber.dimmedForeground",null,d.localize(584,"Color of the final editor line when editor.renderFinalNewline is set to dimmed.")),e.editorRuler=(0,I.registerColor)("editorRuler.foreground",{dark:"#5A5A5A",light:k.Color.lightgrey,hcDark:k.Color.white,hcLight:"#292929"},d.localize(585,"Color of the editor rulers.")),e.editorCodeLensForeground=(0,I.registerColor)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},d.localize(586,"Foreground color of editor CodeLens")),e.editorBracketMatchBackground=(0,I.registerColor)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},d.localize(587,"Background color behind matching brackets")),e.editorBracketMatchBorder=(0,I.registerColor)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(588,"Color for matching brackets boxes")),e.editorOverviewRulerBorder=(0,I.registerColor)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},d.localize(589,"Color of the overview ruler border.")),e.editorOverviewRulerBackground=(0,I.registerColor)("editorOverviewRuler.background",null,d.localize(590,"Background color of the editor overview ruler.")),e.editorGutter=(0,I.registerColor)("editorGutter.background",I.editorBackground,d.localize(591,"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),e.editorUnnecessaryCodeBorder=(0,I.registerColor)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:I.contrastBorder},d.localize(592,"Border color of unnecessary (unused) source code in the editor.")),e.editorUnnecessaryCodeOpacity=(0,I.registerColor)("editorUnnecessaryCode.opacity",{dark:k.Color.fromHex("#000a"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},d.localize(593,`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`)),e.ghostTextBorder=(0,I.registerColor)("editorGhostText.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:k.Color.fromHex("#292929").transparent(.8)},d.localize(594,"Border color of ghost text in the editor.")),e.ghostTextForeground=(0,I.registerColor)("editorGhostText.foreground",{dark:k.Color.fromHex("#ffffff56"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},d.localize(595,"Foreground color of the ghost text in the editor.")),e.ghostTextBackground=(0,I.registerColor)("editorGhostText.background",null,d.localize(596,"Background color of the ghost text in the editor."));const m=new k.Color(new k.RGBA(0,122,204,.6));e.overviewRulerRangeHighlight=(0,I.registerColor)("editorOverviewRuler.rangeHighlightForeground",m,d.localize(597,"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),e.overviewRulerError=(0,I.registerColor)("editorOverviewRuler.errorForeground",{dark:new k.Color(new k.RGBA(255,18,18,.7)),light:new k.Color(new k.RGBA(255,18,18,.7)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:"#B5200D"},d.localize(598,"Overview ruler marker color for errors.")),e.overviewRulerWarning=(0,I.registerColor)("editorOverviewRuler.warningForeground",{dark:I.editorWarningForeground,light:I.editorWarningForeground,hcDark:I.editorWarningBorder,hcLight:I.editorWarningBorder},d.localize(599,"Overview ruler marker color for warnings.")),e.overviewRulerInfo=(0,I.registerColor)("editorOverviewRuler.infoForeground",{dark:I.editorInfoForeground,light:I.editorInfoForeground,hcDark:I.editorInfoBorder,hcLight:I.editorInfoBorder},d.localize(600,"Overview ruler marker color for infos.")),e.editorBracketHighlightingForeground1=(0,I.registerColor)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},d.localize(601,"Foreground color of brackets (1). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground2=(0,I.registerColor)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},d.localize(602,"Foreground color of brackets (2). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground3=(0,I.registerColor)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},d.localize(603,"Foreground color of brackets (3). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground4=(0,I.registerColor)("editorBracketHighlight.foreground4","#00000000",d.localize(604,"Foreground color of brackets (4). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground5=(0,I.registerColor)("editorBracketHighlight.foreground5","#00000000",d.localize(605,"Foreground color of brackets (5). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground6=(0,I.registerColor)("editorBracketHighlight.foreground6","#00000000",d.localize(606,"Foreground color of brackets (6). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingUnexpectedBracketForeground=(0,I.registerColor)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new k.Color(new k.RGBA(255,18,18,.8)),light:new k.Color(new k.RGBA(255,18,18,.8)),hcDark:"new Color(new RGBA(255, 50, 50, 1))",hcLight:"#B5200D"},d.localize(607,"Foreground color of unexpected brackets.")),e.editorBracketPairGuideBackground1=(0,I.registerColor)("editorBracketPairGuide.background1","#00000000",d.localize(608,"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground2=(0,I.registerColor)("editorBracketPairGuide.background2","#00000000",d.localize(609,"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground3=(0,I.registerColor)("editorBracketPairGuide.background3","#00000000",d.localize(610,"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground4=(0,I.registerColor)("editorBracketPairGuide.background4","#00000000",d.localize(611,"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground5=(0,I.registerColor)("editorBracketPairGuide.background5","#00000000",d.localize(612,"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground6=(0,I.registerColor)("editorBracketPairGuide.background6","#00000000",d.localize(613,"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground1=(0,I.registerColor)("editorBracketPairGuide.activeBackground1","#00000000",d.localize(614,"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground2=(0,I.registerColor)("editorBracketPairGuide.activeBackground2","#00000000",d.localize(615,"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground3=(0,I.registerColor)("editorBracketPairGuide.activeBackground3","#00000000",d.localize(616,"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground4=(0,I.registerColor)("editorBracketPairGuide.activeBackground4","#00000000",d.localize(617,"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground5=(0,I.registerColor)("editorBracketPairGuide.activeBackground5","#00000000",d.localize(618,"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground6=(0,I.registerColor)("editorBracketPairGuide.activeBackground6","#00000000",d.localize(619,"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.")),e.editorUnicodeHighlightBorder=(0,I.registerColor)("editorUnicodeHighlight.border",I.editorWarningForeground,d.localize(620,"Border color used to highlight unicode characters.")),e.editorUnicodeHighlightBackground=(0,I.registerColor)("editorUnicodeHighlight.background",I.editorWarningBackground,d.localize(621,"Background color used to highlight unicode characters.")),(0,E.registerThemingParticipant)((_,b)=>{const p=_.getColor(I.editorBackground),n=_.getColor(e.editorLineHighlight),o=n&&!n.isTransparent()?n:p;o&&b.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${o}; }`)})}),define(ne[776],se([1,0,133,80,13,25,23,97,9,482]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CurrentLineMarginHighlightOverlay=e.CurrentLineHighlightOverlay=e.AbstractLineHighlightOverlay=void 0;class b extends d.DynamicViewOverlay{constructor(t){super(),this._context=t;const i=this._context.configuration.options,s=i.get(146);this._renderLineHighlight=i.get(97),this._renderLineHighlightOnlyWhenFocus=i.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new y.Selection(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let t=!1;const i=new Set;for(const c of this._selections)i.add(c.positionLineNumber);const s=Array.from(i);s.sort((c,l)=>c-l),I.equals(this._cursorLineNumbers,s)||(this._cursorLineNumbers=s,t=!0);const g=this._selections.every(c=>c.isEmpty());return this._selectionIsEmpty!==g&&(this._selectionIsEmpty=g,t=!0),t}onThemeChanged(t){return this._readFromSelections()}onConfigurationChanged(t){const i=this._context.configuration.options,s=i.get(146);return this._renderLineHighlight=i.get(97),this._renderLineHighlightOnlyWhenFocus=i.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,!0}onCursorStateChanged(t){return this._selections=t.selections,this._readFromSelections()}onFlushed(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollWidthChanged||t.scrollTopChanged}onZonesChanged(t){return!0}onFocusChanged(t){return this._renderLineHighlightOnlyWhenFocus?(this._focused=t.isFocused,!0):!1}prepareRender(t){if(!this._shouldRenderThis()){this._renderData=null;return}const i=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,g=[];for(let l=i;l<=s;l++){const a=l-i;g[a]=""}if(this._wordWrap){const l=this._renderOne(t,!1);for(const a of this._cursorLineNumbers){const r=this._context.viewModel.coordinatesConverter,u=r.convertViewPositionToModelPosition(new _.Position(a,1)).lineNumber,C=r.convertModelPositionToViewPosition(new _.Position(u,1)).lineNumber,f=r.convertModelPositionToViewPosition(new _.Position(u,this._context.viewModel.model.getLineMaxColumn(u))).lineNumber,h=Math.max(C,i),v=Math.min(f,s);for(let w=h;w<=v;w++){const S=w-i;g[S]=l}}}const c=this._renderOne(t,!0);for(const l of this._cursorLineNumbers){if(ls)continue;const a=l-i;g[a]=c}this._renderData=g}render(t,i){if(!this._renderData)return"";const s=i-t;return s>=this._renderData.length?"":this._renderData[s]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}e.AbstractLineHighlightOverlay=b;class p extends b{_renderOne(t,i){return`
    `}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}e.CurrentLineHighlightOverlay=p;class n extends b{_renderOne(t,i){return`
    `}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}e.CurrentLineMarginHighlightOverlay=n,(0,E.registerThemingParticipant)((o,t)=>{const i=o.getColor(k.editorLineHighlight);if(i&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${i}; border: none; }`)),!i||i.isTransparent()||o.defines(k.editorLineHighlightBorder)){const s=o.getColor(k.editorLineHighlightBorder);s&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${s}; }`),(0,m.isHighContrast)(o.type)&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}})}),define(ne[777],se([1,0,133,80,25,9,13,19,329,239,485]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentGuidesOverlay=void 0;class p extends d.DynamicViewOverlay{constructor(t){super(),this._context=t,this._primaryPosition=null;const i=this._context.configuration.options,s=i.get(147),g=i.get(50);this._spaceWidth=g.spaceWidth,this._maxIndentLeft=s.wrappingColumn===-1?-1:s.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=i.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options,s=i.get(147),g=i.get(50);return this._spaceWidth=g.spaceWidth,this._maxIndentLeft=s.wrappingColumn===-1?-1:s.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=i.get(16),!0}onCursorStateChanged(t){const s=t.selections[0].getPosition();return this._primaryPosition?.equals(s)?!1:(this._primaryPosition=s,!0)}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged}onZonesChanged(t){return!0}onLanguageConfigurationChanged(t){return!0}prepareRender(t){if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const i=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,g=t.scrollWidth,c=this._primaryPosition,l=this.getGuidesByLine(i,Math.min(s+1,this._context.viewModel.getLineCount()),c),a=[];for(let r=i;r<=s;r++){const u=r-i,C=l[u];let f="";const h=t.visibleRangeForPosition(new E.Position(r,1))?.left??0;for(const v of C){const w=v.column===-1?h+(v.visibleColumn-1)*this._spaceWidth:t.visibleRangeForPosition(new E.Position(r,v.column)).left;if(w>g||this._maxIndentLeft>0&&w>this._maxIndentLeft)break;const S=v.horizontalLine?v.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",L=v.horizontalLine?(t.visibleRangeForPosition(new E.Position(r,v.horizontalLine.endColumn))?.left??w+this._spaceWidth)-w:this._spaceWidth;f+=`
    `}a[u]=f}this._renderResult=a}getGuidesByLine(t,i,s){const g=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(t,i,s,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?b.HorizontalGuidesState.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?b.HorizontalGuidesState.EnabledForActive:b.HorizontalGuidesState.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,c=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(t,i):null;let l=0,a=0,r=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&s){const f=this._context.viewModel.getActiveIndentGuide(s.lineNumber,t,i);l=f.startLineNumber,a=f.endLineNumber,r=f.indent}const{indentSize:u}=this._context.viewModel.model.getOptions(),C=[];for(let f=t;f<=i;f++){const h=new Array;C.push(h);const v=g?g[f-t]:[],w=new y.ArrayQueue(v),S=c?c[f-t]:0;for(let L=1;L<=S;L++){const D=(L-1)*u+1,T=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||v.length===0)&&l<=f&&f<=a&&L===r;h.push(...w.takeWhile(A=>A.visibleColumn!0)||[])}return C}render(t,i){if(!this._renderResult)return"";const s=i-t;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}e.IndentGuidesOverlay=p;function n(o){if(!(o&&o.isTransparent()))return o}(0,I.registerThemingParticipant)((o,t)=>{const i=[{bracketColor:k.editorBracketHighlightingForeground1,guideColor:k.editorBracketPairGuideBackground1,guideColorActive:k.editorBracketPairGuideActiveBackground1},{bracketColor:k.editorBracketHighlightingForeground2,guideColor:k.editorBracketPairGuideBackground2,guideColorActive:k.editorBracketPairGuideActiveBackground2},{bracketColor:k.editorBracketHighlightingForeground3,guideColor:k.editorBracketPairGuideBackground3,guideColorActive:k.editorBracketPairGuideActiveBackground3},{bracketColor:k.editorBracketHighlightingForeground4,guideColor:k.editorBracketPairGuideBackground4,guideColorActive:k.editorBracketPairGuideActiveBackground4},{bracketColor:k.editorBracketHighlightingForeground5,guideColor:k.editorBracketPairGuideBackground5,guideColorActive:k.editorBracketPairGuideActiveBackground5},{bracketColor:k.editorBracketHighlightingForeground6,guideColor:k.editorBracketPairGuideBackground6,guideColorActive:k.editorBracketPairGuideActiveBackground6}],s=new _.BracketPairGuidesClassNames,g=[{indentColor:k.editorIndentGuide1,indentColorActive:k.editorActiveIndentGuide1},{indentColor:k.editorIndentGuide2,indentColorActive:k.editorActiveIndentGuide2},{indentColor:k.editorIndentGuide3,indentColorActive:k.editorActiveIndentGuide3},{indentColor:k.editorIndentGuide4,indentColorActive:k.editorActiveIndentGuide4},{indentColor:k.editorIndentGuide5,indentColorActive:k.editorActiveIndentGuide5},{indentColor:k.editorIndentGuide6,indentColorActive:k.editorActiveIndentGuide6}],c=i.map(a=>{const r=o.getColor(a.bracketColor),u=o.getColor(a.guideColor),C=o.getColor(a.guideColorActive),f=n(n(u)??r?.transparent(.3)),h=n(n(C)??r);if(!(!f||!h))return{guideColor:f,guideColorActive:h}}).filter(m.isDefined),l=g.map(a=>{const r=o.getColor(a.indentColor),u=o.getColor(a.indentColorActive),C=n(r),f=n(u);if(!(!C||!f))return{indentColor:C,indentColorActive:f}}).filter(m.isDefined);if(c.length>0){for(let a=0;a<30;a++){const r=c[a%c.length];t.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${r.guideColor}; --guide-color-active: ${r.guideColorActive}; }`)}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(`.monaco-editor .vertical.${s.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${s.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${s.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(l.length>0){for(let a=0;a<30;a++){const r=l[a%l.length];t.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${r.indentColor}; --indent-color-active: ${r.indentColorActive}; }`)}t.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),t.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}})}),define(ne[416],se([1,0,16,133,9,4,25,80,486]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineNumbersOverlay=void 0;class _ extends k.DynamicViewOverlay{static{this.CLASS_NAME="line-numbers"}constructor(p){super(),this._context=p,this._readConfig(),this._lastCursorModelPosition=new I.Position(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const p=this._context.configuration.options;this._lineHeight=p.get(67);const n=p.get(68);this._renderLineNumbers=n.renderType,this._renderCustomLineNumbers=n.renderFn,this._renderFinalNewline=p.get(96);const o=p.get(146);this._lineNumbersLeft=o.lineNumbersLeft,this._lineNumbersWidth=o.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(p){return this._readConfig(),!0}onCursorStateChanged(p){const n=p.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(n);let o=!1;return this._activeLineNumber!==n.lineNumber&&(this._activeLineNumber=n.lineNumber,o=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(o=!0),o}onFlushed(p){return!0}onLinesChanged(p){return!0}onLinesDeleted(p){return!0}onLinesInserted(p){return!0}onScrollChanged(p){return p.scrollTopChanged}onZonesChanged(p){return!0}onDecorationsChanged(p){return p.affectsLineNumber}_getLineRenderLineNumber(p){const n=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new I.Position(p,1));if(n.column!==1)return"";const o=n.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(o);if(this._renderLineNumbers===2){const t=Math.abs(this._lastCursorModelPosition.lineNumber-o);return t===0?''+o+"":String(t)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===o||o%10===0)return String(o);const t=this._context.viewModel.getLineCount();return o===t?String(o):""}return String(o)}prepareRender(p){if(this._renderLineNumbers===0){this._renderResult=null;return}const n=d.isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"",o=p.visibleRange.startLineNumber,t=p.visibleRange.endLineNumber,i=this._context.viewModel.getDecorationsInViewport(p.visibleRange).filter(l=>!!l.options.lineNumberClassName);i.sort((l,a)=>E.Range.compareRangesUsingEnds(l.range,a.range));let s=0;const g=this._context.viewModel.getLineCount(),c=[];for(let l=o;l<=t;l++){const a=l-o;let r=this._getLineRenderLineNumber(l),u="";for(;s${r}`}this._renderResult=c}render(p,n){if(!this._renderResult)return"";const o=n-p;return o<0||o>=this._renderResult.length?"":this._renderResult[o]}}e.LineNumbersOverlay=_,(0,y.registerThemingParticipant)((b,p)=>{const n=b.getColor(m.editorLineNumbers),o=b.getColor(m.editorDimmedLineNumber);o?p.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${o}; }`):n&&p.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${n.transparent(.4)}; }`)})}),define(ne[778],se([1,0,3,64,39,16,11,74,212,310,56,416,331,37,166,9,4,23,226,27,33,300,31,7,479]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaHandler=void 0;class h{constructor(D,T,M,A,P){this._context=D,this.modelLineNumber=T,this.distanceToModelLineStart=M,this.widthOfHiddenLineTextBefore=A,this.distanceToModelLineEnd=P,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(D){const T=new s.Position(this.modelLineNumber,this.distanceToModelLineStart+1),M=new s.Position(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(T),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(M),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=D.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=D.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(D){return this._previousPresentation||(D?this._previousPresentation=D:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const v=k.isFirefox;let w=class extends p.ViewPart{constructor(D,T,M,A,P){super(D),this._keybindingService=A,this._instantiationService=P,this._primaryCursorPosition=new s.Position(1,1),this._primaryCursorVisibleRange=null,this._viewController=T,this._visibleRangeProvider=M,this._scrollLeft=0,this._scrollTop=0;const N=this._context.configuration.options,O=N.get(146);this._setAccessibilityOptions(N),this._contentLeft=O.contentLeft,this._contentWidth=O.contentWidth,this._contentHeight=O.height,this._fontInfo=N.get(50),this._lineHeight=N.get(67),this._emptySelectionClipboard=N.get(37),this._copyWithSyntaxHighlighting=N.get(25),this._visibleTextArea=null,this._selections=[new c.Selection(1,1,1,1)],this._modelSelections=[new c.Selection(1,1,1,1)],this._lastRenderPosition=null,this.textArea=(0,I.createFastDomNode)(document.createElement("textarea")),p.PartFingerprints.write(this.textArea,7),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:F}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${F*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(N)),this.textArea.setAttribute("aria-required",N.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(N.get(125))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",d.localize(54,"editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",N.get(92)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=(0,I.createFastDomNode)(document.createElement("div")),this.textAreaCover.setPosition("absolute");const x={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:q=>this._context.viewModel.getLineMaxColumn(q),getValueInRange:(q,H)=>this._context.viewModel.getValueInRange(q,H),getValueLengthInRange:(q,H)=>this._context.viewModel.getValueLengthInRange(q,H),modifyPosition:(q,H)=>this._context.viewModel.modifyPosition(q,H)},W={getDataToCopy:()=>{const q=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,E.isWindows),H=this._context.viewModel.model.getEOL(),z=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),U=Array.isArray(q)?q:null,j=Array.isArray(q)?q.join(H):q;let Y,G=null;if(_.CopyOptions.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&j.length<65536){const K=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);K&&(Y=K.html,G=K.mode)}return{isFromEmptySelection:z,multicursorText:U,text:j,html:Y,mode:G}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const q=this._selections[0];if(E.isMacintosh&&q.isEmpty()){const z=q.getStartPosition();let U=this._getWordBeforePosition(z);if(U.length===0&&(U=this._getCharacterBeforePosition(z)),U.length>0)return new b.TextAreaState(U,U.length,U.length,g.Range.fromPositions(z),0)}if(E.isMacintosh&&!q.isEmpty()&&x.getValueLengthInRange(q,0)<500){const z=x.getValueInRange(q,0);return new b.TextAreaState(z,0,z.length,q,0)}if(k.isSafari&&!q.isEmpty()){const z="vscode-placeholder";return new b.TextAreaState(z,0,z.length,null,void 0)}return b.TextAreaState.EMPTY}if(k.isAndroid){const q=this._selections[0];if(q.isEmpty()){const H=q.getStartPosition(),[z,U]=this._getAndroidWordAtPosition(H);if(z.length>0)return new b.TextAreaState(z,U,U,g.Range.fromPositions(H),0)}return b.TextAreaState.EMPTY}return b.PagedScreenReaderStrategy.fromEditorSelection(x,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(q,H,z)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(q,H,z)},V=this._register(new _.TextAreaWrapper(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(_.TextAreaInput,W,V,E.OS,{isAndroid:k.isAndroid,isChrome:k.isChrome,isFirefox:k.isFirefox,isSafari:k.isSafari})),this._register(this._textAreaInput.onKeyDown(q=>{this._viewController.emitKeyDown(q)})),this._register(this._textAreaInput.onKeyUp(q=>{this._viewController.emitKeyUp(q)})),this._register(this._textAreaInput.onPaste(q=>{let H=!1,z=null,U=null;q.metadata&&(H=this._emptySelectionClipboard&&!!q.metadata.isFromEmptySelection,z=typeof q.metadata.multicursorText<"u"?q.metadata.multicursorText:null,U=q.metadata.mode),this._viewController.paste(q.text,H,z,U)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(q=>{q.replacePrevCharCnt||q.replaceNextCharCnt||q.positionDelta?(b._debugComposition&&console.log(` => compositionType: <<${q.text}>>, ${q.replacePrevCharCnt}, ${q.replaceNextCharCnt}, ${q.positionDelta}`),this._viewController.compositionType(q.text,q.replacePrevCharCnt,q.replaceNextCharCnt,q.positionDelta)):(b._debugComposition&&console.log(` => type: <<${q.text}>>`),this._viewController.type(q.text))})),this._register(this._textAreaInput.onSelectionChangeRequest(q=>{this._viewController.setSelection(q)})),this._register(this._textAreaInput.onCompositionStart(q=>{const H=this.textArea.domNode,z=this._modelSelections[0],{distanceToModelLineStart:U,widthOfHiddenTextBefore:j}=(()=>{const G=H.value.substring(0,Math.min(H.selectionStart,H.selectionEnd)),K=G.lastIndexOf(` -`),R=G.substring(K+1),J=R.lastIndexOf(" "),ie=R.length-J-1,ue=z.getStartPosition(),he=Math.min(ue.column-1,ie),pe=ue.column-1-he,ae=R.substring(0,R.length-he),{tabSize:ee}=this._context.viewModel.model.getOptions(),de=S(this.textArea.domNode.ownerDocument,ae,this._fontInfo,ee);return{distanceToModelLineStart:pe,widthOfHiddenTextBefore:de}})(),{distanceToModelLineEnd:Y}=(()=>{const G=H.value.substring(Math.max(H.selectionStart,H.selectionEnd)),K=G.indexOf(` -`),R=K===-1?G:G.substring(0,K),J=R.indexOf(" "),ie=J===-1?R.length:R.length-J-1,ue=z.getEndPosition(),he=Math.min(this._context.viewModel.model.getLineMaxColumn(ue.lineNumber)-ue.column,ie);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(ue.lineNumber)-ue.column-he}})();this._context.viewModel.revealRange("keyboard",!0,g.Range.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new h(this._context,z.startLineNumber,U,j,Y),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(q=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(u.IME.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(D){this._textAreaInput.writeNativeTextAreaContent(D)}dispose(){super.dispose()}_getAndroidWordAtPosition(D){const T='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',M=this._context.viewModel.getLineContent(D.lineNumber),A=(0,i.getMapForWordSeparators)(T,[]);let P=!0,N=D.column,O=!0,F=D.column,x=0;for(;x<50&&(P||O);){if(P&&N<=1&&(P=!1),P){const W=M.charCodeAt(N-2);A.get(W)!==0?P=!1:N--}if(O&&F>M.length&&(O=!1),O){const W=M.charCodeAt(F-1);A.get(W)!==0?O=!1:F++}x++}return[M.substring(N-1,F-1),D.column-N]}_getWordBeforePosition(D){const T=this._context.viewModel.getLineContent(D.lineNumber),M=(0,i.getMapForWordSeparators)(this._context.configuration.options.get(132),[]);let A=D.column,P=0;for(;A>1;){const N=T.charCodeAt(A-2);if(M.get(N)!==0||P>50)return T.substring(A-1,D.column-1);P++,A--}return T.substring(0,D.column-1)}_getCharacterBeforePosition(D){if(D.column>1){const M=this._context.viewModel.getLineContent(D.lineNumber).charAt(D.column-2);if(!y.isHighSurrogate(M.charCodeAt(0)))return M}return""}_getAriaLabel(D){if(D.get(2)===1){const M=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode")?.getAriaLabel(),A=this._keybindingService.lookupKeybinding("workbench.action.showCommands")?.getAriaLabel(),P=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings")?.getAriaLabel(),N=d.localize(55,"The editor is not accessible at this time.");return M?d.localize(56,"{0} To enable screen reader optimized mode, use {1}",N,M):A?d.localize(57,"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",N,A):P?d.localize(58,"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",N,P):N}return D.get(4)}_setAccessibilityOptions(D){this._accessibilitySupport=D.get(2);const T=D.get(3);this._accessibilitySupport===2&&T===t.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=T;const A=D.get(146).wrappingColumn;if(A!==-1&&this._accessibilitySupport!==1){const P=D.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(A*P.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=v?0:1}onConfigurationChanged(D){const T=this._context.configuration.options,M=T.get(146);this._setAccessibilityOptions(T),this._contentLeft=M.contentLeft,this._contentWidth=M.contentWidth,this._contentHeight=M.height,this._fontInfo=T.get(50),this._lineHeight=T.get(67),this._emptySelectionClipboard=T.get(37),this._copyWithSyntaxHighlighting=T.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:A}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${A*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(T)),this.textArea.setAttribute("aria-required",T.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(T.get(125))),(D.hasChanged(34)||D.hasChanged(92))&&this._ensureReadOnlyAttribute(),D.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(D){return this._selections=D.selections.slice(0),this._modelSelections=D.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(D){return!0}onFlushed(D){return!0}onLinesChanged(D){return!0}onLinesDeleted(D){return!0}onLinesInserted(D){return!0}onScrollChanged(D){return this._scrollLeft=D.scrollLeft,this._scrollTop=D.scrollTop,!0}onZonesChanged(D){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(D){D.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",D.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),D.role&&this.textArea.setAttribute("role",D.role)}_ensureReadOnlyAttribute(){const D=this._context.configuration.options;!u.IME.enabled||D.get(34)&&D.get(92)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(D){this._primaryCursorPosition=new s.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=D.visibleRangeForPosition(this._primaryCursorPosition),this._visibleTextArea?.prepareRender(D)}render(D){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){if(this._visibleTextArea){const M=this._visibleTextArea.visibleTextareaStart,A=this._visibleTextArea.visibleTextareaEnd,P=this._visibleTextArea.startPosition,N=this._visibleTextArea.endPosition;if(P&&N&&M&&A&&A.left>=this._scrollLeft&&M.left<=this._scrollLeft+this._contentWidth){const O=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,F=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let x=this._visibleTextArea.widthOfHiddenLineTextBefore,W=this._contentLeft+M.left-this._scrollLeft,V=A.left-M.left+1;if(Wthis._contentWidth&&(V=this._contentWidth);const q=this._context.viewModel.getViewLineData(P.lineNumber),H=q.tokens.findTokenIndexAtOffset(P.column-1),z=q.tokens.findTokenIndexAtOffset(N.column-1),U=H===z,j=this._visibleTextArea.definePresentation(U?q.tokens.getPresentation(H):null);this.textArea.domNode.scrollTop=F*this._lineHeight,this.textArea.domNode.scrollLeft=x,this._doRender({lastRenderPosition:null,top:O,left:W,width:V,height:this._lineHeight,useCover:!1,color:(a.TokenizationRegistry.getColorMap()||[])[j.foreground],italic:j.italic,bold:j.bold,underline:j.underline,strikethrough:j.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const D=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(Dthis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const T=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(T<0||T>this._contentHeight){this._renderAtTopLeft();return}if(E.isMacintosh||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:T,left:this._textAreaWrapping?this._contentLeft:D,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const M=this._textAreaInput.textAreaState.newlineCountBeforeSelection??this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=M*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:T,left:this._textAreaWrapping?this._contentLeft:D,width:this._textAreaWidth,height:v?0:1,useCover:!1})}_newlinecount(D){let T=0,M=-1;do{if(M=D.indexOf(` -`,M+1),M===-1)break;T++}while(!0);return T}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:v?0:1,useCover:!0})}_doRender(D){this._lastRenderPosition=D.lastRenderPosition;const T=this.textArea,M=this.textAreaCover;(0,m.applyFontInfo)(T,this._fontInfo),T.setTop(D.top),T.setLeft(D.left),T.setWidth(D.width),T.setHeight(D.height),T.setColor(D.color?r.Color.Format.CSS.formatHex(D.color):""),T.setFontStyle(D.italic?"italic":""),D.bold&&T.setFontWeight("bold"),T.setTextDecoration(`${D.underline?" underline":""}${D.strikethrough?" line-through":""}`),M.setTop(D.useCover?D.top:0),M.setLeft(D.useCover?D.left:0),M.setWidth(D.useCover?D.width:0),M.setHeight(D.useCover?D.height:0);const A=this._context.configuration.options;A.get(57)?M.setClassName("monaco-editor-background textAreaCover "+o.Margin.OUTER_CLASS_NAME):A.get(68).renderType!==0?M.setClassName("monaco-editor-background textAreaCover "+n.LineNumbersOverlay.CLASS_NAME):M.setClassName("monaco-editor-background textAreaCover")}};e.TextAreaHandler=w,e.TextAreaHandler=w=ke([ce(3,C.IKeybindingService),ce(4,f.IInstantiationService)],w);function S(L,D,T,M){if(D.length===0)return 0;const A=L.createElement("div");A.style.position="absolute",A.style.top="-50000px",A.style.width="50000px";const P=L.createElement("span");(0,m.applyFontInfo)(P,T),P.style.whiteSpace="pre",P.style.tabSize=`${M*T.spaceWidth}px`,P.append(D),A.appendChild(P),L.body.appendChild(A);const N=P.offsetWidth;return A.remove(),N}}),define(ne[779],se([1,0,39,33,56,9,27,80,95,13]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DecorationsOverviewRuler=void 0;class p{constructor(t,i){const s=t.options;this.lineHeight=s.get(67),this.pixelRatio=s.get(144),this.overviewRulerLanes=s.get(83),this.renderBorder=s.get(82);const g=i.getColor(m.editorOverviewRulerBorder);this.borderColor=g?g.toString():null,this.hideCursor=s.get(59);const c=i.getColor(m.editorCursorForeground);this.cursorColorSingle=c?c.transparent(.7).toString():null;const l=i.getColor(m.editorMultiCursorPrimaryForeground);this.cursorColorPrimary=l?l.transparent(.7).toString():null;const a=i.getColor(m.editorMultiCursorSecondaryForeground);this.cursorColorSecondary=a?a.transparent(.7).toString():null,this.themeType=i.type;const r=s.get(73),u=r.enabled,C=r.side,f=i.getColor(m.editorOverviewRulerBackground),h=y.TokenizationRegistry.getDefaultBackground();f?this.backgroundColor=f:u&&C==="right"?this.backgroundColor=h:this.backgroundColor=null;const w=s.get(146).overviewRuler;this.top=w.top,this.right=w.right,this.domWidth=w.width,this.domHeight=w.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[S,L]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=S,this.w=L}_initLanes(t,i,s){const g=i-t;if(s>=3){const c=Math.floor(g/3),l=Math.floor(g/3),a=g-c-l,r=t,u=r+c,C=r+c+a;return[[0,r,u,r,C,r,u,r],[0,c,a,c+a,l,c+a+l,a+l,c+a+l]]}else if(s===2){const c=Math.floor(g/2),l=g-c,a=t,r=a+c;return[[0,a,a,a,r,a,a,a],[0,c,c,c,l,c+l,c+l,c+l]]}else{const c=t,l=g;return[[0,c,c,c,c,c,c,c],[0,l,l,l,l,l,l,l]]}}equals(t){return this.lineHeight===t.lineHeight&&this.pixelRatio===t.pixelRatio&&this.overviewRulerLanes===t.overviewRulerLanes&&this.renderBorder===t.renderBorder&&this.borderColor===t.borderColor&&this.hideCursor===t.hideCursor&&this.cursorColorSingle===t.cursorColorSingle&&this.cursorColorPrimary===t.cursorColorPrimary&&this.cursorColorSecondary===t.cursorColorSecondary&&this.themeType===t.themeType&&k.Color.equals(this.backgroundColor,t.backgroundColor)&&this.top===t.top&&this.right===t.right&&this.domWidth===t.domWidth&&this.domHeight===t.domHeight&&this.canvasWidth===t.canvasWidth&&this.canvasHeight===t.canvasHeight}}class n extends I.ViewPart{constructor(t){super(t),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=(0,d.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=y.TokenizationRegistry.onDidChange(i=>{i.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new E.Position(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(t){const i=new p(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(i)?!1:(this._settings=i,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,t&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(t){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(t){this._cursorPositions=[];for(let i=0,s=t.selections.length;i1&&(g=i===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:t.selections[i].getPosition(),color:g})}return this._cursorPositions.sort((i,s)=>E.Position.compare(i.position,s.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(t){return t.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(t){return this._markRenderingIsNeeded()}onScrollChanged(t){return t.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(t){return this._markRenderingIsNeeded()}onThemeChanged(t){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(t){}render(t){this._render(),this._actualShouldRender=0}_render(){const t=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(t?k.Color.Format.CSS.formatHexA(t):""),this._domNode.setDisplay("none");return}const i=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(i.sort(_.OverviewRulerDecorationsGroup.compareByRenderingProps),this._actualShouldRender===1&&!_.OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations,i)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!(0,b.equals)(this._renderedCursorPositions,this._cursorPositions,(w,S)=>w.position.lineNumber===S.position.lineNumber&&w.color===S.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=i,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const s=this._settings.canvasWidth,g=this._settings.canvasHeight,c=this._settings.lineHeight,l=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),r=g/a,u=6*this._settings.pixelRatio|0,C=u/2|0,f=this._domNode.domNode.getContext("2d");t?t.isOpaque()?(f.fillStyle=k.Color.Format.CSS.formatHexA(t),f.fillRect(0,0,s,g)):(f.clearRect(0,0,s,g),f.fillStyle=k.Color.Format.CSS.formatHexA(t),f.fillRect(0,0,s,g)):f.clearRect(0,0,s,g);const h=this._settings.x,v=this._settings.w;for(const w of i){const S=w.color,L=w.data;f.fillStyle=S;let D=0,T=0,M=0;for(let A=0,P=L.length/3;Ag&&(q=g-C),x=q-C,W=q+C}x>M+1||N!==D?(A!==0&&f.fillRect(h[D],T,v[D],M-T),D=N,T=x,M=W):W>M&&(M=W)}f.fillRect(h[D],T,v[D],M-T)}if(!this._settings.hideCursor){const w=2*this._settings.pixelRatio|0,S=w/2|0,L=this._settings.x[7],D=this._settings.w[7];let T=-100,M=-100,A=null;for(let P=0,N=this._cursorPositions.length;Pg&&(x=g-S);const W=x-S,V=W+w;W>M+1||O!==A?(P!==0&&A&&f.fillRect(L,T,D,M-T),T=W,M=V):V>M&&(M=V),A=O,f.fillStyle=O}A&&f.fillRect(L,T,D,M-T)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(f.beginPath(),f.lineWidth=1,f.strokeStyle=this._settings.borderColor,f.moveTo(0,0),f.lineTo(0,g),f.moveTo(1,0),f.lineTo(s,0),f.stroke())}}e.DecorationsOverviewRuler=n}),define(ne[780],se([1,0,39,14,56,655,37,80,25,97,5,496]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursors=void 0;class n extends I.ViewPart{static{this.BLINK_INTERVAL=500}constructor(t){super(t);const i=this._context.configuration.options;this._readOnly=i.get(92),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new E.ViewCursor(this._context,E.CursorPlurality.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=(0,d.createFastDomNode)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new k.TimeoutTimer,this._cursorFlatBlinkInterval=new p.WindowIntervalTimer,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(t){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(t){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(t){const i=this._context.configuration.options;this._readOnly=i.get(92),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(t);for(let s=0,g=this._secondaryCursors.length;si.length){const c=this._secondaryCursors.length-i.length;for(let l=0;l{for(let g=0,c=t.ranges.length;g{this._isVisible?this._hide():this._show()},n.BLINK_INTERVAL,(0,p.getWindow)(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},n.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let t="cursors-layer";switch(this._selectionIsEmpty||(t+=" has-selection"),this._cursorStyle){case y.TextEditorCursorStyle.Line:t+=" cursor-line-style";break;case y.TextEditorCursorStyle.Block:t+=" cursor-block-style";break;case y.TextEditorCursorStyle.Underline:t+=" cursor-underline-style";break;case y.TextEditorCursorStyle.LineThin:t+=" cursor-line-thin-style";break;case y.TextEditorCursorStyle.BlockOutline:t+=" cursor-block-outline-style";break;case y.TextEditorCursorStyle.UnderlineThin:t+=" cursor-underline-thin-style";break;default:t+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:t+=" cursor-blink";break;case 2:t+=" cursor-smooth";break;case 3:t+=" cursor-phase";break;case 4:t+=" cursor-expand";break;case 5:t+=" cursor-solid";break;default:t+=" cursor-solid"}else t+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(t+=" cursor-smooth-caret-animation"),t}_show(){this._primaryCursor.show();for(let t=0,i=this._secondaryCursors.length;t{const i=[{class:".cursor",foreground:m.editorCursorForeground,background:m.editorCursorBackground},{class:".cursor-primary",foreground:m.editorMultiCursorPrimaryForeground,background:m.editorMultiCursorPrimaryBackground},{class:".cursor-secondary",foreground:m.editorMultiCursorSecondaryForeground,background:m.editorMultiCursorSecondaryBackground}];for(const s of i){const g=o.getColor(s.foreground);if(g){let c=o.getColor(s.background);c||(c=g.opposite()),t.addRule(`.monaco-editor .cursors-layer ${s.class} { background-color: ${g}; border-color: ${g}; color: ${c}; }`),(0,b.isHighContrast)(o.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection ${s.class} { border-left: 1px solid ${c}; border-right: 1px solid ${c}; }`)}}})}),define(ne[781],se([1,0,133,11,136,9,80,497]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WhitespaceOverlay=void 0;class m extends d.DynamicViewOverlay{constructor(p){super(),this._context=p,this._options=new _(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(p){const n=new _(this._context.configuration);return this._options.equals(n)?p.hasChanged(146):(this._options=n,!0)}onCursorStateChanged(p){return this._selection=p.selections,this._options.renderWhitespace==="selection"}onDecorationsChanged(p){return!0}onFlushed(p){return!0}onLinesChanged(p){return!0}onLinesDeleted(p){return!0}onLinesInserted(p){return!0}onScrollChanged(p){return p.scrollTopChanged}onZonesChanged(p){return!0}prepareRender(p){if(this._options.renderWhitespace==="none"){this._renderResult=null;return}const n=p.visibleRange.startLineNumber,t=p.visibleRange.endLineNumber-n+1,i=new Array(t);for(let g=0;gg)continue;const C=u.startLineNumber===g?u.startColumn:l.minColumn,f=u.endLineNumber===g?u.endColumn:l.maxColumn;C=O.endOffset&&(N++,O=o&&o[N]),W!==9&&W!==32||u&&!M&&x<=P)continue;if(r&&x>=A&&x<=P&&W===32){const q=x-1>=0?g.charCodeAt(x-1):0,H=x+1=0?g.charCodeAt(x-1):0;if(W===32&&q!==32&&q!==9)continue}if(o&&(!O||O.startOffset>x||O.endOffset<=x))continue;const V=p.visibleRangeForPosition(new E.Position(n,x+1));V&&(s?(F=Math.max(F,V.left),W===9?T+=this._renderArrow(C,v,V.left):T+=``):W===9?T+=`
    ${D?"\uFFEB":"\u2192"}
    `:T+=`
    ${String.fromCharCode(L)}
    `)}return s?(F=Math.round(F+v),``+T+""):T}_renderArrow(p,n,o){const t=n/7,i=n,s=p/2,g=o,c={x:0,y:t/2},l={x:100/125*i,y:c.y},a={x:l.x-.2*l.x,y:l.y+.2*l.x},r={x:a.x+.1*l.x,y:a.y+.1*l.x},u={x:r.x+.35*l.x,y:r.y-.35*l.x},C={x:u.x,y:-u.y},f={x:r.x,y:-r.y},h={x:a.x,y:-a.y},v={x:l.x,y:-l.y},w={x:c.x,y:-c.y};return``}render(p,n){if(!this._renderResult)return"";const o=n-p;return o<0||o>=this._renderResult.length?"":this._renderResult[o]}}e.WhitespaceOverlay=m;class _{constructor(p){const n=p.options,o=n.get(50),t=n.get(38);t==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):t==="svg"?(this.renderWhitespace=n.get(100),this.renderWithSVG=!0):(this.renderWhitespace=n.get(100),this.renderWithSVG=!1),this.spaceWidth=o.spaceWidth,this.middotWidth=o.middotWidth,this.wsmiddotWidth=o.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=o.canUseHalfwidthRightwardsArrow,this.lineHeight=n.get(67),this.stopRenderingLineAfter=n.get(118)}equals(p){return this.renderWhitespace===p.renderWhitespace&&this.renderWithSVG===p.renderWithSVG&&this.spaceWidth===p.spaceWidth&&this.middotWidth===p.middotWidth&&this.wsmiddotWidth===p.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===p.canUseHalfwidthRightwardsArrow&&this.lineHeight===p.lineHeight&&this.stopRenderingLineAfter===p.stopRenderingLineAfter}}}),define(ne[782],se([1,0,5,39,296,8,414,769,778,164,726,657,56,309,591,649,776,592,773,242,777,416,770,593,331,594,755,650,779,604,595,596,774,780,597,781,9,4,23,40,170,600,605,7,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.View=void 0;let Y=class extends q.ViewEventHandler{constructor(J,ie,ue,he,pe,ae,ee){super(),this._instantiationService=ee,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new W.Selection(1,1,1,1)],this._renderAnimationFrame=null;const de=new p.ViewController(ie,he,pe,J);this._context=new z.ViewContext(ie,ue,he),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(_.TextAreaHandler,this._context,de,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=(0,k.createFastDomNode)(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=(0,k.createFastDomNode)(document.createElement("div")),o.PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new l.EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new C.ViewLines(this._context,this._linesContent),this._viewZones=new N.ViewZones(this._context),this._viewParts.push(this._viewZones);const ge=new L.DecorationsOverviewRuler(this._context);this._viewParts.push(ge);const X=new M.ScrollDecorationViewPart(this._context);this._viewParts.push(X);const B=new n.ContentViewOverlays(this._context);this._viewParts.push(B),B.addDynamicOverlay(new g.CurrentLineHighlightOverlay(this._context)),B.addDynamicOverlay(new A.SelectionsOverlay(this._context)),B.addDynamicOverlay(new r.IndentGuidesOverlay(this._context)),B.addDynamicOverlay(new c.DecorationsOverlay(this._context)),B.addDynamicOverlay(new O.WhitespaceOverlay(this._context));const $=new n.MarginViewOverlays(this._context);this._viewParts.push($),$.addDynamicOverlay(new g.CurrentLineMarginHighlightOverlay(this._context)),$.addDynamicOverlay(new v.MarginViewLineDecorationsOverlay(this._context)),$.addDynamicOverlay(new f.LinesDecorationsOverlay(this._context)),$.addDynamicOverlay(new u.LineNumbersOverlay(this._context)),this._glyphMarginWidgets=new a.GlyphMarginWidgets(this._context),this._viewParts.push(this._glyphMarginWidgets);const Q=new h.Margin(this._context);Q.getDomNode().appendChild(this._viewZones.marginDomNode),Q.getDomNode().appendChild($.getDomNode()),Q.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(Q),this._contentWidgets=new s.ViewContentWidgets(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new P.ViewCursors(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new S.ViewOverlayWidgets(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const Z=new T.Rulers(this._context);this._viewParts.push(Z);const te=new i.BlockDecorations(this._context);this._viewParts.push(te);const re=new w.Minimap(this._context);if(this._viewParts.push(re),ge){const le=this._scrollbar.getOverviewRulerLayoutInfo();le.parent.insertBefore(ge.getDomNode(),le.insertBefore)}this._linesContent.appendChild(B.getDomNode()),this._linesContent.appendChild(Z.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(Q.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(X.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(re.getDomNode()),this._overflowGuardContainer.appendChild(te.domNode),this.domNode.appendChild(this._overflowGuardContainer),ae?(ae.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),ae.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new m.PointerHandler(this._context,de,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const J=this._context.viewModel.model,ie=this._context.viewModel.glyphLanes;let ue=[],he=0;ue=ue.concat(J.getAllMarginDecorations().map(pe=>{const ae=pe.options.glyphMargin?.position??V.GlyphMarginLane.Center;return he=Math.max(he,pe.range.endLineNumber),{range:pe.range,lane:ae,persist:pe.options.glyphMargin?.persistLane}})),ue=ue.concat(this._glyphMarginWidgets.getWidgets().map(pe=>{const ae=J.validateRange(pe.preference.range);return he=Math.max(he,ae.endLineNumber),{range:ae,lane:pe.preference.lane}})),ue.sort((pe,ae)=>x.Range.compareRangesUsingStarts(pe.range,ae.range)),ie.reset(he);for(const pe of ue)ie.push(pe.lane,pe.range,pe.persist);return ie}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:J=>{this._textAreaHandler.textArea.domNode.dispatchEvent(J)},getLastRenderData:()=>{const J=this._viewCursors.getLastRenderData()||[],ie=this._textAreaHandler.getLastRenderData();return new y.PointerHandlerLastRenderData(J,ie)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:J=>this._viewZones.shouldSuppressMouseDownOnViewZone(J),shouldSuppressMouseDownOnWidget:J=>this._contentWidgets.shouldSuppressMouseDownOnWidget(J),getPositionFromDOMInfo:(J,ie)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(J,ie)),visibleRangeForPosition:(J,ie)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new F.Position(J,ie))),getLineWidth:J=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(J))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:J=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(J))}}_applyLayout(){const ie=this._context.configuration.options.get(146);this.domNode.setWidth(ie.width),this.domNode.setHeight(ie.height),this._overflowGuardContainer.setWidth(ie.width),this._overflowGuardContainer.setHeight(ie.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const J=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(143)+" "+(0,j.getThemeTypeSelector)(this._context.theme.type)+J}handleEvents(J){super.handleEvents(J),this._scheduleRender()}onConfigurationChanged(J){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(J){return this._selections=J.selections,!1}onDecorationsChanged(J){return J.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(J){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(J){return this._context.theme.update(J.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const J of this._viewParts)J.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new E.BugIndicatingError;if(this._renderAnimationFrame===null){const J=this._createCoordinatedRendering();this._renderAnimationFrame=K.INSTANCE.scheduleCoordinatedRendering({window:d.getWindow(this.domNode?.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new E.BugIndicatingError;try{return J.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.renderText()},prepareRender:(ie,ue)=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.prepareRender(ie,ue)},render:(ie,ue)=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.render(ie,ue)}})}}_flushAccumulatedAndRenderNow(){const J=this._createCoordinatedRendering();G(()=>J.prepareRenderText());const ie=G(()=>J.renderText());if(ie){const[ue,he]=ie;G(()=>J.prepareRender(ue,he)),G(()=>J.render(ue,he))}}_getViewPartsToRender(){const J=[];let ie=0;for(const ue of this._viewParts)ue.shouldRender()&&(J[ie++]=ue);return J}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const J=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(J.requiredLanes)}I.inputLatency.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let J=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&J.length===0)return null;const ie=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(ie.startLineNumber,ie.endLineNumber,ie.centeredLineNumber);const ue=new H.ViewportData(this._selections,ie,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(ue),this._viewLines.shouldRender()&&(this._viewLines.renderText(ue),this._viewLines.onDidRender(),J=this._getViewPartsToRender()),[J,new b.RenderingContext(this._context.viewLayout,ue,this._viewLines)]},prepareRender:(J,ie)=>{for(const ue of J)ue.prepareRender(ie)},render:(J,ie)=>{for(const ue of J)ue.render(ie),ue.onDidRender()}}}delegateVerticalScrollbarPointerDown(J){this._scrollbar.delegateVerticalScrollbarPointerDown(J)}delegateScrollFromMouseWheelEvent(J){this._scrollbar.delegateScrollFromMouseWheelEvent(J)}restoreState(J){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:J.scrollTop,scrollLeft:J.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(J,ie){const ue=this._context.viewModel.model.validatePosition({lineNumber:J,column:ie}),he=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(ue);this._flushAccumulatedAndRenderNow();const pe=this._viewLines.visibleRangeForPosition(new F.Position(he.lineNumber,he.column));return pe?pe.left:-1}getTargetAtClientPoint(J,ie){const ue=this._pointerHandler.getTargetAtClientPoint(J,ie);return ue?t.ViewUserInputEvents.convertViewToModelMouseTarget(ue,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(J){return new D.OverviewRuler(this._context,J)}change(J){this._viewZones.changeViewZones(J),this._scheduleRender()}render(J,ie){if(ie){this._viewLines.forceShouldRender();for(const ue of this._viewParts)ue.forceShouldRender()}J?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(J){this._textAreaHandler.writeScreenReaderContent(J)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(J){this._textAreaHandler.setAriaOptions(J)}addContentWidget(J){this._contentWidgets.addWidget(J.widget),this.layoutContentWidget(J),this._scheduleRender()}layoutContentWidget(J){this._contentWidgets.setWidgetPosition(J.widget,J.position?.position??null,J.position?.secondaryPosition??null,J.position?.preference??null,J.position?.positionAffinity??null),this._scheduleRender()}removeContentWidget(J){this._contentWidgets.removeWidget(J.widget),this._scheduleRender()}addOverlayWidget(J){this._overlayWidgets.addWidget(J.widget),this.layoutOverlayWidget(J),this._scheduleRender()}layoutOverlayWidget(J){this._overlayWidgets.setWidgetPosition(J.widget,J.position)&&this._scheduleRender()}removeOverlayWidget(J){this._overlayWidgets.removeWidget(J.widget),this._scheduleRender()}addGlyphMarginWidget(J){this._glyphMarginWidgets.addWidget(J.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(J){const ie=J.position;this._glyphMarginWidgets.setWidgetPosition(J.widget,ie)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(J){this._glyphMarginWidgets.removeWidget(J.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};e.View=Y,e.View=Y=ke([ce(6,U.IInstantiationService)],Y);function G(R){try{return R()}catch(J){return(0,E.onUnexpectedError)(J),null}}class K{static{this.INSTANCE=new K}constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(J){return this._coordinatedRenderings.push(J),this._scheduleRender(J.window),{dispose:()=>{const ie=this._coordinatedRenderings.indexOf(J);if(ie!==-1&&(this._coordinatedRenderings.splice(ie,1),this._coordinatedRenderings.length===0)){for(const[ue,he]of this._animationFrameRunners)he.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(J){if(!this._animationFrameRunners.has(J)){const ie=()=>{this._animationFrameRunners.delete(J),this._onRenderScheduled()};this._animationFrameRunners.set(J,d.runAtThisOrScheduleAtNextAnimationFrame(J,ie,100))}}_onRenderScheduled(){const J=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const ue of J)G(()=>ue.prepareRenderText());const ie=[];for(let ue=0,he=J.length;uepe.renderText())}for(let ue=0,he=J.length;uepe.prepareRender(ee,de))}for(let ue=0,he=J.length;uepe.render(ee,de))}}}}),define(ne[783],se([1,0,6,2,4,80,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorizedBracketPairsDecorationProvider=void 0;class m extends k.Disposable{constructor(p){super(),this.textModel=p,this.colorProvider=new _,this.onDidChangeEmitter=new d.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=p.getOptions().bracketPairColorizationOptions,this._register(p.bracketPairs.onDidChange(n=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(p){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(p,n,o,t){return t?[]:n===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(p,!0).map(s=>({id:`bracket${s.range.toString()}-${s.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(s,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:s.range})).toArray():[]}getAllDecorations(p,n){return p===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new I.Range(1,1,this.textModel.getLineCount(),1),p,n):[]}}e.ColorizedBracketPairsDecorationProvider=m;class _{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(p,n){return p.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(n?p.nestingLevelOfEqualBracketType:p.nestingLevel)}getInlineClassNameOfLevel(p){return`bracket-highlighting-${p%30}`}}(0,y.registerThemingParticipant)((b,p)=>{const n=[E.editorBracketHighlightingForeground1,E.editorBracketHighlightingForeground2,E.editorBracketHighlightingForeground3,E.editorBracketHighlightingForeground4,E.editorBracketHighlightingForeground5,E.editorBracketHighlightingForeground6],o=new _;p.addRule(`.monaco-editor .${o.unexpectedClosingBracketClassName} { color: ${b.getColor(E.editorBracketHighlightingUnexpectedBracketForeground)}; }`);const t=n.map(i=>b.getColor(i)).filter(i=>!!i).filter(i=>!i.isTransparent());for(let i=0;i<30;i++){const s=t[i%t.length];p.addRule(`.monaco-editor .${o.getInlineClassNameOfLevel(i)} { color: ${s}; }`)}})}),define(ne[784],se([1,0,108,2,40,25,80,51,4,42,6,32,45,298]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsService=void 0;let i=class extends k.Disposable{constructor(c,l){super(),this._markerService=l,this._onDidChangeMarker=this._register(new p.Emitter),this._markerDecorations=new o.ResourceMap,c.getModels().forEach(a=>this._onModelAdded(a)),this._register(c.onModelAdded(this._onModelAdded,this)),this._register(c.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(c=>c.dispose()),this._markerDecorations.clear()}getMarker(c,l){const a=this._markerDecorations.get(c);return a&&a.getMarker(l)||null}_handleMarkerChange(c){c.forEach(l=>{const a=this._markerDecorations.get(l);a&&this._updateDecorations(a)})}_onModelAdded(c){const l=new s(c);this._markerDecorations.set(c.uri,l),this._updateDecorations(l)}_onModelRemoved(c){const l=this._markerDecorations.get(c.uri);l&&(l.dispose(),this._markerDecorations.delete(c.uri)),(c.uri.scheme===b.Schemas.inMemory||c.uri.scheme===b.Schemas.internal||c.uri.scheme===b.Schemas.vscode)&&this._markerService?.read({resource:c.uri}).map(a=>a.owner).forEach(a=>this._markerService.remove(a,[c.uri]))}_updateDecorations(c){const l=this._markerService.read({resource:c.model.uri,take:500});c.update(l)&&this._onDidChangeMarker.fire(c.model)}};e.MarkerDecorationsService=i,e.MarkerDecorationsService=i=ke([ce(0,m.IModelService),ce(1,d.IMarkerService)],i);class s extends k.Disposable{constructor(c){super(),this.model=c,this._map=new o.BidirectionalMap,this._register((0,k.toDisposable)(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(c){const{added:l,removed:a}=(0,t.diffSets)(new Set(this._map.keys()),new Set(c));if(l.length===0&&a.length===0)return!1;const r=a.map(f=>this._map.get(f)),u=l.map(f=>({range:this._createDecorationRange(this.model,f),options:this._createDecorationOption(f)})),C=this.model.deltaDecorations(r,u);for(const f of a)this._map.delete(f);for(let f=0;f=r)return a;const u=c.getWordAtPosition(a.getStartPosition());u&&(a=new _.Range(a.startLineNumber,u.startColumn,a.endLineNumber,u.endColumn))}else if(l.endColumn===Number.MAX_VALUE&&l.startColumn===1&&a.startLineNumber===a.endLineNumber){const r=c.getLineFirstNonWhitespaceColumn(l.startLineNumber);r=0:!1}}}),define(ne[282],se([1,0,148,25,62,589,43]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SemanticTokensProviderStyling=void 0,e.toMultilineTokens2=b;const m=!1;let _=class{constructor(t,i,s,g){this._legend=t,this._themeService=i,this._languageService=s,this._logService=g,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new n}getMetadata(t,i,s){const g=this._languageService.languageIdCodec.encodeLanguageId(s),c=this._hashTable.get(t,i,g);let l;if(c)l=c.metadata,m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${t} / ${i}: foreground ${d.TokenMetadata.getForeground(l)}, fontStyle ${d.TokenMetadata.getFontStyle(l).toString(2)}`);else{let a=this._legend.tokenTypes[t];const r=[];if(a){let u=i;for(let f=0;u>0&&f>1;m&&u>0&&this._logService.getLevel()===I.LogLevel.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${i.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),r.push("not-in-legend"));const C=this._themeService.getColorTheme().getTokenStyleMetadata(a,r,s);if(typeof C>"u")l=2147483647;else{if(l=0,typeof C.italic<"u"){const f=(C.italic?1:0)<<11;l|=f|1}if(typeof C.bold<"u"){const f=(C.bold?2:0)<<11;l|=f|2}if(typeof C.underline<"u"){const f=(C.underline?4:0)<<11;l|=f|4}if(typeof C.strikethrough<"u"){const f=(C.strikethrough?8:0)<<11;l|=f|8}if(C.foreground){const f=C.foreground<<15;l|=f|16}l===0&&(l=2147483647)}}else m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${t} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),l=2147483647,a="not-in-legend";this._hashTable.add(t,i,g,l),m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${t} (${a}) / ${i} (${r.join(" ")}): foreground ${d.TokenMetadata.getForeground(l)}, fontStyle ${d.TokenMetadata.getFontStyle(l).toString(2)}`)}return l}warnOverlappingSemanticTokens(t,i){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${t}, column ${i}`))}warnInvalidLengthSemanticTokens(t,i){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${t}, column ${i}`))}warnInvalidEditStart(t,i,s,g,c){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${t}, resultId: ${i}) at edit #${s}: The provided start offset ${g} is outside the previous data (length ${c}).`))}};e.SemanticTokensProviderStyling=_,e.SemanticTokensProviderStyling=_=ke([ce(1,k.IThemeService),ce(2,y.ILanguageService),ce(3,I.ILogService)],_);function b(o,t,i){const s=o.data,g=o.data.length/5|0,c=Math.max(Math.ceil(g/1024),400),l=[];let a=0,r=1,u=0;for(;aC&&s[5*T]===0;)T--;if(T-1===C){let M=f;for(;M+1N)t.warnOverlappingSemanticTokens(P,N+1);else{const V=t.getMetadata(x,W,i);V!==2147483647&&(w===0&&(w=P),h[v]=P-w,h[v+1]=N,h[v+2]=F,h[v+3]=V,v+=4,S=P,L=F)}r=P,u=N,a++}v!==h.length&&(h=h.subarray(0,v));const D=E.SparseMultilineTokens.create(w,h);l.push(D)}return l}class p{constructor(t,i,s,g){this.tokenTypeIndex=t,this.tokenModifierSet=i,this.languageId=s,this.metadata=g,this.next=null}}class n{static{this._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143]}constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=n._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const c=this._elements;this._currentLengthIndex++,this._currentLength=n._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{this._caches=new WeakMap}))}getStyling(n){return this._caches.has(n)||this._caches.set(n,new y.SemanticTokensProviderStyling(n.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(n)}};e.SemanticTokensStylingService=b,e.SemanticTokensStylingService=b=ke([ce(0,I.IThemeService),ce(1,E.ILogService),ce(2,k.ILanguageService)],b),(0,_.registerSingleton)(m.ISemanticTokensStylingService,b,1)}),define(ne[786],se([1,0,15,80,3,89,379,700,528]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(y.PlaceholderTextContribution.ID,(0,m.wrapInReloadableClass1)(()=>y.PlaceholderTextContribution),0),(0,E.registerColor)("editor.placeholder.foreground",k.ghostTextForeground,(0,I.localize)(1194,"Foreground color of the placeholder text in the editor."))}),define(ne[417],se([1,0,127,2,168,40,80,25,46]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorNavigationQuickAccessProvider=void 0;class b{constructor(n){this.options=n,this.rangeHighlightDecorationId=void 0}provide(n,o,t){const i=new k.DisposableStore;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;const s=i.add(new k.MutableDisposable);return s.value=this.doProvide(n,o,t),i.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(n,o)})),i}doProvide(n,o,t){const i=new k.DisposableStore,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const g={editor:s},c=(0,I.getCodeEditor)(s);if(c){let l=s.saveViewState()??void 0;i.add(c.onDidChangeCursorPosition(()=>{l=s.saveViewState()??void 0})),g.restoreViewState=()=>{l&&s===this.activeTextEditorControl&&s.restoreViewState(l)},i.add((0,d.createSingleCallFunction)(o.onCancellationRequested)(()=>g.restoreViewState?.()))}i.add((0,k.toDisposable)(()=>this.clearDecorations(s))),i.add(this.provideWithTextEditor(g,n,o,t))}else i.add(this.provideWithoutTextEditor(n,o));return i}canProvideWithTextEditor(n){return!0}gotoLocation({editor:n},o){n.setSelection(o.range,"code.jump"),n.revealRangeInCenter(o.range,0),o.preserveFocus||n.focus();const t=n.getModel();t&&"getLineContent"in t&&(0,_.status)(`${t.getLineContent(o.range.startLineNumber)}`)}getModel(n){return(0,I.isDiffEditor)(n)?n.getModel()?.modified:n.getModel()}addDecorations(n,o){n.changeDecorations(t=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:o,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:o,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,m.themeColorFromId)(y.overviewRulerRangeHighlight),position:E.OverviewRulerLane.Full}}}],[g,c]=t.deltaDecorations(i,s);this.rangeHighlightDecorationId={rangeHighlightId:g,overviewRulerDecorationId:c}})}clearDecorations(n){const o=this.rangeHighlightDecorationId;o&&(n.changeDecorations(t=>{t.deltaDecorations([o.overviewRulerDecorationId,o.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}e.AbstractEditorNavigationQuickAccessProvider=b}),define(ne[787],se([1,0,2,168,417,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoLineQuickAccessProvider=void 0;class y extends I.AbstractEditorNavigationQuickAccessProvider{static{this.PREFIX=":"}constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(_){const b=(0,E.localize)(1195,"Open a text editor first to go to a line.");return _.items=[{label:b}],_.ariaLabel=b,d.Disposable.None}provideWithTextEditor(_,b,p){const n=_.editor,o=new d.DisposableStore;o.add(b.onDidAccept(s=>{const[g]=b.selectedItems;if(g){if(!this.isValidLineNumber(n,g.lineNumber))return;this.gotoLocation(_,{range:this.toRange(g.lineNumber,g.column),keyMods:b.keyMods,preserveFocus:s.inBackground}),s.inBackground||b.hide()}}));const t=()=>{const s=this.parsePosition(n,b.value.trim().substr(y.PREFIX.length)),g=this.getPickLabel(n,s.lineNumber,s.column);if(b.items=[{lineNumber:s.lineNumber,column:s.column,label:g}],b.ariaLabel=g,!this.isValidLineNumber(n,s.lineNumber)){this.clearDecorations(n);return}const c=this.toRange(s.lineNumber,s.column);n.revealRangeInCenter(c,0),this.addDecorations(n,c)};t(),o.add(b.onDidChangeValue(()=>t()));const i=(0,k.getCodeEditor)(n);return i&&i.getOptions().get(68).renderType===2&&(i.updateOptions({lineNumbers:"on"}),o.add((0,d.toDisposable)(()=>i.updateOptions({lineNumbers:"relative"})))),o}toRange(_=1,b=1){return{startLineNumber:_,startColumn:b,endLineNumber:_,endColumn:b}}parsePosition(_,b){const p=b.split(/,|:|#/).map(o=>parseInt(o,10)).filter(o=>!isNaN(o)),n=this.lineCount(_)+1;return{lineNumber:p[0]>0?p[0]:n+p[0],column:p[1]}}getPickLabel(_,b,p){if(this.isValidLineNumber(_,b))return this.isValidColumn(_,b,p)?(0,E.localize)(1196,"Go to line {0} and character {1}.",b,p):(0,E.localize)(1197,"Go to line {0}.",b);const n=_.getPosition()||{lineNumber:1,column:1},o=this.lineCount(_);return o>1?(0,E.localize)(1198,"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",n.lineNumber,n.column,o):(0,E.localize)(1199,"Current Line: {0}, Character: {1}. Type a line number to navigate to.",n.lineNumber,n.column)}isValidLineNumber(_,b){return!b||typeof b!="number"?!1:b>0&&b<=this.lineCount(_)}isValidColumn(_,b,p){if(!p||typeof p!="number")return!1;const n=this.getModel(_);if(!n)return!1;const o={lineNumber:b,column:p};return n.validatePosition(o).equals(o)}lineCount(_){return this.getModel(_)?.getLineCount()??0}}e.AbstractGotoLineQuickAccessProvider=y}),define(ne[788],se([1,0,14,18,26,30,628,2,11,4,27,182,417,3,17,67]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoSymbolQuickAccessProvider=void 0;let c=class extends o.AbstractEditorNavigationQuickAccessProvider{static{g=this}static{this.PREFIX="@"}static{this.SCOPE_PREFIX=":"}static{this.PREFIX_BY_CATEGORY=`${this.PREFIX}${this.SCOPE_PREFIX}`}constructor(u,C,f=Object.create(null)){super(f),this._languageFeaturesService=u,this._outlineModelService=C,this.options=f,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(u){return this.provideLabelPick(u,(0,t.localize)(1200,"To go to a symbol, first open a text editor with symbol information.")),m.Disposable.None}provideWithTextEditor(u,C,f,h){const v=u.editor,w=this.getModel(v);return w?this._languageFeaturesService.documentSymbolProvider.has(w)?this.doProvideWithEditorSymbols(u,w,C,f,h):this.doProvideWithoutEditorSymbols(u,w,C,f):m.Disposable.None}doProvideWithoutEditorSymbols(u,C,f,h){const v=new m.DisposableStore;return this.provideLabelPick(f,(0,t.localize)(1201,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(C,v)||h.isCancellationRequested||v.add(this.doProvideWithEditorSymbols(u,C,f,h)))(),v}provideLabelPick(u,C){u.items=[{label:C,index:0,kind:14}],u.ariaLabel=C}async waitForLanguageSymbolRegistry(u,C){if(this._languageFeaturesService.documentSymbolProvider.has(u))return!0;const f=new d.DeferredPromise,h=C.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(u)&&(h.dispose(),f.complete(!0))}));return C.add((0,m.toDisposable)(()=>f.complete(!1))),f.p}doProvideWithEditorSymbols(u,C,f,h,v){const w=u.editor,S=new m.DisposableStore;S.add(f.onDidAccept(M=>{const[A]=f.selectedItems;A&&A.range&&(this.gotoLocation(u,{range:A.range.selection,keyMods:f.keyMods,preserveFocus:M.inBackground}),v?.handleAccept?.(A),M.inBackground||f.hide())})),S.add(f.onDidTriggerItemButton(({item:M})=>{M&&M.range&&(this.gotoLocation(u,{range:M.range.selection,keyMods:f.keyMods,forceSideBySide:!0}),f.hide())}));const L=this.getDocumentSymbols(C,h);let D;const T=async M=>{D?.dispose(!0),f.busy=!1,D=new k.CancellationTokenSource(h),f.busy=!0;try{const A=(0,y.prepareQuery)(f.value.substr(g.PREFIX.length).trim()),P=await this.doGetSymbolPicks(L,A,void 0,D.token,C);if(h.isCancellationRequested)return;if(P.length>0){if(f.items=P,M&&A.original.length===0){const N=(0,s.findLast)(P,O=>!!(O.type!=="separator"&&O.range&&b.Range.containsPosition(O.range.decoration,M)));N&&(f.activeItems=[N])}}else A.original.length>0?this.provideLabelPick(f,(0,t.localize)(1202,"No matching editor symbols")):this.provideLabelPick(f,(0,t.localize)(1203,"No editor symbols"))}finally{h.isCancellationRequested||(f.busy=!1)}};return S.add(f.onDidChangeValue(()=>T(void 0))),T(w.getSelection()?.getPosition()),S.add(f.onDidChangeActive(()=>{const[M]=f.activeItems;M&&M.range&&(w.revealRangeInCenter(M.range.selection,0),this.addDecorations(w,M.range.decoration))})),S}async doGetSymbolPicks(u,C,f,h,v){const w=await u;if(h.isCancellationRequested)return[];const S=C.original.indexOf(g.SCOPE_PREFIX)===0,L=S?1:0;let D,T;C.values&&C.values.length>1?(D=(0,y.pieceToQuery)(C.values[0]),T=(0,y.pieceToQuery)(C.values.slice(1))):D=C;let M;const A=this.options?.openSideBySideDirection?.();A&&(M=[{iconClass:A==="right"?E.ThemeIcon.asClassName(I.Codicon.splitHorizontal):E.ThemeIcon.asClassName(I.Codicon.splitVertical),tooltip:A==="right"?(0,t.localize)(1204,"Open to the Side"):(0,t.localize)(1205,"Open to the Bottom")}]);const P=[];for(let F=0;FL){let K=!1;if(D!==C&&([z,U]=(0,y.scoreFuzzy2)(V,{...C,values:void 0},L,q),typeof z=="number"&&(K=!0)),typeof z!="number"&&([z,U]=(0,y.scoreFuzzy2)(V,D,L,q),typeof z!="number"))continue;if(!K&&T){if(H&&T.original.length>0&&([j,Y]=(0,y.scoreFuzzy2)(H,T)),typeof j!="number")continue;typeof z=="number"&&(z+=j)}}const G=x.tags&&x.tags.indexOf(1)>=0;P.push({index:F,kind:x.kind,score:z,label:V,ariaLabel:(0,p.getAriaLabelForSymbol)(x.name,x.kind),description:H,highlights:G?void 0:{label:U,description:Y},range:{selection:b.Range.collapseToStart(x.selectionRange),decoration:x.range},uri:v.uri,symbolName:W,strikethrough:G,buttons:M})}const N=P.sort((F,x)=>S?this.compareByKindAndScore(F,x):this.compareByScore(F,x));let O=[];if(S){let V=function(){x&&typeof F=="number"&&W>0&&(x.label=(0,_.format)(a[F]||l,W))},F,x,W=0;for(const q of N)F!==q.kind?(V(),F=q.kind,W=1,x={type:"separator"},O.push(x)):W++,O.push(q);V()}else N.length>0&&(O=[{label:(0,t.localize)(1206,"symbols ({0})",P.length),type:"separator"},...N]);return O}compareByScore(u,C){if(typeof u.score!="number"&&typeof C.score=="number")return 1;if(typeof u.score=="number"&&typeof C.score!="number")return-1;if(typeof u.score=="number"&&typeof C.score=="number"){if(u.score>C.score)return-1;if(u.scoreC.index?1:0}compareByKindAndScore(u,C){const f=a[u.kind]||l,h=a[C.kind]||l,v=f.localeCompare(h);return v===0?this.compareByScore(u,C):v}async getDocumentSymbols(u,C){const f=await this._outlineModelService.getOrCreate(u,C);return C.isCancellationRequested?[]:f.asListOfDocumentSymbols()}};e.AbstractGotoSymbolQuickAccessProvider=c,e.AbstractGotoSymbolQuickAccessProvider=c=g=ke([ce(0,i.ILanguageFeaturesService),ce(1,n.IOutlineModelService)],c);const l=(0,t.localize)(1207,"properties ({0})"),a={5:(0,t.localize)(1208,"methods ({0})"),11:(0,t.localize)(1209,"functions ({0})"),8:(0,t.localize)(1210,"constructors ({0})"),12:(0,t.localize)(1211,"variables ({0})"),4:(0,t.localize)(1212,"classes ({0})"),22:(0,t.localize)(1213,"structs ({0})"),23:(0,t.localize)(1214,"events ({0})"),24:(0,t.localize)(1215,"operators ({0})"),10:(0,t.localize)(1216,"interfaces ({0})"),2:(0,t.localize)(1217,"namespaces ({0})"),3:(0,t.localize)(1218,"packages ({0})"),25:(0,t.localize)(1219,"type parameters ({0})"),1:(0,t.localize)(1220,"modules ({0})"),6:(0,t.localize)(1221,"properties ({0})"),9:(0,t.localize)(1222,"enumerations ({0})"),21:(0,t.localize)(1223,"enumeration members ({0})"),14:(0,t.localize)(1224,"strings ({0})"),0:(0,t.localize)(1225,"files ({0})"),17:(0,t.localize)(1226,"arrays ({0})"),15:(0,t.localize)(1227,"numbers ({0})"),16:(0,t.localize)(1228,"booleans ({0})"),18:(0,t.localize)(1229,"objects ({0})"),19:(0,t.localize)(1230,"keys ({0})"),7:(0,t.localize)(1231,"fields ({0})"),13:(0,t.localize)(1232,"constants ({0})")}}),define(ne[789],se([1,0,5,47,46,81,44,114,115,13,14,18,26,6,2,54,19,74,9,4,27,3,12,31,62,110,32,25,529]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenameWidget=e.CONTEXT_RENAME_INPUT_FOCUSED=e.CONTEXT_RENAME_INPUT_VISIBLE=void 0;const L=!1;e.CONTEXT_RENAME_INPUT_VISIBLE=new C.RawContextKey("renameInputVisible",!1,u.localize(1246,"Whether the rename input widget is visible")),e.CONTEXT_RENAME_INPUT_FOCUSED=new C.RawContextKey("renameInputFocused",!1,u.localize(1247,"Whether the rename input widget is focused"));let D=class{constructor(N,O,F,x,W,V){this._editor=N,this._acceptKeybindings=O,this._themeService=F,this._keybindingService=x,this._logService=V,this.allowEditorOverflow=!0,this._disposables=new i.DisposableStore,this._visibleContextKey=e.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(W),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new s.StopWatch,this._inputWithButton=new M,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(q=>{q.hasChanged(50)&&this._updateFont()})),this._disposables.add(F.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new T(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:N=>{this._inputWithButton.input.value=N,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{this._renameCandidateListView?.focusedCandidate!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1&&this._renameCandidateProvidersCts.cancel(),this._renameCandidateListView?.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(N){if(!this._domNode)return;const O=N.getColor(w.widgetShadow),F=N.getColor(w.widgetBorder);this._domNode.style.backgroundColor=String(N.getColor(w.editorWidgetBackground)??""),this._domNode.style.boxShadow=O?` 0 0 8px 2px ${O}`:"",this._domNode.style.border=F?`1px solid ${F}`:"",this._domNode.style.color=String(N.getColor(w.inputForeground)??"");const x=N.getColor(w.inputBorder);this._inputWithButton.domNode.style.backgroundColor=String(N.getColor(w.inputBackground)??""),this._inputWithButton.input.style.backgroundColor=String(N.getColor(w.inputBackground)??""),this._inputWithButton.domNode.style.borderWidth=x?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=x?"solid":"none",this._inputWithButton.domNode.style.borderColor=x?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;(0,g.assertType)(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const N=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(N.fontSize)}px`}_computeLabelFontSize(N){return N*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const N=d.getClientArea(this.getDomNode().ownerDocument.body),O=d.getDomNodePagePosition(this._editor.getDomNode()),F=this._getTopForPosition();this._nPxAvailableAbove=F+O.top,this._nPxAvailableBelow=N.height-this._nPxAvailableAbove;const x=this._editor.getOption(67),{totalHeight:W}=A.getLayoutInfo({lineHeight:x}),V=this._nPxAvailableBelow>W*6?[2,1]:[1,2];return{position:this._position,preference:V}}beforeRender(){const[N,O]=this._acceptKeybindings;return this._label.innerText=u.localize(1248,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(N)?.getLabel(),this._keybindingService.lookupKeybinding(O)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(N){if(N===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;(0,g.assertType)(this._renameCandidateListView),(0,g.assertType)(this._nPxAvailableAbove!==void 0),(0,g.assertType)(this._nPxAvailableBelow!==void 0);const O=d.getTotalHeight(this._inputWithButton.domNode),F=d.getTotalHeight(this._label);let x;N===2?x=this._nPxAvailableBelow:x=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:x-F-O,width:d.getTotalWidth(this._inputWithButton.domNode)})}acceptInput(N){this._trace("invoking acceptInput"),this._currentAcceptInput?.(N)}cancelInput(N,O){this._currentCancelInput?.(N)}focusNextRenameSuggestion(){this._renameCandidateListView?.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){this._renameCandidateListView?.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(N,O,F,x,W){const{start:V,end:q}=this._getSelection(N,O);this._renameCts=W;const H=new i.DisposableStore;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,x===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=x,this._requestRenameCandidates(O,!1),H.add(d.addDisposableListener(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(O,!0))),H.add(d.addDisposableListener(this._inputWithButton.button,d.EventType.KEY_DOWN,U=>{const j=new k.StandardKeyboardEvent(U);(j.equals(3)||j.equals(10))&&(j.stopPropagation(),j.preventDefault(),this._requestRenameCandidates(O,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",F),this._position=new l.Position(N.startLineNumber,N.startColumn),this._currentName=O,this._inputWithButton.input.value=O,this._inputWithButton.input.setAttribute("selectionStart",V.toString()),this._inputWithButton.input.setAttribute("selectionEnd",q.toString()),this._inputWithButton.input.size=Math.max((N.endColumn-N.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),H.add((0,i.toDisposable)(()=>{this._renameCts=void 0,W.dispose(!0)})),H.add((0,i.toDisposable)(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),H.add((0,i.toDisposable)(()=>this._candidates.clear()));const z=new p.DeferredPromise;return z.p.finally(()=>{H.dispose(),this._hide()}),this._currentCancelInput=U=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),z.complete(U),!0),this._currentAcceptInput=U=>{this._trace("invoking _currentAcceptInput"),(0,g.assertType)(this._renameCandidateListView!==void 0);const j=this._renameCandidateListView.nCandidates;let Y,G;const K=this._renameCandidateListView.focusedCandidate;if(K!==void 0?(this._trace("using new name from renameSuggestion"),Y=K,G={k:"renameSuggestion"}):(this._trace("using new name from inputField"),Y=this._inputWithButton.input.value,G=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),Y===O||Y.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),z.complete({newName:Y,wantsPreview:F&&U,stats:{source:G,nRenameSuggestions:j,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},H.add(W.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),L||H.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),z.p}_requestRenameCandidates(N,O){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),(0,g.assertType)(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new n.CancellationTokenSource;const F=O?r.NewSymbolNameTriggerKind.Invoke:r.NewSymbolNameTriggerKind.Automatic,x=this._requestRenameCandidatesOnce(F,this._renameCandidateProvidersCts.token);if(x.length===0){this._inputWithButton.setSparkleButton();return}O||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(x,N,this._renameCts.token)}}_getSelection(N,O){(0,g.assertType)(this._editor.hasModel());const F=this._editor.getSelection();let x=0,W=O.length;return!a.Range.isEmpty(F)&&!a.Range.spansMultipleLines(F)&&a.Range.containsRange(N,F)&&(x=Math.max(0,F.startColumn-N.startColumn),W=Math.min(N.endColumn,F.endColumn)-N.startColumn),{start:x,end:W}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(N,O,F){const x=(...z)=>this._trace("_updateRenameCandidates",...z);x("start");const W=await(0,p.raceCancellation)(Promise.allSettled(N),F);if(this._inputWithButton.setSparkleButton(),W===void 0){x("returning early - received updateRenameCandidates results - undefined");return}const V=W.flatMap(z=>z.status==="fulfilled"&&(0,g.isDefined)(z.value)?z.value:[]);x(`received updateRenameCandidates results - total (unfiltered) ${V.length} candidates.`);const q=b.distinct(V,z=>z.newSymbolName);x(`distinct candidates - ${q.length} candidates.`);const H=q.filter(({newSymbolName:z})=>z.trim().length>0&&z!==this._inputWithButton.input.value&&z!==O&&!this._candidates.has(z));if(x(`valid distinct candidates - ${V.length} candidates.`),H.forEach(z=>this._candidates.add(z.newSymbolName)),H.length<1){x("returning early - no valid distinct candidates");return}x("setting candidates"),this._renameCandidateListView.setCandidates(H),x("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const N=this._editor.getVisibleRanges();let O;return N.length>0?O=N[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),O=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(O)}_trace(...N){this._logService.trace("RenameWidget",...N)}};e.RenameWidget=D,e.RenameWidget=D=ke([ce(2,S.IThemeService),ce(3,f.IKeybindingService),ce(4,C.IContextKeyService),ce(5,h.ILogService)],D);class T{constructor(N,O){this._disposables=new i.DisposableStore,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=O.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=O.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",N.appendChild(this._listContainer),this._listWidget=T._createListWidget(this._listContainer,this._candidateViewHeight,O.fontInfo),this._listWidget.onDidChangeFocus(F=>{F.elements.length===1&&O.onFocusChange(F.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(F=>{F.elements.length===1&&O.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(F=>{this._listWidget.setFocus([])})),this._listWidget.style((0,v.getListStyles)({listInactiveFocusForeground:w.quickInputListFocusForeground,listInactiveFocusBackground:w.quickInputListFocusBackground}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:N,width:O}){this._availableHeight=N,this._minimumWidth=O}setCandidates(N){this._listWidget.splice(0,0,N);const O=this._pickListHeight(this._listWidget.length),F=this._pickListWidth(N);this._listWidget.layout(O,F),this._listContainer.style.height=`${O}px`,this._listContainer.style.width=`${F}px`,I.status(u.localize(1249,"Received {0} rename suggestions",N.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const N=this._listWidget.getSelectedElements()[0];if(N!==void 0)return N.newSymbolName;const O=this._listWidget.getFocusedElements()[0];if(O!==void 0)return O.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const N=this._listWidget.getFocus();if(N.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(N[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const N=this._listWidget.getFocus();if(N.length===0){this._listWidget.focusLast();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}else{if(N[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:N}=A.getLayoutInfo({lineHeight:this._lineHeight});return N}_pickListHeight(N){const O=this._candidateViewHeight*N;return Math.min(O,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(N){const O=Math.ceil(Math.max(...N.map(x=>x.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+O+10)}static _createListWidget(N,O,F){const x=new class{getTemplateId(V){return"candidate"}getHeight(V){return O}},W=new class{constructor(){this.templateId="candidate"}renderTemplate(V){return new A(V,F)}renderElement(V,q,H){H.populate(V)}disposeTemplate(V){V.dispose()}};return new _.List("NewSymbolNameCandidates",N,x,[W],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class M{constructor(){this._onDidInputChange=new t.Emitter,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new i.DisposableStore}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",u.localize(1250,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=u.localize(1251,"Generate new name suggestions"),this._buttonCancelHoverText=u.localize(1252,"Cancel"),this._buttonHover=(0,E.getBaseLayerHoverDelegate)().setupManagedHover((0,y.getDefaultHoverDelegate)("element"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(d.addDisposableListener(this.input,d.EventType.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(d.addDisposableListener(this.input,d.EventType.KEY_DOWN,N=>{const O=new k.StandardKeyboardEvent(N);(O.keyCode===15||O.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(d.addDisposableListener(this.input,d.EventType.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(d.addDisposableListener(this.input,d.EventType.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(d.addDisposableListener(this.input,d.EventType.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return(0,g.assertType)(this._inputNode),this._inputNode}get button(){return(0,g.assertType)(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=(0,m.renderIcon)(o.Codicon.sparkle),d.clearNode(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHover?.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??=(0,m.renderIcon)(o.Codicon.primitiveSquare),d.clearNode(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHover?.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}}class A{static{this._PADDING=2}constructor(N,O){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${O.lineHeight}px`,this._domNode.style.padding=`${A._PADDING}px`;const F=document.createElement("div");F.style.display="flex",F.style.alignItems="center",F.style.width=F.style.height=`${O.lineHeight*.8}px`,this._domNode.appendChild(F),this._icon=(0,m.renderIcon)(o.Codicon.sparkle),this._icon.style.display="none",F.appendChild(this._icon),this._label=document.createElement("div"),c.applyFontInfo(this._label,O),this._domNode.appendChild(this._label),N.appendChild(this._domNode)}populate(N){this._updateIcon(N),this._updateLabel(N)}_updateIcon(N){const O=!!N.tags?.includes(r.NewSymbolNameTag.AIGenerated);this._icon.style.display=O?"inherit":"none"}_updateLabel(N){this._label.innerText=N.newSymbolName}static getLayoutInfo({lineHeight:N}){return{totalHeight:N+A._PADDING*2}}dispose(){}}}),define(ne[790],se([1,0,46,14,18,8,57,2,19,22,15,152,34,9,4,20,27,17,211,122,184,3,29,109,12,7,62,50,96,38,63,789]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.RenameAction=void 0,e.rename=N;class P{constructor(V,q,H){this.model=V,this.position=q,this._providerRenameIdx=0,this._providers=H.ordered(V)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(V){const q=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?q.join(` -`):void 0}:{range:i.Range.fromPositions(this.position),text:"",rejectReason:q.length>0?q.join(` -`):void 0}}async provideRenameEdits(V,q){return this._provideRenameEdits(V,this._providerRenameIdx,[],q)}async _provideRenameEdits(V,q,H,z){const U=this._providers[q];if(!U)return{edits:[],rejectReason:H.join(` -`)};const j=await U.provideRenameEdits(this.model,this.position,V,z);if(j){if(j.rejectReason)return this._provideRenameEdits(V,q+1,H.concat(j.rejectReason),z)}else return this._provideRenameEdits(V,q+1,H.concat(u.localize(1235,"No result.")),z);return j}}async function N(W,V,q,H){const z=new P(V,q,W),U=await z.resolveRenameLocation(I.CancellationToken.None);return U?.rejectReason?{edits:[],rejectReason:U.rejectReason}:z.provideRenameEdits(H,I.CancellationToken.None)}let O=class{static{A=this}static{this.ID="editor.contrib.renameController"}static get(V){return V.getContribution(A.ID)}constructor(V,q,H,z,U,j,Y,G,K){this.editor=V,this._instaService=q,this._notificationService=H,this._bulkEditService=z,this._progressService=U,this._logService=j,this._configService=Y,this._languageFeaturesService=G,this._telemetryService=K,this._disposableStore=new m.DisposableStore,this._cts=new I.CancellationTokenSource,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(M.RenameWidget,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){const V=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new I.CancellationTokenSource,!this.editor.hasModel()){V("editor has no model");return}const q=this.editor.getPosition(),H=new P(this.editor.getModel(),q,this._languageFeaturesService.renameProvider);if(!H.hasProvider()){V("skeleton has no provider");return}const z=new a.EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let U;try{V("resolving rename location");const he=H.resolveRenameLocation(z.token);this._progressService.showWhile(he,250),U=await he,V("resolved rename location")}catch(he){he instanceof E.CancellationError?V("resolve rename location cancelled",JSON.stringify(he,null," ")):(V("resolve rename location failed",he instanceof Error?he:JSON.stringify(he,null," ")),(typeof he=="string"||(0,y.isMarkdownString)(he))&&r.MessageController.get(this.editor)?.showMessage(he||u.localize(1236,"An unknown error occurred while resolving rename location"),q));return}finally{z.dispose()}if(!U){V("returning early - no loc");return}if(U.rejectReason){V(`returning early - rejected with reason: ${U.rejectReason}`,U.rejectReason),r.MessageController.get(this.editor)?.showMessage(U.rejectReason,q);return}if(z.token.isCancellationRequested){V("returning early - cts1 cancelled");return}const j=new a.EditorStateCancellationTokenSource(this.editor,5,U.range,this._cts.token),Y=this.editor.getModel(),G=this._languageFeaturesService.newSymbolNamesProvider.all(Y),K=await Promise.all(G.map(async he=>[he,await he.supportsAutomaticNewSymbolNamesTriggerKind??!1])),R=(he,pe)=>{let ae=K.slice();return he===g.NewSymbolNameTriggerKind.Automatic&&(ae=ae.filter(([ee,de])=>de)),ae.map(([ee])=>ee.provideNewSymbolNames(Y,U.range,he,pe))};V("creating rename input field and awaiting its result");const J=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),ie=await this._renameWidget.getInput(U.range,U.text,J,G.length>0?R:void 0,j);if(V("received response from rename input field"),G.length>0&&this._reportTelemetry(G.length,Y.getLanguageId(),ie),typeof ie=="boolean"){V(`returning early - rename input field response - ${ie}`),ie&&this.editor.focus(),j.dispose();return}this.editor.focus(),V("requesting rename edits");const ue=(0,k.raceCancellation)(H.provideRenameEdits(ie.newName,j.token),j.token).then(async he=>{if(!he){V("returning early - no rename edits result");return}if(!this.editor.hasModel()){V("returning early - no model after rename edits are provided");return}if(he.rejectReason){V(`returning early - rejected with reason: ${he.rejectReason}`),this._notificationService.info(he.rejectReason);return}this.editor.setSelection(i.Range.fromPositions(this.editor.getSelection().getPosition())),V("applying edits"),this._bulkEditService.apply(he,{editor:this.editor,showPreview:ie.wantsPreview,label:u.localize(1237,"Renaming '{0}' to '{1}'",U?.text,ie.newName),code:"undoredo.rename",quotableLabel:u.localize(1238,"Renaming {0} to {1}",U?.text,ie.newName),respectAutoSaveConfig:!0}).then(pe=>{V("edits applied"),pe.ariaSummary&&(0,d.alert)(u.localize(1239,"Successfully renamed '{0}' to '{1}'. Summary: {2}",U.text,ie.newName,pe.ariaSummary))}).catch(pe=>{V(`error when applying edits ${JSON.stringify(pe,null," ")}`),this._notificationService.error(u.localize(1240,"Rename failed to apply edits")),this._logService.error(pe)})},he=>{V("error when providing rename edits",JSON.stringify(he,null," ")),this._notificationService.error(u.localize(1241,"Rename failed to compute edits")),this._logService.error(he)}).finally(()=>{j.dispose()});return V("returning rename operation"),this._progressService.showWhile(ue,250),ue}acceptRenameInput(V){this._renameWidget.acceptInput(V)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(V,q,H){const z=typeof H=="boolean"?{kind:"cancelled",languageId:q,nRenameSuggestionProviders:V}:{kind:"accepted",languageId:q,nRenameSuggestionProviders:V,source:H.stats.source.k,nRenameSuggestions:H.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:H.stats.timeBeforeFirstInputFieldEdit,wantsPreview:H.wantsPreview,nRenameSuggestionsInvocations:H.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:H.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",z)}};O=A=ke([ce(1,v.IInstantiationService),ce(2,S.INotificationService),ce(3,n.IBulkEditService),ce(4,L.IEditorProgressService),ce(5,w.ILogService),ce(6,l.ITextResourceConfigurationService),ce(7,c.ILanguageFeaturesService),ce(8,T.ITelemetryService)],O);class F extends p.EditorAction{constructor(){super({id:"editor.action.rename",label:u.localize(1242,"Rename Symbol"),alias:"Rename Symbol",precondition:h.ContextKeyExpr.and(s.EditorContextKeys.writable,s.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(V,q){const H=V.get(o.ICodeEditorService),[z,U]=Array.isArray(q)&&q||[void 0,void 0];return b.URI.isUri(z)&&t.Position.isIPosition(U)?H.openCodeEditor({resource:z},H.getActiveCodeEditor()).then(j=>{j&&(j.setPosition(U),j.invokeWithinContext(Y=>(this.reportTelemetry(Y,j),this.run(Y,j))))},E.onUnexpectedError):super.runCommand(V,q)}run(V,q){const H=V.get(w.ILogService),z=O.get(q);return z?(H.trace("[RenameAction] got controller, running..."),z.run()):(H.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}e.RenameAction=F,(0,p.registerEditorContribution)(O.ID,O,4),(0,p.registerEditorAction)(F);const x=p.EditorCommand.bindToContribution(O.get);(0,p.registerEditorCommand)(new x({id:"acceptRenameInput",precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,handler:W=>W.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:h.ContextKeyExpr.and(s.EditorContextKeys.focus,h.ContextKeyExpr.not("isComposing")),primary:3}})),(0,p.registerEditorCommand)(new x({id:"acceptRenameInputWithPreview",precondition:h.ContextKeyExpr.and(M.CONTEXT_RENAME_INPUT_VISIBLE,h.ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:W=>W.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:h.ContextKeyExpr.and(s.EditorContextKeys.focus,h.ContextKeyExpr.not("isComposing")),primary:2051}})),(0,p.registerEditorCommand)(new x({id:"cancelRenameInput",precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,handler:W=>W.cancelRenameInput(),kbOpts:{weight:199,kbExpr:s.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,C.registerAction2)(class extends C.Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...u.localize2(1244,"Focus Next Rename Suggestion")},precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:18,weight:199}]})}run(V){const q=V.get(o.ICodeEditorService).getFocusedCodeEditor();if(!q)return;const H=O.get(q);H&&H.focusNextRenameSuggestion()}}),(0,C.registerAction2)(class extends C.Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...u.localize2(1245,"Focus Previous Rename Suggestion")},precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:16,weight:199}]})}run(V){const q=V.get(o.ICodeEditorService).getFocusedCodeEditor();if(!q)return;const H=O.get(q);H&&H.focusPreviousRenameSuggestion()}}),(0,p.registerModelAndPositionCommand)("_executeDocumentRenameProvider",function(W,V,q,...H){const[z]=H;(0,_.assertType)(typeof z=="string");const{renameProvider:U}=W.get(c.ILanguageFeaturesService);return N(U,V,q,z)}),(0,p.registerModelAndPositionCommand)("_executePrepareRename",async function(W,V,q){const{renameProvider:H}=W.get(c.ILanguageFeaturesService),U=await new P(V,q,H).resolveRenameLocation(I.CancellationToken.None);if(U?.rejectReason)throw new Error(U.rejectReason);return U}),D.Registry.as(f.Extensions.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:u.localize(1243,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}})}),define(ne[791],se([1,0,2,8,51,28,14,18,25,282,387,79,54,17,267,130,339]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.DocumentSemanticTokensFeature=void 0;let l=class extends d.Disposable{constructor(C,f,h,v,w,S){super(),this._watchers=Object.create(null);const L=M=>{this._watchers[M.uri.toString()]=new a(M,C,h,w,S)},D=(M,A)=>{A.dispose(),delete this._watchers[M.uri.toString()]},T=()=>{for(const M of f.getModels()){const A=this._watchers[M.uri.toString()];(0,g.isSemanticColoringEnabled)(M,h,v)?A||L(M):A&&D(M,A)}};f.getModels().forEach(M=>{(0,g.isSemanticColoringEnabled)(M,h,v)&&L(M)}),this._register(f.onModelAdded(M=>{(0,g.isSemanticColoringEnabled)(M,h,v)&&L(M)})),this._register(f.onModelRemoved(M=>{const A=this._watchers[M.uri.toString()];A&&D(M,A)})),this._register(v.onDidChangeConfiguration(M=>{M.affectsConfiguration(g.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&T()})),this._register(h.onDidColorThemeChange(T))}dispose(){for(const C of Object.values(this._watchers))C.dispose();super.dispose()}};e.DocumentSemanticTokensFeature=l,e.DocumentSemanticTokensFeature=l=ke([ce(0,i.ISemanticTokensStylingService),ce(1,I.IModelService),ce(2,_.IThemeService),ce(3,E.IConfigurationService),ce(4,n.ILanguageFeatureDebounceService),ce(5,t.ILanguageFeaturesService)],l);let a=class extends d.Disposable{static{c=this}static{this.REQUEST_MIN_DELAY=300}static{this.REQUEST_MAX_DELAY=2e3}constructor(C,f,h,v,w){super(),this._semanticTokensStylingService=f,this._isDisposed=!1,this._model=C,this._provider=w.documentSemanticTokensProvider,this._debounceInformation=v.for(this._provider,"DocumentSemanticTokens",{min:c.REQUEST_MIN_DELAY,max:c.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new y.RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),c.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const S=()=>{(0,d.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const L of this._provider.all(C))typeof L.onDidChange=="function"&&this._documentProvidersChangeListeners.push(L.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};S(),this._register(this._provider.onDidChange(()=>{S(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(h.onDidColorThemeChange(L=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),(0,d.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!(0,p.hasDocumentSemanticTokensProvider)(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const C=new m.CancellationTokenSource,f=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,h=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,v=(0,p.getDocumentSemanticTokens)(this._provider,this._model,f,h,C.token);this._currentDocumentRequestCancellationTokenSource=C,this._providersChangedDuringRequest=!1;const w=[],S=this._model.onDidChangeContent(D=>{w.push(D)}),L=new o.StopWatch(!1);v.then(D=>{if(this._debounceInformation.update(this._model,L.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,S.dispose(),!D)this._setDocumentSemanticTokens(null,null,null,w);else{const{provider:T,tokens:M}=D,A=this._semanticTokensStylingService.getStyling(T);this._setDocumentSemanticTokens(T,M||null,A,w)}},D=>{D&&(k.isCancellationError(D)||typeof D.message=="string"&&D.message.indexOf("busy")!==-1)||k.onUnexpectedError(D),this._currentDocumentRequestCancellationTokenSource=null,S.dispose(),(w.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(C,f,h,v,w){w=Math.min(w,h.length-v,C.length-f);for(let S=0;S{(v.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){C&&f&&C.releaseDocumentSemanticTokens(f.resultId);return}if(!C||!h){this._model.tokenization.setSemanticTokens(null,!1);return}if(!f){this._model.tokenization.setSemanticTokens(null,!0),S();return}if((0,p.isSemanticTokensEdits)(f)){if(!w){this._model.tokenization.setSemanticTokens(null,!0);return}if(f.edits.length===0)f={resultId:f.resultId,data:w.data};else{let L=0;for(const P of f.edits)L+=(P.data?P.data.length:0)-P.deleteCount;const D=w.data,T=new Uint32Array(D.length+L);let M=D.length,A=T.length;for(let P=f.edits.length-1;P>=0;P--){const N=f.edits[P];if(N.start>D.length){h.warnInvalidEditStart(w.resultId,f.resultId,P,N.start,D.length),this._model.tokenization.setSemanticTokens(null,!0);return}const O=M-(N.start+N.deleteCount);O>0&&(c._copy(D,M-O,T,A-O,O),A-=O),N.data&&(c._copy(N.data,0,T,A-N.data.length,N.data.length),A-=N.data.length),M=N.start}M>0&&c._copy(D,0,T,0,M),f={resultId:f.resultId,data:T}}}if((0,p.isSemanticTokens)(f)){this._currentDocumentResponse=new r(C,f.resultId,f.data);const L=(0,b.toMultilineTokens2)(f,h,this._model.getLanguageId());if(v.length>0)for(const D of v)for(const T of L)for(const M of D.changes)T.applyEdit(M.range,M.text);this._model.tokenization.setSemanticTokens(L,!0)}else this._model.tokenization.setSemanticTokens(null,!0);S()}};a=c=ke([ce(1,i.ISemanticTokensStylingService),ce(2,_.IThemeService),ce(3,n.ILanguageFeatureDebounceService),ce(4,t.ILanguageFeaturesService)],a);class r{constructor(C,f,h){this.provider=C,this.resultId=f,this.data=h}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}(0,s.registerEditorFeature)(l)}),define(ne[792],se([1,0,14,2,15,387,339,282,28,25,79,54,17,267]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportSemanticTokensContribution=void 0;let i=class extends k.Disposable{static{this.ID="editor.contrib.viewportSemanticTokens"}constructor(g,c,l,a,r,u){super(),this._semanticTokensStylingService=c,this._themeService=l,this._configurationService=a,this._editor=g,this._provider=u.documentRangeSemanticTokensProvider,this._debounceInformation=r.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new d.RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const C=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{C()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),C()})),this._register(this._editor.onDidChangeModelContent(f=>{this._cancelAll(),C()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),C()})),this._register(this._configurationService.onDidChangeConfiguration(f=>{f.affectsConfiguration(y.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),C())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),C()})),C()}_cancelAll(){for(const g of this._outstandingRequests)g.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(g){for(let c=0,l=this._outstandingRequests.length;cthis._requestRange(g,l)))}_requestRange(g,c){const l=g.getVersionId(),a=(0,d.createCancelablePromise)(u=>Promise.resolve((0,E.getDocumentRangeSemanticTokens)(this._provider,g,c,u))),r=new n.StopWatch(!1);return a.then(u=>{if(this._debounceInformation.update(g,r.elapsed()),!u||!u.tokens||g.isDisposed()||g.getVersionId()!==l)return;const{provider:C,tokens:f}=u,h=this._semanticTokensStylingService.getStyling(C);g.tokenization.setPartialSemanticTokens(c,(0,m.toMultilineTokens2)(f,h,g.getLanguageId()))}).then(()=>this._removeOutstandingRequest(a),()=>this._removeOutstandingRequest(a)),a}};e.ViewportSemanticTokensContribution=i,e.ViewportSemanticTokensContribution=i=ke([ce(1,t.ISemanticTokensStylingService),ce(2,b.IThemeService),ce(3,_.IConfigurationService),ce(4,p.ILanguageFeatureDebounceService),ce(5,o.ILanguageFeaturesService)],i),(0,I.registerEditorContribution)(i.ID,i,1)}),define(ne[793],se([1,0,5,254,26,30,6,82,2,22,27,708,51,43,3,382,71,25,402]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ItemRenderer=void 0,e.getAriaId=a;function a(h){return`suggest-aria-id:${h}`}const r=(0,g.registerIcon)("suggest-more-info",I.Codicon.chevronRight,i.localize(1346,"Icon for more information in the suggest widget.")),u=new class xt{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=new RegExp(`^${xt._regexRelaxed.source}$`,"i")}extract(v,w){if(v.textLabel.match(xt._regexStrict))return w[0]=v.textLabel,!0;if(v.completion.detail&&v.completion.detail.match(xt._regexStrict))return w[0]=v.completion.detail,!0;if(v.completion.documentation){const S=typeof v.completion.documentation=="string"?v.completion.documentation:v.completion.documentation.value,L=xt._regexRelaxed.exec(S);if(L&&(L.index===0||L.index+L[0].length===S.length))return w[0]=L[0],!0}return!1}};let C=class{constructor(v,w,S,L){this._editor=v,this._modelService=w,this._languageService=S,this._themeService=L,this._onDidToggleDetails=new y.Emitter,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(v){const w=new _.DisposableStore,S=v;S.classList.add("show-file-icons");const L=(0,d.append)(v,(0,d.$)(".icon")),D=(0,d.append)(L,(0,d.$)("span.colorspan")),T=(0,d.append)(v,(0,d.$)(".contents")),M=(0,d.append)(T,(0,d.$)(".main")),A=(0,d.append)(M,(0,d.$)(".icon-label.codicon")),P=(0,d.append)(M,(0,d.$)("span.left")),N=(0,d.append)(M,(0,d.$)("span.right")),O=new k.IconLabel(P,{supportHighlights:!0,supportIcons:!0});w.add(O);const F=(0,d.append)(P,(0,d.$)("span.signature-label")),x=(0,d.append)(P,(0,d.$)("span.qualifier-label")),W=(0,d.append)(N,(0,d.$)("span.details-label")),V=(0,d.append)(N,(0,d.$)("span.readMore"+E.ThemeIcon.asCSSSelector(r)));return V.title=i.localize(1347,"Read More"),{root:S,left:P,right:N,icon:L,colorspan:D,iconLabel:O,iconContainer:A,parametersLabel:F,qualifierLabel:x,detailsLabel:W,readMore:V,disposables:w,configureFont:()=>{const H=this._editor.getOptions(),z=H.get(50),U=z.getMassagedFontFamily(),j=z.fontFeatureSettings,Y=H.get(120)||z.fontSize,G=H.get(121)||z.lineHeight,K=z.fontWeight,R=z.letterSpacing,J=`${Y}px`,ie=`${G}px`,ue=`${R}px`;S.style.fontSize=J,S.style.fontWeight=K,S.style.letterSpacing=ue,M.style.fontFamily=U,M.style.fontFeatureSettings=j,M.style.lineHeight=ie,L.style.height=ie,L.style.width=ie,V.style.height=ie,V.style.width=ie}}}renderElement(v,w,S){S.configureFont();const{completion:L}=v;S.root.id=a(w),S.colorspan.style.backgroundColor="";const D={labelEscapeNewLines:!0,matches:(0,m.createMatches)(v.score)},T=[];if(L.kind===19&&u.extract(v,T))S.icon.className="icon customcolor",S.iconContainer.className="icon hide",S.colorspan.style.backgroundColor=T[0];else if(L.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){S.icon.className="icon hide",S.iconContainer.className="icon hide";const M=(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:v.textLabel}),s.FileKind.FILE),A=(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:L.detail}),s.FileKind.FILE);D.extraClasses=M.length>A.length?M:A}else L.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(S.icon.className="icon hide",S.iconContainer.className="icon hide",D.extraClasses=[(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:v.textLabel}),s.FileKind.FOLDER),(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:L.detail}),s.FileKind.FOLDER)].flat()):(S.icon.className="icon hide",S.iconContainer.className="",S.iconContainer.classList.add("suggest-icon",...E.ThemeIcon.asClassNameArray(p.CompletionItemKinds.toIcon(L.kind))));L.tags&&L.tags.indexOf(1)>=0&&(D.extraClasses=(D.extraClasses||[]).concat(["deprecated"]),D.matches=[]),S.iconLabel.setLabel(v.textLabel,void 0,D),typeof L.label=="string"?(S.parametersLabel.textContent="",S.detailsLabel.textContent=f(L.detail||""),S.root.classList.add("string-label")):(S.parametersLabel.textContent=f(L.label.detail||""),S.detailsLabel.textContent=f(L.label.description||""),S.root.classList.remove("string-label")),this._editor.getOption(119).showInlineDetails?(0,d.show)(S.detailsLabel):(0,d.hide)(S.detailsLabel),(0,l.canExpandCompletionItem)(v)?(S.right.classList.add("can-expand-details"),(0,d.show)(S.readMore),S.readMore.onmousedown=M=>{M.stopPropagation(),M.preventDefault()},S.readMore.onclick=M=>{M.stopPropagation(),M.preventDefault(),this._onDidToggleDetails.fire()}):(S.right.classList.remove("can-expand-details"),(0,d.hide)(S.readMore),S.readMore.onmousedown=null,S.readMore.onclick=null)}disposeTemplate(v){v.disposables.dispose()}};e.ItemRenderer=C,e.ItemRenderer=C=ke([ce(1,o.IModelService),ce(2,t.ILanguageService),ce(3,c.IThemeService)],C);function f(h){return h.replace(/\r\n|\r|\n/g,"")}}),define(ne[794],se([1,0,787,38,156,34,107,6,15,20,66]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneGotoLineQuickAccessProvider=void 0;let n=class extends d.AbstractGotoLineQuickAccessProvider{constructor(i){super(),this.editorService=i,this.onDidActiveTextEditorControlChange=m.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};e.StandaloneGotoLineQuickAccessProvider=n,e.StandaloneGotoLineQuickAccessProvider=n=ke([ce(0,E.ICodeEditorService)],n);class o extends _.EditorAction{static{this.ID="editor.action.gotoLine"}constructor(){super({id:o.ID,label:y.GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(i){i.get(p.IQuickInputService).quickAccess.show(n.PREFIX)}}e.GotoLineAction=o,(0,_.registerEditorAction)(o),k.Registry.as(I.Extensions.Quickaccess).registerQuickAccessProvider({ctor:n,prefix:n.PREFIX,helpEntries:[{description:y.GoToLineNLS.gotoLineActionLabel,commandId:o.ID}]})}),define(ne[795],se([1,0,788,38,156,34,107,6,15,20,66,182,17,195,280]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoSymbolAction=e.StandaloneGotoSymbolQuickAccessProvider=void 0;let t=class extends d.AbstractGotoSymbolQuickAccessProvider{constructor(g,c,l){super(c,l),this.editorService=g,this.onDidActiveTextEditorControlChange=m.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};e.StandaloneGotoSymbolQuickAccessProvider=t,e.StandaloneGotoSymbolQuickAccessProvider=t=ke([ce(0,E.ICodeEditorService),ce(1,o.ILanguageFeaturesService),ce(2,n.IOutlineModelService)],t);class i extends _.EditorAction{static{this.ID="editor.action.quickOutline"}constructor(){super({id:i.ID,label:y.QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:b.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(g){g.get(p.IQuickInputService).quickAccess.show(d.AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:p.ItemActivation.NONE})}}e.GotoSymbolAction=i,(0,_.registerEditorAction)(i),k.Registry.as(I.Extensions.Quickaccess).registerQuickAccessProvider({ctor:t,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:y.QuickOutlineNLS.quickOutlineActionLabel,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:i.ID},{description:y.QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]})}),define(ne[418],se([1,0,5,42,771,34,12,49,25]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneCodeEditorService=void 0;let b=class extends I.AbstractCodeEditorService{constructor(n,o){super(o),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=n.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(t,i,s)=>i?this.doOpenEditor(i,t):null))}_checkContextKey(){let n=!1;for(const o of this.listCodeEditors())if(!o.isSimpleWidget){n=!0;break}this._editorIsOpen.set(n)}setActiveCodeEditor(n){this._activeCodeEditor=n}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(n,o){if(!this.findModel(n,o.resource)){if(o.resource){const s=o.resource.scheme;if(s===k.Schemas.http||s===k.Schemas.https)return(0,d.windowOpenNoOpener)(o.resource.toString()),n}return null}const i=o.options?o.options.selection:null;if(i)if(typeof i.endLineNumber=="number"&&typeof i.endColumn=="number")n.setSelection(i),n.revealRangeInCenter(i,1);else{const s={lineNumber:i.startLineNumber,column:i.startColumn};n.setPosition(s),n.revealPositionInCenter(s,1)}return n}findModel(n,o){const t=n.getModel();return t&&t.uri.toString()!==o.toString()?null:t}};e.StandaloneCodeEditorService=b,e.StandaloneCodeEditorService=b=ke([ce(0,y.IContextKeyService),ce(1,_.IThemeService)],b),(0,m.registerSingleton)(E.ICodeEditorService,b,0)}),define(ne[796],se([1,0,80,32]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hc_light=e.hc_black=e.vs_dark=e.vs=void 0,e.vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFE",[k.editorForeground]:"#000000",[k.editorInactiveSelection]:"#E5EBF1",[d.editorIndentGuide1]:"#D3D3D3",[d.editorActiveIndentGuide1]:"#939393",[k.editorSelectionHighlight]:"#ADD6FF4D"}},e.vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#1E1E1E",[k.editorForeground]:"#D4D4D4",[k.editorInactiveSelection]:"#3A3D41",[d.editorIndentGuide1]:"#404040",[d.editorActiveIndentGuide1]:"#707070",[k.editorSelectionHighlight]:"#ADD6FF26"}},e.hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#000000",[k.editorForeground]:"#FFFFFF",[d.editorIndentGuide1]:"#FFFFFF",[d.editorActiveIndentGuide1]:"#FFFFFF"}},e.hc_light={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFF",[k.editorForeground]:"#292929",[d.editorIndentGuide1]:"#292929",[d.editorActiveIndentGuide1]:"#292929"}}}),define(ne[419],se([1,0,5,64,33,6,27,148,572,796,38,32,25,2,97,767,52]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneThemeService=e.HC_LIGHT_THEME_NAME=e.HC_BLACK_THEME_NAME=e.VS_DARK_THEME_NAME=e.VS_LIGHT_THEME_NAME=void 0,e.VS_LIGHT_THEME_NAME="vs",e.VS_DARK_THEME_NAME="vs-dark",e.HC_BLACK_THEME_NAME="hc-black",e.HC_LIGHT_THEME_NAME="hc-light";const c=p.Registry.as(n.Extensions.ColorContribution),l=p.Registry.as(o.Extensions.ThemingContribution);class a{constructor(v,w){this.semanticHighlighting=!1,this.themeData=w;const S=w.base;v.length>0?(r(v)?this.id=v:this.id=S+" "+v,this.themeName=v):(this.id=S,this.themeName=S),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const v=new Map;for(const w in this.themeData.colors)v.set(w,I.Color.fromHex(this.themeData.colors[w]));if(this.themeData.inherit){const w=u(this.themeData.base);for(const S in w.colors)v.has(S)||v.set(S,I.Color.fromHex(w.colors[S]))}this.colors=v}return this.colors}getColor(v,w){const S=this.getColors().get(v);if(S)return S;if(w!==!1)return this.getDefault(v)}getDefault(v){let w=this.defaultColors[v];return w||(w=c.resolveDefaultColor(v,this),this.defaultColors[v]=w,w)}defines(v){return this.getColors().has(v)}get type(){switch(this.base){case e.VS_LIGHT_THEME_NAME:return i.ColorScheme.LIGHT;case e.HC_BLACK_THEME_NAME:return i.ColorScheme.HIGH_CONTRAST_DARK;case e.HC_LIGHT_THEME_NAME:return i.ColorScheme.HIGH_CONTRAST_LIGHT;default:return i.ColorScheme.DARK}}get tokenTheme(){if(!this._tokenTheme){let v=[],w=[];if(this.themeData.inherit){const D=u(this.themeData.base);v=D.rules,D.encodedTokensColors&&(w=D.encodedTokensColors)}const S=this.themeData.colors["editor.foreground"],L=this.themeData.colors["editor.background"];if(S||L){const D={token:""};S&&(D.foreground=S),L&&(D.background=L),v.push(D)}v=v.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(w=this.themeData.encodedTokensColors),this._tokenTheme=_.TokenTheme.createFromRawTokenTheme(v,w)}return this._tokenTheme}getTokenStyleMetadata(v,w,S){const D=this.tokenTheme._match([v].concat(w).join(".")).metadata,T=m.TokenMetadata.getForeground(D),M=m.TokenMetadata.getFontStyle(D);return{foreground:T,italic:!!(M&1),bold:!!(M&2),underline:!!(M&4),strikethrough:!!(M&8)}}}function r(h){return h===e.VS_LIGHT_THEME_NAME||h===e.VS_DARK_THEME_NAME||h===e.HC_BLACK_THEME_NAME||h===e.HC_LIGHT_THEME_NAME}function u(h){switch(h){case e.VS_LIGHT_THEME_NAME:return b.vs;case e.VS_DARK_THEME_NAME:return b.vs_dark;case e.HC_BLACK_THEME_NAME:return b.hc_black;case e.HC_LIGHT_THEME_NAME:return b.hc_light}}function C(h){const v=u(h);return new a(h,v)}class f extends t.Disposable{constructor(){super(),this._onColorThemeChange=this._register(new E.Emitter),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new E.Emitter),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new s.UnthemedProductIconTheme,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(e.VS_LIGHT_THEME_NAME,C(e.VS_LIGHT_THEME_NAME)),this._knownThemes.set(e.VS_DARK_THEME_NAME,C(e.VS_DARK_THEME_NAME)),this._knownThemes.set(e.HC_BLACK_THEME_NAME,C(e.HC_BLACK_THEME_NAME)),this._knownThemes.set(e.HC_LIGHT_THEME_NAME,C(e.HC_LIGHT_THEME_NAME));const v=this._register((0,s.getIconsStyleSheet)(this));this._codiconCSS=v.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} -${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(e.VS_LIGHT_THEME_NAME),this._onOSSchemeChanged(),this._register(v.onDidChange(()=>{this._codiconCSS=v.getCSS(),this._updateCSS()})),(0,k.addMatchMediaChangeListener)(g.mainWindow,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(v){return d.isInShadowDOM(v)?this._registerShadowDomContainer(v):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=d.createStyleSheet(void 0,v=>{v.className="monaco-colors",v.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),t.Disposable.None}_registerShadowDomContainer(v){const w=d.createStyleSheet(v,S=>{S.className="monaco-colors",S.textContent=this._allCSS});return this._styleElements.push(w),{dispose:()=>{for(let S=0;S{S.base===v&&S.notifyBaseUpdated()}),this._theme.themeName===v&&this.setTheme(v)}getColorTheme(){return this._theme}setColorMapOverride(v){this._colorMapOverride=v,this._updateThemeOrColorMap()}setTheme(v){let w;this._knownThemes.has(v)?w=this._knownThemes.get(v):w=this._knownThemes.get(e.VS_LIGHT_THEME_NAME),this._updateActualTheme(w)}_updateActualTheme(v){!v||this._theme===v||(this._theme=v,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const v=g.mainWindow.matchMedia("(forced-colors: active)").matches;if(v!==(0,i.isHighContrast)(this._theme.type)){let w;(0,i.isDark)(this._theme.type)?w=v?e.HC_BLACK_THEME_NAME:e.VS_DARK_THEME_NAME:w=v?e.HC_LIGHT_THEME_NAME:e.VS_LIGHT_THEME_NAME,this._updateActualTheme(this._knownThemes.get(w))}}}setAutoDetectHighContrast(v){this._autoDetectHighContrast=v,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const v=[],w={},S={addRule:T=>{w[T]||(v.push(T),w[T]=!0)}};l.getThemingParticipants().forEach(T=>T(this._theme,S,this._environment));const L=[];for(const T of c.getColors()){const M=this._theme.getColor(T.id,!0);M&&L.push(`${(0,n.asCssVariableName)(T.id)}: ${M.toString()};`)}S.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${L.join(` -`)} }`);const D=this._colorMapOverride||this._theme.tokenTheme.getColorMap();S.addRule((0,_.generateTokensCSSForColorMap)(D)),this._themeCSS=v.join(` -`),this._updateCSS(),y.TokenizationRegistry.setColorMap(D),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} -${this._themeCSS}`,this._styleElements.forEach(v=>v.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}e.StandaloneThemeService=f}),define(ne[797],se([1,0,15,153,107,97,419]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class m extends d.EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:I.ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(b,p){const n=b.get(k.IStandaloneThemeService),o=n.getColorTheme();(0,E.isHighContrast)(o.type)?(n.setTheme(this._originalThemeName||((0,E.isDark)(o.type)?y.VS_DARK_THEME_NAME:y.VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(n.setTheme((0,E.isDark)(o.type)?y.HC_BLACK_THEME_NAME:y.HC_LIGHT_THEME_NAME),this._originalThemeName=o.themeName)}}(0,d.registerEditorAction)(m)}),define(ne[124],se([1,0,5,47,151,359,41,247,2,16,3,29,381,12,58,7,31,50,101,25,30,97,19,32,110,61,542]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownWithDefaultActionViewItem=e.SubmenuEntryActionViewItem=e.TextOnlyMenuEntryActionViewItem=e.MenuEntryActionViewItem=void 0,e.createAndFillInContextMenuActions=w,e.createAndFillInActionBarActions=S,e.createActionViewItem=N;function w(O,F,x,W){let V,q,H;if(Array.isArray(O))H=O,V=F,q=x;else{const j=F;H=O.getActions(j),V=x,q=W}const z=d.ModifierKeyEmitter.getInstance(),U=z.keyStatus.altKey||(b.isWindows||b.isLinux)&&z.keyStatus.shiftKey;L(H,V,U,q?j=>j===q:j=>j==="navigation")}function S(O,F,x,W,V,q){let H,z,U,j,Y;if(Array.isArray(O))Y=O,H=F,z=x,U=W,j=V;else{const K=F;Y=O.getActions(K),H=x,z=W,U=V,j=q}L(Y,H,!1,typeof z=="string"?K=>K===z:z,U,j)}function L(O,F,x,W=H=>H==="navigation",V=()=>!1,q=!1){let H,z;Array.isArray(F)?(H=F,z=F):(H=F.primary,z=F.secondary);const U=new Set;for(const[j,Y]of O){let G;W(j)?(G=H,G.length>0&&q&&G.push(new y.Separator)):(G=z,G.length>0&&G.push(new y.Separator));for(let K of Y){x&&(K=K instanceof n.MenuItemAction&&K.alt?K.alt:K);const R=G.push(K);K instanceof y.SubmenuAction&&U.add({group:j,action:K,index:R-1})}}for(const{group:j,action:Y,index:G}of U){const K=W(j)?H:z,R=Y.actions;V(Y,j,K.length)&&K.splice(G,1,...R)}}let D=class extends I.ActionViewItem{constructor(F,x,W,V,q,H,z,U){super(void 0,F,{icon:!!(F.class||F.item.icon),label:!F.class&&!F.item.icon,draggable:x?.draggable,keybinding:x?.keybinding,hoverDelegate:x?.hoverDelegate}),this._options=x,this._keybindingService=W,this._notificationService=V,this._contextKeyService=q,this._themeService=H,this._contextMenuService=z,this._accessibilityService=U,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new _.MutableDisposable),this._altKey=d.ModifierKeyEmitter.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(F){F.preventDefault(),F.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(x){this._notificationService.error(x)}}render(F){if(super.render(F),F.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let x=!1;const W=()=>{const V=!!this._menuItemAction.alt?.enabled&&(!this._accessibilityService.isMotionReduced()||x)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&x);V!==this._wantsAltCommand&&(this._wantsAltCommand=V,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(W)),this._register((0,d.addDisposableListener)(F,"mouseleave",V=>{x=!1,W()})),this._register((0,d.addDisposableListener)(F,"mouseenter",V=>{x=!0,W()})),W()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){const F=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),x=F&&F.getLabel(),W=this._commandAction.tooltip||this._commandAction.label;let V=x?(0,p.localize)(1483,"{0} ({1})",W,x):W;if(!this._wantsAltCommand&&this._menuItemAction.alt?.enabled){const q=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,H=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),z=H&&H.getLabel(),U=z?(0,p.localize)(1484,"{0} ({1})",q,z):q;V=(0,p.localize)(1485,`{0} -[{1}] {2}`,V,m.UILabelProvider.modifierLabels[b.OS].altKey,U)}return V}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(F){this._itemClassDispose.value=void 0;const{element:x,label:W}=this;if(!x||!W)return;const V=this._commandAction.checked&&(0,o.isICommandActionToggleInfo)(F.toggled)&&F.toggled.icon?F.toggled.icon:F.icon;if(V)if(r.ThemeIcon.isThemeIcon(V)){const q=r.ThemeIcon.asClassNameArray(V);W.classList.add(...q),this._itemClassDispose.value=(0,_.toDisposable)(()=>{W.classList.remove(...q)})}else W.style.backgroundImage=(0,u.isDark)(this._themeService.getColorTheme().type)?(0,d.asCSSUrl)(V.dark):(0,d.asCSSUrl)(V.light),W.classList.add("icon"),this._itemClassDispose.value=(0,_.combinedDisposable)((0,_.toDisposable)(()=>{W.style.backgroundImage="",W.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};e.MenuEntryActionViewItem=D,e.MenuEntryActionViewItem=D=ke([ce(2,g.IKeybindingService),ce(3,c.INotificationService),ce(4,t.IContextKeyService),ce(5,a.IThemeService),ce(6,i.IContextMenuService),ce(7,v.IAccessibilityService)],D);class T extends D{render(F){this.options.label=!0,this.options.icon=!1,super.render(F),F.classList.add("text-only"),F.classList.toggle("use-comma",this._options?.useComma??!1)}updateLabel(){const F=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!F)return super.updateLabel();if(this.label){const x=T._symbolPrintEnter(F);this._options?.conversational?this.label.textContent=(0,p.localize)(1486,"{1} to {0}",this._action.label,x):this.label.textContent=(0,p.localize)(1487,"{0} ({1})",this._action.label,x)}}static _symbolPrintEnter(F){return F.getLabel()?.replace(/\benter\b/gi,"\u23CE").replace(/\bEscape\b/gi,"Esc")}}e.TextOnlyMenuEntryActionViewItem=T;let M=class extends E.DropdownMenuActionViewItem{constructor(F,x,W,V,q){const H={...x,menuAsChild:x?.menuAsChild??!1,classNames:x?.classNames??(r.ThemeIcon.isThemeIcon(F.item.icon)?r.ThemeIcon.asClassName(F.item.icon):void 0),keybindingProvider:x?.keybindingProvider??(z=>W.lookupKeybinding(z.id))};super(F,{getActions:()=>F.actions},V,H),this._keybindingService=W,this._contextMenuService=V,this._themeService=q}render(F){super.render(F),(0,C.assertType)(this.element),F.classList.add("menu-entry");const x=this._action,{icon:W}=x.item;if(W&&!r.ThemeIcon.isThemeIcon(W)){this.element.classList.add("icon");const V=()=>{this.element&&(this.element.style.backgroundImage=(0,u.isDark)(this._themeService.getColorTheme().type)?(0,d.asCSSUrl)(W.dark):(0,d.asCSSUrl)(W.light))};V(),this._register(this._themeService.onDidColorThemeChange(()=>{V()}))}}};e.SubmenuEntryActionViewItem=M,e.SubmenuEntryActionViewItem=M=ke([ce(2,g.IKeybindingService),ce(3,i.IContextMenuService),ce(4,a.IThemeService)],M);let A=class extends I.BaseActionViewItem{constructor(F,x,W,V,q,H,z,U){super(null,F),this._keybindingService=W,this._notificationService=V,this._contextMenuService=q,this._menuService=H,this._instaService=z,this._storageService=U,this._container=null,this._options=x,this._storageKey=`${F.item.submenu.id}_lastActionId`;let j;const Y=x?.persistLastActionId?U.get(this._storageKey,1):void 0;Y&&(j=F.actions.find(K=>Y===K.id)),j||(j=F.actions[0]),this._defaultAction=this._instaService.createInstance(D,j,{keybinding:this._getDefaultActionKeybindingLabel(j)});const G={keybindingProvider:K=>this._keybindingService.lookupKeybinding(K.id),...x,menuAsChild:x?.menuAsChild??!0,classNames:x?.classNames??["codicon","codicon-chevron-down"],actionRunner:x?.actionRunner??new y.ActionRunner};this._dropdown=new E.DropdownMenuActionViewItem(F,F.actions,this._contextMenuService,G),this._register(this._dropdown.actionRunner.onDidRun(K=>{K.action instanceof n.MenuItemAction&&this.update(K.action)}))}update(F){this._options?.persistLastActionId&&this._storageService.store(this._storageKey,F.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(D,F,{keybinding:this._getDefaultActionKeybindingLabel(F)}),this._defaultAction.actionRunner=new class extends y.ActionRunner{async runAction(x,W){await x.run(void 0)}},this._container&&this._defaultAction.render((0,d.prepend)(this._container,(0,d.$)(".action-container")))}_getDefaultActionKeybindingLabel(F){let x;if(this._options?.renderKeybindingWithDefaultActionLabel){const W=this._keybindingService.lookupKeybinding(F.id);W&&(x=`(${W.getLabel()})`)}return x}setActionContext(F){super.setActionContext(F),this._defaultAction.setActionContext(F),this._dropdown.setActionContext(F)}render(F){this._container=F,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const x=(0,d.$)(".action-container");this._defaultAction.render((0,d.append)(this._container,x)),this._register((0,d.addDisposableListener)(x,d.EventType.KEY_DOWN,V=>{const q=new k.StandardKeyboardEvent(V);q.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),q.stopPropagation())}));const W=(0,d.$)(".dropdown-action-container");this._dropdown.render((0,d.append)(this._container,W)),this._register((0,d.addDisposableListener)(W,d.EventType.KEY_DOWN,V=>{const q=new k.StandardKeyboardEvent(V);q.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),this._defaultAction.element?.focus(),q.stopPropagation())}))}focus(F){F?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(F){F?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};e.DropdownWithDefaultActionViewItem=A,e.DropdownWithDefaultActionViewItem=A=ke([ce(2,g.IKeybindingService),ce(3,c.INotificationService),ce(4,i.IContextMenuService),ce(5,n.IMenuService),ce(6,s.IInstantiationService),ce(7,l.IStorageService)],A);let P=class extends I.SelectActionViewItem{constructor(F,x){super(null,F,F.actions.map(W=>({text:W.id===y.Separator.ID?"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500":W.label,isDisabled:!W.enabled})),0,x,h.defaultSelectBoxStyles,{ariaLabel:F.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,F.actions.findIndex(W=>W.checked)))}render(F){super.render(F),F.style.borderColor=(0,f.asCssVariable)(f.selectBorder)}runAction(F,x){const W=this.action.actions[x];W&&this.actionRunner.run(W)}};P=ke([ce(1,i.IContextViewService)],P);function N(O,F,x){return F instanceof n.MenuItemAction?O.createInstance(D,F,x):F instanceof n.SubmenuItemAction?F.item.isSelection?O.createInstance(P,F):F.item.rememberDefaultAction?O.createInstance(A,F,{...x,persistLastActionId:!0}):O.createInstance(M,F,x):void 0}}),define(ne[798],se([1,0,5,87,2,124,29,12,7]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestWidgetStatus=void 0;let b=class{constructor(n,o,t,i,s){this._menuId=o,this._menuService=i,this._contextKeyService=s,this._menuDisposables=new I.DisposableStore,this.element=d.append(n,d.$(".suggest-status-bar"));const g=c=>c instanceof y.MenuItemAction?t.createInstance(E.TextOnlyMenuEntryActionViewItem,c,{useComma:!0}):void 0;this._leftActions=new k.ActionBar(this.element,{actionViewItemProvider:g}),this._rightActions=new k.ActionBar(this.element,{actionViewItemProvider:g}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const n=this._menuService.createMenu(this._menuId,this._contextKeyService),o=()=>{const t=[],i=[];for(const[s,g]of n.getActions())s==="left"?t.push(...g):i.push(...g);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(i)};this._menuDisposables.add(n.onDidChange(()=>o())),this._menuDisposables.add(n)}hide(){this._menuDisposables.clear()}};e.SuggestWidgetStatus=b,e.SuggestWidgetStatus=b=ke([ce(2,_.IInstantiationService),ce(3,y.IMenuService),ce(4,m.IContextKeyService)],b)}),define(ne[218],se([1,0,5,77,643,41,13,298,8,6,53,2,3,124,29,406,24,12,58,31,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MenuWorkbenchToolBar=e.WorkbenchToolBar=void 0;let u=class extends I.ToolBar{constructor(h,v,w,S,L,D,T,M){super(h,L,{getKeyBinding:P=>D.lookupKeybinding(P.id)??void 0,...v,allowContextMenu:!0,skipTelemetry:typeof v?.telemetrySource=="string"}),this._options=v,this._menuService=w,this._contextKeyService=S,this._contextMenuService=L,this._keybindingService=D,this._commandService=T,this._sessionDisposables=this._store.add(new n.DisposableStore);const A=v?.telemetrySource;A&&this._store.add(this.actionBar.onDidRun(P=>M.publicLog2("workbenchActionExecuted",{id:P.action.id,from:A})))}setActions(h,v=[],w){this._sessionDisposables.clear();const S=h.slice(),L=v.slice(),D=[];let T=0;const M=[];let A=!1;if(this._options?.hiddenItemStrategy!==-1)for(let P=0;PF?.id)),N=this._options.overflowBehavior.maxItems-P.size;let O=0;for(let F=0;F=N&&(S[F]=void 0,M[F]=x))}}(0,y.coalesceInPlace)(S),(0,y.coalesceInPlace)(M),super.setActions(S,E.Separator.join(M,L)),(D.length>0||S.length>0)&&this._sessionDisposables.add((0,d.addDisposableListener)(this.getElement(),"contextmenu",P=>{const N=new k.StandardMouseEvent((0,d.getWindow)(this.getElement()),P),O=this.getItemAction(N.target);if(!O)return;N.preventDefault(),N.stopPropagation();const F=[];if(O instanceof i.MenuItemAction&&O.menuKeybinding)F.push(O.menuKeybinding);else if(!(O instanceof i.SubmenuItemAction||O instanceof I.ToggleMenuAction)){const W=!!this._keybindingService.lookupKeybinding(O.id);F.push((0,s.createConfigureKeybindingAction)(this._commandService,this._keybindingService,O.id,void 0,W))}if(D.length>0){let W=!1;if(T===1&&this._options?.hiddenItemStrategy===0){W=!0;for(let V=0;Vthis._menuService.resetHiddenStates(w)}))),x.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>N,getActions:()=>x,menuId:this._options?.contextMenu,menuActionOptions:{renderShortTitle:!0,...this._options?.menuOptions},skipTelemetry:typeof this._options?.telemetrySource=="string",contextKeyService:this._contextKeyService})}))}};e.WorkbenchToolBar=u,e.WorkbenchToolBar=u=ke([ce(2,i.IMenuService),ce(3,c.IContextKeyService),ce(4,l.IContextMenuService),ce(5,a.IKeybindingService),ce(6,g.ICommandService),ce(7,r.ITelemetryService)],u);let C=class extends u{constructor(h,v,w,S,L,D,T,M,A){super(h,{resetMenu:v,...w},S,L,D,T,M,A),this._onDidChangeMenuItems=this._store.add(new b.Emitter),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const P=this._store.add(S.createMenu(v,L,{emitEventsForSubmenuChanges:!0})),N=()=>{const O=[],F=[];(0,t.createAndFillInActionBarActions)(P,w?.menuOptions,{primary:O,secondary:F},w?.toolbarOptions?.primaryGroup,w?.toolbarOptions?.shouldInlineSubmenu,w?.toolbarOptions?.useSeparatorsInPrimaryActions),h.classList.toggle("has-no-actions",O.length===0&&F.length===0),super.setActions(O,F)};this._store.add(P.onDidChange(()=>{N(),this._onDidChangeMenuItems.fire(this)})),N()}setActions(){throw new _.BugIndicatingError("This toolbar is populated from a menu.")}};e.MenuWorkbenchToolBar=C,e.MenuWorkbenchToolBar=C=ke([ce(3,i.IMenuService),ce(4,c.IContextKeyService),ce(5,l.IContextMenuService),ce(6,a.IKeybindingService),ce(7,g.ICommandService),ce(8,r.ITelemetryService)],C)}),define(ne[799],se([1,0,5,2,21,65,363,88,654,365,55,68,4,104,105,581,218,29,12,118,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorGutter=void 0;const u=[],C=35;let f=class extends k.Disposable{constructor(S,L,D,T,M,A,P,N,O){super(),this._diffModel=L,this._editors=D,this._options=T,this._sashLayout=M,this._boundarySashes=A,this._instantiationService=P,this._contextKeyService=N,this._menuService=O,this._menu=this._register(this._menuService.createMenu(c.MenuId.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=(0,I.observableFromEvent)(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(F=>F.length>0),this._showSash=(0,I.derived)(this,F=>this._options.renderSideBySide.read(F)&&this._hasActions.read(F)),this.width=(0,I.derived)(this,F=>this._hasActions.read(F)?C:0),this.elements=(0,d.h)("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:C+"px"}},[]),this._currentDiff=(0,I.derived)(this,F=>{const x=this._diffModel.read(F);if(!x)return;const W=x.diff.read(F)?.mappings,V=this._editors.modifiedCursor.read(F);if(V)return W?.find(q=>q.lineRangeMapping.modified.contains(V.lineNumber))}),this._selectedDiffs=(0,I.derived)(this,F=>{const W=this._diffModel.read(F)?.diff.read(F);if(!W)return u;const V=this._editors.modifiedSelections.read(F);if(V.every(U=>U.isEmpty()))return u;const q=new p.LineRangeSet(V.map(U=>p.LineRange.fromRangeInclusive(U))),z=W.mappings.filter(U=>U.lineRangeMapping.innerChanges&&q.intersects(U.lineRangeMapping.modified)).map(U=>({mapping:U,rangeMappings:U.lineRangeMapping.innerChanges.filter(j=>V.some(Y=>o.Range.areIntersecting(j.modifiedRange,Y)))}));return z.length===0||z.every(U=>U.rangeMappings.length===0)?u:z}),this._register((0,m.prependRemoveOnDispose)(S,this.elements.root)),this._register((0,d.addDisposableListener)(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register((0,m.applyStyle)(this.elements.root,{display:this._hasActions.map(F=>F?"block":"none")})),(0,E.derivedDisposable)(this,F=>this._showSash.read(F)?new y.DiffEditorSash(S,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,(0,E.derivedWithSetter)(this,W=>this._sashLayout.sashLeft.read(W)-C,(W,V)=>this._sashLayout.sashLeft.set(W+C,V)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new _.EditorGutter(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(F,x)=>{const W=this._diffModel.read(x);if(!W)return[];const V=W.diff.read(x);if(!V)return[];const q=this._selectedDiffs.read(x);if(q.length>0){const z=i.DetailedLineRangeMapping.fromRangeMappings(q.flatMap(U=>U.rangeMappings));return[new h(z,!0,c.MenuId.DiffEditorSelectionToolbar,void 0,W.model.original.uri,W.model.modified.uri)]}const H=this._currentDiff.read(x);return V.mappings.map(z=>new h(z.lineRangeMapping.withInnerChangesFromLineRanges(),z.lineRangeMapping===H?.lineRangeMapping,c.MenuId.DiffEditorHunkToolbar,void 0,W.model.original.uri,W.model.modified.uri))},createView:(F,x)=>this._instantiationService.createInstance(v,F,x,this)})),this._register((0,d.addDisposableListener)(this.elements.gutter,d.EventType.MOUSE_WHEEL,F=>{this._editors.modified.getOption(104).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(F)},{passive:!1}))}computeStagedValue(S){const L=S.innerChanges??[],D=new s.TextModelText(this._editors.modifiedModel.get()),T=new s.TextModelText(this._editors.original.getModel());return new t.TextEdit(L.map(P=>P.toTextEdit(D))).apply(T)}layout(S){this.elements.gutter.style.left=S+"px"}};e.DiffEditorGutter=f,e.DiffEditorGutter=f=ke([ce(6,r.IInstantiationService),ce(7,l.IContextKeyService),ce(8,c.IMenuService)],f);class h{constructor(S,L,D,T,M,A){this.mapping=S,this.showAlways=L,this.menuId=D,this.rangeOverride=T,this.originalUri=M,this.modifiedUri=A}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let v=class extends k.Disposable{constructor(S,L,D,T){super(),this._item=S,this._elements=(0,d.h)("div.gutterItem",{style:{height:"20px",width:"34px"}},[(0,d.h)("div.background@background",{},[]),(0,d.h)("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,A=>A.showAlways),this._menuId=this._item.map(this,A=>A.menuId),this._isSmall=(0,I.observableValue)(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const M=this._register(T.createInstance(a.WorkbenchHoverDelegate,"element",!0,{position:{hoverPosition:1}}));this._register((0,m.appendRemoveOnDispose)(L,this._elements.root)),this._register((0,I.autorun)(A=>{const P=this._showAlways.read(A);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",P),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register((0,I.autorunWithStore)((A,P)=>{this._elements.buttons.replaceChildren();const N=P.add(T.createInstance(g.MenuWorkbenchToolBar,this._elements.buttons,this._menuId.read(A),{orientation:1,hoverDelegate:M,toolbarOptions:{primaryGroup:O=>O.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(A)?1:3},hiddenItemStrategy:0,actionRunner:new b.ActionRunnerWithContext(()=>{const O=this._item.get(),F=O.mapping;return{mapping:F,originalWithModifiedChanges:D.computeStagedValue(F),originalUri:O.originalUri,modifiedUri:O.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));P.add(N.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(S,L){this._lastItemRange=S,this._lastViewRange=L;let D=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&S.length<30,void 0),D=this._elements.buttons.clientHeight;const T=S.length/2-D/2,M=D;let A=S.start+T;const P=n.OffsetRange.tryCreate(M,L.endExclusive-M-D),N=n.OffsetRange.tryCreate(S.start+M,S.endExclusive-D-M);N&&P&&N.startthis.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,p.derived)(this,q=>{const H=this.model.read(q)?.primaryGhostText.read(q);if(!this.alwaysShowToolbar.read(q)||!H||H.parts.length===0)return this.sessionPosition=void 0,null;const z=H.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==H.lineNumber&&(this.sessionPosition=void 0);const U=new i.Position(H.lineNumber,Math.min(z,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=U,U}),this._register((0,p.autorunWithStore)((q,H)=>{const z=this.model.read(q);if(!z||!this.alwaysShowToolbar.read(q))return;const U=(0,n.derivedWithStore)((Y,G)=>{const K=G.add(this.instantiationService.createInstance(A,this.editor,!0,this.position,z.selectedInlineCompletionIndex,z.inlineCompletionsCount,z.activeCommands));return x.addContentWidget(K),G.add((0,b.toDisposable)(()=>x.removeContentWidget(K))),G.add((0,p.autorun)(R=>{this.position.read(R)&&z.lastTriggerKind.read(R)!==s.InlineCompletionTriggerKind.Explicit&&z.triggerExplicitly()})),K}),j=(0,p.derivedObservableWithCache)(this,(Y,G)=>!!this.position.read(Y)||!!G);H.add((0,p.autorun)(Y=>{j.read(Y)&&U.read(Y)}))}))}};e.InlineCompletionsHintsWidget=D,e.InlineCompletionsHintsWidget=D=ke([ce(2,h.IInstantiationService)],D);const T=(0,S.registerIcon)("inline-suggestion-hints-next",_.Codicon.chevronRight,(0,c.localize)(1090,"Icon for show next parameter hint.")),M=(0,S.registerIcon)("inline-suggestion-hints-previous",_.Codicon.chevronLeft,(0,c.localize)(1091,"Icon for show previous parameter hint."));let A=class extends b.Disposable{static{L=this}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(x,W,V){const q=new E.Action(x,W,V,!0,()=>this._commandService.executeCommand(x)),H=this.keybindingService.lookupKeybinding(x,this._contextKeyService);let z=W;return H&&(z=(0,c.localize)(1092,"{0} ({1})",W,H.getLabel())),q.tooltip=z,q}constructor(x,W,V,q,H,z,U,j,Y,G,K){super(),this.editor=x,this.withBorder=W,this._position=V,this._currentSuggestionIdx=q,this._suggestionCount=H,this._extraCommands=z,this._commandService=U,this.keybindingService=Y,this._contextKeyService=G,this._menuService=K,this.id=`InlineSuggestionHintsContentWidget${L.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,d.h)("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[(0,d.h)("div@toolBar")]),this.previousAction=this.createCommandAction(g.showPreviousInlineSuggestionActionId,(0,c.localize)(1093,"Previous"),t.ThemeIcon.asClassName(M)),this.availableSuggestionCountAction=new E.Action("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(g.showNextInlineSuggestionActionId,(0,c.localize)(1094,"Next"),t.ThemeIcon.asClassName(T)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(r.MenuId.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new m.RunOnceScheduler(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new m.RunOnceScheduler(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(j.createInstance(O,this.nodes.toolBar,r.MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:R=>R.startsWith("primary")},actionViewItemProvider:(R,J)=>{if(R instanceof r.MenuItemAction)return j.createInstance(N,R,void 0);if(R===this.availableSuggestionCountAction){const ie=new P(void 0,R,{label:!0,icon:!1});return ie.setClass("availableSuggestionCount"),ie}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(R=>{L._dropDownVisible=R})),this._register((0,p.autorun)(R=>{this._position.read(R),this.editor.layoutContentWidget(this)})),this._register((0,p.autorun)(R=>{const J=this._suggestionCount.read(R),ie=this._currentSuggestionIdx.read(R);J!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${ie+1}/${J}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),J!==void 0&&J>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register((0,p.autorun)(R=>{const ie=this._extraCommands.read(R).map(ue=>({class:void 0,id:ue.id,enabled:!0,tooltip:ue.tooltip||"",label:ue.title,run:he=>this._commandService.executeCommand(ue.id)}));for(const[ue,he]of this.inlineCompletionsActionsMenus.getActions())for(const pe of he)pe instanceof r.MenuItemAction&&ie.push(pe);ie.length>0&&ie.unshift(new E.Separator),this.toolBar.setAdditionalSecondaryActions(ie)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineSuggestionHintsContentWidget=A,e.InlineSuggestionHintsContentWidget=A=L=ke([ce(6,u.ICommandService),ce(7,h.IInstantiationService),ce(8,v.IKeybindingService),ce(9,C.IContextKeyService),ce(10,r.IMenuService)],A);class P extends k.ActionViewItem{constructor(){super(...arguments),this._className=void 0}setClass(x){this._className=x}render(x){super.render(x),this._className&&x.classList.add(this._className)}updateTooltip(){}}class N extends l.MenuEntryActionViewItem{updateLabel(){const x=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!x)return super.updateLabel();if(this.label){const W=(0,d.h)("div.keybinding").root;this._register(new I.KeybindingLabel(W,o.OS,{disableTitle:!0,...I.unthemedKeybindingLabelOptions})).set(x),this.label.textContent=this._action.label,this.label.appendChild(W),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let O=class extends a.WorkbenchToolBar{constructor(x,W,V,q,H,z,U,j,Y){super(x,{resetMenu:W,...V},q,H,z,U,j,Y),this.menuId=W,this.options2=V,this.menuService=q,this.contextKeyService=H,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){const x=[],W=[];(0,l.createAndFillInActionBarActions)(this.menu,this.options2?.menuOptions,{primary:x,secondary:W},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),W.push(...this.additionalActions),x.unshift(...this.prependedPrimaryActions),this.setActions(x,W)}setPrependedPrimaryActions(x){(0,y.equals)(this.prependedPrimaryActions,x,(W,V)=>W===V)||(this.prependedPrimaryActions=x,this.updateToolbar())}setAdditionalSecondaryActions(x){(0,y.equals)(this.additionalActions,x,(W,V)=>W===V)||(this.additionalActions=x,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=O,e.CustomizedMenuWorkbenchToolBar=O=ke([ce(3,r.IMenuService),ce(4,C.IContextKeyService),ce(5,f.IContextMenuService),ce(6,v.IKeybindingService),ce(7,u.ICommandService),ce(8,w.ITelemetryService)],O)}),define(ne[800],se([1,0,5,206,41,13,2,21,16,9,124,218,29,24,12,58,7,31,63,519]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.CustomizedMenuWorkbenchToolBar=e.InlineEditHintsContentWidget=e.InlineEditHintsWidget=void 0;let r=class extends y.Disposable{constructor(v,w,S){super(),this.editor=v,this.model=w,this.instantiationService=S,this.alwaysShowToolbar=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,m.derived)(this,L=>{const D=this.model.read(L)?.model.ghostText.read(L);if(!this.alwaysShowToolbar.read(L)||!D||D.parts.length===0)return this.sessionPosition=void 0,null;const T=D.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==D.lineNumber&&(this.sessionPosition=void 0);const M=new b.Position(D.lineNumber,Math.min(T,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=M,M}),this._register((0,m.autorunWithStore)((L,D)=>{if(!this.model.read(L)||!this.alwaysShowToolbar.read(L))return;const M=D.add(this.instantiationService.createInstance(u,this.editor,!0,this.position));v.addContentWidget(M),D.add((0,y.toDisposable)(()=>v.removeContentWidget(M)))}))}};e.InlineEditHintsWidget=r,e.InlineEditHintsWidget=r=ke([ce(2,g.IInstantiationService)],r);let u=class extends y.Disposable{static{a=this}static{this._dropDownVisible=!1}static{this.id=0}constructor(v,w,S,L,D,T){super(),this.editor=v,this.withBorder=w,this._position=S,this._contextKeyService=D,this._menuService=T,this.id=`InlineEditHintsContentWidget${a.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,d.h)("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[(0,d.h)("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(o.MenuId.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(L.createInstance(f,this.nodes.toolBar,this.editor,o.MenuId.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:M=>M.startsWith("primary")},actionViewItemProvider:(M,A)=>{if(M instanceof o.MenuItemAction)return L.createInstance(C,M,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(M=>{a._dropDownVisible=M})),this._register((0,m.autorun)(M=>{this._position.read(M),this.editor.layoutContentWidget(this)})),this._register((0,m.autorun)(M=>{const A=[];for(const[P,N]of this.inlineCompletionsActionsMenus.getActions())for(const O of N)O instanceof o.MenuItemAction&&A.push(O);A.length>0&&A.unshift(new I.Separator),this.toolBar.setAdditionalSecondaryActions(A)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineEditHintsContentWidget=u,e.InlineEditHintsContentWidget=u=a=ke([ce(3,g.IInstantiationService),ce(4,i.IContextKeyService),ce(5,o.IMenuService)],u);class C extends p.MenuEntryActionViewItem{updateLabel(){const v=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!v)return super.updateLabel();if(this.label){const w=(0,d.h)("div.keybinding").root;this._register(new k.KeybindingLabel(w,_.OS,{disableTitle:!0,...k.unthemedKeybindingLabelOptions})).set(v),this.label.textContent=this._action.label,this.label.appendChild(w),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let f=class extends n.WorkbenchToolBar{constructor(v,w,S,L,D,T,M,A,P,N){super(v,{resetMenu:S,...L},D,T,M,A,P,N),this.editor=w,this.menuId=S,this.options2=L,this.menuService=D,this.contextKeyService=T,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){const v=[],w=[];(0,p.createAndFillInActionBarActions)(this.menu,this.options2?.menuOptions,{primary:v,secondary:w},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),w.push(...this.additionalActions),v.unshift(...this.prependedPrimaryActions),this.setActions(v,w)}setAdditionalSecondaryActions(v){(0,E.equals)(this.additionalActions,v,(w,S)=>w===S)||(this.additionalActions=v,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=f,e.CustomizedMenuWorkbenchToolBar=f=ke([ce(4,o.IMenuService),ce(5,i.IContextKeyService),ce(6,s.IContextMenuService),ce(7,c.IKeybindingService),ce(8,t.ICommandService),ce(9,l.ITelemetryService)],f)}),define(ne[801],se([1,0,5,41,6,2,124,29,12,31,50,63,761,58]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuMenuDelegate=e.ContextMenuService=void 0;let i=class extends E.Disposable{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new o.ContextMenuHandler(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(c,l,a,r,u,C){super(),this.telemetryService=c,this.notificationService=l,this.contextViewService=a,this.keybindingService=r,this.menuService=u,this.contextKeyService=C,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new I.Emitter),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new I.Emitter)}configure(c){this.contextMenuHandler.configure(c)}showContextMenu(c){c=s.transform(c,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...c,onHide:l=>{c.onHide?.(l),this._onDidHideContextMenu.fire()}}),d.ModifierKeyEmitter.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};e.ContextMenuService=i,e.ContextMenuService=i=ke([ce(0,n.ITelemetryService),ce(1,p.INotificationService),ce(2,t.IContextViewService),ce(3,b.IKeybindingService),ce(4,m.IMenuService),ce(5,_.IContextKeyService)],i);var s;(function(g){function c(a){return a&&a.menuId instanceof m.MenuId}function l(a,r,u){if(!c(a))return a;const{menuId:C,menuActionOptions:f,contextKeyService:h}=a;return{...a,getActions:()=>{const v=[];if(C){const w=r.getMenuActions(C,h??u,f);(0,y.createAndFillInContextMenuActions)(w,v)}return a.getActions?k.Separator.join(a.getActions(),v):v}}}g.transform=l})(s||(e.ContextMenuMenuDelegate=s={}))}),define(ne[802],se([1,0,5,6,3,7,216,25,2,66,47,16,126,254,206,87,97,22,398,98,142,445,11,176,14,8,61,21,13]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L){"use strict";var D;Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputTree=void 0;const T=d.$;class M{constructor(Y,G,K){this.index=Y,this.hasCheckbox=G,this._hidden=!1,this._init=new a.Lazy(()=>{const R=K.label??"",J=(0,r.parseLabelWithIcons)(R).text.trim(),ie=K.ariaLabel||[R,this.saneDescription,this.saneDetail].map(ue=>(0,r.getCodiconAriaLabel)(ue)).filter(ue=>!!ue).join(", ");return{saneLabel:R,saneSortLabel:J,saneAriaLabel:ie}}),this._saneDescription=K.description,this._saneTooltip=K.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(Y){this._element=Y}get hidden(){return this._hidden}set hidden(Y){this._hidden=Y}get saneDescription(){return this._saneDescription}set saneDescription(Y){this._saneDescription=Y}get saneDetail(){return this._saneDetail}set saneDetail(Y){this._saneDetail=Y}get saneTooltip(){return this._saneTooltip}set saneTooltip(Y){this._saneTooltip=Y}get labelHighlights(){return this._labelHighlights}set labelHighlights(Y){this._labelHighlights=Y}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(Y){this._descriptionHighlights=Y}get detailHighlights(){return this._detailHighlights}set detailHighlights(Y){this._detailHighlights=Y}}class A extends M{constructor(Y,G,K,R,J,ie){super(Y,G,J),this.fireButtonTriggered=K,this._onChecked=R,this.item=J,this._separator=ie,this._checked=!1,this.onChecked=G?k.Event.map(k.Event.filter(this._onChecked.event,ue=>ue.element===this),ue=>ue.checked):k.Event.None,this._saneDetail=J.detail,this._labelHighlights=J.highlights?.label,this._descriptionHighlights=J.highlights?.description,this._detailHighlights=J.highlights?.detail}get separator(){return this._separator}set separator(Y){this._separator=Y}get checked(){return this._checked}set checked(Y){Y!==this._checked&&(this._checked=Y,this._onChecked.fire({element:this,checked:Y}))}get checkboxDisabled(){return!!this.item.disabled}}var P;(function(j){j[j.NONE=0]="NONE",j[j.MOUSE_HOVER=1]="MOUSE_HOVER",j[j.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(P||(P={}));class N extends M{constructor(Y,G,K){super(Y,!1,K),this.fireSeparatorButtonTriggered=G,this.separator=K,this.children=new Array,this.focusInsideSeparator=P.NONE}}class O{getHeight(Y){return Y instanceof N?30:Y.saneDetail?44:22}getTemplateId(Y){return Y instanceof A?W.ID:V.ID}}class F{getWidgetAriaLabel(){return(0,I.localize)(1597,"Quick Input")}getAriaLabel(Y){return Y.separator?.label?`${Y.saneAriaLabel}, ${Y.separator.label}`:Y.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(Y){return Y.hasCheckbox?"checkbox":"option"}isChecked(Y){if(!(!Y.hasCheckbox||!(Y instanceof A)))return{get value(){return Y.checked},onDidChange:G=>Y.onChecked(()=>G())}}}class x{constructor(Y){this.hoverDelegate=Y}renderTemplate(Y){const G=Object.create(null);G.toDisposeElement=new _.DisposableStore,G.toDisposeTemplate=new _.DisposableStore,G.entry=d.append(Y,T(".quick-input-list-entry"));const K=d.append(G.entry,T("label.quick-input-list-label"));G.toDisposeTemplate.add(d.addStandardDisposableListener(K,d.EventType.CLICK,pe=>{G.checkbox.offsetParent||pe.preventDefault()})),G.checkbox=d.append(K,T("input.quick-input-list-checkbox")),G.checkbox.type="checkbox";const R=d.append(K,T(".quick-input-list-rows")),J=d.append(R,T(".quick-input-list-row")),ie=d.append(R,T(".quick-input-list-row"));G.label=new t.IconLabel(J,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),G.toDisposeTemplate.add(G.label),G.icon=d.prepend(G.label.element,T(".quick-input-list-icon"));const ue=d.append(J,T(".quick-input-list-entry-keybinding"));G.keybinding=new i.KeybindingLabel(ue,n.OS),G.toDisposeTemplate.add(G.keybinding);const he=d.append(ie,T(".quick-input-list-label-meta"));return G.detail=new t.IconLabel(he,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),G.toDisposeTemplate.add(G.detail),G.separator=d.append(G.entry,T(".quick-input-list-separator")),G.actionBar=new s.ActionBar(G.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),G.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),G.toDisposeTemplate.add(G.actionBar),G}disposeTemplate(Y){Y.toDisposeElement.dispose(),Y.toDisposeTemplate.dispose()}disposeElement(Y,G,K){K.toDisposeElement.clear(),K.actionBar.clear()}}let W=class extends x{static{D=this}static{this.ID="quickpickitem"}constructor(Y,G){super(Y),this.themeService=G,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return D.ID}renderTemplate(Y){const G=super.renderTemplate(Y);return G.toDisposeTemplate.add(d.addStandardDisposableListener(G.checkbox,d.EventType.CHANGE,K=>{G.element.checked=G.checkbox.checked})),G}renderElement(Y,G,K){const R=Y.element;K.element=R,R.element=K.entry??void 0;const J=R.item;K.checkbox.checked=R.checked,K.toDisposeElement.add(R.onChecked(de=>K.checkbox.checked=de)),K.checkbox.disabled=R.checkboxDisabled;const{labelHighlights:ie,descriptionHighlights:ue,detailHighlights:he}=R;if(J.iconPath){const de=(0,g.isDark)(this.themeService.getColorTheme().type)?J.iconPath.dark:J.iconPath.light??J.iconPath.dark,ge=c.URI.revive(de);K.icon.className="quick-input-list-icon",K.icon.style.backgroundImage=d.asCSSUrl(ge)}else K.icon.style.backgroundImage="",K.icon.className=J.iconClass?`quick-input-list-icon ${J.iconClass}`:"";let pe;!R.saneTooltip&&R.saneDescription&&(pe={markdown:{value:R.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDescription});const ae={matches:ie||[],descriptionTitle:pe,descriptionMatches:ue||[],labelEscapeNewLines:!0};if(ae.extraClasses=J.iconClasses,ae.italic=J.italic,ae.strikethrough=J.strikethrough,K.entry.classList.remove("quick-input-list-separator-as-item"),K.label.setLabel(R.saneLabel,R.saneDescription,ae),K.keybinding.set(J.keybinding),R.saneDetail){let de;R.saneTooltip||(de={markdown:{value:R.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDetail}),K.detail.element.style.display="",K.detail.setLabel(R.saneDetail,void 0,{matches:he,title:de,labelEscapeNewLines:!0})}else K.detail.element.style.display="none";R.separator?.label?(K.separator.textContent=R.separator.label,K.separator.style.display="",this.addItemWithSeparator(R)):K.separator.style.display="none",K.entry.classList.toggle("quick-input-list-separator-border",!!R.separator);const ee=J.buttons;ee&&ee.length?(K.actionBar.push(ee.map((de,ge)=>(0,l.quickInputButtonToAction)(de,`id-${ge}`,()=>R.fireButtonTriggered({button:de,item:R.item}))),{icon:!0,label:!1}),K.entry.classList.add("has-actions")):K.entry.classList.remove("has-actions")}disposeElement(Y,G,K){this.removeItemWithSeparator(Y.element),super.disposeElement(Y,G,K)}isItemWithSeparatorVisible(Y){return this._itemsWithSeparatorsFrequency.has(Y)}addItemWithSeparator(Y){this._itemsWithSeparatorsFrequency.set(Y,(this._itemsWithSeparatorsFrequency.get(Y)||0)+1)}removeItemWithSeparator(Y){const G=this._itemsWithSeparatorsFrequency.get(Y)||0;G>1?this._itemsWithSeparatorsFrequency.set(Y,G-1):this._itemsWithSeparatorsFrequency.delete(Y)}};W=D=ke([ce(1,m.IThemeService)],W);class V extends x{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}static{this.ID="quickpickseparator"}get templateId(){return V.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(Y){return this._visibleSeparatorsFrequency.has(Y)}renderTemplate(Y){const G=super.renderTemplate(Y);return G.checkbox.style.display="none",G}renderElement(Y,G,K){const R=Y.element;K.element=R,R.element=K.entry??void 0,R.element.classList.toggle("focus-inside",!!R.focusInsideSeparator);const J=R.separator,{labelHighlights:ie,descriptionHighlights:ue,detailHighlights:he}=R;K.icon.style.backgroundImage="",K.icon.className="";let pe;!R.saneTooltip&&R.saneDescription&&(pe={markdown:{value:R.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDescription});const ae={matches:ie||[],descriptionTitle:pe,descriptionMatches:ue||[],labelEscapeNewLines:!0};if(K.entry.classList.add("quick-input-list-separator-as-item"),K.label.setLabel(R.saneLabel,R.saneDescription,ae),R.saneDetail){let de;R.saneTooltip||(de={markdown:{value:R.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDetail}),K.detail.element.style.display="",K.detail.setLabel(R.saneDetail,void 0,{matches:he,title:de,labelEscapeNewLines:!0})}else K.detail.element.style.display="none";K.separator.style.display="none",K.entry.classList.add("quick-input-list-separator-border");const ee=J.buttons;ee&&ee.length?(K.actionBar.push(ee.map((de,ge)=>(0,l.quickInputButtonToAction)(de,`id-${ge}`,()=>R.fireSeparatorButtonTriggered({button:de,separator:R.separator}))),{icon:!0,label:!1}),K.entry.classList.add("has-actions")):K.entry.classList.remove("has-actions"),this.addSeparator(R)}disposeElement(Y,G,K){this.removeSeparator(Y.element),this.isSeparatorVisible(Y.element)||Y.element.element?.classList.remove("focus-inside"),super.disposeElement(Y,G,K)}addSeparator(Y){this._visibleSeparatorsFrequency.set(Y,(this._visibleSeparatorsFrequency.get(Y)||0)+1)}removeSeparator(Y){const G=this._visibleSeparatorsFrequency.get(Y)||0;G>1?this._visibleSeparatorsFrequency.set(Y,G-1):this._visibleSeparatorsFrequency.delete(Y)}}let q=class extends _.Disposable{constructor(Y,G,K,R,J,ie){super(),this.parent=Y,this.hoverDelegate=G,this.linkOpenerDelegate=K,this.accessibilityService=ie,this._onKeyDown=new k.Emitter,this._onLeave=new k.Emitter,this.onLeave=this._onLeave.event,this._visibleCountObservable=(0,S.observableValue)("VisibleCount",0),this.onChangedVisibleCount=k.Event.fromObservable(this._visibleCountObservable,this._store),this._allVisibleCheckedObservable=(0,S.observableValue)("AllVisibleChecked",!1),this.onChangedAllVisibleChecked=k.Event.fromObservable(this._allVisibleCheckedObservable,this._store),this._checkedCountObservable=(0,S.observableValue)("CheckedCount",0),this.onChangedCheckedCount=k.Event.fromObservable(this._checkedCountObservable,this._store),this._checkedElementsObservable=(0,S.observableValueOpts)({equalsFn:L.equals},new Array),this.onChangedCheckedElements=k.Event.fromObservable(this._checkedElementsObservable,this._store),this._onButtonTriggered=new k.Emitter,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new k.Emitter,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new k.Emitter,this._elementCheckedEventBufferer=new k.EventBufferer,this._hasCheckboxes=!1,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new _.DisposableStore),this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=d.append(this.parent,T(".quick-input-list")),this._separatorRenderer=new V(G),this._itemRenderer=J.createInstance(W,G),this._tree=this._register(J.createInstance(y.WorkbenchObjectTree,"QuickInput",this._container,new O,[this._itemRenderer,this._separatorRenderer],{filter:{filter(ue){return ue.hidden?0:ue instanceof N?2:1}},sorter:{compare:(ue,he)=>{if(!this.sortByLabel||!this._lastQueryString)return 0;const pe=this._lastQueryString.toLowerCase();return U(ue,he,pe)}},accessibilityProvider:new F,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:f.RenderIndentGuides.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=R,this._registerListeners()}get onDidChangeFocus(){return k.Event.map(this._tree.onDidChangeFocus,Y=>Y.elements.filter(G=>G instanceof A).map(G=>G.item),this._store)}get onDidChangeSelection(){return k.Event.map(this._tree.onDidChangeSelection,Y=>({items:Y.elements.filter(G=>G instanceof A).map(G=>G.item),event:Y.browserEvent}),this._store)}get displayed(){return this._container.style.display!=="none"}set displayed(Y){this._container.style.display=Y?"":"none"}get scrollTop(){return this._tree.scrollTop}set scrollTop(Y){this._tree.scrollTop=Y}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(Y){this._tree.ariaLabel=Y??""}set enabled(Y){this._tree.getHTMLElement().style.pointerEvents=Y?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(Y){this._matchOnDescription=Y}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(Y){this._matchOnDetail=Y}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(Y){this._matchOnLabel=Y}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(Y){this._matchOnLabelMode=Y}get sortByLabel(){return this._sortByLabel}set sortByLabel(Y){this._sortByLabel=Y}get shouldLoop(){return this._shouldLoop}set shouldLoop(Y){this._shouldLoop=Y}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnTreeModelChanged(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(Y=>{const G=new p.StandardKeyboardEvent(Y);switch(G.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(G)}))}_registerOnContainerClick(){this._register(d.addDisposableListener(this._container,d.EventType.CLICK,Y=>{(Y.x||Y.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(d.addDisposableListener(this._container,d.EventType.AUXCLICK,Y=>{Y.button===1&&this._onLeave.fire()}))}_registerOnTreeModelChanged(){this._register(this._tree.onDidChangeModel(()=>{const Y=this._itemElements.filter(G=>!G.hidden).length;this._visibleCountObservable.set(Y,void 0),this._hasCheckboxes&&this._updateCheckedObservables()}))}_registerOnElementChecked(){this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event,(Y,G)=>G)(Y=>this._updateCheckedObservables()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(Y=>{Y.element&&(Y.browserEvent.preventDefault(),this._tree.setSelection([Y.element]))}))}_registerHoverListeners(){const Y=this._register(new h.ThrottledDelayer(this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async G=>{if(d.isHTMLAnchorElement(G.browserEvent.target)){Y.cancel();return}if(!(!d.isHTMLAnchorElement(G.browserEvent.relatedTarget)&&d.isAncestor(G.browserEvent.relatedTarget,G.element?.element)))try{await Y.trigger(async()=>{G.element instanceof A&&this.showHover(G.element)})}catch(K){if(!(0,v.isCancellationError)(K))throw K}})),this._register(this._tree.onMouseOut(G=>{d.isAncestor(G.browserEvent.relatedTarget,G.element?.element)||Y.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(Y=>{const G=Y.elements[0]?this._tree.getParentElement(Y.elements[0]):null;for(const K of this._separatorRenderer.visibleSeparators){const R=K===G;!!(K.focusInsideSeparator&P.ACTIVE_ITEM)!==R&&(R?K.focusInsideSeparator|=P.ACTIVE_ITEM:K.focusInsideSeparator&=~P.ACTIVE_ITEM,this._tree.rerender(K))}})),this._register(this._tree.onMouseOver(Y=>{const G=Y.element?this._tree.getParentElement(Y.element):null;for(const K of this._separatorRenderer.visibleSeparators){if(K!==G)continue;!!(K.focusInsideSeparator&P.MOUSE_HOVER)||(K.focusInsideSeparator|=P.MOUSE_HOVER,this._tree.rerender(K))}})),this._register(this._tree.onMouseOut(Y=>{const G=Y.element?this._tree.getParentElement(Y.element):null;for(const K of this._separatorRenderer.visibleSeparators){if(K!==G)continue;!!(K.focusInsideSeparator&P.MOUSE_HOVER)&&(K.focusInsideSeparator&=~P.MOUSE_HOVER,this._tree.rerender(K))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(Y=>{const G=Y.elements.filter(K=>K instanceof A);G.length!==Y.elements.length&&(Y.elements.length===1&&Y.elements[0]instanceof N&&(this._tree.setFocus([Y.elements[0].children[0]]),this._tree.reveal(Y.elements[0],0)),this._tree.setSelection(G))}))}setAllVisibleChecked(Y){this._elementCheckedEventBufferer.bufferEvents(()=>{this._itemElements.forEach(G=>{!G.hidden&&!G.checkboxDisabled&&(G.checked=Y)})})}setElements(Y){this._elementDisposable.clear(),this._lastQueryString=void 0,this._inputElements=Y,this._hasCheckboxes=this.parent.classList.contains("show-checkboxes");let G;this._itemElements=new Array,this._elementTree=Y.reduce((K,R,J)=>{let ie;if(R.type==="separator"){if(!R.buttons)return K;G=new N(J,ue=>this._onSeparatorButtonTriggered.fire(ue),R),ie=G}else{const ue=J>0?Y[J-1]:void 0;let he;ue&&ue.type==="separator"&&!ue.buttons&&(G=void 0,he=ue);const pe=new A(J,this._hasCheckboxes,ae=>this._onButtonTriggered.fire(ae),this._elementChecked,R,he);if(this._itemElements.push(pe),G)return G.children.push(pe),K;ie=pe}return K.push(ie),K},new Array),this._setElementsToTree(this._elementTree),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const K=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),R=K?.parentNode;if(K&&R){const J=K.nextSibling;K.remove(),R.insertBefore(K,J)}},0)}setFocusedElements(Y){const G=Y.map(K=>this._itemElements.find(R=>R.item===K)).filter(K=>!!K).filter(K=>!K.hidden);if(this._tree.setFocus(G),Y.length>0){const K=this._tree.getFocus()[0];K&&this._tree.reveal(K)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(Y){const G=Y.map(K=>this._itemElements.find(R=>R.item===K)).filter(K=>!!K);this._tree.setSelection(G)}getCheckedElements(){return this._itemElements.filter(Y=>Y.checked).map(Y=>Y.item)}setCheckedElements(Y){this._elementCheckedEventBufferer.bufferEvents(()=>{const G=new Set;for(const K of Y)G.add(K);for(const K of this._itemElements)K.checked=G.has(K.item)})}focus(Y){if(this._itemElements.length)switch(Y===b.QuickPickFocus.Second&&this._itemElements.length<2&&(Y=b.QuickPickFocus.First),Y){case b.QuickPickFocus.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,G=>G.element instanceof A);break;case b.QuickPickFocus.Second:{this._tree.scrollTop=0;let G=!1;this._tree.focusFirst(void 0,K=>K.element instanceof A?G?!0:(G=!G,!1):!1);break}case b.QuickPickFocus.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,G=>G.element instanceof A);break;case b.QuickPickFocus.Next:{const G=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,R=>R.element instanceof A?(this._tree.reveal(R.element),!0):!1);const K=this._tree.getFocus();G.length&&G[0]===K[0]&&G[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}case b.QuickPickFocus.Previous:{const G=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,R=>{if(!(R.element instanceof A))return!1;const J=this._tree.getParentElement(R.element);return J===null||J.children[0]!==R.element?this._tree.reveal(R.element):this._tree.reveal(J),!0});const K=this._tree.getFocus();G.length&&G[0]===K[0]&&G[0]===this._itemElements[0]&&this._onLeave.fire();break}case b.QuickPickFocus.NextPage:this._tree.focusNextPage(void 0,G=>G.element instanceof A?(this._tree.reveal(G.element),!0):!1);break;case b.QuickPickFocus.PreviousPage:this._tree.focusPreviousPage(void 0,G=>{if(!(G.element instanceof A))return!1;const K=this._tree.getParentElement(G.element);return K===null||K.children[0]!==G.element?this._tree.reveal(G.element):this._tree.reveal(K),!0});break;case b.QuickPickFocus.NextSeparator:{let G=!1;const K=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,J=>{if(G)return!0;if(J.element instanceof N)G=!0,this._separatorRenderer.isSeparatorVisible(J.element)?this._tree.reveal(J.element.children[0]):this._tree.reveal(J.element,0);else if(J.element instanceof A){if(J.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(J.element)?this._tree.reveal(J.element):this._tree.reveal(J.element,0),!0;if(J.element===this._elementTree[0])return this._tree.reveal(J.element,0),!0}return!1});const R=this._tree.getFocus()[0];K===R&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,J=>J.element instanceof A));break}case b.QuickPickFocus.PreviousSeparator:{let G,K=!!this._tree.getFocus()[0]?.separator;this._tree.focusPrevious(void 0,!0,void 0,R=>{if(R.element instanceof N)K?G||(this._separatorRenderer.isSeparatorVisible(R.element)?this._tree.reveal(R.element):this._tree.reveal(R.element,0),G=R.element.children[0]):K=!0;else if(R.element instanceof A&&!G){if(R.element.separator)this._itemRenderer.isItemWithSeparatorVisible(R.element)?this._tree.reveal(R.element):this._tree.reveal(R.element,0),G=R.element;else if(R.element===this._elementTree[0])return this._tree.reveal(R.element,0),!0}return!1}),G&&this._tree.setFocus([G]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(Y){this._tree.getHTMLElement().style.maxHeight=Y?`${Math.floor(Y/44)*44+6}px`:"",this._tree.layout()}filter(Y){if(this._lastQueryString=Y,!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const G=Y;if(Y=Y.trim(),!Y||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(K=>{K.labelHighlights=void 0,K.descriptionHighlights=void 0,K.detailHighlights=void 0,K.hidden=!1;const R=K.index&&this._inputElements[K.index-1];K.item&&(K.separator=R&&R.type==="separator"&&!R.buttons?R:void 0)});else{let K;this._itemElements.forEach(R=>{let J;this.matchOnLabelMode==="fuzzy"?J=this.matchOnLabel?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneLabel))??void 0:void 0:J=this.matchOnLabel?H(G,(0,r.parseLabelWithIcons)(R.saneLabel))??void 0:void 0;const ie=this.matchOnDescription?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneDescription||""))??void 0:void 0,ue=this.matchOnDetail?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneDetail||""))??void 0:void 0;if(J||ie||ue?(R.labelHighlights=J,R.descriptionHighlights=ie,R.detailHighlights=ue,R.hidden=!1):(R.labelHighlights=void 0,R.descriptionHighlights=void 0,R.detailHighlights=void 0,R.hidden=R.item?!R.item.alwaysShow:!0),R.item?R.separator=void 0:R.separator&&(R.hidden=!0),!this.sortByLabel){const he=R.index&&this._inputElements[R.index-1]||void 0;he?.type==="separator"&&!he.buttons&&(K=he),K&&!R.hidden&&(R.separator=K,K=void 0)}})}return this._setElementsToTree(this._sortByLabel&&Y?this._itemElements:this._elementTree),this._tree.layout(),!0}toggleCheckbox(){this._elementCheckedEventBufferer.bufferEvents(()=>{const Y=this._tree.getFocus().filter(K=>K instanceof A),G=this._allVisibleChecked(Y);for(const K of Y)K.checkboxDisabled||(K.checked=!G)})}style(Y){this._tree.style(Y)}toggleHover(){const Y=this._tree.getFocus()[0];if(!Y?.saneTooltip||!(Y instanceof A))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(Y);const G=new _.DisposableStore;G.add(this._tree.onDidChangeFocus(K=>{K.elements[0]instanceof A&&this.showHover(K.elements[0])})),this._lastHover&&G.add(this._lastHover),this._elementDisposable.add(G)}_setElementsToTree(Y){const G=new Array;for(const K of Y)K instanceof N?G.push({element:K,collapsible:!1,collapsed:!1,children:K.children.map(R=>({element:R,collapsible:!1,collapsed:!1}))}):G.push({element:K,collapsible:!1,collapsed:!1});this._tree.setChildren(null,G)}_allVisibleChecked(Y,G=!0){for(let K=0,R=Y.length;K{this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements,!1),Y);const G=this._itemElements.filter(K=>K.checked).length;this._checkedCountObservable.set(G,Y),this._checkedElementsObservable.set(this.getCheckedElements(),Y)})}showHover(Y){this._lastHover&&!this._lastHover.isDisposed&&(this.hoverDelegate.onDidHideHover?.(),this._lastHover?.dispose()),!(!Y.element||!Y.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:Y.saneTooltip,target:Y.element,linkHandler:G=>{this.linkOpenerDelegate(G)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};e.QuickInputTree=q,ke([o.memoize],q.prototype,"onDidChangeFocus",null),ke([o.memoize],q.prototype,"onDidChangeSelection",null),e.QuickInputTree=q=ke([ce(4,E.IInstantiationService),ce(5,w.IAccessibilityService)],q);function H(j,Y){const{text:G,iconOffsets:K}=Y;if(!K||K.length===0)return z(j,G);const R=(0,C.ltrim)(G," "),J=G.length-R.length,ie=z(j,R);if(ie)for(const ue of ie){const he=K[ue.start+J]+J;ue.start+=he,ue.end+=he}return ie}function z(j,Y){const G=Y.toLowerCase().indexOf(j.toLowerCase());return G!==-1?[{start:G,end:G+j.length}]:null}function U(j,Y,G){const K=j.labelHighlights||[],R=Y.labelHighlights||[];return K.length&&!R.length?-1:!K.length&&R.length?1:K.length===0&&R.length===0?0:(0,u.compareAnything)(j.saneSortLabel,Y.saneSortLabel,G)}}),define(ne[803],se([1,0,5,87,258,354,633,18,6,2,111,3,66,704,272,119,52,7,802,12,719]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";var r;Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputController=void 0;const u=d.$;let C=class extends b.Disposable{static{r=this}static{this.MAX_WIDTH=600}get currentQuickInput(){return this.controller??void 0}get container(){return this._container}constructor(h,v,w,S){super(),this.options=h,this.layoutService=v,this.instantiationService=w,this.contextKeyService=S,this.enabled=!0,this.onDidAcceptEmitter=this._register(new _.Emitter),this.onDidCustomEmitter=this._register(new _.Emitter),this.onDidTriggerButtonEmitter=this._register(new _.Emitter),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new _.Emitter),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new _.Emitter),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=i.InQuickInputContextKey.bindTo(this.contextKeyService),this.quickInputTypeContext=i.QuickInputTypeContextKey.bindTo(this.contextKeyService),this.endOfQuickInputBoxContext=i.EndOfQuickInputBoxContextKey.bindTo(this.contextKeyService),this.idPrefix=h.idPrefix,this._container=h.container,this.styles=h.styles,this._register(_.Event.runAndSubscribe(d.onDidRegisterWindow,({window:L,disposables:D})=>this.registerKeyModsListeners(L,D),{window:g.mainWindow,disposables:this._store})),this._register(d.onWillUnregisterWindow(L=>{this.ui&&d.getWindow(this.ui.container)===L&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(h,v){const w=S=>{this.keyMods.ctrlCmd=S.ctrlKey||S.metaKey,this.keyMods.alt=S.altKey};for(const S of[d.EventType.KEY_DOWN,d.EventType.KEY_UP,d.EventType.MOUSE_DOWN])v.add(d.addDisposableListener(h,S,w,!0))}getUI(h){if(this.ui)return h&&d.getWindow(this._container)!==d.getWindow(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const v=d.append(this._container,u(".quick-input-widget.show-file-icons"));v.tabIndex=-1,v.style.display="none";const w=d.createStyleSheet(v),S=d.append(v,u(".quick-input-titlebar")),L=this._register(new k.ActionBar(S,{hoverDelegate:this.options.hoverDelegate}));L.domNode.classList.add("quick-input-left-action-bar");const D=d.append(S,u(".quick-input-title")),T=this._register(new k.ActionBar(S,{hoverDelegate:this.options.hoverDelegate}));T.domNode.classList.add("quick-input-right-action-bar");const M=d.append(v,u(".quick-input-header")),A=d.append(M,u("input.quick-input-check-all"));A.type="checkbox",A.setAttribute("aria-label",(0,n.localize)(1590,"Toggle all checkboxes")),this._register(d.addStandardDisposableListener(A,d.EventType.CHANGE,pe=>{const ae=A.checked;ue.setAllVisibleChecked(ae)})),this._register(d.addDisposableListener(A,d.EventType.CLICK,pe=>{(pe.x||pe.y)&&F.setFocus()}));const P=d.append(M,u(".quick-input-description")),N=d.append(M,u(".quick-input-and-message")),O=d.append(N,u(".quick-input-filter")),F=this._register(new t.QuickInputBox(O,this.styles.inputBox,this.styles.toggle));F.setAttribute("aria-describedby",`${this.idPrefix}message`);const x=d.append(O,u(".quick-input-visible-count"));x.setAttribute("aria-live","polite"),x.setAttribute("aria-atomic","true");const W=new E.CountBadge(x,{countFormat:(0,n.localize)(1591,"{0} Results")},this.styles.countBadge),V=d.append(O,u(".quick-input-count"));V.setAttribute("aria-live","polite");const q=new E.CountBadge(V,{countFormat:(0,n.localize)(1592,"{0} Selected")},this.styles.countBadge),H=this._register(new k.ActionBar(M,{hoverDelegate:this.options.hoverDelegate}));H.domNode.classList.add("quick-input-inline-action-bar");const z=d.append(M,u(".quick-input-action")),U=this._register(new I.Button(z,this.styles.button));U.label=(0,n.localize)(1593,"OK"),this._register(U.onDidClick(pe=>{this.onDidAcceptEmitter.fire()}));const j=d.append(M,u(".quick-input-action")),Y=this._register(new I.Button(j,{...this.styles.button,supportIcons:!0}));Y.label=(0,n.localize)(1594,"Custom"),this._register(Y.onDidClick(pe=>{this.onDidCustomEmitter.fire()}));const G=d.append(N,u(`#${this.idPrefix}message.quick-input-message`)),K=this._register(new y.ProgressBar(v,this.styles.progressBar));K.getContainer().classList.add("quick-input-progress");const R=d.append(v,u(".quick-input-html-widget"));R.tabIndex=-1;const J=d.append(v,u(".quick-input-description")),ie=this.idPrefix+"list",ue=this._register(this.instantiationService.createInstance(l.QuickInputTree,v,this.options.hoverDelegate,this.options.linkOpenerDelegate,ie));F.setAttribute("aria-controls",ie),this._register(ue.onDidChangeFocus(()=>{F.setAttribute("aria-activedescendant",ue.getActiveDescendant()??"")})),this._register(ue.onChangedAllVisibleChecked(pe=>{A.checked=pe})),this._register(ue.onChangedVisibleCount(pe=>{W.setCount(pe)})),this._register(ue.onChangedCheckedCount(pe=>{q.setCount(pe)})),this._register(ue.onLeave(()=>{setTimeout(()=>{this.controller&&(F.setFocus(),this.controller instanceof i.QuickPick&&this.controller.canSelectMany&&ue.clearFocus())},0)}));const he=d.trackFocus(v);return this._register(he),this._register(d.addDisposableListener(v,d.EventType.FOCUS,pe=>{const ae=this.getUI();if(d.isAncestor(pe.relatedTarget,ae.inputContainer)){const ee=ae.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ee&&this.endOfQuickInputBoxContext.set(ee)}d.isAncestor(pe.relatedTarget,ae.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=d.isHTMLElement(pe.relatedTarget)?pe.relatedTarget:void 0)},!0)),this._register(he.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(o.QuickInputHideReason.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(F.onKeyDown(pe=>{const ae=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ae&&this.endOfQuickInputBoxContext.set(ae)})),this._register(d.addDisposableListener(v,d.EventType.FOCUS,pe=>{F.setFocus()})),this._register(d.addStandardDisposableListener(v,d.EventType.KEY_DOWN,pe=>{if(!d.isAncestor(pe.target,R))switch(pe.keyCode){case 3:d.EventHelper.stop(pe,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:d.EventHelper.stop(pe,!0),this.hide(o.QuickInputHideReason.Gesture);break;case 2:if(!pe.altKey&&!pe.ctrlKey&&!pe.metaKey){const ae=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(v.classList.contains("show-checkboxes")?ae.push("input"):ae.push("input[type=text]"),this.getUI().list.displayed&&ae.push(".monaco-list"),this.getUI().message&&ae.push(".quick-input-message a"),this.getUI().widget){if(d.isAncestor(pe.target,this.getUI().widget))break;ae.push(".quick-input-html-widget")}const ee=v.querySelectorAll(ae.join(", "));pe.shiftKey&&pe.target===ee[0]?(d.EventHelper.stop(pe,!0),ue.clearFocus()):!pe.shiftKey&&d.isAncestor(pe.target,ee[ee.length-1])&&(d.EventHelper.stop(pe,!0),ee[0].focus())}break;case 10:pe.ctrlKey&&(d.EventHelper.stop(pe,!0),this.getUI().list.toggleHover());break}})),this.ui={container:v,styleSheet:w,leftActionBar:L,titleBar:S,title:D,description1:J,description2:P,widget:R,rightActionBar:T,inlineActionBar:H,checkAll:A,inputContainer:N,filterContainer:O,inputBox:F,visibleCountContainer:x,visibleCount:W,countContainer:V,count:q,okContainer:z,ok:U,message:G,customButtonContainer:j,customButton:Y,list:ue,progressBar:K,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:pe=>this.show(pe),hide:()=>this.hide(),setVisibilities:pe=>this.setVisibilities(pe),setEnabled:pe=>this.setEnabled(pe),setContextKey:pe=>this.options.setContextKey(pe),linkOpenerDelegate:pe=>this.options.linkOpenerDelegate(pe)},this.updateStyles(),this.ui}reparentUI(h){this.ui&&(this._container=h,d.append(this._container,this.ui.container))}pick(h,v={},w=m.CancellationToken.None){return new Promise((S,L)=>{let D=P=>{D=S,v.onKeyMods?.(T.keyMods),S(P)};if(w.isCancellationRequested){D(void 0);return}const T=this.createQuickPick({useSeparators:!0});let M;const A=[T,T.onDidAccept(()=>{if(T.canSelectMany)D(T.selectedItems.slice()),T.hide();else{const P=T.activeItems[0];P&&(D(P),T.hide())}}),T.onDidChangeActive(P=>{const N=P[0];N&&v.onDidFocus&&v.onDidFocus(N)}),T.onDidChangeSelection(P=>{if(!T.canSelectMany){const N=P[0];N&&(D(N),T.hide())}}),T.onDidTriggerItemButton(P=>v.onDidTriggerItemButton&&v.onDidTriggerItemButton({...P,removeItem:()=>{const N=T.items.indexOf(P.item);if(N!==-1){const O=T.items.slice(),F=O.splice(N,1),x=T.activeItems.filter(V=>V!==F[0]),W=T.keepScrollPosition;T.keepScrollPosition=!0,T.items=O,x&&(T.activeItems=x),T.keepScrollPosition=W}}})),T.onDidTriggerSeparatorButton(P=>v.onDidTriggerSeparatorButton?.(P)),T.onDidChangeValue(P=>{M&&!P&&(T.activeItems.length!==1||T.activeItems[0]!==M)&&(T.activeItems=[M])}),w.onCancellationRequested(()=>{T.hide()}),T.onDidHide(()=>{(0,b.dispose)(A),D(void 0)})];T.title=v.title,v.value&&(T.value=v.value),T.canSelectMany=!!v.canPickMany,T.placeholder=v.placeHolder,T.ignoreFocusOut=!!v.ignoreFocusLost,T.matchOnDescription=!!v.matchOnDescription,T.matchOnDetail=!!v.matchOnDetail,T.matchOnLabel=v.matchOnLabel===void 0||v.matchOnLabel,T.quickNavigate=v.quickNavigate,T.hideInput=!!v.hideInput,T.contextKey=v.contextKey,T.busy=!0,Promise.all([h,v.activeItem]).then(([P,N])=>{M=N,T.busy=!1,T.items=P,T.canSelectMany&&(T.selectedItems=P.filter(O=>O.type!=="separator"&&O.picked)),M&&(T.activeItems=[M])}),T.show(),Promise.resolve(h).then(void 0,P=>{L(P),T.hide()})})}createQuickPick(h={useSeparators:!1}){const v=this.getUI(!0);return new i.QuickPick(v)}createInputBox(){const h=this.getUI(!0);return new i.InputBox(h)}show(h){const v=this.getUI(!0);this.onShowEmitter.fire();const w=this.controller;this.controller=h,w?.didHide(),this.setEnabled(!0),v.leftActionBar.clear(),v.title.textContent="",v.description1.textContent="",v.description2.textContent="",d.reset(v.widget),v.rightActionBar.clear(),v.inlineActionBar.clear(),v.checkAll.checked=!1,v.inputBox.placeholder="",v.inputBox.password=!1,v.inputBox.showDecoration(p.default.Ignore),v.visibleCount.setCount(0),v.count.setCount(0),d.reset(v.message),v.progressBar.stop(),v.list.setElements([]),v.list.matchOnDescription=!1,v.list.matchOnDetail=!1,v.list.matchOnLabel=!0,v.list.sortByLabel=!0,v.ignoreFocusOut=!1,v.inputBox.toggles=void 0;const S=this.options.backKeybindingLabel();i.backButton.tooltip=S?(0,n.localize)(1595,"Back ({0})",S):(0,n.localize)(1596,"Back"),v.container.style.display="",this.updateLayout(),v.inputBox.setFocus(),this.quickInputTypeContext.set(h.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(h){const v=this.getUI();v.title.style.display=h.title?"":"none",v.description1.style.display=h.description&&(h.inputBox||h.checkAll)?"":"none",v.description2.style.display=h.description&&!(h.inputBox||h.checkAll)?"":"none",v.checkAll.style.display=h.checkAll?"":"none",v.inputContainer.style.display=h.inputBox?"":"none",v.filterContainer.style.display=h.inputBox?"":"none",v.visibleCountContainer.style.display=h.visibleCount?"":"none",v.countContainer.style.display=h.count?"":"none",v.okContainer.style.display=h.ok?"":"none",v.customButtonContainer.style.display=h.customButton?"":"none",v.message.style.display=h.message?"":"none",v.progressBar.getContainer().style.display=h.progressBar?"":"none",v.list.displayed=!!h.list,v.container.classList.toggle("show-checkboxes",!!h.checkBox),v.container.classList.toggle("hidden-input",!h.inputBox&&!h.description),this.updateLayout()}setEnabled(h){if(h!==this.enabled){this.enabled=h;for(const v of this.getUI().leftActionBar.viewItems)v.action.enabled=h;for(const v of this.getUI().rightActionBar.viewItems)v.action.enabled=h;this.getUI().checkAll.disabled=!h,this.getUI().inputBox.enabled=h,this.getUI().ok.enabled=h,this.getUI().list.enabled=h}}hide(h){const v=this.controller;if(!v)return;v.willHide(h);const w=this.ui?.container,S=w&&!d.isAncestorOfActiveElement(w);if(this.controller=null,this.onHideEmitter.fire(),w&&(w.style.display="none"),!S){let L=this.previousFocusElement;for(;L&&!L.offsetParent;)L=L.parentElement??void 0;L?.offsetParent?(L.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}v.didHide(h)}layout(h,v){this.dimension=h,this.titleBarOffset=v,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const h=this.ui.container.style,v=Math.min(this.dimension.width*.62,r.MAX_WIDTH);h.width=v+"px",h.marginLeft="-"+v/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(h){this.styles=h,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:h,quickInputBackground:v,quickInputForeground:w,widgetBorder:S,widgetShadow:L}=this.styles.widget;this.ui.titleBar.style.backgroundColor=h??"",this.ui.container.style.backgroundColor=v??"",this.ui.container.style.color=w??"",this.ui.container.style.border=S?`1px solid ${S}`:"",this.ui.container.style.boxShadow=L?`0 0 8px 2px ${L}`:"",this.ui.list.style(this.styles.list);const D=[];this.styles.pickerGroup.pickerGroupBorder&&D.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&D.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&D.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(D.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&D.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&D.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&D.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&D.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&D.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),D.push("}"));const T=D.join(` -`);T!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=T)}}};e.QuickInputController=C,e.QuickInputController=C=r=ke([ce(1,s.ILayoutService),ce(2,c.IInstantiationService),ce(3,a.IContextKeyService)],C)}),define(ne[804],se([1,0,18,6,12,7,119,59,722,110,32,25,272,803,28,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputService=void 0;let g=class extends n.Themable{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(_.QuickAccessController))),this._quickAccess}constructor(l,a,r,u,C){super(r),this.instantiationService=l,this.contextKeyService=a,this.layoutService=u,this.configurationService=C,this._onShow=this._register(new k.Emitter),this._onHide=this._register(new k.Emitter),this.contexts=new Map}createController(l=this.layoutService,a){const r={idPrefix:"quickInput_",container:l.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:C=>this.setContextKey(C),linkOpenerDelegate:C=>{this.instantiationService.invokeFunction(f=>{f.get(m.IOpenerService).open(C,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>l.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(o.QuickInputHoverDelegate))},u=this._register(this.instantiationService.createInstance(t.QuickInputController,{...r,...a}));return u.layout(l.activeContainerDimension,l.activeContainerOffset.quickPickTop),this._register(l.onDidLayoutActiveContainer(C=>{(0,s.getWindow)(l.activeContainer)===(0,s.getWindow)(u.container)&&u.layout(C,l.activeContainerOffset.quickPickTop)})),this._register(l.onDidChangeActiveContainer(()=>{u.isVisible()||u.layout(l.activeContainerDimension,l.activeContainerOffset.quickPickTop)})),this._register(u.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(u.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),u}setContextKey(l){let a;l&&(a=this.contexts.get(l),a||(a=new I.RawContextKey(l,!1).bindTo(this.contextKeyService),this.contexts.set(l,a))),!(a&&a.get())&&(this.resetContextKeys(),a?.set(!0))}resetContextKeys(){this.contexts.forEach(l=>{l.get()&&l.reset()})}pick(l,a,r=d.CancellationToken.None){return this.controller.pick(l,a,r)}createQuickPick(l={useSeparators:!1}){return this.controller.createQuickPick(l)}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:(0,p.asCssVariable)(p.quickInputBackground),quickInputForeground:(0,p.asCssVariable)(p.quickInputForeground),quickInputTitleBackground:(0,p.asCssVariable)(p.quickInputTitleBackground),widgetBorder:(0,p.asCssVariable)(p.widgetBorder),widgetShadow:(0,p.asCssVariable)(p.widgetShadow)},inputBox:b.defaultInputBoxStyles,toggle:b.defaultToggleStyles,countBadge:b.defaultCountBadgeStyles,button:b.defaultButtonStyles,progressBar:b.defaultProgressBarStyles,keybindingLabel:b.defaultKeybindingLabelStyles,list:(0,b.getListStyles)({listBackground:p.quickInputBackground,listFocusBackground:p.quickInputListFocusBackground,listFocusForeground:p.quickInputListFocusForeground,listInactiveFocusForeground:p.quickInputListFocusForeground,listInactiveSelectionIconForeground:p.quickInputListFocusIconForeground,listInactiveFocusBackground:p.quickInputListFocusBackground,listFocusOutline:p.activeContrastBorder,listInactiveFocusOutline:p.activeContrastBorder}),pickerGroup:{pickerGroupBorder:(0,p.asCssVariable)(p.pickerGroupBorder),pickerGroupForeground:(0,p.asCssVariable)(p.pickerGroupForeground)}}}};e.QuickInputService=g,e.QuickInputService=g=ke([ce(0,E.IInstantiationService),ce(1,I.IContextKeyService),ce(2,n.IThemeService),ce(3,y.ILayoutService),ce(4,i.IConfigurationService)],g)}),define(ne[805],se([1,0,6,15,25,18,7,12,394,34,804,127,28,540]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputEditorWidget=e.QuickInputEditorContribution=e.StandaloneQuickInputService=void 0;let t=class extends p.QuickInputService{constructor(l,a,r,u,C,f){super(a,r,u,new _.EditorScopedLayoutService(l.getContainerDomNode(),C),f),this.host=void 0;const h=s.get(l);if(h){const v=h.widget;this.host={_serviceBrand:void 0,get mainContainer(){return v.getDomNode()},getContainer(){return v.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[v.getDomNode()]},get activeContainer(){return v.getDomNode()},get mainContainerDimension(){return l.getLayoutInfo()},get activeContainerDimension(){return l.getLayoutInfo()},get onDidLayoutMainContainer(){return l.onDidLayoutChange},get onDidLayoutActiveContainer(){return l.onDidLayoutChange},get onDidLayoutContainer(){return d.Event.map(l.onDidLayoutChange,w=>({container:v.getDomNode(),dimension:w}))},get onDidChangeActiveContainer(){return d.Event.None},get onDidAddContainer(){return d.Event.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>l.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};t=ke([ce(1,y.IInstantiationService),ce(2,m.IContextKeyService),ce(3,I.IThemeService),ce(4,b.ICodeEditorService),ce(5,o.IConfigurationService)],t);let i=class{get activeService(){const l=this.codeEditorService.getFocusedCodeEditor();if(!l)throw new Error("Quick input service needs a focused editor to work.");let a=this.mapEditorToService.get(l);if(!a){const r=a=this.instantiationService.createInstance(t,l);this.mapEditorToService.set(l,a),(0,n.createSingleCallFunction)(l.onDidDispose)(()=>{r.dispose(),this.mapEditorToService.delete(l)})}return a}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(l,a){this.instantiationService=l,this.codeEditorService=a,this.mapEditorToService=new Map}pick(l,a,r=E.CancellationToken.None){return this.activeService.pick(l,a,r)}createQuickPick(l={useSeparators:!1}){return this.activeService.createQuickPick(l)}createInputBox(){return this.activeService.createInputBox()}};e.StandaloneQuickInputService=i,e.StandaloneQuickInputService=i=ke([ce(0,y.IInstantiationService),ce(1,b.ICodeEditorService)],i);class s{static{this.ID="editor.controller.quickInput"}static get(l){return l.getContribution(s.ID)}constructor(l){this.editor=l,this.widget=new g(this.editor)}dispose(){this.widget.dispose()}}e.QuickInputEditorContribution=s;class g{static{this.ID="editor.contrib.quickInputWidget"}constructor(l){this.codeEditor=l,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return g.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}e.QuickInputEditorWidget=g,(0,k.registerEditorContribution)(s.ID,s,4)}),define(ne[284],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoSource=e.UndoRedoGroup=e.ResourceEditStackSnapshot=e.IUndoRedoService=void 0,e.IUndoRedoService=(0,d.createDecorator)("undoRedoService");class k{constructor(m,_){this.resource=m,this.elements=_}}e.ResourceEditStackSnapshot=k;class I{static{this._ID=0}constructor(){this.id=I._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}static{this.None=new I}}e.UndoRedoGroup=I;class E{static{this._ID=0}constructor(){this.id=E._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}static{this.None=new E}}e.UndoRedoSource=E}),define(ne[35],se([1,0,13,33,8,6,2,11,22,145,230,9,4,23,197,43,36,40,661,783,370,329,577,578,371,662,202,707,263,132,7,284]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.ModelDecorationOptions=e.ModelDecorationInjectedTextOptions=e.ModelDecorationMinimapOptions=e.ModelDecorationGlyphMarginOptions=e.ModelDecorationOverviewRulerOptions=e.TextModel=void 0,e.createTextBufferFactory=P,e.createTextBufferFactoryFromSnapshot=N,e.createTextBuffer=O,e.indentOfLine=z;function P(X){const B=new v.PieceTreeTextBufferBuilder;return B.acceptChunk(X),B.finish()}function N(X){const B=new v.PieceTreeTextBufferBuilder;let $;for(;typeof($=X.read())=="string";)B.acceptChunk($);return B.finish()}function O(X,B){let $;return typeof X=="string"?$=P(X):c.isITextSnapshot(X)?$=N(X):$=X,$.create(B)}let F=0;const x=999,W=1e4;class V{constructor(B){this._source=B,this._eos=!1}read(){if(this._eos)return null;const B=[];let $=0,Q=0;do{const Z=this._source.read();if(Z===null)return this._eos=!0,$===0?null:B.join("");if(Z.length>0&&(B[$++]=Z,Q+=Z.length),Q>=64*1024)return B.join("")}while(!0)}}const q=()=>{throw new Error("Invalid change accessor")};let H=class extends y.Disposable{static{A=this}static{this._MODEL_SYNC_LIMIT=50*1024*1024}static{this.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024}static{this.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3}static{this.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024}static{this.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:i.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:i.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:i.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:i.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:i.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,bracketPairColorizationOptions:i.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions}}static resolveOptions(B,$){if($.detectIndentation){const Q=(0,C.guessIndentation)(B,$.tabSize,$.insertSpaces);return new c.TextModelResolvedOptions({tabSize:Q.tabSize,indentSize:"tabSize",insertSpaces:Q.insertSpaces,trimAutoWhitespace:$.trimAutoWhitespace,defaultEOL:$.defaultEOL,bracketPairColorizationOptions:$.bracketPairColorizationOptions})}return new c.TextModelResolvedOptions($)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(B){return this._eventEmitter.slowEvent($=>B($.contentChangedEvent))}onDidChangeContentOrInjectedText(B){return(0,y.combinedDisposable)(this._eventEmitter.fastEvent($=>B($)),this._onDidChangeInjectedText.event($=>B($)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(B,$,Q,Z=null,te,re,le,me){super(),this._undoRedoService=te,this._languageService=re,this._languageConfigurationService=le,this.instantiationService=me,this._onWillDispose=this._register(new E.Emitter),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new de(Ae=>this.handleBeforeFireDecorationsChangedEvent(Ae))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new E.Emitter),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new E.Emitter),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new E.Emitter),this._eventEmitter=this._register(new ge),this._languageSelectionListener=this._register(new y.MutableDisposable),this._deltaDecorationCallCnt=0,this._attachedViews=new L.AttachedViews,F++,this.id="$model"+F,this.isForSimpleWidget=Q.isForSimpleWidget,typeof Z>"u"||Z===null?this._associatedResource=_.URI.parse("inmemory://model/"+F):this._associatedResource=Z,this._attachedEditorCount=0;const{textBuffer:Ce,disposable:ye}=O(B,Q.defaultEOL);this._buffer=Ce,this._bufferDisposable=ye,this._options=A.resolveOptions(this._buffer,Q);const Le=typeof $=="string"?$:$.languageId;typeof $!="string"&&(this._languageSelectionListener.value=$.onDidChange(()=>this._setLanguage($.languageId))),this._bracketPairs=this._register(new l.BracketPairsTextModelPart(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new u.GuidesTextModelPart(this,this._languageConfigurationService)),this._decorationProvider=this._register(new a.ColorizedBracketPairsDecorationProvider(this)),this._tokenizationTextModelPart=this.instantiationService.createInstance(S.TokenizationTextModelPart,this,this._bracketPairs,Le,this._attachedViews);const Ee=this._buffer.getLineCount(),Me=this._buffer.getValueLengthInRange(new o.Range(1,1,Ee,this._buffer.getLineLength(Ee)+1),0);Q.largeFileOptimizations?(this._isTooLargeForTokenization=Me>A.LARGE_FILE_SIZE_THRESHOLD||Ee>A.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=Me>A.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=Me>A._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=m.singleLetterHash(F),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new G,this._commandManager=new r.EditStack(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(Le),this._register(this._languageConfigurationService.onDidChange(Ae=>{this._bracketPairs.handleLanguageConfigurationServiceChange(Ae),this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(Ae)}))}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const B=new h.PieceTreeTextBuffer([],"",` -`,!1,!1,!0,!0);B.dispose(),this._buffer=B,this._bufferDisposable=y.Disposable.None}_assertNotDisposed(){if(this._isDisposed)throw new I.BugIndicatingError("Model is disposed!")}_emitContentChangedEvent(B,$){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent($),this._bracketPairs.handleDidChangeContent($),this._eventEmitter.fire(new D.InternalModelContentChangeEvent(B,$)))}setValue(B){if(this._assertNotDisposed(),B==null)throw(0,I.illegalArgument)();const{textBuffer:$,disposable:Q}=O(B,this._options.defaultEOL);this._setValueFromTextBuffer($,Q)}_createContentChanged2(B,$,Q,Z,te,re,le,me){return{changes:[{range:B,rangeOffset:$,rangeLength:Q,text:Z}],eol:this._buffer.getEOL(),isEolChange:me,versionId:this.getVersionId(),isUndoing:te,isRedoing:re,isFlush:le}}_setValueFromTextBuffer(B,$){this._assertNotDisposed();const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q),te=this.getLineCount(),re=this.getLineMaxColumn(te);this._buffer=B,this._bufferDisposable.dispose(),this._bufferDisposable=$,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new G,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new D.ModelRawContentChangedEvent([new D.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new o.Range(1,1,te,re),0,Z,this.getValue(),!1,!1,!0,!1))}setEOL(B){this._assertNotDisposed();const $=B===1?`\r -`:` -`;if(this._buffer.getEOL()===$)return;const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q),te=this.getLineCount(),re=this.getLineMaxColumn(te);this._onBeforeEOLChange(),this._buffer.setEOL($),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new D.ModelRawContentChangedEvent([new D.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new o.Range(1,1,te,re),0,Z,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const B=this.getVersionId(),$=this._decorationsTree.collectNodesPostOrder();for(let Q=0,Z=$.length;Q0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let B=0,$=0;const Q=this._buffer.getLineCount();for(let Z=1;Z<=Q;Z++){const te=this._buffer.getLineLength(Z);te>=W?$+=te:B+=te}return $>B}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(B){this._assertNotDisposed();const $=typeof B.tabSize<"u"?B.tabSize:this._options.tabSize,Q=typeof B.indentSize<"u"?B.indentSize:this._options.originalIndentSize,Z=typeof B.insertSpaces<"u"?B.insertSpaces:this._options.insertSpaces,te=typeof B.trimAutoWhitespace<"u"?B.trimAutoWhitespace:this._options.trimAutoWhitespace,re=typeof B.bracketColorizationOptions<"u"?B.bracketColorizationOptions:this._options.bracketPairColorizationOptions,le=new c.TextModelResolvedOptions({tabSize:$,indentSize:Q,insertSpaces:Z,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:te,bracketPairColorizationOptions:re});if(this._options.equals(le))return;const me=this._options.createChangeEvent(le);this._options=le,this._bracketPairs.handleDidChangeOptions(me),this._decorationProvider.handleDidChangeOptions(me),this._onDidChangeOptions.fire(me)}detectIndentation(B,$){this._assertNotDisposed();const Q=(0,C.guessIndentation)(this._buffer,$,B);this.updateOptions({insertSpaces:Q.insertSpaces,tabSize:Q.tabSize,indentSize:Q.tabSize})}normalizeIndentation(B){return this._assertNotDisposed(),(0,p.normalizeIndentation)(B,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(B=null){const $=this.findMatches(m.UNUSUAL_LINE_TERMINATORS.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(B,$.map(Q=>({range:Q.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(B){this._assertNotDisposed();const $=this._validatePosition(B.lineNumber,B.column,0);return this._buffer.getOffsetAt($.lineNumber,$.column)}getPositionAt(B){this._assertNotDisposed();const $=Math.min(this._buffer.getLength(),Math.max(0,B));return this._buffer.getPositionAt($)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(B){this._versionId=B}_overwriteAlternativeVersionId(B){this._alternativeVersionId=B}_overwriteInitialUndoRedoSnapshot(B){this._initialUndoRedoSnapshot=B}getValue(B,$=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new I.BugIndicatingError("Operation would exceed heap memory limits");const Q=this.getFullModelRange(),Z=this.getValueInRange(Q,B);return $?this._buffer.getBOM()+Z:Z}createSnapshot(B=!1){return new V(this._buffer.createSnapshot(B))}getValueLength(B,$=!1){this._assertNotDisposed();const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q,B);return $?this._buffer.getBOM().length+Z:Z}getValueInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(B),$)}getValueLengthInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(B),$)}getCharacterCountInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(B),$)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineContent(B)}getLineLength(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(B)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new I.BugIndicatingError("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` -`?0:1}getLineMinColumn(B){return this._assertNotDisposed(),1}getLineMaxColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(B)+1}getLineFirstNonWhitespaceColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(B)}getLineLastNonWhitespaceColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(B)}_validateRangeRelaxedNoAllocations(B){const $=this._buffer.getLineCount(),Q=B.startLineNumber,Z=B.startColumn;let te=Math.floor(typeof Q=="number"&&!isNaN(Q)?Q:1),re=Math.floor(typeof Z=="number"&&!isNaN(Z)?Z:1);if(te<1)te=1,re=1;else if(te>$)te=$,re=this.getLineMaxColumn(te);else if(re<=1)re=1;else{const Le=this.getLineMaxColumn(te);re>=Le&&(re=Le)}const le=B.endLineNumber,me=B.endColumn;let Ce=Math.floor(typeof le=="number"&&!isNaN(le)?le:1),ye=Math.floor(typeof me=="number"&&!isNaN(me)?me:1);if(Ce<1)Ce=1,ye=1;else if(Ce>$)Ce=$,ye=this.getLineMaxColumn(Ce);else if(ye<=1)ye=1;else{const Le=this.getLineMaxColumn(Ce);ye>=Le&&(ye=Le)}return Q===te&&Z===re&&le===Ce&&me===ye&&B instanceof o.Range&&!(B instanceof t.Selection)?B:new o.Range(te,re,Ce,ye)}_isValidPosition(B,$,Q){if(typeof B!="number"||typeof $!="number"||isNaN(B)||isNaN($)||B<1||$<1||(B|0)!==B||($|0)!==$)return!1;const Z=this._buffer.getLineCount();if(B>Z)return!1;if($===1)return!0;const te=this.getLineMaxColumn(B);if($>te)return!1;if(Q===1){const re=this._buffer.getLineCharCode(B,$-2);if(m.isHighSurrogate(re))return!1}return!0}_validatePosition(B,$,Q){const Z=Math.floor(typeof B=="number"&&!isNaN(B)?B:1),te=Math.floor(typeof $=="number"&&!isNaN($)?$:1),re=this._buffer.getLineCount();if(Z<1)return new n.Position(1,1);if(Z>re)return new n.Position(re,this.getLineMaxColumn(re));if(te<=1)return new n.Position(Z,1);const le=this.getLineMaxColumn(Z);if(te>=le)return new n.Position(Z,le);if(Q===1){const me=this._buffer.getLineCharCode(Z,te-2);if(m.isHighSurrogate(me))return new n.Position(Z,te-1)}return new n.Position(Z,te)}validatePosition(B){return this._assertNotDisposed(),B instanceof n.Position&&this._isValidPosition(B.lineNumber,B.column,1)?B:this._validatePosition(B.lineNumber,B.column,1)}_isValidRange(B,$){const Q=B.startLineNumber,Z=B.startColumn,te=B.endLineNumber,re=B.endColumn;if(!this._isValidPosition(Q,Z,0)||!this._isValidPosition(te,re,0))return!1;if($===1){const le=Z>1?this._buffer.getLineCharCode(Q,Z-2):0,me=re>1&&re<=this._buffer.getLineLength(te)?this._buffer.getLineCharCode(te,re-2):0,Ce=m.isHighSurrogate(le),ye=m.isHighSurrogate(me);return!Ce&&!ye}return!0}validateRange(B){if(this._assertNotDisposed(),B instanceof o.Range&&!(B instanceof t.Selection)&&this._isValidRange(B,1))return B;const Q=this._validatePosition(B.startLineNumber,B.startColumn,0),Z=this._validatePosition(B.endLineNumber,B.endColumn,0),te=Q.lineNumber,re=Q.column,le=Z.lineNumber,me=Z.column;{const Ce=re>1?this._buffer.getLineCharCode(te,re-2):0,ye=me>1&&me<=this._buffer.getLineLength(le)?this._buffer.getLineCharCode(le,me-2):0,Le=m.isHighSurrogate(Ce),Ee=m.isHighSurrogate(ye);return!Le&&!Ee?new o.Range(te,re,le,me):te===le&&re===me?new o.Range(te,re-1,le,me-1):Le&&Ee?new o.Range(te,re-1,le,me+1):Le?new o.Range(te,re-1,le,me):new o.Range(te,re,le,me+1)}return new o.Range(te,re,le,me)}modifyPosition(B,$){this._assertNotDisposed();const Q=this.getOffsetAt(B)+$;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,Q)))}getFullModelRange(){this._assertNotDisposed();const B=this.getLineCount();return new o.Range(1,1,B,this.getLineMaxColumn(B))}findMatchesLineByLine(B,$,Q,Z){return this._buffer.findMatchesLineByLine(B,$,Q,Z)}findMatches(B,$,Q,Z,te,re,le=x){this._assertNotDisposed();let me=null;$!==null&&(Array.isArray($)||($=[$]),$.every(Le=>o.Range.isIRange(Le))&&(me=$.map(Le=>this.validateRange(Le)))),me===null&&(me=[this.getFullModelRange()]),me=me.sort((Le,Ee)=>Le.startLineNumber-Ee.startLineNumber||Le.startColumn-Ee.startColumn);const Ce=[];Ce.push(me.reduce((Le,Ee)=>o.Range.areIntersecting(Le,Ee)?Le.plusRange(Ee):(Ce.push(Le),Ee)));let ye;if(!Q&&B.indexOf(` -`)<0){const Ee=new w.SearchParams(B,Q,Z,te).parseSearchRequest();if(!Ee)return[];ye=Me=>this.findMatchesLineByLine(Me,Ee,re,le)}else ye=Le=>w.TextModelSearch.findMatches(this,new w.SearchParams(B,Q,Z,te),Le,re,le);return Ce.map(ye).reduce((Le,Ee)=>Le.concat(Ee),[])}findNextMatch(B,$,Q,Z,te,re){this._assertNotDisposed();const le=this.validatePosition($);if(!Q&&B.indexOf(` -`)<0){const Ce=new w.SearchParams(B,Q,Z,te).parseSearchRequest();if(!Ce)return null;const ye=this.getLineCount();let Le=new o.Range(le.lineNumber,le.column,ye,this.getLineMaxColumn(ye)),Ee=this.findMatchesLineByLine(Le,Ce,re,1);return w.TextModelSearch.findNextMatch(this,new w.SearchParams(B,Q,Z,te),le,re),Ee.length>0||(Le=new o.Range(1,1,le.lineNumber,this.getLineMaxColumn(le.lineNumber)),Ee=this.findMatchesLineByLine(Le,Ce,re,1),Ee.length>0)?Ee[0]:null}return w.TextModelSearch.findNextMatch(this,new w.SearchParams(B,Q,Z,te),le,re)}findPreviousMatch(B,$,Q,Z,te,re){this._assertNotDisposed();const le=this.validatePosition($);return w.TextModelSearch.findPreviousMatch(this,new w.SearchParams(B,Q,Z,te),le,re)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(B){if((this.getEOL()===` -`?0:1)!==B)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(B)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(B){return B instanceof c.ValidAnnotatedEditOperation?B:new c.ValidAnnotatedEditOperation(B.identifier||null,this.validateRange(B.range),B.text,B.forceMoveMarkers||!1,B.isAutoWhitespaceEdit||!1,B._isTracked||!1)}_validateEditOperations(B){const $=[];for(let Q=0,Z=B.length;Q({range:this.validateRange(le.range),text:le.text}));let re=!0;if(B)for(let le=0,me=B.length;leCe.endLineNumber,Ne=Ce.startLineNumber>Me.endLineNumber;if(!Ae&&!Ne){ye=!0;break}}if(!ye){re=!1;break}}if(re)for(let le=0,me=this._trimAutoWhitespaceLines.length;leAe.endLineNumber)&&!(Ce===Ae.startLineNumber&&Ae.startColumn===ye&&Ae.isEmpty()&&Ne&&Ne.length>0&&Ne.charAt(0)===` -`)&&!(Ce===Ae.startLineNumber&&Ae.startColumn===1&&Ae.isEmpty()&&Ne&&Ne.length>0&&Ne.charAt(Ne.length-1)===` -`)){Le=!1;break}}if(Le){const Ee=new o.Range(Ce,1,Ce,ye);$.push(new c.ValidAnnotatedEditOperation(null,Ee,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(B,$,Q,Z)}_applyUndo(B,$,Q,Z){const te=B.map(re=>{const le=this.getPositionAt(re.newPosition),me=this.getPositionAt(re.newEnd);return{range:new o.Range(le.lineNumber,le.column,me.lineNumber,me.column),text:re.oldText}});this._applyUndoRedoEdits(te,$,!0,!1,Q,Z)}_applyRedo(B,$,Q,Z){const te=B.map(re=>{const le=this.getPositionAt(re.oldPosition),me=this.getPositionAt(re.oldEnd);return{range:new o.Range(le.lineNumber,le.column,me.lineNumber,me.column),text:re.newText}});this._applyUndoRedoEdits(te,$,!1,!0,Q,Z)}_applyUndoRedoEdits(B,$,Q,Z,te,re){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=Q,this._isRedoing=Z,this.applyEdits(B,!1),this.setEOL($),this._overwriteAlternativeVersionId(te)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(re),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(B,$=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const Q=this._validateEditOperations(B);return this._doApplyEdits(Q,$)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(B,$){const Q=this._buffer.getLineCount(),Z=this._buffer.applyEdits(B,this._options.trimAutoWhitespace,$),te=this._buffer.getLineCount(),re=Z.changes;if(this._trimAutoWhitespaceLines=Z.trimAutoWhitespaceLineNumbers,re.length!==0){for(let Ce=0,ye=re.length;Ce=0;be--){const ve=Me+be,we=it+be;xe.takeFromEndWhile(Pe=>Pe.lineNumber>we);const Te=xe.takeFromEndWhile(Pe=>Pe.lineNumber===we);le.push(new D.ModelRawLineChanged(ve,this.getLineContent(we),Te))}if(zeje.lineNumber<$e),Pe[He]=be.takeWhile(je=>je.lineNumber===$e)}le.push(new D.ModelRawLinesInserted(ve+1,Me+Ke,Be,Pe))}me+=Ge}this._emitContentChangedEvent(new D.ModelRawContentChangedEvent(le,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:re,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return Z.reverseEdits===null?void 0:Z.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(B){if(B===null||B.size===0)return;const Q=Array.from(B).map(Z=>new D.ModelRawLineChanged(Z,this.getLineContent(Z),this._getInjectedTextInLine(Z)));this._onDidChangeInjectedText.fire(new D.ModelInjectedTextChangedEvent(Q))}changeDecorations(B,$=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations($,B)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(B,$){const Q={addDecoration:(te,re)=>this._deltaDecorationsImpl(B,[],[{range:te,options:re}])[0],changeDecoration:(te,re)=>{this._changeDecorationImpl(te,re)},changeDecorationOptions:(te,re)=>{this._changeDecorationOptionsImpl(te,ee(re))},removeDecoration:te=>{this._deltaDecorationsImpl(B,[te],[])},deltaDecorations:(te,re)=>te.length===0&&re.length===0?[]:this._deltaDecorationsImpl(B,te,re)};let Z=null;try{Z=$(Q)}catch(te){(0,I.onUnexpectedError)(te)}return Q.addDecoration=q,Q.changeDecoration=q,Q.changeDecorationOptions=q,Q.removeDecoration=q,Q.deltaDecorations=q,Z}deltaDecorations(B,$,Q=0){if(this._assertNotDisposed(),B||(B=[]),B.length===0&&$.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,I.onUnexpectedError)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(Q,B,$)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(B){return this.getDecorationRange(B)}_setTrackedRange(B,$,Q){const Z=B?this._decorations[B]:null;if(!Z)return $?this._deltaDecorationsImpl(0,[],[{range:$,options:ae[Q]}],!0)[0]:null;if(!$)return this._decorationsTree.delete(Z),delete this._decorations[Z.id],null;const te=this._validateRangeRelaxedNoAllocations($),re=this._buffer.getOffsetAt(te.startLineNumber,te.startColumn),le=this._buffer.getOffsetAt(te.endLineNumber,te.endColumn);return this._decorationsTree.delete(Z),Z.reset(this.getVersionId(),re,le,te),Z.setOptions(ae[Q]),this._decorationsTree.insert(Z),Z.id}removeAllDecorationsWithOwnerId(B){if(this._isDisposed)return;const $=this._decorationsTree.collectNodesFromOwner(B);for(let Q=0,Z=$.length;Qthis.getLineCount()?[]:this.getLinesDecorations(B,B,$,Q)}getLinesDecorations(B,$,Q=0,Z=!1,te=!1){const re=this.getLineCount(),le=Math.min(re,Math.max(1,B)),me=Math.min(re,Math.max(1,$)),Ce=this.getLineMaxColumn(me),ye=new o.Range(le,1,me,Ce),Le=this._getDecorationsInRange(ye,Q,Z,te);return(0,d.pushMany)(Le,this._decorationProvider.getDecorationsInRange(ye,Q,Z)),Le}getDecorationsInRange(B,$=0,Q=!1,Z=!1,te=!1){const re=this.validateRange(B),le=this._getDecorationsInRange(re,$,Q,te);return(0,d.pushMany)(le,this._decorationProvider.getDecorationsInRange(re,$,Q,Z)),le}getOverviewRulerDecorations(B=0,$=!1){return this._decorationsTree.getAll(this,B,$,!0,!1)}getInjectedTextDecorations(B=0){return this._decorationsTree.getAllInjectedText(this,B)}_getInjectedTextInLine(B){const $=this._buffer.getOffsetAt(B,1),Q=$+this._buffer.getLineLength(B),Z=this._decorationsTree.getInjectedTextInInterval(this,$,Q,0);return D.LineInjectedText.fromDecorations(Z).filter(te=>te.lineNumber===B)}getAllDecorations(B=0,$=!1){let Q=this._decorationsTree.getAll(this,B,$,!1,!1);return Q=Q.concat(this._decorationProvider.getAllDecorations(B,$)),Q}getAllMarginDecorations(B=0){return this._decorationsTree.getAll(this,B,!1,!1,!0)}_getDecorationsInRange(B,$,Q,Z){const te=this._buffer.getOffsetAt(B.startLineNumber,B.startColumn),re=this._buffer.getOffsetAt(B.endLineNumber,B.endColumn);return this._decorationsTree.getAllInInterval(this,te,re,$,Q,Z)}getRangeAt(B,$){return this._buffer.getRangeAt(B,$-B)}_changeDecorationImpl(B,$){const Q=this._decorations[B];if(!Q)return;if(Q.options.after){const le=this.getDecorationRange(B);this._onDidChangeDecorations.recordLineAffectedByInjectedText(le.endLineNumber)}if(Q.options.before){const le=this.getDecorationRange(B);this._onDidChangeDecorations.recordLineAffectedByInjectedText(le.startLineNumber)}const Z=this._validateRangeRelaxedNoAllocations($),te=this._buffer.getOffsetAt(Z.startLineNumber,Z.startColumn),re=this._buffer.getOffsetAt(Z.endLineNumber,Z.endColumn);this._decorationsTree.delete(Q),Q.reset(this.getVersionId(),te,re,Z),this._decorationsTree.insert(Q),this._onDidChangeDecorations.checkAffectedAndFire(Q.options),Q.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(Z.endLineNumber),Q.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(Z.startLineNumber)}_changeDecorationOptionsImpl(B,$){const Q=this._decorations[B];if(!Q)return;const Z=!!(Q.options.overviewRuler&&Q.options.overviewRuler.color),te=!!($.overviewRuler&&$.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(Q.options),this._onDidChangeDecorations.checkAffectedAndFire($),Q.options.after||$.after){const me=this._decorationsTree.getNodeRange(this,Q);this._onDidChangeDecorations.recordLineAffectedByInjectedText(me.endLineNumber)}if(Q.options.before||$.before){const me=this._decorationsTree.getNodeRange(this,Q);this._onDidChangeDecorations.recordLineAffectedByInjectedText(me.startLineNumber)}const re=Z!==te,le=j($)!==Y(Q);re||le?(this._decorationsTree.delete(Q),Q.setOptions($),this._decorationsTree.insert(Q)):Q.setOptions($)}_deltaDecorationsImpl(B,$,Q,Z=!1){const te=this.getVersionId(),re=$.length;let le=0;const me=Q.length;let Ce=0;this._onDidChangeDecorations.beginDeferredEmit();try{const ye=new Array(me);for(;lethis._setLanguage(B.languageId,$)),this._setLanguage(B.languageId,$))}_setLanguage(B,$){this.tokenization.setLanguageId(B,$),this._languageService.requestRichLanguageFeatures(B)}getLanguageIdAtPosition(B,$){return this.tokenization.getLanguageIdAtPosition(B,$)}getWordAtPosition(B){return this._tokenizationTextModelPart.getWordAtPosition(B)}getWordUntilPosition(B){return this._tokenizationTextModelPart.getWordUntilPosition(B)}normalizePosition(B,$){return B}getLineIndentColumn(B){return z(this.getLineContent(B))+1}};e.TextModel=H,e.TextModel=H=A=ke([ce(4,M.IUndoRedoService),ce(5,s.ILanguageService),ce(6,g.ILanguageConfigurationService),ce(7,T.IInstantiationService)],H);function z(X){let B=0;for(const $ of X)if($===" "||$===" ")B++;else break;return B}function U(X){return!!(X.options.overviewRuler&&X.options.overviewRuler.color)}function j(X){return!!X.after||!!X.before}function Y(X){return!!X.options.after||!!X.options.before}class G{constructor(){this._decorationsTree0=new f.IntervalTree,this._decorationsTree1=new f.IntervalTree,this._injectedTextDecorationsTree=new f.IntervalTree}ensureAllNodesHaveRanges(B){this.getAll(B,0,!1,!1,!1)}_ensureNodesHaveRanges(B,$){for(const Q of $)Q.range===null&&(Q.range=B.getRangeAt(Q.cachedAbsoluteStart,Q.cachedAbsoluteEnd));return $}getAllInInterval(B,$,Q,Z,te,re){const le=B.getVersionId(),me=this._intervalSearch($,Q,Z,te,le,re);return this._ensureNodesHaveRanges(B,me)}_intervalSearch(B,$,Q,Z,te,re){const le=this._decorationsTree0.intervalSearch(B,$,Q,Z,te,re),me=this._decorationsTree1.intervalSearch(B,$,Q,Z,te,re),Ce=this._injectedTextDecorationsTree.intervalSearch(B,$,Q,Z,te,re);return le.concat(me).concat(Ce)}getInjectedTextInInterval(B,$,Q,Z){const te=B.getVersionId(),re=this._injectedTextDecorationsTree.intervalSearch($,Q,Z,!1,te,!1);return this._ensureNodesHaveRanges(B,re).filter(le=>le.options.showIfCollapsed||!le.range.isEmpty())}getAllInjectedText(B,$){const Q=B.getVersionId(),Z=this._injectedTextDecorationsTree.search($,!1,Q,!1);return this._ensureNodesHaveRanges(B,Z).filter(te=>te.options.showIfCollapsed||!te.range.isEmpty())}getAll(B,$,Q,Z,te){const re=B.getVersionId(),le=this._search($,Q,Z,re,te);return this._ensureNodesHaveRanges(B,le)}_search(B,$,Q,Z,te){if(Q)return this._decorationsTree1.search(B,$,Z,te);{const re=this._decorationsTree0.search(B,$,Z,te),le=this._decorationsTree1.search(B,$,Z,te),me=this._injectedTextDecorationsTree.search(B,$,Z,te);return re.concat(le).concat(me)}}collectNodesFromOwner(B){const $=this._decorationsTree0.collectNodesFromOwner(B),Q=this._decorationsTree1.collectNodesFromOwner(B),Z=this._injectedTextDecorationsTree.collectNodesFromOwner(B);return $.concat(Q).concat(Z)}collectNodesPostOrder(){const B=this._decorationsTree0.collectNodesPostOrder(),$=this._decorationsTree1.collectNodesPostOrder(),Q=this._injectedTextDecorationsTree.collectNodesPostOrder();return B.concat($).concat(Q)}insert(B){Y(B)?this._injectedTextDecorationsTree.insert(B):U(B)?this._decorationsTree1.insert(B):this._decorationsTree0.insert(B)}delete(B){Y(B)?this._injectedTextDecorationsTree.delete(B):U(B)?this._decorationsTree1.delete(B):this._decorationsTree0.delete(B)}getNodeRange(B,$){const Q=B.getVersionId();return $.cachedVersionId!==Q&&this._resolveNode($,Q),$.range===null&&($.range=B.getRangeAt($.cachedAbsoluteStart,$.cachedAbsoluteEnd)),$.range}_resolveNode(B,$){Y(B)?this._injectedTextDecorationsTree.resolveNode(B,$):U(B)?this._decorationsTree1.resolveNode(B,$):this._decorationsTree0.resolveNode(B,$)}acceptReplace(B,$,Q,Z){this._decorationsTree0.acceptReplace(B,$,Q,Z),this._decorationsTree1.acceptReplace(B,$,Q,Z),this._injectedTextDecorationsTree.acceptReplace(B,$,Q,Z)}}function K(X){return X.replace(/[^a-z0-9\-_]/gi," ")}class R{constructor(B){this.color=B.color||"",this.darkColor=B.darkColor||""}}class J extends R{constructor(B){super(B),this._resolvedColor=null,this.position=typeof B.position=="number"?B.position:c.OverviewRulerLane.Center}getColor(B){return this._resolvedColor||(B.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,B):this._resolvedColor=this._resolveColor(this.color,B)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(B,$){if(typeof B=="string")return B;const Q=B?$.getColor(B.id):null;return Q?Q.toString():""}}e.ModelDecorationOverviewRulerOptions=J;class ie{constructor(B){this.position=B?.position??c.GlyphMarginLane.Center,this.persistLane=B?.persistLane}}e.ModelDecorationGlyphMarginOptions=ie;class ue extends R{constructor(B){super(B),this.position=B.position,this.sectionHeaderStyle=B.sectionHeaderStyle??null,this.sectionHeaderText=B.sectionHeaderText??null}getColor(B){return this._resolvedColor||(B.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,B):this._resolvedColor=this._resolveColor(this.color,B)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(B,$){return typeof B=="string"?k.Color.fromHex(B):$.getColor(B.id)}}e.ModelDecorationMinimapOptions=ue;class he{static from(B){return B instanceof he?B:new he(B)}constructor(B){this.content=B.content||"",this.inlineClassName=B.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=B.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=B.attachedData||null,this.cursorStops=B.cursorStops||null}}e.ModelDecorationInjectedTextOptions=he;class pe{static register(B){return new pe(B)}static createDynamic(B){return new pe(B)}constructor(B){this.description=B.description,this.blockClassName=B.blockClassName?K(B.blockClassName):null,this.blockDoesNotCollapse=B.blockDoesNotCollapse??null,this.blockIsAfterEnd=B.blockIsAfterEnd??null,this.blockPadding=B.blockPadding??null,this.stickiness=B.stickiness||0,this.zIndex=B.zIndex||0,this.className=B.className?K(B.className):null,this.shouldFillLineOnLineBreak=B.shouldFillLineOnLineBreak??null,this.hoverMessage=B.hoverMessage||null,this.glyphMarginHoverMessage=B.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=B.lineNumberHoverMessage||null,this.isWholeLine=B.isWholeLine||!1,this.showIfCollapsed=B.showIfCollapsed||!1,this.collapseOnReplaceEdit=B.collapseOnReplaceEdit||!1,this.overviewRuler=B.overviewRuler?new J(B.overviewRuler):null,this.minimap=B.minimap?new ue(B.minimap):null,this.glyphMargin=B.glyphMarginClassName?new ie(B.glyphMargin):null,this.glyphMarginClassName=B.glyphMarginClassName?K(B.glyphMarginClassName):null,this.linesDecorationsClassName=B.linesDecorationsClassName?K(B.linesDecorationsClassName):null,this.lineNumberClassName=B.lineNumberClassName?K(B.lineNumberClassName):null,this.linesDecorationsTooltip=B.linesDecorationsTooltip?m.htmlAttributeEncodeValue(B.linesDecorationsTooltip):null,this.firstLineDecorationClassName=B.firstLineDecorationClassName?K(B.firstLineDecorationClassName):null,this.marginClassName=B.marginClassName?K(B.marginClassName):null,this.inlineClassName=B.inlineClassName?K(B.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=B.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=B.beforeContentClassName?K(B.beforeContentClassName):null,this.afterContentClassName=B.afterContentClassName?K(B.afterContentClassName):null,this.after=B.after?he.from(B.after):null,this.before=B.before?he.from(B.before):null,this.hideInCommentTokens=B.hideInCommentTokens??!1,this.hideInStringTokens=B.hideInStringTokens??!1}}e.ModelDecorationOptions=pe,pe.EMPTY=pe.register({description:"empty"});const ae=[pe.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),pe.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),pe.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),pe.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function ee(X){return X instanceof pe?X:pe.createDynamic(X)}class de extends y.Disposable{constructor(B){super(),this.handleBeforeFire=B,this._actual=this._register(new E.Emitter),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),this._affectedInjectedTextLines?.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(B){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(B)}checkAffectedAndFire(B){this._affectsMinimap||=!!B.minimap?.position,this._affectsOverviewRuler||=!!B.overviewRuler?.color,this._affectsGlyphMargin||=!!B.glyphMarginClassName,this._affectsLineNumber||=!!B.lineNumberClassName,this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const B={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(B)}}class ge extends y.Disposable{constructor(){super(),this._fastEmitter=this._register(new E.Emitter),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new E.Emitter),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(B=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=B;const $=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire($),this._slowEmitter.fire($)}}fire(B){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(B):this._deferredEvent=B;return}this._fastEmitter.fire(B),this._slowEmitter.fire(B)}}}),define(ne[139],se([1,0,26,30,35,3,32,71]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffDeleteDecorationEmpty=e.diffWholeLineDeleteDecoration=e.diffDeleteDecoration=e.diffAddDecorationEmpty=e.diffWholeLineAddDecoration=e.diffAddDecoration=e.diffLineDeleteDecorationBackground=e.diffLineAddDecorationBackground=e.diffLineDeleteDecorationBackgroundWithIndicator=e.diffLineAddDecorationBackgroundWithIndicator=e.diffRemoveIcon=e.diffInsertIcon=e.diffEditorUnchangedRegionShadow=e.diffMoveBorderActive=e.diffMoveBorder=void 0,e.diffMoveBorder=(0,y.registerColor)("diffEditor.move.border","#8b8b8b9c",(0,E.localize)(124,"The border color for text that got moved in the diff editor.")),e.diffMoveBorderActive=(0,y.registerColor)("diffEditor.moveActive.border","#FFA500",(0,E.localize)(125,"The active border color for text that got moved in the diff editor.")),e.diffEditorUnchangedRegionShadow=(0,y.registerColor)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,E.localize)(126,"The color of the shadow around unchanged region widgets.")),e.diffInsertIcon=(0,m.registerIcon)("diff-insert",d.Codicon.add,(0,E.localize)(127,"Line decoration for inserts in the diff editor.")),e.diffRemoveIcon=(0,m.registerIcon)("diff-remove",d.Codicon.remove,(0,E.localize)(128,"Line decoration for removals in the diff editor.")),e.diffLineAddDecorationBackgroundWithIndicator=I.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+k.ThemeIcon.asClassName(e.diffInsertIcon),marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackgroundWithIndicator=I.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+k.ThemeIcon.asClassName(e.diffRemoveIcon),marginClassName:"gutter-delete"}),e.diffLineAddDecorationBackground=I.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackground=I.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),e.diffAddDecoration=I.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),e.diffWholeLineAddDecoration=I.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),e.diffAddDecorationEmpty=I.ModelDecorationOptions.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),e.diffDeleteDecoration=I.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),e.diffWholeLineDeleteDecoration=I.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),e.diffDeleteDecorationEmpty=I.ModelDecorationOptions.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"})}),define(ne[285],se([1,0,5,13,14,26,2,21,30,19,74,139,407,652,667,88,55,9,95,117,58,4]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorViewZones=void 0,e.allowsTrueInlineDiffRendering=v;let C=class extends y.Disposable{constructor(L,D,T,M,A,P,N,O,F,x){super(),this._targetWindow=L,this._editors=D,this._diffModel=T,this._options=M,this._diffEditorWidget=A,this._canIgnoreViewZoneUpdateEvent=P,this._origViewZonesToIgnore=N,this._modViewZonesToIgnore=O,this._clipboardService=F,this._contextMenuService=x,this._originalTopPadding=(0,m.observableValue)(this,0),this._originalScrollOffset=(0,m.observableValue)(this,0),this._originalScrollOffsetAnimated=(0,s.animatedObservable)(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,m.observableValue)(this,0),this._modifiedScrollOffset=(0,m.observableValue)(this,0),this._modifiedScrollOffsetAnimated=(0,s.animatedObservable)(this._targetWindow,this._modifiedScrollOffset,this._store);const W=(0,m.observableValue)("invalidateAlignmentsState",0),V=this._register(new I.RunOnceScheduler(()=>{W.set(W.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(G=>{this._canIgnoreViewZoneUpdateEvent()||V.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(G=>{this._canIgnoreViewZoneUpdateEvent()||V.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(G=>{(G.hasChanged(147)||G.hasChanged(67))&&V.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(G=>{(G.hasChanged(147)||G.hasChanged(67))&&V.schedule()}));const q=this._diffModel.map(G=>G?(0,m.observableFromEvent)(this,G.model.original.onDidChangeTokens,()=>G.model.original.tokenization.backgroundTokenizationState===2):void 0).map((G,K)=>G?.read(K)),H=(0,m.derived)(G=>{const K=this._diffModel.read(G),R=K?.diff.read(G);if(!K||!R)return null;W.read(G);const ie=this._options.renderSideBySide.read(G);return f(this._editors.original,this._editors.modified,R.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,ie)}),z=(0,m.derived)(G=>{const K=this._diffModel.read(G)?.movedTextToCompare.read(G);if(!K)return null;W.read(G);const R=K.changes.map(J=>new o.DiffMapping(J));return f(this._editors.original,this._editors.modified,R,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function U(){const G=document.createElement("div");return G.className="diagonal-fill",G}const j=this._register(new y.DisposableStore);this.viewZones=(0,m.derivedWithStore)(this,(G,K)=>{j.clear();const R=H.read(G)||[],J=[],ie=[],ue=this._modifiedTopPadding.read(G);ue>0&&ie.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:ue,showInHiddenAreas:!0,suppressMouseDown:!0});const he=this._originalTopPadding.read(G);he>0&&J.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:he,showInHiddenAreas:!0,suppressMouseDown:!0});const pe=this._options.renderSideBySide.read(G),ae=pe?void 0:this._editors.modified._getViewModel()?.createLineBreaksComputer();if(ae){const Z=this._editors.original.getModel();for(const te of R)if(te.diff)for(let re=te.originalRange.startLineNumber;reZ.getLineCount())return{orig:J,mod:ie};ae?.addRequest(Z.getLineContent(re),null,null)}}const ee=ae?.finalize()??[];let de=0;const ge=this._editors.modified.getOption(67),X=this._diffModel.read(G)?.movedTextToCompare.read(G),B=this._editors.original.getModel()?.mightContainNonBasicASCII()??!1,$=this._editors.original.getModel()?.mightContainRTL()??!1,Q=i.RenderOptions.fromEditor(this._editors.modified);for(const Z of R)if(Z.diff&&!pe&&(!this._options.useTrueInlineDiffRendering.read(G)||!v(Z.diff))){if(!Z.originalRange.isEmpty){q.read(G);const re=document.createElement("div");re.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const le=this._editors.original.getModel();if(Z.originalRange.endLineNumberExclusive-1>le.getLineCount())return{orig:J,mod:ie};const me=new i.LineSource(Z.originalRange.mapToLineArray(Me=>le.tokenization.getLineTokens(Me)),Z.originalRange.mapToLineArray(Me=>ee[de++]),B,$),Ce=[];for(const Me of Z.diff.innerChanges||[])Ce.push(new l.InlineDecoration(Me.originalRange.delta(-(Z.diff.original.startLineNumber-1)),n.diffDeleteDecoration.className,0));const ye=(0,i.renderLines)(me,Q,Ce,re),Le=document.createElement("div");if(Le.className="inline-deleted-margin-view-zone",(0,p.applyFontInfo)(Le,Q.fontInfo),this._options.renderIndicators.read(G))for(let Me=0;Me(0,b.assertIsDefined)(Ee),Le,this._editors.modified,Z.diff,this._diffEditorWidget,ye.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let Me=0;Me1&&J.push({afterLineNumber:Z.originalRange.startLineNumber+Me,domNode:U(),heightInPx:(Ae-1)*ge,showInHiddenAreas:!0,suppressMouseDown:!0})}ie.push({afterLineNumber:Z.modifiedRange.startLineNumber-1,domNode:re,heightInPx:ye.heightInLines*ge,minWidthInPx:ye.minWidthInPx,marginDomNode:Le,setZoneId(Me){Ee=Me},showInHiddenAreas:!0,suppressMouseDown:!0})}const te=document.createElement("div");te.className="gutter-delete",J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:Z.modifiedHeightInPx,marginDomNode:te,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const te=Z.modifiedHeightInPx-Z.originalHeightInPx;if(te>0){if(X?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(Z.originalRange.endLineNumberExclusive-1))continue;J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:te,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let re=function(){const me=document.createElement("div");return me.className="arrow-revert-change "+_.ThemeIcon.asClassName(E.Codicon.arrowRight),K.add((0,d.addDisposableListener)(me,"mousedown",Ce=>Ce.stopPropagation())),K.add((0,d.addDisposableListener)(me,"click",Ce=>{Ce.stopPropagation(),A.revert(Z.diff)})),(0,d.$)("div",{},me)};if(X?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(Z.modifiedRange.endLineNumberExclusive-1))continue;let le;Z.diff&&Z.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(G)&&(le=re()),ie.push({afterLineNumber:Z.modifiedRange.endLineNumberExclusive-1,domNode:U(),heightInPx:-te,marginDomNode:le,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const Z of z.read(G)??[]){if(!X?.lineRangeMapping.original.intersect(Z.originalRange)||!X?.lineRangeMapping.modified.intersect(Z.modifiedRange))continue;const te=Z.modifiedHeightInPx-Z.originalHeightInPx;te>0?J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:te,showInHiddenAreas:!0,suppressMouseDown:!0}):ie.push({afterLineNumber:Z.modifiedRange.endLineNumberExclusive-1,domNode:U(),heightInPx:-te,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:J,mod:ie}});let Y=!1;this._register(this._editors.original.onDidScrollChange(G=>{G.scrollLeftChanged&&!Y&&(Y=!0,this._editors.modified.setScrollLeft(G.scrollLeft),Y=!1)})),this._register(this._editors.modified.onDidScrollChange(G=>{G.scrollLeftChanged&&!Y&&(Y=!0,this._editors.original.setScrollLeft(G.scrollLeft),Y=!1)})),this._originalScrollTop=(0,m.observableFromEvent)(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,m.observableFromEvent)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register((0,m.autorun)(G=>{const K=this._originalScrollTop.read(G)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(G))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(G));K!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(K,1)})),this._register((0,m.autorun)(G=>{const K=this._modifiedScrollTop.read(G)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(G))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(G));K!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(K,1)})),this._register((0,m.autorun)(G=>{const K=this._diffModel.read(G)?.movedTextToCompare.read(G);let R=0;if(K){const J=this._editors.original.getTopForLineNumber(K.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();R=this._editors.modified.getTopForLineNumber(K.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-J}R>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(R,void 0)):R<0?(this._modifiedTopPadding.set(-R,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-R,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+R,void 0,!0)}))}};e.DiffEditorViewZones=C,e.DiffEditorViewZones=C=ke([ce(8,a.IClipboardService),ce(9,r.IContextMenuService)],C);function f(S,L,D,T,M,A){const P=new k.ArrayQueue(h(S,T)),N=new k.ArrayQueue(h(L,M)),O=S.getOption(67),F=L.getOption(67),x=[];let W=0,V=0;function q(H,z){for(;;){let U=P.peek(),j=N.peek();if(U&&U.lineNumber>=H&&(U=void 0),j&&j.lineNumber>=z&&(j=void 0),!U&&!j)break;const Y=U?U.lineNumber-W:Number.MAX_VALUE,G=j?j.lineNumber-V:Number.MAX_VALUE;YG?(N.dequeue(),U={lineNumber:j.lineNumber-V+W,heightInPx:0}):(P.dequeue(),N.dequeue()),x.push({originalRange:g.LineRange.ofLength(U.lineNumber,1),modifiedRange:g.LineRange.ofLength(j.lineNumber,1),originalHeightInPx:O+U.heightInPx,modifiedHeightInPx:F+j.heightInPx,diff:void 0})}}for(const H of D){let G=function(K,R,J=!1){if(Kae.lineNumberae+ee.heightInPx,0)??0,pe=N.takeWhile(ae=>ae.lineNumberae+ee.heightInPx,0)??0;x.push({originalRange:ie,modifiedRange:ue,originalHeightInPx:ie.length*O+he,modifiedHeightInPx:ue.length*F+pe,diff:H.lineRangeMapping}),Y=K,j=R};const z=H.lineRangeMapping;q(z.original.startLineNumber,z.modified.startLineNumber);let U=!0,j=z.modified.startLineNumber,Y=z.original.startLineNumber;if(A)for(const K of z.innerChanges||[]){K.originalRange.startColumn>1&&K.modifiedRange.startColumn>1&&G(K.originalRange.startLineNumber,K.modifiedRange.startLineNumber);const R=S.getModel(),J=K.originalRange.endLineNumber<=R.getLineCount()?R.getLineMaxColumn(K.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;K.originalRange.endColumn1&&T.push({lineNumber:O,heightInPx:P*(F-1)})}for(const O of S.getWhitespaces()){if(L.has(O.id))continue;const F=O.afterLineNumber===0?0:A.convertViewPositionToModelPosition(new c.Position(O.afterLineNumber,1)).lineNumber;D.push({lineNumber:F,heightInPx:O.height})}return(0,s.joinCombine)(D,T,O=>O.lineNumber,(O,F)=>({lineNumber:O.lineNumber,heightInPx:O.heightInPx+F.heightInPx}))}function v(S){return S.innerChanges?S.innerChanges.every(L=>w(L.modifiedRange)&&w(L.originalRange)||L.originalRange.equalsRange(new u.Range(1,1,1,1))):!1}function w(S){return S.startLineNumber===S.endLineNumber}}),define(ne[806],se([1,0,2,21,285,364,139,88]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorDecorations=void 0;class _ extends d.Disposable{constructor(p,n,o,t){super(),this._editors=p,this._diffModel=n,this._options=o,this._decorations=(0,k.derived)(this,i=>{const s=this._diffModel.read(i),g=s?.diff.read(i);if(!g)return null;const c=this._diffModel.read(i).movedTextToCompare.read(i),l=this._options.renderIndicators.read(i),a=this._options.showEmptyDecorations.read(i),r=[],u=[];if(!c)for(const f of g.mappings)if(f.lineRangeMapping.original.isEmpty||r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:l?y.diffLineDeleteDecorationBackgroundWithIndicator:y.diffLineDeleteDecorationBackground}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:l?y.diffLineAddDecorationBackgroundWithIndicator:y.diffLineAddDecorationBackground}),f.lineRangeMapping.modified.isEmpty||f.lineRangeMapping.original.isEmpty)f.lineRangeMapping.original.isEmpty||r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:y.diffWholeLineDeleteDecoration}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:y.diffWholeLineAddDecoration});else{const h=this._options.useTrueInlineDiffRendering.read(i)&&(0,I.allowsTrueInlineDiffRendering)(f.lineRangeMapping);for(const v of f.lineRangeMapping.innerChanges||[])if(f.lineRangeMapping.original.contains(v.originalRange.startLineNumber)&&r.push({range:v.originalRange,options:v.originalRange.isEmpty()&&a?y.diffDeleteDecorationEmpty:y.diffDeleteDecoration}),f.lineRangeMapping.modified.contains(v.modifiedRange.startLineNumber)&&u.push({range:v.modifiedRange,options:v.modifiedRange.isEmpty()&&a&&!h?y.diffAddDecorationEmpty:y.diffAddDecoration}),h){const w=s.model.original.getValueInRange(v.originalRange);u.push({range:v.modifiedRange,options:{description:"deleted-text",before:{content:w,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(c)for(const f of c.changes){const h=f.original.toInclusiveRange();h&&r.push({range:h,options:l?y.diffLineDeleteDecorationBackgroundWithIndicator:y.diffLineDeleteDecorationBackground});const v=f.modified.toInclusiveRange();v&&u.push({range:v,options:l?y.diffLineAddDecorationBackgroundWithIndicator:y.diffLineAddDecorationBackground});for(const w of f.innerChanges||[])r.push({range:w.originalRange,options:y.diffDeleteDecoration}),u.push({range:w.modifiedRange,options:y.diffAddDecoration})}const C=this._diffModel.read(i).activeMovedText.read(i);for(const f of g.movedTexts)r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(f===C?" currentMove":""),blockPadding:[E.MovedBlocksLinesFeature.movedCodeBlockPadding,0,E.MovedBlocksLinesFeature.movedCodeBlockPadding,E.MovedBlocksLinesFeature.movedCodeBlockPadding]}}),u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(f===C?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:u}}),this._register((0,m.applyObservableDecorations)(this._editors.original,this._decorations.map(i=>i?.originalDecorations||[]))),this._register((0,m.applyObservableDecorations)(this._editors.modified,this._decorations.map(i=>i?.modifiedDecorations||[])))}}e.DiffEditorDecorations=_}),define(ne[807],se([1,0,21,189,285,308,37,61]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorOptions=void 0;let _=class{get editorOptions(){return this._options}constructor(i,s){this._accessibilityService=s,this._diffEditorWidth=(0,d.observableValue)(this,0),this._screenReaderMode=(0,d.observableFromEvent)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=(0,d.derived)(this,c=>this._options.read(c).renderSideBySide&&this._diffEditorWidth.read(c)<=this._options.read(c).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=(0,d.derived)(this,c=>this._options.read(c).renderOverviewRuler),this.renderSideBySide=(0,d.derived)(this,c=>this.compactMode.read(c)&&this.shouldRenderInlineViewInSmartMode.read(c)?!1:this._options.read(c).renderSideBySide&&!(this._options.read(c).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(c)&&!this._screenReaderMode.read(c))),this.readOnly=(0,d.derived)(this,c=>this._options.read(c).readOnly),this.shouldRenderOldRevertArrows=(0,d.derived)(this,c=>!(!this._options.read(c).renderMarginRevertIcon||!this.renderSideBySide.read(c)||this.readOnly.read(c)||this.shouldRenderGutterMenu.read(c))),this.shouldRenderGutterMenu=(0,d.derived)(this,c=>this._options.read(c).renderGutterMenu),this.renderIndicators=(0,d.derived)(this,c=>this._options.read(c).renderIndicators),this.enableSplitViewResizing=(0,d.derived)(this,c=>this._options.read(c).enableSplitViewResizing),this.splitViewDefaultRatio=(0,d.derived)(this,c=>this._options.read(c).splitViewDefaultRatio),this.ignoreTrimWhitespace=(0,d.derived)(this,c=>this._options.read(c).ignoreTrimWhitespace),this.maxComputationTimeMs=(0,d.derived)(this,c=>this._options.read(c).maxComputationTime),this.showMoves=(0,d.derived)(this,c=>this._options.read(c).experimental.showMoves&&this.renderSideBySide.read(c)),this.isInEmbeddedEditor=(0,d.derived)(this,c=>this._options.read(c).isInEmbeddedEditor),this.diffWordWrap=(0,d.derived)(this,c=>this._options.read(c).diffWordWrap),this.originalEditable=(0,d.derived)(this,c=>this._options.read(c).originalEditable),this.diffCodeLens=(0,d.derived)(this,c=>this._options.read(c).diffCodeLens),this.accessibilityVerbose=(0,d.derived)(this,c=>this._options.read(c).accessibilityVerbose),this.diffAlgorithm=(0,d.derived)(this,c=>this._options.read(c).diffAlgorithm),this.showEmptyDecorations=(0,d.derived)(this,c=>this._options.read(c).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=(0,d.derived)(this,c=>this._options.read(c).onlyShowAccessibleDiffViewer),this.compactMode=(0,d.derived)(this,c=>this._options.read(c).compactMode),this.trueInlineDiffRenderingEnabled=(0,d.derived)(this,c=>this._options.read(c).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=(0,d.derived)(this,c=>!this.renderSideBySide.read(c)&&this.trueInlineDiffRenderingEnabled.read(c)),this.hideUnchangedRegions=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.minimumLineCount),this._model=(0,d.observableValue)(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,c=>(0,k.derivedConstOnceDefined)(this,l=>{const a=c?.diff.read(l);return a?b(a,this.trueInlineDiffRenderingEnabled.read(l)):void 0})).flatten().map(this,c=>!!c),this.inlineViewHideOriginalLineNumbers=this.compactMode;const g={...i,...o(i,E.diffEditorDefaultOptions)};this._options=(0,d.observableValue)(this,g)}updateOptions(i){const s=o(i,this._options.get()),g={...this._options.get(),...i,...s};this._options.set(g,void 0,{changedOptions:i})}setWidth(i){this._diffEditorWidth.set(i,void 0)}setModel(i){this._model.set(i,void 0)}};e.DiffEditorOptions=_,e.DiffEditorOptions=_=ke([ce(1,m.IAccessibilityService)],_);function b(t,i){return t.mappings.every(s=>p(s.lineRangeMapping)||n(s.lineRangeMapping)||i&&(0,I.allowsTrueInlineDiffRendering)(s.lineRangeMapping))}function p(t){return t.original.length===0}function n(t){return t.modified.length===0}function o(t,i){return{enableSplitViewResizing:(0,y.boolean)(t.enableSplitViewResizing,i.enableSplitViewResizing),splitViewDefaultRatio:(0,y.clampedFloat)(t.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:(0,y.boolean)(t.renderSideBySide,i.renderSideBySide),renderMarginRevertIcon:(0,y.boolean)(t.renderMarginRevertIcon,i.renderMarginRevertIcon),maxComputationTime:(0,y.clampedInt)(t.maxComputationTime,i.maxComputationTime,0,1073741824),maxFileSize:(0,y.clampedInt)(t.maxFileSize,i.maxFileSize,0,1073741824),ignoreTrimWhitespace:(0,y.boolean)(t.ignoreTrimWhitespace,i.ignoreTrimWhitespace),renderIndicators:(0,y.boolean)(t.renderIndicators,i.renderIndicators),originalEditable:(0,y.boolean)(t.originalEditable,i.originalEditable),diffCodeLens:(0,y.boolean)(t.diffCodeLens,i.diffCodeLens),renderOverviewRuler:(0,y.boolean)(t.renderOverviewRuler,i.renderOverviewRuler),diffWordWrap:(0,y.stringSet)(t.diffWordWrap,i.diffWordWrap,["off","on","inherit"]),diffAlgorithm:(0,y.stringSet)(t.diffAlgorithm,i.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:(0,y.boolean)(t.accessibilityVerbose,i.accessibilityVerbose),experimental:{showMoves:(0,y.boolean)(t.experimental?.showMoves,i.experimental.showMoves),showEmptyDecorations:(0,y.boolean)(t.experimental?.showEmptyDecorations,i.experimental.showEmptyDecorations),useTrueInlineView:(0,y.boolean)(t.experimental?.useTrueInlineView,i.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:(0,y.boolean)(t.hideUnchangedRegions?.enabled??t.experimental?.collapseUnchangedRegions,i.hideUnchangedRegions.enabled),contextLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.contextLineCount,i.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.minimumLineCount,i.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.revealLineCount,i.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:(0,y.boolean)(t.isInEmbeddedEditor,i.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:(0,y.boolean)(t.onlyShowAccessibleDiffViewer,i.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:(0,y.clampedInt)(t.renderSideBySideInlineBreakpoint,i.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:(0,y.boolean)(t.useInlineViewWhenSpaceIsLimited,i.useInlineViewWhenSpaceIsLimited),renderGutterMenu:(0,y.boolean)(t.renderGutterMenu,i.renderGutterMenu),compactMode:(0,y.boolean)(t.compactMode,i.compactMode)}}}),define(ne[808],se([1,0,6,2,16,35,197,70,211,28,284,129,370,42,60,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultModelSHA1Computer=e.ModelService=void 0;function c(f){return f.toString()}class l{constructor(h,v,w){this.model=h,this._modelEventListeners=new k.DisposableStore,this.model=h,this._modelEventListeners.add(h.onWillDispose(()=>v(h))),this._modelEventListeners.add(h.onDidChangeLanguage(S=>w(h,S)))}dispose(){this._modelEventListeners.dispose()}}const a=I.isLinux||I.isMacintosh?1:2;class r{constructor(h,v,w,S,L,D,T,M){this.uri=h,this.initialUndoRedoSnapshot=v,this.time=w,this.sharesUndoRedoStack=S,this.heapSize=L,this.sha1=D,this.versionId=T,this.alternativeVersionId=M}}let u=class extends k.Disposable{static{g=this}static{this.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024}constructor(h,v,w,S){super(),this._configurationService=h,this._resourcePropertiesService=v,this._undoRedoService=w,this._instantiationService=S,this._onModelAdded=this._register(new d.Emitter),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new d.Emitter),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new d.Emitter),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(L=>this._updateModelOptions(L))),this._updateModelOptions(void 0)}static _readModelOptions(h,v){let w=y.EDITOR_MODEL_DEFAULTS.tabSize;if(h.editor&&typeof h.editor.tabSize<"u"){const O=parseInt(h.editor.tabSize,10);isNaN(O)||(w=O),w<1&&(w=1)}let S="tabSize";if(h.editor&&typeof h.editor.indentSize<"u"&&h.editor.indentSize!=="tabSize"){const O=parseInt(h.editor.indentSize,10);isNaN(O)||(S=Math.max(O,1))}let L=y.EDITOR_MODEL_DEFAULTS.insertSpaces;h.editor&&typeof h.editor.insertSpaces<"u"&&(L=h.editor.insertSpaces==="false"?!1:!!h.editor.insertSpaces);let D=a;const T=h.eol;T===`\r -`?D=2:T===` -`&&(D=1);let M=y.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;h.editor&&typeof h.editor.trimAutoWhitespace<"u"&&(M=h.editor.trimAutoWhitespace==="false"?!1:!!h.editor.trimAutoWhitespace);let A=y.EDITOR_MODEL_DEFAULTS.detectIndentation;h.editor&&typeof h.editor.detectIndentation<"u"&&(A=h.editor.detectIndentation==="false"?!1:!!h.editor.detectIndentation);let P=y.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;h.editor&&typeof h.editor.largeFileOptimizations<"u"&&(P=h.editor.largeFileOptimizations==="false"?!1:!!h.editor.largeFileOptimizations);let N=y.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;return h.editor?.bracketPairColorization&&typeof h.editor.bracketPairColorization=="object"&&(N={enabled:!!h.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!h.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:v,tabSize:w,indentSize:S,insertSpaces:L,detectIndentation:A,defaultEOL:D,trimAutoWhitespace:M,largeFileOptimizations:P,bracketPairColorizationOptions:N}}_getEOL(h,v){if(h)return this._resourcePropertiesService.getEOL(h,v);const w=this._configurationService.getValue("files.eol",{overrideIdentifier:v});return w&&typeof w=="string"&&w!=="auto"?w:I.OS===3||I.OS===2?` -`:`\r -`}_shouldRestoreUndoStack(){const h=this._configurationService.getValue("files.restoreUndoStack");return typeof h=="boolean"?h:!0}getCreationOptions(h,v,w){const S=typeof h=="string"?h:h.languageId;let L=this._modelCreationOptionsByLanguageAndResource[S+v];if(!L){const D=this._configurationService.getValue("editor",{overrideIdentifier:S,resource:v}),T=this._getEOL(v,S);L=g._readModelOptions({editor:D,eol:T},w),this._modelCreationOptionsByLanguageAndResource[S+v]=L}return L}_updateModelOptions(h){const v=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const w=Object.keys(this._models);for(let S=0,L=w.length;Sh){const v=[];for(this._disposedModels.forEach(w=>{w.sharesUndoRedoStack||v.push(w)}),v.sort((w,S)=>w.time-S.time);v.length>0&&this._disposedModelsHeapSize>h;){const w=v.shift();this._removeDisposedModel(w.uri),w.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(w.initialUndoRedoSnapshot)}}}_createModelData(h,v,w,S){const L=this.getCreationOptions(v,w,S),D=this._instantiationService.createInstance(E.TextModel,h,v,L,w);if(w&&this._disposedModels.has(c(w))){const A=this._removeDisposedModel(w),P=this._undoRedoService.getElements(w),N=this._getSHA1Computer(),O=N.canComputeSHA1(D)?N.computeSHA1(D)===A.sha1:!1;if(O||A.sharesUndoRedoStack){for(const F of P.past)(0,o.isEditStackElement)(F)&&F.matchesResource(w)&&F.setModel(D);for(const F of P.future)(0,o.isEditStackElement)(F)&&F.matchesResource(w)&&F.setModel(D);this._undoRedoService.setElementsValidFlag(w,!0,F=>(0,o.isEditStackElement)(F)&&F.matchesResource(w)),O&&(D._overwriteVersionId(A.versionId),D._overwriteAlternativeVersionId(A.alternativeVersionId),D._overwriteInitialUndoRedoSnapshot(A.initialUndoRedoSnapshot))}else A.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(A.initialUndoRedoSnapshot)}const T=c(D.uri);if(this._models[T])throw new Error("ModelService: Cannot add model because it already exists!");const M=new l(D,A=>this._onWillDispose(A),(A,P)=>this._onDidChangeLanguage(A,P));return this._models[T]=M,M}createModel(h,v,w,S=!1){let L;return v?L=this._createModelData(h,v,w,S):L=this._createModelData(h,m.PLAINTEXT_LANGUAGE_ID,w,S),this._onModelAdded.fire(L.model),L.model}getModels(){const h=[],v=Object.keys(this._models);for(let w=0,S=v.length;w0||A.future.length>0){for(const P of A.past)(0,o.isEditStackElement)(P)&&P.matchesResource(h.uri)&&(L=!0,D+=P.heapSize(h.uri),P.setModel(h.uri));for(const P of A.future)(0,o.isEditStackElement)(P)&&P.matchesResource(h.uri)&&(L=!0,D+=P.heapSize(h.uri),P.setModel(h.uri))}}const T=g.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,M=this._getSHA1Computer();if(L)if(!S&&(D>T||!M.canComputeSHA1(h))){const A=w.model.getInitialUndoRedoSnapshot();A!==null&&this._undoRedoService.restoreSnapshot(A)}else this._ensureDisposedModelsHeapSize(T-D),this._undoRedoService.setElementsValidFlag(h.uri,!1,A=>(0,o.isEditStackElement)(A)&&A.matchesResource(h.uri)),this._insertDisposedModel(new r(h.uri,w.model.getInitialUndoRedoSnapshot(),Date.now(),S,D,M.computeSHA1(h),h.getVersionId(),h.getAlternativeVersionId()));else if(!S){const A=w.model.getInitialUndoRedoSnapshot();A!==null&&this._undoRedoService.restoreSnapshot(A)}delete this._models[v],w.dispose(),delete this._modelCreationOptionsByLanguageAndResource[h.getLanguageId()+h.uri],this._onModelRemoved.fire(h)}_onDidChangeLanguage(h,v){const w=v.oldLanguage,S=h.getLanguageId(),L=this.getCreationOptions(w,h.uri,h.isForSimpleWidget),D=this.getCreationOptions(S,h.uri,h.isForSimpleWidget);g._setModelOptionsForModel(h,D,L),this._onModelModeChanged.fire({model:h,oldLanguageId:w})}_getSHA1Computer(){return new C}};e.ModelService=u,e.ModelService=u=g=ke([ce(0,b.IConfigurationService),ce(1,_.ITextResourcePropertiesService),ce(2,p.IUndoRedoService),ce(3,s.IInstantiationService)],u);class C{static{this.MAX_MODEL_SIZE=10*1024*1024}canComputeSHA1(h){return h.getValueLength()<=C.MAX_MODEL_SIZE}computeSHA1(h){const v=new n.StringSHA1,w=h.createSnapshot();let S;for(;S=w.read();)v.update(S);return v.digest()}}e.DefaultModelSHA1Computer=C}),define(ne[809],se([1,0,13,9,4,239,35,132,243,602,322,95]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModelLinesFromModelAsIs=e.ViewModelLinesFromProjectedModel=void 0;class o{constructor(r,u,C,f,h,v,w,S,L,D){this._editorId=r,this.model=u,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=C,this._monospaceLineBreaksComputerFactory=f,this.fontInfo=h,this.tabSize=v,this.wrappingStrategy=w,this.wrappingColumn=S,this.wrappingIndent=L,this.wordBreak=D,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new g(this)}_constructLines(r,u){this.modelLineProjections=[],r&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const C=this.model.getLinesContent(),f=this.model.getInjectedTextDecorations(this._editorId),h=C.length,v=this.createLineBreaksComputer(),w=new d.ArrayQueue(m.LineInjectedText.fromDecorations(f));for(let N=0;NF.lineNumber===N+1);v.addRequest(C[N],O,u?u[N]:null)}const S=v.finalize(),L=[],D=this.hiddenAreasDecorationIds.map(N=>this.model.getDecorationRange(N)).sort(I.Range.compareRangesUsingStarts);let T=1,M=0,A=-1,P=A+1=T&&O<=M,x=(0,b.createModelLineProjection)(S[N],!F);L[N]=x.getViewLineCount(),this.modelLineProjections[N]=x}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new p.ConstantTimePrefixSumComputer(L)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(r=>this.model.getDecorationRange(r))}setHiddenAreas(r){const u=r.map(M=>this.model.validateRange(M)),C=t(u),f=this.hiddenAreasDecorationIds.map(M=>this.model.getDecorationRange(M)).sort(I.Range.compareRangesUsingStarts);if(C.length===f.length){let M=!1;for(let A=0;A({range:M,options:y.ModelDecorationOptions.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,h);const v=C;let w=1,S=0,L=-1,D=L+1=w&&A<=S?this.modelLineProjections[M].isVisible()&&(this.modelLineProjections[M]=this.modelLineProjections[M].setVisible(!1),P=!0):(T=!0,this.modelLineProjections[M].isVisible()||(this.modelLineProjections[M]=this.modelLineProjections[M].setVisible(!0),P=!0)),P){const N=this.modelLineProjections[M].getViewLineCount();this.projectedModelLineLineCounts.setValue(M,N)}}return T||this.setHiddenAreas([]),!0}modelPositionIsVisible(r,u){return r<1||r>this.modelLineProjections.length?!1:this.modelLineProjections[r-1].isVisible()}getModelLineViewLineCount(r){return r<1||r>this.modelLineProjections.length?1:this.modelLineProjections[r-1].getViewLineCount()}setTabSize(r){return this.tabSize===r?!1:(this.tabSize=r,this._constructLines(!1,null),!0)}setWrappingSettings(r,u,C,f,h){const v=this.fontInfo.equals(r),w=this.wrappingStrategy===u,S=this.wrappingColumn===C,L=this.wrappingIndent===f,D=this.wordBreak===h;if(v&&w&&S&&L&&D)return!1;const T=v&&w&&!S&&L&&D;this.fontInfo=r,this.wrappingStrategy=u,this.wrappingColumn=C,this.wrappingIndent=f,this.wordBreak=h;let M=null;if(T){M=[];for(let A=0,P=this.modelLineProjections.length;A2&&!this.modelLineProjections[u-2].isVisible(),v=u===1?1:this.projectedModelLineLineCounts.getPrefixSum(u-1)+1;let w=0;const S=[],L=[];for(let D=0,T=f.length;DS?(D=this.projectedModelLineLineCounts.getPrefixSum(u-1)+1,T=D+S-1,P=T+1,N=P+(h-S)-1,L=!0):hu?u:r|0}getActiveIndentGuide(r,u,C){r=this._toValidViewLineNumber(r),u=this._toValidViewLineNumber(u),C=this._toValidViewLineNumber(C);const f=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),h=this.convertViewPositionToModelPosition(u,this.getViewLineMinColumn(u)),v=this.convertViewPositionToModelPosition(C,this.getViewLineMinColumn(C)),w=this.model.guides.getActiveIndentGuide(f.lineNumber,h.lineNumber,v.lineNumber),S=this.convertModelPositionToViewPosition(w.startLineNumber,1),L=this.convertModelPositionToViewPosition(w.endLineNumber,this.model.getLineMaxColumn(w.endLineNumber));return{startLineNumber:S.lineNumber,endLineNumber:L.lineNumber,indent:w.indent}}getViewLineInfo(r){r=this._toValidViewLineNumber(r);const u=this.projectedModelLineLineCounts.getIndexOf(r-1),C=u.index,f=u.remainder;return new i(C+1,f)}getMinColumnOfViewLine(r){return this.modelLineProjections[r.modelLineNumber-1].getViewLineMinColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(r){return this.modelLineProjections[r.modelLineNumber-1].getViewLineMaxColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(r){const u=this.modelLineProjections[r.modelLineNumber-1],C=u.getViewLineMinColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx),f=u.getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,C);return new k.Position(r.modelLineNumber,f)}getModelEndPositionOfViewLine(r){const u=this.modelLineProjections[r.modelLineNumber-1],C=u.getViewLineMaxColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx),f=u.getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,C);return new k.Position(r.modelLineNumber,f)}getViewLineInfosGroupedByModelRanges(r,u){const C=this.getViewLineInfo(r),f=this.getViewLineInfo(u),h=new Array;let v=this.getModelStartPositionOfViewLine(C),w=new Array;for(let S=C.modelLineNumber;S<=f.modelLineNumber;S++){const L=this.modelLineProjections[S-1];if(L.isVisible()){const D=S===C.modelLineNumber?C.modelLineWrappedLineIdx:0,T=S===f.modelLineNumber?f.modelLineWrappedLineIdx+1:L.getViewLineCount();for(let M=D;M{if(A.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.forWrappedLinesAfterColumn).lineNumber>=D.modelLineWrappedLineIdx||A.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.forWrappedLinesBeforeOrAtColumn).lineNumberD.modelLineWrappedLineIdx)return}const N=this.convertModelPositionToViewPosition(D.modelLineNumber,A.horizontalLine.endColumn),O=this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.horizontalLine.endColumn);return O.lineNumber===D.modelLineWrappedLineIdx?new E.IndentGuide(A.visibleColumn,P,A.className,new E.IndentGuideHorizontalLine(A.horizontalLine.top,N.column),-1,-1):O.lineNumber!!A))}}return v}getViewLinesIndentGuides(r,u){r=this._toValidViewLineNumber(r),u=this._toValidViewLineNumber(u);const C=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),f=this.convertViewPositionToModelPosition(u,this.getViewLineMaxColumn(u));let h=[];const v=[],w=[],S=C.lineNumber-1,L=f.lineNumber-1;let D=null;for(let P=S;P<=L;P++){const N=this.modelLineProjections[P];if(N.isVisible()){const O=N.getViewLineNumberOfModelPosition(0,P===S?C.column:1),F=N.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(P+1)),x=F-O+1;let W=0;x>1&&N.getViewLineMinColumn(this.model,P+1,F)===1&&(W=O===0?1:2),v.push(x),w.push(W),D===null&&(D=new k.Position(P+1,0))}else D!==null&&(h=h.concat(this.model.guides.getLinesIndentGuides(D.lineNumber,P)),D=null)}D!==null&&(h=h.concat(this.model.guides.getLinesIndentGuides(D.lineNumber,f.lineNumber)),D=null);const T=u-r+1,M=new Array(T);let A=0;for(let P=0,N=h.length;Pu&&(P=!0,A=u-h+1),T.getViewLinesData(this.model,L+1,M,A,h-r,C,S),h+=A,P)break}return S}validateViewPosition(r,u,C){r=this._toValidViewLineNumber(r);const f=this.projectedModelLineLineCounts.getIndexOf(r-1),h=f.index,v=f.remainder,w=this.modelLineProjections[h],S=w.getViewLineMinColumn(this.model,h+1,v),L=w.getViewLineMaxColumn(this.model,h+1,v);uL&&(u=L);const D=w.getModelColumnOfViewPosition(v,u);return this.model.validatePosition(new k.Position(h+1,D)).equals(C)?new k.Position(r,u):this.convertModelPositionToViewPosition(C.lineNumber,C.column)}validateViewRange(r,u){const C=this.validateViewPosition(r.startLineNumber,r.startColumn,u.getStartPosition()),f=this.validateViewPosition(r.endLineNumber,r.endColumn,u.getEndPosition());return new I.Range(C.lineNumber,C.column,f.lineNumber,f.column)}convertViewPositionToModelPosition(r,u){const C=this.getViewLineInfo(r),f=this.modelLineProjections[C.modelLineNumber-1].getModelColumnOfViewPosition(C.modelLineWrappedLineIdx,u);return this.model.validatePosition(new k.Position(C.modelLineNumber,f))}convertViewRangeToModelRange(r){const u=this.convertViewPositionToModelPosition(r.startLineNumber,r.startColumn),C=this.convertViewPositionToModelPosition(r.endLineNumber,r.endColumn);return new I.Range(u.lineNumber,u.column,C.lineNumber,C.column)}convertModelPositionToViewPosition(r,u,C=2,f=!1,h=!1){const v=this.model.validatePosition(new k.Position(r,u)),w=v.lineNumber,S=v.column;let L=w-1,D=!1;if(h)for(;L0&&!this.modelLineProjections[L].isVisible();)L--,D=!0;if(L===0&&!this.modelLineProjections[L].isVisible())return new k.Position(f?0:1,1);const T=1+this.projectedModelLineLineCounts.getPrefixSum(L);let M;return D?h?M=this.modelLineProjections[L].getViewPositionOfModelPosition(T,1,C):M=this.modelLineProjections[L].getViewPositionOfModelPosition(T,this.model.getLineMaxColumn(L+1),C):M=this.modelLineProjections[w-1].getViewPositionOfModelPosition(T,S,C),M}convertModelRangeToViewRange(r,u=0){if(r.isEmpty()){const C=this.convertModelPositionToViewPosition(r.startLineNumber,r.startColumn,u);return I.Range.fromPositions(C)}else{const C=this.convertModelPositionToViewPosition(r.startLineNumber,r.startColumn,1),f=this.convertModelPositionToViewPosition(r.endLineNumber,r.endColumn,0);return new I.Range(C.lineNumber,C.column,f.lineNumber,f.column)}}getViewLineNumberOfModelPosition(r,u){let C=r-1;if(this.modelLineProjections[C].isVisible()){const h=1+this.projectedModelLineLineCounts.getPrefixSum(C);return this.modelLineProjections[C].getViewLineNumberOfModelPosition(h,u)}for(;C>0&&!this.modelLineProjections[C].isVisible();)C--;if(C===0&&!this.modelLineProjections[C].isVisible())return 1;const f=1+this.projectedModelLineLineCounts.getPrefixSum(C);return this.modelLineProjections[C].getViewLineNumberOfModelPosition(f,this.model.getLineMaxColumn(C+1))}getDecorationsInRange(r,u,C,f,h){const v=this.convertViewPositionToModelPosition(r.startLineNumber,r.startColumn),w=this.convertViewPositionToModelPosition(r.endLineNumber,r.endColumn);if(w.lineNumber-v.lineNumber<=r.endLineNumber-r.startLineNumber)return this.model.getDecorationsInRange(new I.Range(v.lineNumber,1,w.lineNumber,w.column),u,C,f,h);let S=[];const L=v.lineNumber-1,D=w.lineNumber-1;let T=null;for(let N=L;N<=D;N++)if(this.modelLineProjections[N].isVisible())T===null&&(T=new k.Position(N+1,N===L?v.column:1));else if(T!==null){const F=this.model.getLineMaxColumn(N);S=S.concat(this.model.getDecorationsInRange(new I.Range(T.lineNumber,T.column,N,F),u,C,f)),T=null}T!==null&&(S=S.concat(this.model.getDecorationsInRange(new I.Range(T.lineNumber,T.column,w.lineNumber,w.column),u,C,f)),T=null),S.sort((N,O)=>{const F=I.Range.compareRangesUsingStarts(N.range,O.range);return F===0?N.idO.id?1:0:F});const M=[];let A=0,P=null;for(const N of S){const O=N.id;P!==O&&(P=O,M[A++]=N)}return M}getInjectedTextAt(r){const u=this.getViewLineInfo(r.lineNumber);return this.modelLineProjections[u.modelLineNumber-1].getInjectedTextAt(u.modelLineWrappedLineIdx,r.column)}normalizePosition(r,u){const C=this.getViewLineInfo(r.lineNumber);return this.modelLineProjections[C.modelLineNumber-1].normalizePosition(C.modelLineWrappedLineIdx,r,u)}getLineIndentColumn(r){const u=this.getViewLineInfo(r);return u.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(u.modelLineNumber):0}}e.ViewModelLinesFromProjectedModel=o;function t(a){if(a.length===0)return[];const r=a.slice();r.sort(I.Range.compareRangesUsingStarts);const u=[];let C=r[0].startLineNumber,f=r[0].endLineNumber;for(let h=1,v=r.length;hf+1?(u.push(new I.Range(C,1,f,1)),C=w.startLineNumber,f=w.endLineNumber):w.endLineNumber>f&&(f=w.endLineNumber)}return u.push(new I.Range(C,1,f,1)),u}class i{constructor(r,u){this.modelLineNumber=r,this.modelLineWrappedLineIdx=u}}class s{constructor(r,u){this.modelRange=r,this.viewLines=u}}class g{constructor(r){this._lines=r}convertViewPositionToModelPosition(r){return this._lines.convertViewPositionToModelPosition(r.lineNumber,r.column)}convertViewRangeToModelRange(r){return this._lines.convertViewRangeToModelRange(r)}validateViewPosition(r,u){return this._lines.validateViewPosition(r.lineNumber,r.column,u)}validateViewRange(r,u){return this._lines.validateViewRange(r,u)}convertModelPositionToViewPosition(r,u,C,f){return this._lines.convertModelPositionToViewPosition(r.lineNumber,r.column,u,C,f)}convertModelRangeToViewRange(r,u){return this._lines.convertModelRangeToViewRange(r,u)}modelPositionIsVisible(r){return this._lines.modelPositionIsVisible(r.lineNumber,r.column)}getModelLineViewLineCount(r){return this._lines.getModelLineViewLineCount(r)}getViewLineNumberOfModelPosition(r,u){return this._lines.getViewLineNumberOfModelPosition(r,u)}}class c{constructor(r){this.model=r}dispose(){}createCoordinatesConverter(){return new l(this)}getHiddenAreas(){return[]}setHiddenAreas(r){return!1}setTabSize(r){return!1}setWrappingSettings(r,u,C,f){return!1}createLineBreaksComputer(){const r=[];return{addRequest:(u,C,f)=>{r.push(null)},finalize:()=>r}}onModelFlushed(){}onModelLinesDeleted(r,u,C){return new _.ViewLinesDeletedEvent(u,C)}onModelLinesInserted(r,u,C,f){return new _.ViewLinesInsertedEvent(u,C)}onModelLineChanged(r,u,C){return[!1,new _.ViewLinesChangedEvent(u,1),null,null]}acceptVersionId(r){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(r,u,C){return{startLineNumber:r,endLineNumber:r,indent:0}}getViewLinesBracketGuides(r,u,C){return new Array(u-r+1).fill([])}getViewLinesIndentGuides(r,u){const C=u-r+1,f=new Array(C);for(let h=0;hu)}getModelLineViewLineCount(r){return 1}getViewLineNumberOfModelPosition(r,u){return r}}}),define(ne[810],se([1,0,13,14,33,2,16,11,37,706,76,9,4,132,27,70,369,243,606,374,95,375,244,809,601]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModel=void 0;const v=!0;class w extends E.Disposable{constructor(N,O,F,x,W,V,q,H,z,U){if(super(),this.languageConfigurationService=q,this._themeService=H,this._attachedView=z,this._transactionalTarget=U,this.hiddenAreasModel=new D,this.previousHiddenAreas=[],this._editorId=N,this._configuration=O,this.model=F,this._eventDispatcher=new C.ViewModelEventDispatcher,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new k.RunOnceScheduler(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=S.create(this.model),this.glyphLanes=new h.GlyphMarginLanesModel(0),v&&this.model.isTooLargeForTokenization())this._lines=new f.ViewModelLinesFromModelAsIs(this.model);else{const j=this._configuration.options,Y=j.get(50),G=j.get(140),K=j.get(147),R=j.get(139),J=j.get(130);this._lines=new f.ViewModelLinesFromProjectedModel(this._editorId,this.model,x,W,Y,this.model.getOptions().tabSize,G,K.wrappingColumn,R,J)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new b.CursorsController(F,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new l.ViewLayout(this._configuration,this.getLineCount(),V)),this._register(this.viewLayout.onDidScroll(j=>{j.scrollTopChanged&&this._handleVisibleLinesChanged(),j.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new c.ViewScrollChangedEvent(j)),this._eventDispatcher.emitOutgoingEvent(new C.ScrollChangedEvent(j.oldScrollWidth,j.oldScrollLeft,j.oldScrollHeight,j.oldScrollTop,j.scrollWidth,j.scrollLeft,j.scrollHeight,j.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(j=>{this._eventDispatcher.emitOutgoingEvent(j)})),this._decorations=new u.ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(j=>{try{const Y=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(Y,j)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(a.MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new c.ViewTokensColorsChangedEvent)})),this._register(this._themeService.onDidColorThemeChange(j=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new c.ViewThemeChangedEvent(j))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(N){this._eventDispatcher.addViewEventHandler(N)}removeViewEventHandler(N){this._eventDispatcher.removeViewEventHandler(N)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const N=this.viewLayout.getLinesViewportData(),O=new o.Range(N.startLineNumber,this.getLineMinColumn(N.startLineNumber),N.endLineNumber,this.getLineMaxColumn(N.endLineNumber));return this._toModelVisibleRanges(O)}visibleLinesStabilized(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!0)}_handleVisibleLinesChanged(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!1)}setHasFocus(N){this._hasFocus=N,this._cursor.setHasFocus(N),this._eventDispatcher.emitSingleViewEvent(new c.ViewFocusChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new C.FocusChangedEvent(!N,N))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new c.ViewCompositionStartEvent)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new c.ViewCompositionEndEvent)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const N=new n.Position(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),O=this.coordinatesConverter.convertViewPositionToModelPosition(N);return new A(O,this._viewportStart.startLineDelta)}return new A(null,0)}_onConfigurationChanged(N,O){const F=this._captureStableViewport(),x=this._configuration.options,W=x.get(50),V=x.get(140),q=x.get(147),H=x.get(139),z=x.get(130);this._lines.setWrappingSettings(W,V,q.wrappingColumn,H,z)&&(N.emitViewEvent(new c.ViewFlushedEvent),N.emitViewEvent(new c.ViewLineMappingChangedEvent),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(N),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),O.hasChanged(92)&&(this._decorations.reset(),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null))),O.hasChanged(99)&&(this._decorations.reset(),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null))),N.emitViewEvent(new c.ViewConfigurationChangedEvent(O)),this.viewLayout.onConfigurationChanged(O),F.recoverViewportStart(this.coordinatesConverter,this.viewLayout),p.CursorConfiguration.shouldRecreate(O)&&(this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(N=>{try{const F=this._eventDispatcher.beginEmitViewEvents();let x=!1,W=!1;const V=N instanceof t.InternalModelContentChangeEvent?N.rawContentChangedEvent.changes:N.changes,q=N instanceof t.InternalModelContentChangeEvent?N.rawContentChangedEvent.versionId:null,H=this._lines.createLineBreaksComputer();for(const j of V)switch(j.changeType){case 4:{for(let Y=0;Y!R.ownerId||R.ownerId===this._editorId)),H.addRequest(G,K,null)}break}case 2:{let Y=null;j.injectedText&&(Y=j.injectedText.filter(G=>!G.ownerId||G.ownerId===this._editorId)),H.addRequest(j.detail,Y,null);break}}const z=H.finalize(),U=new d.ArrayQueue(z);for(const j of V)switch(j.changeType){case 1:{this._lines.onModelFlushed(),F.emitViewEvent(new c.ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),x=!0;break}case 3:{const Y=this._lines.onModelLinesDeleted(q,j.fromLineNumber,j.toLineNumber);Y!==null&&(F.emitViewEvent(Y),this.viewLayout.onLinesDeleted(Y.fromLineNumber,Y.toLineNumber)),x=!0;break}case 4:{const Y=U.takeCount(j.detail.length),G=this._lines.onModelLinesInserted(q,j.fromLineNumber,j.toLineNumber,Y);G!==null&&(F.emitViewEvent(G),this.viewLayout.onLinesInserted(G.fromLineNumber,G.toLineNumber)),x=!0;break}case 2:{const Y=U.dequeue(),[G,K,R,J]=this._lines.onModelLineChanged(q,j.lineNumber,Y);W=G,K&&F.emitViewEvent(K),R&&(F.emitViewEvent(R),this.viewLayout.onLinesInserted(R.fromLineNumber,R.toLineNumber)),J&&(F.emitViewEvent(J),this.viewLayout.onLinesDeleted(J.fromLineNumber,J.toLineNumber));break}case 5:break}q!==null&&this._lines.acceptVersionId(q),this.viewLayout.onHeightMaybeChanged(),!x&&W&&(F.emitViewEvent(new c.ViewLineMappingChangedEvent),F.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(F),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const O=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&O){const F=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(F){const x=this.coordinatesConverter.convertModelPositionToViewPosition(F.getStartPosition()),W=this.viewLayout.getVerticalOffsetForLineNumber(x.lineNumber);this.viewLayout.setScrollPosition({scrollTop:W+this._viewportStart.startLineDelta},1)}}try{const F=this._eventDispatcher.beginEmitViewEvents();N instanceof t.InternalModelContentChangeEvent&&F.emitOutgoingEvent(new C.ModelContentChangedEvent(N.contentChangedEvent)),this._cursor.onModelContentChanged(F,N)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(N=>{const O=[];for(let F=0,x=N.ranges.length;F{this._eventDispatcher.emitSingleViewEvent(new c.ViewLanguageConfigurationEvent),this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelLanguageConfigurationChangedEvent(N))})),this._register(this.model.onDidChangeLanguage(N=>{this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelLanguageChangedEvent(N))})),this._register(this.model.onDidChangeOptions(N=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const O=this._eventDispatcher.beginEmitViewEvents();O.emitViewEvent(new c.ViewFlushedEvent),O.emitViewEvent(new c.ViewLineMappingChangedEvent),O.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(O),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelOptionsChangedEvent(N))})),this._register(this.model.onDidChangeDecorations(N=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new c.ViewDecorationsChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new C.ModelDecorationsChangedEvent(N))}))}setHiddenAreas(N,O){this.hiddenAreasModel.setHiddenAreas(O,N);const F=this.hiddenAreasModel.getMergedRanges();if(F===this.previousHiddenAreas)return;this.previousHiddenAreas=F;const x=this._captureStableViewport();let W=!1;try{const V=this._eventDispatcher.beginEmitViewEvents();W=this._lines.setHiddenAreas(F),W&&(V.emitViewEvent(new c.ViewFlushedEvent),V.emitViewEvent(new c.ViewLineMappingChangedEvent),V.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(V),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const q=x.viewportStartModelPosition?.lineNumber;q&&F.some(z=>z.startLineNumber<=q&&q<=z.endLineNumber)||x.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),W&&this._eventDispatcher.emitOutgoingEvent(new C.HiddenAreasChangedEvent)}getVisibleRangesPlusViewportAboveBelow(){const N=this._configuration.options.get(146),O=this._configuration.options.get(67),F=Math.max(20,Math.round(N.height/O)),x=this.viewLayout.getLinesViewportData(),W=Math.max(1,x.completelyVisibleStartLineNumber-F),V=Math.min(this.getLineCount(),x.completelyVisibleEndLineNumber+F);return this._toModelVisibleRanges(new o.Range(W,this.getLineMinColumn(W),V,this.getLineMaxColumn(V)))}getVisibleRanges(){const N=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(N)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(N){const O=this.coordinatesConverter.convertViewRangeToModelRange(N),F=this._lines.getHiddenAreas();if(F.length===0)return[O];const x=[];let W=0,V=O.startLineNumber,q=O.startColumn;const H=O.endLineNumber,z=O.endColumn;for(let U=0,j=F.length;UH||(V"u")return this._reduceRestoreStateCompatibility(N);const O=this.model.validatePosition(N.firstPosition),F=this.coordinatesConverter.convertModelPositionToViewPosition(O),x=this.viewLayout.getVerticalOffsetForLineNumber(F.lineNumber)-N.firstPositionDeltaTop;return{scrollLeft:N.scrollLeft,scrollTop:x}}_reduceRestoreStateCompatibility(N){return{scrollLeft:N.scrollLeft,scrollTop:N.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(N,O,F){this._viewportStart.update(this,N)}getActiveIndentGuide(N,O,F){return this._lines.getActiveIndentGuide(N,O,F)}getLinesIndentGuides(N,O){return this._lines.getViewLinesIndentGuides(N,O)}getBracketGuidesInRangeByLine(N,O,F,x){return this._lines.getViewLinesBracketGuides(N,O,F,x)}getLineContent(N){return this._lines.getViewLineContent(N)}getLineLength(N){return this._lines.getViewLineLength(N)}getLineMinColumn(N){return this._lines.getViewLineMinColumn(N)}getLineMaxColumn(N){return this._lines.getViewLineMaxColumn(N)}getLineFirstNonWhitespaceColumn(N){const O=m.firstNonWhitespaceIndex(this.getLineContent(N));return O===-1?0:O+1}getLineLastNonWhitespaceColumn(N){const O=m.lastNonWhitespaceIndex(this.getLineContent(N));return O===-1?0:O+2}getMinimapDecorationsInRange(N){return this._decorations.getMinimapDecorationsInRange(N)}getDecorationsInViewport(N){return this._decorations.getDecorationsViewportData(N).decorations}getInjectedTextAt(N){return this._lines.getInjectedTextAt(N)}getViewportViewLineRenderingData(N,O){const x=this._decorations.getDecorationsViewportData(N).inlineDecorations[O-N.startLineNumber];return this._getViewLineRenderingData(O,x)}getViewLineRenderingData(N){const O=this._decorations.getInlineDecorationsOnLine(N);return this._getViewLineRenderingData(N,O)}_getViewLineRenderingData(N,O){const F=this.model.mightContainRTL(),x=this.model.mightContainNonBasicASCII(),W=this.getTabSize(),V=this._lines.getViewLineData(N);return V.inlineDecorations&&(O=[...O,...V.inlineDecorations.map(q=>q.toInlineDecoration(N))]),new r.ViewLineRenderingData(V.minColumn,V.maxColumn,V.content,V.continuesWithWrappedLine,F,x,V.tokens,O,W,V.startVisibleColumn)}getViewLineData(N){return this._lines.getViewLineData(N)}getMinimapLinesRenderingData(N,O,F){const x=this._lines.getViewLinesData(N,O,F);return new r.MinimapLinesRenderingData(this.getTabSize(),x)}getAllOverviewRulerDecorations(N){const O=this.model.getOverviewRulerDecorations(this._editorId,(0,_.filterValidationDecorations)(this._configuration.options)),F=new L;for(const x of O){const W=x.options,V=W.overviewRuler;if(!V)continue;const q=V.position;if(q===0)continue;const H=V.getColor(N.value),z=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.startLineNumber,x.range.startColumn),U=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.endLineNumber,x.range.endColumn);F.accept(H,W.zIndex,z,U,q)}return F.asArray}_invalidateDecorationsColorCache(){const N=this.model.getOverviewRulerDecorations();for(const O of N)O.options.overviewRuler?.invalidateCachedColor(),O.options.minimap?.invalidateCachedColor()}getValueInRange(N,O){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueInRange(F,O)}getValueLengthInRange(N,O){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueLengthInRange(F,O)}modifyPosition(N,O){const F=this.coordinatesConverter.convertViewPositionToModelPosition(N),x=this.model.modifyPosition(F,O);return this.coordinatesConverter.convertModelPositionToViewPosition(x)}deduceModelPositionRelativeToViewPosition(N,O,F){const x=this.coordinatesConverter.convertViewPositionToModelPosition(N);this.model.getEOL().length===2&&(O<0?O-=F:O+=F);const V=this.model.getOffsetAt(x)+O;return this.model.getPositionAt(V)}getPlainTextToCopy(N,O,F){const x=F?`\r -`:this.model.getEOL();N=N.slice(0),N.sort(o.Range.compareRangesUsingStarts);let W=!1,V=!1;for(const H of N)H.isEmpty()?W=!0:V=!0;if(!V){if(!O)return"";const H=N.map(U=>U.startLineNumber);let z="";for(let U=0;U0&&H[U-1]===H[U]||(z+=this.model.getLineContent(H[U])+x);return z}if(W&&O){const H=[];let z=0;for(const U of N){const j=U.startLineNumber;U.isEmpty()?j!==z&&H.push(this.model.getLineContent(j)):H.push(this.model.getValueInRange(U,F?2:0)),z=j}return H.length===1?H[0]:H}const q=[];for(const H of N)H.isEmpty()||q.push(this.model.getValueInRange(H,F?2:0));return q.length===1?q[0]:q}getRichTextToCopy(N,O){const F=this.model.getLanguageId();if(F===s.PLAINTEXT_LANGUAGE_ID||N.length!==1)return null;let x=N[0];if(x.isEmpty()){if(!O)return null;const U=x.startLineNumber;x=new o.Range(U,this.model.getLineMinColumn(U),U,this.model.getLineMaxColumn(U))}const W=this._configuration.options.get(50),V=this._getColorMap(),H=/[:;\\\/<>]/.test(W.fontFamily)||W.fontFamily===_.EDITOR_FONT_DEFAULTS.fontFamily;let z;return H?z=_.EDITOR_FONT_DEFAULTS.fontFamily:(z=W.fontFamily,z=z.replace(/"/g,"'"),/[,']/.test(z)||/[+ ]/.test(z)&&(z=`'${z}'`),z=`${z}, ${_.EDITOR_FONT_DEFAULTS.fontFamily}`),{mode:F,html:`
    `+this._getHTMLToCopy(x,V)+"
    "}}_getHTMLToCopy(N,O){const F=N.startLineNumber,x=N.startColumn,W=N.endLineNumber,V=N.endColumn,q=this.getTabSize();let H="";for(let z=F;z<=W;z++){const U=this.model.tokenization.getLineTokens(z),j=U.getLineContent(),Y=z===F?x-1:0,G=z===W?V-1:j.length;j===""?H+="
    ":H+=(0,g.tokenizeLineToHTML)(j,U.inflate(),O,Y,G,q,y.isWindows)}return H}_getColorMap(){const N=i.TokenizationRegistry.getColorMap(),O=["#000000"];if(N)for(let F=1,x=N.length;Fthis._cursor.setStates(x,N,O,F))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(N){this._cursor.setCursorColumnSelectData(N)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(N){this._cursor.setPrevEditOperationType(N)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(N,O,F=0){this._withViewEventsCollector(x=>this._cursor.setSelections(x,N,O,F))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(N){this._withViewEventsCollector(O=>this._cursor.restoreState(O,N))}_executeCursorEdit(N){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new C.ReadOnlyEditAttemptEvent);return}this._withViewEventsCollector(N)}executeEdits(N,O,F){this._executeCursorEdit(x=>this._cursor.executeEdits(x,N,O,F))}startComposition(){this._executeCursorEdit(N=>this._cursor.startComposition(N))}endComposition(N){this._executeCursorEdit(O=>this._cursor.endComposition(O,N))}type(N,O){this._executeCursorEdit(F=>this._cursor.type(F,N,O))}compositionType(N,O,F,x,W){this._executeCursorEdit(V=>this._cursor.compositionType(V,N,O,F,x,W))}paste(N,O,F,x){this._executeCursorEdit(W=>this._cursor.paste(W,N,O,F,x))}cut(N){this._executeCursorEdit(O=>this._cursor.cut(O,N))}executeCommand(N,O){this._executeCursorEdit(F=>this._cursor.executeCommand(F,N,O))}executeCommands(N,O){this._executeCursorEdit(F=>this._cursor.executeCommands(F,N,O))}revealAllCursors(N,O,F=!1){this._withViewEventsCollector(x=>this._cursor.revealAll(x,N,F,0,O,0))}revealPrimaryCursor(N,O,F=!1){this._withViewEventsCollector(x=>this._cursor.revealPrimary(x,N,F,0,O,0))}revealTopMostCursor(N){const O=this._cursor.getTopMostViewPosition(),F=new o.Range(O.lineNumber,O.column,O.lineNumber,O.column);this._withViewEventsCollector(x=>x.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealBottomMostCursor(N){const O=this._cursor.getBottomMostViewPosition(),F=new o.Range(O.lineNumber,O.column,O.lineNumber,O.column);this._withViewEventsCollector(x=>x.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealRange(N,O,F,x,W){this._withViewEventsCollector(V=>V.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,x,O,W)))}changeWhitespace(N){this.viewLayout.changeWhitespace(N)&&(this._eventDispatcher.emitSingleViewEvent(new c.ViewZonesChangedEvent),this._eventDispatcher.emitOutgoingEvent(new C.ViewZonesChangedEvent))}_withViewEventsCollector(N){return this._transactionalTarget.batchChanges(()=>{try{const O=this._eventDispatcher.beginEmitViewEvents();return N(O)}finally{this._eventDispatcher.endEmitViewEvents()}})}batchEvents(N){this._withViewEventsCollector(()=>{N()})}normalizePosition(N,O){return this._lines.normalizePosition(N,O)}getLineIndentColumn(N){return this._lines.getLineIndentColumn(N)}}e.ViewModel=w;class S{static create(N){const O=N._setTrackedRange(null,new o.Range(1,1,1,1),1);return new S(N,1,!1,O,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(N,O,F,x,W){this._model=N,this._viewLineNumber=O,this._isValid=F,this._modelTrackedRange=x,this._startLineDelta=W}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(N,O){const F=N.coordinatesConverter.convertViewPositionToModelPosition(new n.Position(O,N.getLineMinColumn(O))),x=N.model._setTrackedRange(this._modelTrackedRange,new o.Range(F.lineNumber,F.column,F.lineNumber,F.column),1),W=N.viewLayout.getVerticalOffsetForLineNumber(O),V=N.viewLayout.getCurrentScrollTop();this._viewLineNumber=O,this._isValid=!0,this._modelTrackedRange=x,this._startLineDelta=V-W}invalidate(){this._isValid=!1}}class L{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(N,O,F,x,W){const V=this._asMap[N];if(V){const q=V.data,H=q[q.length-3],z=q[q.length-1];if(H===W&&z+1>=F){x>z&&(q[q.length-1]=x);return}q.push(W,F,x)}else{const q=new r.OverviewRulerDecorationsGroup(N,O,[W,F,x]);this._asMap[N]=q,this.asArray.push(q)}}}class D{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(N,O){const F=this.hiddenAreas.get(N);F&&M(F,O)||(this.hiddenAreas.set(N,O),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const N=Array.from(this.hiddenAreas.values()).reduce((O,F)=>T(O,F),[]);return M(this.ranges,N)?this.ranges:(this.ranges=N,this.ranges)}}function T(P,N){const O=[];let F=0,x=0;for(;F{this._onDidChangeConfiguration.fire(Ne);const Ke=this._configuration.options;if(Ne.hasChanged(146)){const ze=Ke.get(146);this._onDidLayoutChange.fire(ze)}})),this._contextKeyService=this._register(re.createScoped(this._domElement)),this._notificationService=me,this._codeEditorService=Z,this._commandService=te,this._themeService=le,this._register(new K(this,this._contextKeyService)),this._register(new R(this,this._contextKeyService,Le)),this._instantiationService=this._register(Q.createChild(new F.ServiceCollection([N.IContextKeyService,this._contextKeyService]))),this._modelData=null,this._focusTracker=new J(X,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let Me;Array.isArray($.contributions)?Me=$.contributions:Me=p.EditorExtensionsRegistry.getEditorContributions(),this._contributions.initialize(this,Me,this._instantiationService);for(const Ne of p.EditorExtensionsRegistry.getEditorActions()){if(this._actions.has(Ne.id)){(0,k.onUnexpectedError)(new Error(`Cannot have two actions with the same id ${Ne.id}`));continue}const Ke=new f.InternalEditorAction(Ne.id,Ne.label,Ne.alias,Ne.metadata,Ne.precondition??void 0,ze=>this._instantiationService.invokeFunction(Ge=>Promise.resolve(Ne.runEditorCommand(Ge,this,ze))),this._contextKeyService);this._actions.set(Ke.id,Ke)}const Ae=()=>!this._configuration.options.get(92)&&this._configuration.options.get(36).enabled;this._register(new d.DragAndDropObserver(this._domElement,{onDragOver:Ne=>{if(!Ae())return;const Ke=this.getTargetAtClientPoint(Ne.clientX,Ne.clientY);Ke?.position&&this.showDropIndicatorAt(Ke.position)},onDrop:async Ne=>{if(!Ae()||(this.removeDropIndicator(),!Ne.dataTransfer))return;const Ke=this.getTargetAtClientPoint(Ne.clientX,Ne.clientY);Ke?.position&&this._onDropIntoEditor.fire({position:Ke.position,event:Ne})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(X){this._modelData?.view.writeScreenReaderContent(X)}_createConfiguration(X,B,$,Q){return new _.EditorConfiguration(X,B,$,this._domElement,Q)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return h.EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(X){return this._instantiationService.invokeFunction(X)}updateOptions(X){this._configuration.updateOptions(X||{})}getOptions(){return this._configuration.options}getOption(X){return this._configuration.options.get(X)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(X){return this._modelData?C.WordOperations.getWordAtPosition(this._modelData.model,this._configuration.options.get(132),this._configuration.options.get(131),X):null}getValue(X=null){if(!this._modelData)return"";const B=!!(X&&X.preserveBOM);let $=0;return X&&X.lineEnding&&X.lineEnding===` -`?$=1:X&&X.lineEnding&&X.lineEnding===`\r -`&&($=2),this._modelData.model.getValue($,B)}setValue(X){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(X)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(X=null){try{this._beginUpdate();const B=X;if(this._modelData===null&&B===null||this._modelData&&this._modelData.model===B)return;const $={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:B?.uri||null};this._onWillChangeModel.fire($);const Q=this.hasTextFocus(),Z=this._detachModel();this._attachModel(B),Q&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire($),this._postDetachModelCleanup(Z),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const X in this._decorationTypeSubtypes){const B=this._decorationTypeSubtypes[X];for(const $ in B)this._removeDecorationType(X+"-"+$)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(X,B,$,Q){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(te.lineNumber,Q)}getTopForLineNumber(X,B=!1){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,1,B):-1}getTopForPosition(X,B){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,B,!1):-1}static _getVerticalOffsetForPosition(X,B,$,Q=!1){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetForLineNumber(te.lineNumber,Q)}getBottomForLineNumber(X,B=!1){if(!this._modelData)return-1;const $=this._modelData.model.getLineMaxColumn(X);return H._getVerticalOffsetAfterPosition(this._modelData,X,$,B)}setHiddenAreas(X,B){this._modelData?.viewModel.setHiddenAreas(X.map($=>r.Range.lift($)),B)}getVisibleColumnFromPosition(X){if(!this._modelData)return X.column;const B=this._modelData.model.validatePosition(X),$=this._modelData.model.getOptions().tabSize;return c.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(B.lineNumber),B.column,$)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(X,B="api"){if(this._modelData){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(B,[{selectionStartLineNumber:X.lineNumber,selectionStartColumn:X.column,positionLineNumber:X.lineNumber,positionColumn:X.column}])}}_sendRevealRange(X,B,$,Q){if(!this._modelData)return;if(!r.Range.isIRange(X))throw new Error("Invalid arguments");const Z=this._modelData.model.validateRange(X),te=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(Z);this._modelData.viewModel.revealRange("api",$,te,B,Q)}revealLine(X,B=0){this._revealLine(X,0,B)}revealLineInCenter(X,B=0){this._revealLine(X,1,B)}revealLineInCenterIfOutsideViewport(X,B=0){this._revealLine(X,2,B)}revealLineNearTop(X,B=0){this._revealLine(X,5,B)}_revealLine(X,B,$){if(typeof X!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,X,1),B,!1,$)}revealPosition(X,B=0){this._revealPosition(X,0,!0,B)}revealPositionInCenter(X,B=0){this._revealPosition(X,1,!0,B)}revealPositionInCenterIfOutsideViewport(X,B=0){this._revealPosition(X,2,!0,B)}revealPositionNearTop(X,B=0){this._revealPosition(X,5,!0,B)}_revealPosition(X,B,$,Q){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),B,$,Q)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(X,B="api"){const $=u.Selection.isISelection(X),Q=r.Range.isIRange(X);if(!$&&!Q)throw new Error("Invalid arguments");if($)this._setSelectionImpl(X,B);else if(Q){const Z={selectionStartLineNumber:X.startLineNumber,selectionStartColumn:X.startColumn,positionLineNumber:X.endLineNumber,positionColumn:X.endColumn};this._setSelectionImpl(Z,B)}}_setSelectionImpl(X,B){if(!this._modelData)return;const $=new u.Selection(X.selectionStartLineNumber,X.selectionStartColumn,X.positionLineNumber,X.positionColumn);this._modelData.viewModel.setSelections(B,[$])}revealLines(X,B,$=0){this._revealLines(X,B,0,$)}revealLinesInCenter(X,B,$=0){this._revealLines(X,B,1,$)}revealLinesInCenterIfOutsideViewport(X,B,$=0){this._revealLines(X,B,2,$)}revealLinesNearTop(X,B,$=0){this._revealLines(X,B,5,$)}_revealLines(X,B,$,Q){if(typeof X!="number"||typeof B!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,B,1),$,!1,Q)}revealRange(X,B=0,$=!1,Q=!0){this._revealRange(X,$?1:0,Q,B)}revealRangeInCenter(X,B=0){this._revealRange(X,1,!0,B)}revealRangeInCenterIfOutsideViewport(X,B=0){this._revealRange(X,2,!0,B)}revealRangeNearTop(X,B=0){this._revealRange(X,5,!0,B)}revealRangeNearTopIfOutsideViewport(X,B=0){this._revealRange(X,6,!0,B)}revealRangeAtTop(X,B=0){this._revealRange(X,3,!0,B)}_revealRange(X,B,$,Q){if(!r.Range.isIRange(X))throw new Error("Invalid arguments");this._sendRevealRange(r.Range.lift(X),B,$,Q)}setSelections(X,B="api",$=0){if(this._modelData){if(!X||X.length===0)throw new Error("Invalid arguments");for(let Q=0,Z=X.length;Q0&&this._modelData.viewModel.restoreCursorState($):this._modelData.viewModel.restoreCursorState([$]),this._contributions.restoreViewState(B.contributionsState||{});const Q=this._modelData.viewModel.reduceRestoreState(B.viewState);this._modelData.view.restoreState(Q)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(X){return this._contributions.get(X)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let X=this.getActions();return X=X.filter(B=>B.isSupported()),X}getAction(X){return this._actions.get(X)||null}trigger(X,B,$){$=$||{};try{switch(this._beginUpdate(),B){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(X);return;case"type":{const Z=$;this._type(X,Z.text||"");return}case"replacePreviousChar":{const Z=$;this._compositionType(X,Z.text||"",Z.replaceCharCnt||0,0,0);return}case"compositionType":{const Z=$;this._compositionType(X,Z.text||"",Z.replacePrevCharCnt||0,Z.replaceNextCharCnt||0,Z.positionDelta||0);return}case"paste":{const Z=$;this._paste(X,Z.text||"",Z.pasteOnNewLine||!1,Z.multicursorText||null,Z.mode||null,Z.clipboardEvent);return}case"cut":this._cut(X);return}const Q=this.getAction(B);if(Q){Promise.resolve(Q.run($)).then(void 0,k.onUnexpectedError);return}if(!this._modelData||this._triggerEditorCommand(X,B,$))return;this._triggerCommand(B,$)}finally{this._endUpdate()}}_triggerCommand(X,B){this._commandService.executeCommand(X,B)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(X){this._modelData&&(this._modelData.viewModel.endComposition(X),this._onDidCompositionEnd.fire())}_type(X,B){!this._modelData||B.length===0||(X==="keyboard"&&this._onWillType.fire(B),this._modelData.viewModel.type(B,X),X==="keyboard"&&this._onDidType.fire(B))}_compositionType(X,B,$,Q,Z){this._modelData&&this._modelData.viewModel.compositionType(B,$,Q,Z,X)}_paste(X,B,$,Q,Z,te){if(!this._modelData)return;const re=this._modelData.viewModel,le=re.getSelection().getStartPosition();re.paste(B,$,Q,X);const me=re.getSelection().getStartPosition();X==="keyboard"&&this._onDidPaste.fire({clipboardEvent:te,range:new r.Range(le.lineNumber,le.column,me.lineNumber,me.column),languageId:Z})}_cut(X){this._modelData&&this._modelData.viewModel.cut(X)}_triggerEditorCommand(X,B,$){const Q=p.EditorExtensionsRegistry.getEditorCommand(B);return Q?($=$||{},$.source=X,this._instantiationService.invokeFunction(Z=>{Promise.resolve(Q.runEditorCommand(Z,this,$)).then(void 0,k.onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(X,B,$){if(!this._modelData||this._configuration.options.get(92))return!1;let Q;return $?Array.isArray($)?Q=()=>$:Q=$:Q=()=>null,this._modelData.viewModel.executeEdits(X,B,Q),!0}executeCommand(X,B){this._modelData&&this._modelData.viewModel.executeCommand(B,X)}executeCommands(X,B){this._modelData&&this._modelData.viewModel.executeCommands(B,X)}createDecorationsCollection(X){return new ie(this,X)}changeDecorations(X){return this._modelData?this._modelData.model.changeDecorations(X,this._id):null}getLineDecorations(X){return this._modelData?this._modelData.model.getLineDecorations(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}getDecorationsInRange(X){return this._modelData?this._modelData.model.getDecorationsInRange(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}deltaDecorations(X,B){return this._modelData?X.length===0&&B.length===0?X:this._modelData.model.deltaDecorations(X,B,this._id):[]}removeDecorations(X){!this._modelData||X.length===0||this._modelData.model.changeDecorations(B=>{B.deltaDecorations(X,[])})}removeDecorationsByType(X){const B=this._decorationTypeKeysToIds[X];B&&this.changeDecorations($=>$.deltaDecorations(B,[])),this._decorationTypeKeysToIds.hasOwnProperty(X)&&delete this._decorationTypeKeysToIds[X],this._decorationTypeSubtypes.hasOwnProperty(X)&&delete this._decorationTypeSubtypes[X]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(X){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(X)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(X)}delegateScrollFromMouseWheelEvent(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(X)}layout(X,B=!1){this._configuration.observeContainer(X),B||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(X){const B={widget:X,position:X.getPosition()};this._contentWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a content widget with the same id:"+X.getId()),this._contentWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(B)}layoutContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget($)}}removeContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];delete this._contentWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget($)}}addOverlayWidget(X){const B={widget:X,position:X.getPosition()};this._overlayWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(B)}layoutOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget($)}}removeOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];delete this._overlayWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget($)}}addGlyphMarginWidget(X){const B={widget:X,position:X.getPosition()};this._glyphMarginWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(B)}layoutGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget($)}}removeGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];delete this._glyphMarginWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget($)}}changeViewZones(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(X)}getTargetAtClientPoint(X,B){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(X,B)}getScrolledVisiblePosition(X){if(!this._modelData||!this._modelData.hasRealView)return null;const B=this._modelData.model.validatePosition(X),$=this._configuration.options,Q=$.get(146),Z=H._getVerticalOffsetForPosition(this._modelData,B.lineNumber,B.column)-this.getScrollTop(),te=this._modelData.view.getOffsetForColumn(B.lineNumber,B.column)+Q.glyphMarginWidth+Q.lineNumbersWidth+Q.decorationsWidth-this.getScrollLeft();return{top:Z,left:te,height:$.get(67)}}getOffsetForColumn(X,B){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(X,B)}render(X=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,X)})}setAriaOptions(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(X)}applyFontInfo(X){(0,m.applyFontInfo)(X,this._configuration.options.get(50))}setBanner(X,B){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),this._bannerDomNode=X,this._configuration.setReservedHeight(X?B:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(X){if(!X){this._modelData=null;return}const B=[];this._domElement.setAttribute("data-mode-id",X.getLanguageId()),this._configuration.setIsDominatedByLongLines(X.isDominatedByLongLines()),this._configuration.setModelLineCount(X.getLineCount());const $=X.onBeforeAttached(),Q=new T.ViewModel(this._id,this._configuration,X,t.DOMLineBreaksComputerFactory.create(d.getWindow(this._domElement)),D.MonospaceLineBreaksComputerFactory.create(this._configuration.options),re=>d.scheduleAtNextAnimationFrame(d.getWindow(this._domElement),re),this.languageConfigurationService,this._themeService,$,{batchChanges:re=>{try{return this._beginUpdate(),re()}finally{this._endUpdate()}}});B.push(X.onWillDispose(()=>this.setModel(null))),B.push(Q.onEvent(re=>{switch(re.kind){case 0:this._onDidContentSizeChange.fire(re);break;case 1:this._editorTextFocus.setValue(re.hasFocus);break;case 2:this._onDidScrollChange.fire(re);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(re.reachedMaxCursorCount){const ye=this.getOption(80),Le=M.localize(70,"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",ye);this._notificationService.prompt(x.Severity.Warning,Le,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:M.localize(71,"Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const le=[];for(let ye=0,Le=re.selections.length;ye{this._paste("keyboard",Z,te,re,le)},type:Z=>{this._type("keyboard",Z)},compositionType:(Z,te,re,le)=>{this._compositionType("keyboard",Z,te,re,le)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:B={paste:(Z,te,re,le)=>{const me={text:Z,pasteOnNewLine:te,multicursorText:re,mode:le};this._commandService.executeCommand("paste",me)},type:Z=>{const te={text:Z};this._commandService.executeCommand("type",te)},compositionType:(Z,te,re,le)=>{if(re||le){const me={text:Z,replacePrevCharCnt:te,replaceNextCharCnt:re,positionDelta:le};this._commandService.executeCommand("compositionType",me)}else{const me={text:Z,replaceCharCnt:te};this._commandService.executeCommand("replacePreviousChar",me)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const $=new i.ViewUserInputEvents(X.coordinatesConverter);return $.onKeyDown=Z=>this._onKeyDown.fire(Z),$.onKeyUp=Z=>this._onKeyUp.fire(Z),$.onContextMenu=Z=>this._onContextMenu.fire(Z),$.onMouseMove=Z=>this._onMouseMove.fire(Z),$.onMouseLeave=Z=>this._onMouseLeave.fire(Z),$.onMouseDown=Z=>this._onMouseDown.fire(Z),$.onMouseUp=Z=>this._onMouseUp.fire(Z),$.onMouseDrag=Z=>this._onMouseDrag.fire(Z),$.onMouseDrop=Z=>this._onMouseDrop.fire(Z),$.onMouseDropCanceled=Z=>this._onMouseDropCanceled.fire(Z),$.onMouseWheel=Z=>this._onMouseWheel.fire(Z),[new o.View(B,this._configuration,this._themeService.getColorTheme(),X,$,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(X){X?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const X=this._modelData.model,B=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),B&&this._domElement.contains(B)&&B.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),X}_removeDecorationType(X){this._codeEditorService.removeDecorationType(X)}hasModel(){return this._modelData!==null}showDropIndicatorAt(X){const B=[{range:new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),options:H.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(B),this.revealPosition(X,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(X,B){this._contextKeyService.createKey(X,B)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};e.CodeEditorWidget=z,e.CodeEditorWidget=z=H=ke([ce(3,O.IInstantiationService),ce(4,n.ICodeEditorService),ce(5,P.ICommandService),ce(6,N.IContextKeyService),ce(7,V.IThemeService),ce(8,x.INotificationService),ce(9,A.IAccessibilityService),ce(10,w.ILanguageConfigurationService),ce(11,L.ILanguageFeaturesService)],z);let U=0;class j{constructor(X,B,$,Q,Z,te){this.model=X,this.viewModel=B,this.view=$,this.hasRealView=Q,this.listenersToRemove=Z,this.attachedView=te}dispose(){(0,E.dispose)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class Y extends E.Disposable{constructor(X){super(),this._emitterOptions=X,this._onDidChangeToTrue=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(X){const B=X?2:1;this._value!==B&&(this._value=B,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}e.BooleanEventEmitter=Y;class G extends I.Emitter{constructor(X,B){super({deliveryQueue:B}),this._contributions=X}fire(X){this._contributions.onBeforeInteractionEvent(),super.fire(X)}}class K extends E.Disposable{constructor(X,B){super(),this._editor=X,B.createKey("editorId",X.getId()),this._editorSimpleInput=v.EditorContextKeys.editorSimpleInput.bindTo(B),this._editorFocus=v.EditorContextKeys.focus.bindTo(B),this._textInputFocus=v.EditorContextKeys.textInputFocus.bindTo(B),this._editorTextFocus=v.EditorContextKeys.editorTextFocus.bindTo(B),this._tabMovesFocus=v.EditorContextKeys.tabMovesFocus.bindTo(B),this._editorReadonly=v.EditorContextKeys.readOnly.bindTo(B),this._inDiffEditor=v.EditorContextKeys.inDiffEditor.bindTo(B),this._editorColumnSelection=v.EditorContextKeys.columnSelection.bindTo(B),this._hasMultipleSelections=v.EditorContextKeys.hasMultipleSelections.bindTo(B),this._hasNonEmptySelection=v.EditorContextKeys.hasNonEmptySelection.bindTo(B),this._canUndo=v.EditorContextKeys.canUndo.bindTo(B),this._canRedo=v.EditorContextKeys.canRedo.bindTo(B),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(b.TabFocus.onDidChangeTabFocus($=>this._tabMovesFocus.set($))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const X=this._editor.getOptions();this._tabMovesFocus.set(b.TabFocus.getTabFocusMode()),this._editorReadonly.set(X.get(92)),this._inDiffEditor.set(X.get(61)),this._editorColumnSelection.set(X.get(22))}_updateFromSelection(){const X=this._editor.getSelections();X?(this._hasMultipleSelections.set(X.length>1),this._hasNonEmptySelection.set(X.some(B=>!B.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const X=this._editor.getModel();this._canUndo.set(!!(X&&X.canUndo())),this._canRedo.set(!!(X&&X.canRedo()))}}class R extends E.Disposable{constructor(X,B,$){super(),this._editor=X,this._contextKeyService=B,this._languageFeaturesService=$,this._langId=v.EditorContextKeys.languageId.bindTo(B),this._hasCompletionItemProvider=v.EditorContextKeys.hasCompletionItemProvider.bindTo(B),this._hasCodeActionsProvider=v.EditorContextKeys.hasCodeActionsProvider.bindTo(B),this._hasCodeLensProvider=v.EditorContextKeys.hasCodeLensProvider.bindTo(B),this._hasDefinitionProvider=v.EditorContextKeys.hasDefinitionProvider.bindTo(B),this._hasDeclarationProvider=v.EditorContextKeys.hasDeclarationProvider.bindTo(B),this._hasImplementationProvider=v.EditorContextKeys.hasImplementationProvider.bindTo(B),this._hasTypeDefinitionProvider=v.EditorContextKeys.hasTypeDefinitionProvider.bindTo(B),this._hasHoverProvider=v.EditorContextKeys.hasHoverProvider.bindTo(B),this._hasDocumentHighlightProvider=v.EditorContextKeys.hasDocumentHighlightProvider.bindTo(B),this._hasDocumentSymbolProvider=v.EditorContextKeys.hasDocumentSymbolProvider.bindTo(B),this._hasReferenceProvider=v.EditorContextKeys.hasReferenceProvider.bindTo(B),this._hasRenameProvider=v.EditorContextKeys.hasRenameProvider.bindTo(B),this._hasSignatureHelpProvider=v.EditorContextKeys.hasSignatureHelpProvider.bindTo(B),this._hasInlayHintsProvider=v.EditorContextKeys.hasInlayHintsProvider.bindTo(B),this._hasDocumentFormattingProvider=v.EditorContextKeys.hasDocumentFormattingProvider.bindTo(B),this._hasDocumentSelectionFormattingProvider=v.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(B),this._hasMultipleDocumentFormattingProvider=v.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(B),this._hasMultipleDocumentSelectionFormattingProvider=v.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(B),this._isInEmbeddedEditor=v.EditorContextKeys.isInEmbeddedEditor.bindTo(B);const Q=()=>this._update();this._register(X.onDidChangeModel(Q)),this._register(X.onDidChangeModelLanguage(Q)),this._register($.completionProvider.onDidChange(Q)),this._register($.codeActionProvider.onDidChange(Q)),this._register($.codeLensProvider.onDidChange(Q)),this._register($.definitionProvider.onDidChange(Q)),this._register($.declarationProvider.onDidChange(Q)),this._register($.implementationProvider.onDidChange(Q)),this._register($.typeDefinitionProvider.onDidChange(Q)),this._register($.hoverProvider.onDidChange(Q)),this._register($.documentHighlightProvider.onDidChange(Q)),this._register($.documentSymbolProvider.onDidChange(Q)),this._register($.referenceProvider.onDidChange(Q)),this._register($.renameProvider.onDidChange(Q)),this._register($.documentFormattingEditProvider.onDidChange(Q)),this._register($.documentRangeFormattingEditProvider.onDidChange(Q)),this._register($.signatureHelpProvider.onDidChange(Q)),this._register($.inlayHintsProvider.onDidChange(Q)),Q()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const X=this._editor.getModel();if(!X){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(X.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(X)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(X)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(X)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(X)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(X)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(X)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(X)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(X)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(X)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(X)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(X)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(X)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(X)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(X)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(X)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(X).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._isInEmbeddedEditor.set(X.uri.scheme===y.Schemas.walkThroughSnippet||X.uri.scheme===y.Schemas.vscodeChatCodeBlock)})}}e.EditorModeContext=R;class J extends E.Disposable{constructor(X,B){super(),this._onChange=this._register(new I.Emitter),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(d.trackFocus(X)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),B&&(this._overflowWidgetsDomNode=this._register(d.trackFocus(B)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const X=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==X&&(this._hadFocus=X,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class ie{get length(){return this._decorationIds.length}constructor(X,B){this._editor=X,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(B)&&B.length>0&&this.set(B)}onDidChange(X,B,$){return this._editor.onDidChangeModelDecorations(Q=>{this._isChangingDecorations||X.call(B,Q)},$)}getRange(X){return!this._editor.hasModel()||X>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[X])}getRanges(){if(!this._editor.hasModel())return[];const X=this._editor.getModel(),B=[];for(const $ of this._decorationIds){const Q=X.getDecorationRange($);Q&&B.push(Q)}return B}has(X){return this._decorationIds.includes(X.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(X){try{this._isChangingDecorations=!0,this._editor.changeDecorations(B=>{this._decorationIds=B.deltaDecorations(this._decorationIds,X)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(X){let B=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations($=>{B=$.deltaDecorations([],X),this._decorationIds=this._decorationIds.concat(B)})}finally{this._isChangingDecorations=!1}return B}}const ue=encodeURIComponent("");function pe(ge){return ue+encodeURIComponent(ge.toString())+he}const ae=encodeURIComponent('');function de(ge){return ae+encodeURIComponent(ge.toString())+ee}(0,V.registerThemingParticipant)((ge,X)=>{const B=ge.getColor(W.editorErrorForeground);B&&X.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${pe(B)}") repeat-x bottom left; }`);const $=ge.getColor(W.editorWarningForeground);$&&X.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${pe($)}") repeat-x bottom left; }`);const Q=ge.getColor(W.editorInfoForeground);Q&&X.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${pe(Q)}") repeat-x bottom left; }`);const Z=ge.getColor(W.editorHintForeground);Z&&X.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${de(Z)}") no-repeat bottom left; }`);const te=ge.getColor(l.editorUnnecessaryCodeOpacity);te&&X.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${te.rgba.a}; }`)})}),define(ne[125],se([1,0,60,34,219,36,17,61,24,12,7,50,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmbeddedCodeEditorWidget=void 0;let t=class extends I.CodeEditorWidget{constructor(s,g,c,l,a,r,u,C,f,h,v,w,S){super(s,{...l.getRawOptions(),overflowWidgetsDomNode:l.getOverflowWidgetsDomNode()},c,a,r,u,C,f,h,v,w,S),this._parentEditor=l,this._overwriteOptions=g,super.updateOptions(this._overwriteOptions),this._register(l.onDidChangeConfiguration(L=>this._onParentConfigurationChanged(L)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(s){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(s){d.mixin(this._overwriteOptions,s,!0),super.updateOptions(this._overwriteOptions)}};e.EmbeddedCodeEditorWidget=t,e.EmbeddedCodeEditorWidget=t=ke([ce(4,p.IInstantiationService),ce(5,k.ICodeEditorService),ce(6,_.ICommandService),ce(7,b.IContextKeyService),ce(8,o.IThemeService),ce(9,n.INotificationService),ce(10,m.IAccessibilityService),ce(11,E.ILanguageConfigurationService),ce(12,y.ILanguageFeaturesService)],t)}),define(ne[286],se([1,0,5,67,8,6,2,21,65,15,34,143,219,762,806,363,285,799,383,364,415,653,88,171,397,9,4,198,20,137,12,7,154,96,775,552,807,407,500]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorWidget=void 0;let W=class extends O.DelegatingEditor{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(H,z,U,j,Y,G,K,R){super(),this._domElement=H,this._parentContextKeyService=j,this._parentInstantiationService=Y,this._accessibilitySignalService=K,this._editorProgressService=R,this.elements=(0,d.h)("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[(0,d.h)("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register((0,m.disposableObservableValue)(this,void 0)),this._diffModel=(0,m.derived)(this,$=>this._diffModelSrc.read($)?.object),this.onDidChangeModel=E.Event.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new A.ServiceCollection([T.IContextKeyService,this._contextKeyService]))),this._boundarySashes=(0,m.observableValue)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,m.observableValue)(this,!1),this._accessibleDiffViewerVisible=(0,m.derived)(this,$=>this._options.onlyShowAccessibleDiffViewer.read($)?!0:this._accessibleDiffViewerShouldBeVisible.read($)),this._movedBlocksLinesPart=(0,m.observableValue)(this,void 0),this._layoutInfo=(0,m.derived)(this,$=>{const Q=this._rootSizeObserver.width.read($),Z=this._rootSizeObserver.height.read($);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=Z+"px";const te=this._sash.read($),re=this._gutter.read($),le=re?.width.read($)??0,me=this._overviewRulerPart.read($)?.width??0;let Ce,ye,Le,Ee,Me;if(!!te){const Ne=te.sashLeft.read($),Ke=this._movedBlocksLinesPart.read($)?.width.read($)??0;Ce=0,ye=Ne-le-Ke,Me=Ne-le,Le=Ne,Ee=Q-Le-me}else{Me=0;const Ne=this._options.inlineViewHideOriginalLineNumbers.read($);Ce=le,Ne?ye=0:ye=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read($)),Le=le+ye,Ee=Q-Le-me}return this.elements.original.style.left=Ce+"px",this.elements.original.style.width=ye+"px",this._editors.original.layout({width:ye,height:Z},!0),re?.layout(Me),this.elements.modified.style.left=Le+"px",this.elements.modified.style.width=Ee+"px",this._editors.modified.layout({width:Ee,height:Z},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map(($,Q)=>$?.diff.read(Q)),this.onDidUpdateDiff=E.Event.fromObservableLight(this._diffValue),G.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,y.toDisposable)(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new C.ObservableElementSizeObserver(this.elements.root,z.dimension)),this._rootSizeObserver.setAutomaticLayout(z.automaticLayout??!1),this._options=this._instantiationService.createInstance(F.DiffEditorOptions,z),this._register((0,m.autorun)($=>{this._options.setWidth(this._rootSizeObserver.width.read($))})),this._contextKeyService.createKey(L.EditorContextKeys.isEmbeddedDiffEditor.key,!1),this._register((0,h.bindContextKey)(L.EditorContextKeys.isEmbeddedDiffEditor,this._contextKeyService,$=>this._options.isInEmbeddedEditor.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.comparingMovedCode,this._contextKeyService,$=>!!this._diffModel.read($)?.movedTextToCompare.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,$=>this._options.couldShowInlineViewBecauseOfSize.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorInlineMode,this._contextKeyService,$=>!this._options.renderSideBySide.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.hasChanges,this._contextKeyService,$=>(this._diffModel.read($)?.diff.read($)?.mappings.length??0)>0)),this._editors=this._register(this._instantiationService.createInstance(N.DiffEditorEditors,this.elements.original,this.elements.modified,this._options,U,($,Q,Z,te)=>this._createInnerEditor($,Q,Z,te))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalWritable,this._contextKeyService,$=>this._options.originalEditable.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedWritable,this._contextKeyService,$=>!this._options.readOnly.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalUri,this._contextKeyService,$=>this._diffModel.read($)?.model.original.uri.toString()??"")),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedUri,this._contextKeyService,$=>this._diffModel.read($)?.model.modified.uri.toString()??"")),this._overviewRulerPart=(0,_.derivedDisposable)(this,$=>this._options.renderOverviewRuler.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(r.OverviewRulerFeature,$),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(Q=>Q.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const J={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map(($,Q)=>$-(this._overviewRulerPart.read(Q)?.width??0))};this._sashLayout=new s.SashLayout(this._options,J),this._sash=(0,_.derivedDisposable)(this,$=>{const Q=this._options.renderSideBySide.read($);return this.elements.root.classList.toggle("side-by-side",Q),Q?new s.DiffEditorSash(this.elements.root,J,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const ie=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(l.HideUnchangedRegionsFeature,$),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(i.DiffEditorDecorations,$),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const ue=new Set,he=new Set;let pe=!1;const ae=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(g.DiffEditorViewZones,$),(0,d.getWindow)(this._domElement),this._editors,this._diffModel,this._options,this,()=>pe||ie.get().isUpdatingHiddenAreas,ue,he)).recomputeInitiallyAndOnChange(this._store),ee=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).orig,Z=ie.read($).viewZones.read($).origViewZones;return Q.concat(Z)}),de=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).mod,Z=ie.read($).viewZones.read($).modViewZones;return Q.concat(Z)});this._register((0,C.applyViewZones)(this._editors.original,ee,$=>{pe=$},ue));let ge;this._register((0,C.applyViewZones)(this._editors.modified,de,$=>{pe=$,pe?ge=n.StableEditorScrollState.capture(this._editors.modified):(ge?.restore(this._editors.modified),ge=void 0)},he)),this._accessibleDiffViewer=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(t.AccessibleDiffViewer,$),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(Q,Z)=>this._accessibleDiffViewerShouldBeVisible.set(Q,Z),this._options.onlyShowAccessibleDiffViewer.map(Q=>!Q),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((Q,Z)=>Q?.diff.read(Z)?.mappings.map(te=>te.lineRangeMapping)),new t.AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);const X=this._accessibleDiffViewerVisible.map($=>$?"hidden":"visible");this._register((0,C.applyStyle)(this.elements.modified,{visibility:X})),this._register((0,C.applyStyle)(this.elements.original,{visibility:X})),this._createDiffEditorContributions(),G.addDiffEditor(this),this._gutter=(0,_.derivedDisposable)(this,$=>this._options.shouldRenderGutterMenu.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(c.DiffEditorGutter,$),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register((0,m.recomputeInitiallyAndOnChange)(this._layoutInfo)),(0,_.derivedDisposable)(this,$=>new((0,f.readHotReloadableExport)(a.MovedBlocksLinesFeature,$))(this.elements.root,this._diffModel,this._layoutInfo.map(Q=>Q.originalEditor),this._layoutInfo.map(Q=>Q.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,$=>{this._movedBlocksLinesPart.set($,void 0)}),this._register(E.Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!0))),this._register(E.Event.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!1)));const B=this._diffModel.map(this,($,Q)=>{if($)return $.diff.read(Q)===void 0&&!$.isDiffUpToDate.read(Q)});this._register((0,m.autorunWithStore)(($,Q)=>{if(B.read($)===!0){const Z=this._editorProgressService.show(!0,1e3);Q.add((0,y.toDisposable)(()=>Z.done()))}})),this._register((0,m.autorunWithStore)(($,Q)=>{Q.add(new((0,f.readHotReloadableExport)(u.RevertButtonsFeature,$))(this._editors,this._diffModel,this._options,this))})),this._register((0,m.autorunWithStore)(($,Q)=>{const Z=this._diffModel.read($);if(Z)for(const te of[Z.model.original,Z.model.modified])Q.add(te.onWillDispose(re=>{(0,I.onUnexpectedError)(new I.BugIndicatingError("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register((0,m.autorun)($=>{this._options.setModel(this._diffModel.read($))}))}_createInnerEditor(H,z,U,j){return H.createInstance(o.CodeEditorWidget,z,U,j)}_createDiffEditorContributions(){const H=b.EditorExtensionsRegistry.getDiffEditorContributions();for(const z of H)try{this._register(this._instantiationService.createInstance(z.ctor,this))}catch(U){(0,I.onUnexpectedError)(U)}}get _targetEditor(){return this._editors.modified}getEditorType(){return S.EditorType.IDiffEditor}layout(H){this._rootSizeObserver.observe(H)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){const H=this._editors.original.saveViewState(),z=this._editors.modified.saveViewState();return{original:H,modified:z,modelState:this._diffModel.get()?.serializeState()}}restoreViewState(H){if(H&&H.original&&H.modified){const z=H;this._editors.original.restoreViewState(z.original),this._editors.modified.restoreViewState(z.modified),z.modelState&&this._diffModel.get()?.restoreSerializedState(z.modelState)}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(H){return this._instantiationService.createInstance(x.DiffEditorViewModel,H,this._options)}getModel(){return this._diffModel.get()?.model??null}setModel(H){const z=H?"model"in H?C.RefCounted.create(H).createNewRef(this):C.RefCounted.create(this.createViewModel(H),this):null;this.setDiffModel(z)}setDiffModel(H,z){const U=this._diffModel.get();!H&&U&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==H?.object&&(0,m.subtransaction)(z,j=>{const Y=H?.object;m.observableFromEvent.batchEventsGlobally(j,()=>{this._editors.original.setModel(Y?Y.model.original:null),this._editors.modified.setModel(Y?Y.model.modified:null)});const G=this._diffModelSrc.get()?.createNewRef(this);this._diffModelSrc.set(H?.createNewRef(this),j),setTimeout(()=>{G?.dispose()},0)})}updateOptions(H){this._options.updateOptions(H)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){const H=this._diffModel.get()?.diff.get();return H?V(H):null}revert(H){const z=this._diffModel.get();!z||!z.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:H.modified.toExclusiveRange(),text:z.model.original.getValueInRange(H.original.toExclusiveRange())}])}revertRangeMappings(H){const z=this._diffModel.get();if(!z||!z.isDiffUpToDate.get())return;const U=H.map(j=>({range:j.modifiedRange,text:z.model.original.getValueInRange(j.originalRange)}));this._editors.modified.executeEdits("diffEditor",U)}_goTo(H){this._editors.modified.setPosition(new v.Position(H.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(H.lineRangeMapping.modified.toExclusiveRange())}goToDiff(H){const z=this._diffModel.get()?.diff.get()?.mappings;if(!z||z.length===0)return;const U=this._editors.modified.getPosition().lineNumber;let j;H==="next"?j=z.find(Y=>Y.lineRangeMapping.modified.startLineNumber>U)??z[0]:j=(0,k.findLast)(z,Y=>Y.lineRangeMapping.modified.startLineNumber{const z=H.diff.get()?.mappings;!z||z.length===0||this._goTo(z[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const H=this._diffModel.get();H&&await H.waitForDiff()}mapToOtherSide(){const H=this._editors.modified.hasWidgetFocus(),z=H?this._editors.modified:this._editors.original,U=H?this._editors.original:this._editors.modified;let j;const Y=z.getSelection();if(Y){const G=this._diffModel.get()?.diff.get()?.mappings.map(K=>H?K.lineRangeMapping.flip():K.lineRangeMapping);if(G){const K=(0,C.translatePosition)(Y.getStartPosition(),G),R=(0,C.translatePosition)(Y.getEndPosition(),G);j=w.Range.plusRange(K,R)}}return{destination:U,destinationSelection:j}}switchSide(){const{destination:H,destinationSelection:z}=this.mapToOtherSide();H.focus(),z&&H.setSelection(z)}exitCompareMove(){const H=this._diffModel.get();H&&H.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.collapseAll(z)})}showAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.showAll(z)})}_handleCursorPositionChange(H,z){if(H?.reason===3){const U=this._diffModel.get()?.diff.get()?.mappings.find(j=>z?j.lineRangeMapping.modified.contains(H.position.lineNumber):j.lineRangeMapping.original.contains(H.position.lineNumber));U?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):U?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):U&&this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};e.DiffEditorWidget=W,e.DiffEditorWidget=W=ke([ce(3,T.IContextKeyService),ce(4,M.IInstantiationService),ce(5,p.ICodeEditorService),ce(6,D.IAccessibilitySignalService),ce(7,P.IEditorProgressService)],W);function V(q){return q.mappings.map(H=>{const z=H.lineRangeMapping;let U,j,Y,G,K=z.innerChanges;return z.original.isEmpty?(U=z.original.startLineNumber-1,j=0,K=void 0):(U=z.original.startLineNumber,j=z.original.endLineNumberExclusive-1),z.modified.isEmpty?(Y=z.modified.startLineNumber-1,G=0,K=void 0):(Y=z.modified.startLineNumber,G=z.modified.endLineNumberExclusive-1),{originalStartLineNumber:U,originalEndLineNumber:j,modifiedStartLineNumber:Y,modifiedEndLineNumber:G,charChanges:K?.map(R=>({originalStartLineNumber:R.originalRange.startLineNumber,originalStartColumn:R.originalRange.startColumn,originalEndLineNumber:R.originalRange.endLineNumber,originalEndColumn:R.originalRange.endColumn,modifiedStartLineNumber:R.modifiedRange.startLineNumber,modifiedStartColumn:R.modifiedRange.startColumn,modifiedEndLineNumber:R.modifiedRange.endLineNumber,modifiedEndColumn:R.modifiedRange.endColumn}))}})}}),define(ne[811],se([1,0,5,26,15,34,286,20,3,29,28,12,139]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerPrev=e.AccessibleDiffViewerNext=e.RevertHunkOrSelection=e.ShowAllUnchangedRegions=e.CollapseAllUnchangedRegions=e.ExitCompareMove=e.SwitchSide=e.ToggleUseInlineViewWhenSpaceIsLimited=e.ToggleShowMovedCodeBlocks=e.ToggleCollapseUnchangedRegions=void 0,e.findDiffEditor=h,e.findFocusedDiffEditor=v;class o extends b.Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:(0,_.localize2)(72,"Toggle Collapse Unchanged Regions"),icon:k.Codicon.map,toggled:n.ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:n.ContextKeyExpr.has("isInDiffEditor"),menu:{when:n.ContextKeyExpr.has("isInDiffEditor"),id:b.MenuId.EditorTitle,order:22,group:"navigation"}})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.hideUnchangedRegions.enabled");T.updateValue("diffEditor.hideUnchangedRegions.enabled",M)}}e.ToggleCollapseUnchangedRegions=o;class t extends b.Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:(0,_.localize2)(73,"Toggle Show Moved Code Blocks"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.experimental.showMoves");T.updateValue("diffEditor.experimental.showMoves",M)}}e.ToggleShowMovedCodeBlocks=t;class i extends b.Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:(0,_.localize2)(74,"Toggle Use Inline View When Space Is Limited"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");T.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",M)}}e.ToggleUseInlineViewWhenSpaceIsLimited=i;const s=(0,_.localize2)(75,"Diff Editor");class g extends I.EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:(0,_.localize2)(76,"Switch Side"),icon:k.Codicon.arrowSwap,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,T){const M=v(L);if(M instanceof y.DiffEditorWidget){if(T&&T.dryRun)return{destinationSelection:M.mapToOtherSide().destinationSelection};M.switchSide()}}}e.SwitchSide=g;class c extends I.EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:(0,_.localize2)(77,"Exit Compare Move"),icon:k.Codicon.close,precondition:m.EditorContextKeys.comparingMovedCode,f1:!1,category:s,keybinding:{weight:1e4,primary:9}})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.exitCompareMove()}}e.ExitCompareMove=c;class l extends I.EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:(0,_.localize2)(78,"Collapse All Unchanged Regions"),icon:k.Codicon.fold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.collapseAllUnchangedRegions()}}e.CollapseAllUnchangedRegions=l;class a extends I.EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:(0,_.localize2)(79,"Show All Unchanged Regions"),icon:k.Codicon.unfold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.showAllUnchangedRegions()}}e.ShowAllUnchangedRegions=a;class r extends b.Action2{constructor(){super({id:"diffEditor.revert",title:(0,_.localize2)(80,"Revert"),f1:!1,category:s})}run(L,D){const T=h(L,D.originalUri,D.modifiedUri);T instanceof y.DiffEditorWidget&&T.revertRangeMappings(D.mapping.innerChanges??[])}}e.RevertHunkOrSelection=r;const u=(0,_.localize2)(81,"Accessible Diff Viewer");class C extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.next"}constructor(){super({id:C.id,title:(0,_.localize2)(82,"Go to Next Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerNext()}}e.AccessibleDiffViewerNext=C;class f extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.prev"}constructor(){super({id:f.id,title:(0,_.localize2)(83,"Go to Previous Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerPrev()}}e.AccessibleDiffViewerPrev=f;function h(S,L,D){return S.get(E.ICodeEditorService).listDiffEditors().find(A=>{const P=A.getModifiedEditor(),N=A.getOriginalEditor();return P&&P.getModel()?.uri.toString()===D.toString()&&N&&N.getModel()?.uri.toString()===L.toString()})||null}function v(S){const D=S.get(E.ICodeEditorService).listDiffEditors(),T=(0,d.getActiveElement)();if(T)for(const M of D){const A=M.getContainerDomNode();if(w(A,T))return M}return null}function w(S,L){let D=L;for(;D;){if(D===S)return!0;D=D.parentElement}return!1}}),define(ne[812],se([1,0,26,811,20,3,29,24,12,139]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,y.registerAction2)(k.ToggleCollapseUnchangedRegions),(0,y.registerAction2)(k.ToggleShowMovedCodeBlocks),(0,y.registerAction2)(k.ToggleUseInlineViewWhenSpaceIsLimited),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:(0,E.localize)(106,"Use Inline View When Space Is Limited"),toggled:_.ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,_.ContextKeyExpr.has("isInDiffEditor"))}),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleShowMovedCodeBlocks().desc.id,title:(0,E.localize)(107,"Show Moved Code Blocks"),icon:d.Codicon.move,toggled:_.ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:_.ContextKeyExpr.has("isInDiffEditor")}),(0,y.registerAction2)(k.RevertHunkOrSelection);for(const b of[{icon:d.Codicon.arrowRight,key:I.EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:d.Codicon.discard,key:I.EditorContextKeys.diffEditorInlineMode}])y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorHunkToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(108,"Revert Block"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"}),y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorSelectionToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(109,"Revert Selection"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"});(0,y.registerAction2)(k.SwitchSide),(0,y.registerAction2)(k.ExitCompareMove),(0,y.registerAction2)(k.CollapseAllUnchangedRegions),(0,y.registerAction2)(k.ShowAllUnchangedRegions),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:k.AccessibleDiffViewerNext.id,title:(0,E.localize)(110,"Open Accessible Diff Viewer"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.accessibleDiffViewerVisible.negate(),_.ContextKeyExpr.has("isInDiffEditor"))}),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",k.AccessibleDiffViewerNext.id),(0,y.registerAction2)(k.AccessibleDiffViewerNext),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",k.AccessibleDiffViewerPrev.id),(0,y.registerAction2)(k.AccessibleDiffViewerPrev)}),define(ne[420],se([1,0,5,258,26,2,21,92,112,286,124,218,29,7,365,12,154]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorItemTemplate=e.TemplateData=void 0;class c{constructor(r,u){this.viewModel=r,this.deltaScrollVertical=u}getId(){return this.viewModel}}e.TemplateData=c;let l=class extends E.Disposable{constructor(r,u,C,f,h){super(),this._container=r,this._overflowWidgetsDomNode=u,this._workbenchUIElementFactory=C,this._instantiationService=f,this._viewModel=(0,m.observableValue)(this,void 0),this._collapsed=(0,y.derived)(this,S=>this._viewModel.read(S)?.collapsed.read(S)),this._editorContentHeight=(0,m.observableValue)(this,500),this.contentHeight=(0,y.derived)(this,S=>(this._collapsed.read(S)?0:this._editorContentHeight.read(S))+this._outerEditorHeight),this._modifiedContentWidth=(0,m.observableValue)(this,0),this._modifiedWidth=(0,m.observableValue)(this,0),this._originalContentWidth=(0,m.observableValue)(this,0),this._originalWidth=(0,m.observableValue)(this,0),this.maxScroll=(0,y.derived)(this,S=>{const L=this._modifiedContentWidth.read(S)-this._modifiedWidth.read(S),D=this._originalContentWidth.read(S)-this._originalWidth.read(S);return L>D?{maxScroll:L,width:this._modifiedWidth.read(S)}:{maxScroll:D,width:this._originalWidth.read(S)}}),this._elements=(0,d.h)("div.multiDiffEntry",[(0,d.h)("div.header@header",[(0,d.h)("div.header-content",[(0,d.h)("div.collapse-button@collapseButton"),(0,d.h)("div.file-path",[(0,d.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,d.h)("div.status.deleted@status",["R"]),(0,d.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,d.h)("div.actions@actions")])]),(0,d.h)("div.editorParent",[(0,d.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(b.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=(0,_.observableCodeEditor)(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=(0,_.observableCodeEditor)(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,y.derived)(this,S=>this.isModifedFocused.read(S)||this.isOriginalFocused.read(S)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new E.DisposableStore),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const v=new k.Button(this._elements.collapseButton,{});this._register((0,y.autorun)(S=>{v.element.className="",v.icon=this._collapsed.read(S)?I.Codicon.chevronRight:I.Codicon.chevronDown})),this._register(v.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,y.autorun)(S=>{this._elements.editor.style.display=this._collapsed.read(S)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(S=>{const L=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(L,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(S=>{const L=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(L,void 0)})),this._register(this.editor.onDidContentSizeChange(S=>{(0,m.globalTransaction)(L=>{this._editorContentHeight.set(S.contentHeight,L),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),L),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),L)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(S=>{if(this._isSettingScrollTop||!S.scrollTopChanged||!this._data)return;const L=S.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(L)})),this._register((0,y.autorun)(S=>{const L=this._viewModel.read(S)?.isActive.read(S);this._elements.root.classList.toggle("active",L)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(h.createScoped(this._elements.actions));const w=this._register(this._instantiationService.createChild(new g.ServiceCollection([s.IContextKeyService,this._contextKeyService])));this._register(w.createInstance(n.MenuWorkbenchToolBar,this._elements.actions,o.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new i.ActionRunnerWithContext(()=>this._viewModel.get()?.modifiedUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:S=>S.startsWith("navigation")},actionViewItemProvider:(S,L)=>(0,p.createActionViewItem)(w,S,L)}))}setScrollLeft(r){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(r):this.editor.getOriginalEditor().setScrollLeft(r)}setData(r){this._data=r;function u(f){return{...f,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!r){(0,m.globalTransaction)(f=>{this._viewModel.set(void 0,f),this.editor.setDiffModel(null,f),this._dataStore.clear()});return}const C=r.viewModel.documentDiffItem;if((0,m.globalTransaction)(f=>{this._resourceLabel?.setUri(r.viewModel.modifiedUri??r.viewModel.originalUri,{strikethrough:r.viewModel.modifiedUri===void 0});let h=!1,v=!1,w=!1,S="";r.viewModel.modifiedUri&&r.viewModel.originalUri&&r.viewModel.modifiedUri.path!==r.viewModel.originalUri.path?(S="R",h=!0):r.viewModel.modifiedUri?r.viewModel.originalUri||(S="A",w=!0):(S="D",v=!0),this._elements.status.classList.toggle("renamed",h),this._elements.status.classList.toggle("deleted",v),this._elements.status.classList.toggle("added",w),this._elements.status.innerText=S,this._resourceLabel2?.setUri(h?r.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(r.viewModel,f),this.editor.setDiffModel(r.viewModel.diffEditorViewModelRef,f),this.editor.updateOptions(u(C.options??{}))}),C.onOptionsDidChange&&this._dataStore.add(C.onOptionsDidChange(()=>{this.editor.updateOptions(u(C.options??{}))})),r.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,f=>{f||this.setData(void 0)}),r.viewModel.documentDiffItem.contextKeys)for(const[f,h]of Object.entries(r.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(f,h)}render(r,u,C,f){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${r.start}px`,this._elements.root.style.height=`${r.length}px`,this._elements.root.style.width=`${u}px`,this._elements.root.style.position="absolute";const h=r.length-this._headerHeight,v=Math.max(0,Math.min(f.start-r.start,h));this._elements.header.style.transform=`translateY(${v}px)`,(0,m.globalTransaction)(w=>{this.editor.layout({width:u-2*8-2*1,height:r.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=C,this.editor.getOriginalEditor().setScrollTop(C)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",v>0||C>0),this._elements.header.classList.toggle("collapsed",v===h)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};e.DiffEditorItemTemplate=l,e.DiffEditorItemTemplate=l=ke([ce(3,t.IInstantiationService),ce(4,s.IContextKeyService)],l)}),define(ne[813],se([1,0,5,86,13,67,8,2,21,92,163,88,68,23,20,12,7,154,420,553,3,502]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidgetImpl=void 0;let u=class extends m.Disposable{constructor(h,v,w,S,L,D){super(),this._element=h,this._dimension=v,this._viewModel=w,this._workbenchUIElementFactory=S,this._parentContextKeyService=L,this._parentInstantiationService=D,this._scrollableElements=(0,d.h)("div.scrollContent",[(0,d.h)("div@content",{style:{overflow:"hidden"}}),(0,d.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new p.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:M=>(0,d.scheduleAtNextAnimationFrame)((0,d.getWindow)(this._element),M),smoothScrollDuration:100})),this._scrollableElement=this._register(new k.SmoothScrollableElement(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=(0,d.h)("div.monaco-component.multiDiffEditor",{},[(0,d.h)("div",{},[this._scrollableElement.getDomNode()]),(0,d.h)("div.placeholder@placeholder",{},[(0,d.h)("div",[(0,r.localize)(132,"No Changed Files")])])]),this._sizeObserver=this._register(new n.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new a.ObjectPool(M=>{const A=this._instantiationService.createInstance(l.DiffEditorItemTemplate,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return A.setData(M),A})),this.scrollTop=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,_.derivedWithStore)(this,(M,A)=>{const P=this._viewModel.read(M);if(!P)return{items:[],getItem:x=>{throw new y.BugIndicatingError}};const N=P.items.read(M),O=new Map;return{items:N.map(x=>{const W=A.add(new C(x,this._objectPool,this.scrollLeft,q=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+q})})),V=this._lastDocStates?.[W.getKey()];return V&&(0,b.transaction)(q=>{W.setViewState(V,q)}),O.set(x,W),W}),getItem:x=>O.get(x)}}),this._viewItems=this._viewItemsInfo.map(this,M=>M.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(M,A)=>M.reduce((P,N)=>P+N.contentHeight.read(A)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new c.ServiceCollection([s.IContextKeyService,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(i.EditorContextKeys.inMultiDiffEditor.key,!0),this._register((0,_.autorunWithStore)((M,A)=>{const P=this._viewModel.read(M);if(P&&P.contextKeys)for(const[N,O]of Object.entries(P.contextKeys)){const F=this._contextKeyService.createKey(N,void 0);F.set(O),A.add((0,m.toDisposable)(()=>F.reset()))}}));const T=this._parentContextKeyService.createKey(i.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,_.autorun)(M=>{const A=this._viewModel.read(M);if(A){const P=A.items.read(M).every(N=>N.collapsed.read(M));T.set(P)}})),this._register((0,_.autorun)(M=>{const A=this._dimension.read(M);this._sizeObserver.observe(A)})),this._register((0,_.autorun)(M=>{const A=this._viewItems.read(M);this._elements.placeholder.classList.toggle("visible",A.length===0)})),this._scrollableElements.content.style.position="relative",this._register((0,_.autorun)(M=>{const A=this._sizeObserver.height.read(M);this._scrollableElements.root.style.height=`${A}px`;const P=this._totalHeight.read(M);this._scrollableElements.content.style.height=`${P}px`;const N=this._sizeObserver.width.read(M);let O=N;const F=this._viewItems.read(M),x=(0,E.findFirstMax)(F,(0,I.compareBy)(W=>W.maxScroll.read(M).maxScroll,I.numberComparator));if(x){const W=x.maxScroll.read(M);O=N+W.maxScroll}this._scrollableElement.setScrollDimensions({width:N,height:A,scrollHeight:P,scrollWidth:O})})),h.replaceChildren(this._elements.root),this._register((0,m.toDisposable)(()=>{h.replaceChildren()})),this._register(this._register((0,_.autorun)(M=>{(0,b.globalTransaction)(A=>{this.render(M)})})))}render(h){const v=this.scrollTop.read(h);let w=0,S=0,L=0;const D=this._sizeObserver.height.read(h),T=o.OffsetRange.ofStartAndLength(v,D),M=this._sizeObserver.width.read(h);for(const A of this._viewItems.read(h)){const P=A.contentHeight.read(h),N=Math.min(P,D),O=o.OffsetRange.ofStartAndLength(S,N),F=o.OffsetRange.ofStartAndLength(L,P);if(F.isBefore(T))w-=P-N,A.hide();else if(F.isAfter(T))A.hide();else{const x=Math.max(0,Math.min(T.start-F.start,P-N));w-=x;const W=o.OffsetRange.ofStartAndLength(v+w,D);A.render(O,x,M,W)}S+=N+this._spaceBetweenPx,L+=P+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(v+w)}px)`}};e.MultiDiffEditorWidgetImpl=u,e.MultiDiffEditorWidgetImpl=u=ke([ce(4,s.IContextKeyService),ce(5,g.IInstantiationService)],u);class C extends m.Disposable{constructor(h,v,w,S){super(),this.viewModel=h,this._objectPool=v,this._scrollLeft=w,this._deltaScrollVertical=S,this._templateRef=this._register((0,b.disposableObservableValue)(this,void 0)),this.contentHeight=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.contentHeight?.read(L)??this.viewModel.lastTemplateData.read(L).contentHeight),this.maxScroll=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.maxScroll.read(L)??{maxScroll:0,scrollWidth:0}),this.template=(0,_.derived)(this,L=>this._templateRef.read(L)?.object),this._isHidden=(0,_.observableValue)(this,!1),this._isFocused=(0,_.derived)(this,L=>this.template.read(L)?.isFocused.read(L)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,_.autorun)(L=>{const D=this._scrollLeft.read(L);this._templateRef.read(L)?.object.setScrollLeft(D)})),this._register((0,_.autorun)(L=>{const D=this._templateRef.read(L);!D||!this._isHidden.read(L)||D.object.isFocused.read(L)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(h,v){this.viewModel.collapsed.set(h.collapsed,v),this._updateTemplateData(v);const w=this.viewModel.lastTemplateData.get(),S=h.selections?.map(t.Selection.liftSelection);this.viewModel.lastTemplateData.set({...w,selections:S},v);const L=this._templateRef.get();L&&S&&L.object.editor.setSelections(S)}_updateTemplateData(h){const v=this._templateRef.get();v&&this.viewModel.lastTemplateData.set({contentHeight:v.object.contentHeight.get(),selections:v.object.editor.getSelections()??void 0},h)}_clear(){const h=this._templateRef.get();h&&(0,b.transaction)(v=>{this._updateTemplateData(v),h.object.hide(),this._templateRef.set(void 0,v)})}hide(){this._isHidden.set(!0,void 0)}render(h,v,w,S){this._isHidden.set(!1,void 0);let L=this._templateRef.get();if(!L){L=this._objectPool.getUnusedObj(new l.TemplateData(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(L,void 0);const D=this.viewModel.lastTemplateData.get().selections;D&&L.object.editor.setSelections(D)}L.object.render(h,w,v,S)}}}),define(ne[814],se([1,0,2,21,171,813,7,420,756]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidget=void 0;let _=class extends d.Disposable{constructor(p,n,o){super(),this._element=p,this._workbenchUIElementFactory=n,this._instantiationService=o,this._dimension=(0,k.observableValue)(this,void 0),this._viewModel=(0,k.observableValue)(this,void 0),this._widgetImpl=(0,k.derivedWithStore)(this,(t,i)=>((0,I.readHotReloadableExport)(m.DiffEditorItemTemplate,t),i.add(this._instantiationService.createInstance((0,I.readHotReloadableExport)(E.MultiDiffEditorWidgetImpl,t),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,k.recomputeInitiallyAndOnChange)(this._widgetImpl))}};e.MultiDiffEditorWidget=_,e.MultiDiffEditorWidget=_=ke([ce(2,y.IInstantiationService)],_)}),define(ne[815],se([1,0,14,2,15,9,4,23,20,40,35,3,29,32,25,504]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketMatchingController=void 0;const s=(0,t.registerColor)("editorOverviewRuler.bracketMatchForeground","#A0A0A0",n.localize(716,"Overview ruler marker color for matching brackets."));class g extends I.EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:n.localize(717,"Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(C,f){r.get(f)?.jumpToBracket()}}class c extends I.EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:n.localize(718,"Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:n.localize2(721,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(C,f,h){let v=!0;h&&h.selectBrackets===!1&&(v=!1),r.get(f)?.selectToBracket(v)}}class l extends I.EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:n.localize(719,"Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(C,f){r.get(f)?.removeBrackets(this.id)}}class a{constructor(C,f,h){this.position=C,this.brackets=f,this.options=h}}class r extends k.Disposable{static{this.ID="editor.contrib.bracketMatchingController"}static get(C){return C.getContribution(r.ID)}constructor(C){super(),this._editor=C,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new d.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(C.onDidChangeCursorPosition(f=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelContent(f=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModel(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelLanguageConfiguration(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeConfiguration(f=>{f.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(C.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const C=this._editor.getModel(),f=this._editor.getSelections().map(h=>{const v=h.getStartPosition(),w=C.bracketPairs.matchBracket(v);let S=null;if(w)w[0].containsPosition(v)&&!w[1].containsPosition(v)?S=w[1].getStartPosition():w[1].containsPosition(v)&&(S=w[0].getStartPosition());else{const L=C.bracketPairs.findEnclosingBrackets(v);if(L)S=L[1].getStartPosition();else{const D=C.bracketPairs.findNextBracket(v);D&&D.range&&(S=D.range.getStartPosition())}}return S?new m.Selection(S.lineNumber,S.column,S.lineNumber,S.column):new m.Selection(v.lineNumber,v.column,v.lineNumber,v.column)});this._editor.setSelections(f),this._editor.revealRange(f[0])}selectToBracket(C){if(!this._editor.hasModel())return;const f=this._editor.getModel(),h=[];this._editor.getSelections().forEach(v=>{const w=v.getStartPosition();let S=f.bracketPairs.matchBracket(w);if(!S&&(S=f.bracketPairs.findEnclosingBrackets(w),!S)){const T=f.bracketPairs.findNextBracket(w);T&&T.range&&(S=f.bracketPairs.matchBracket(T.range.getStartPosition()))}let L=null,D=null;if(S){S.sort(y.Range.compareRangesUsingStarts);const[T,M]=S;if(L=C?T.getStartPosition():T.getEndPosition(),D=C?M.getEndPosition():M.getStartPosition(),M.containsPosition(w)){const A=L;L=D,D=A}}L&&D&&h.push(new m.Selection(L.lineNumber,L.column,D.lineNumber,D.column))}),h.length>0&&(this._editor.setSelections(h),this._editor.revealRange(h[0]))}removeBrackets(C){if(!this._editor.hasModel())return;const f=this._editor.getModel();this._editor.getSelections().forEach(h=>{const v=h.getPosition();let w=f.bracketPairs.matchBracket(v);w||(w=f.bracketPairs.findEnclosingBrackets(v)),w&&(this._editor.pushUndoStop(),this._editor.executeEdits(C,[{range:w[0],text:""},{range:w[1],text:""}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:(0,i.themeColorFromId)(s),position:b.OverviewRulerLane.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const C=[];let f=0;for(const h of this._lastBracketsData){const v=h.brackets;v&&(C[f++]={range:v[0],options:h.options},C[f++]={range:v[1],options:h.options})}this._decorations.set(C)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const C=this._editor.getSelections();if(C.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const f=this._editor.getModel(),h=f.getVersionId();let v=[];this._lastVersionId===h&&(v=this._lastBracketsData);const w=[];let S=0;for(let A=0,P=C.length;A1&&w.sort(E.Position.compare);const L=[];let D=0,T=0;const M=v.length;for(let A=0,P=w.length;A{const L=this._editor.getModel();(this.state.type!==1||!L||this.state.editorPosition.lineNumber>=L.getLineCount())&&this.hide(),(this.gutterState.type!==1||!L||this.gutterState.editorPosition.lineNumber>=L.getLineCount())&&this.gutterHide()})),this._register(d.addStandardDisposableGenericMouseDownListener(this._domNode,S=>{if(this.state.type!==1)return;this._editor.focus(),S.preventDefault();const{top:L,height:D}=d.getDomNodePagePosition(this._domNode),T=this._editor.getOption(67);let M=Math.floor(T/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(S.buttons&1)===1&&this.hide()})),this._register(E.Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel=this._keybindingService.lookupKeybinding(n.autoFixCommandId)?.getLabel()??void 0,this._quickFixKbLabel=this._keybindingService.lookupKeybinding(n.quickFixCommandId)?.getLabel()??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async S=>{if(!S.target.element||!this.lightbulbClasses.some(A=>S.target.element&&S.target.element.classList.contains(A))||this.gutterState.type!==1)return;this._editor.focus();const{top:L,height:D}=d.getDomNodePagePosition(S.target.element),T=this._editor.getOption(67);let M=Math.floor(T/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber22,W=Y=>Y>2&&this._editor.getTopForLineNumber(Y)===this._editor.getTopForLineNumber(Y-1),V=this._editor.getLineDecorations(M);let q=!1;if(V)for(const Y of V){const G=Y.options.glyphMarginClassName;if(G&&!this.lightbulbClasses.some(K=>G.includes(K))){q=!0;break}}let H=M,z=1;if(!x){const Y=G=>{const K=T.getLineContent(G);return/^\s*$|^\s+/.test(K)||K.length<=z};if(M>1&&!W(M-1)){const G=T.getLineCount(),K=M===G,R=M>1&&Y(M-1),J=!K&&Y(M+1),ie=Y(M),ue=!J&&!R;if(!J&&!R&&!q)return this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),this.renderGutterLightbub(),this.hide();R||K||R&&!ie?H-=1:(J||ue&&ie)&&(H+=1)}else if(M===1&&(M===T.getLineCount()||!Y(M+1)&&!Y(M)))if(this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),q)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(M{this._gutterDecorationID=w.addDecoration(new s.Range(v,0,v,0),this.gutterDecoration)})}_removeGutterDecoration(v){this._editor.changeDecorations(w=>{w.removeDecoration(v),this._gutterDecorationID=void 0})}_updateGutterDecoration(v,w){this._editor.changeDecorations(S=>{S.changeDecoration(v,new s.Range(w,0,w,0)),S.changeDecorationOptions(v,this.gutterDecoration)})}_updateLightbulbTitle(v,w){this.state.type===1&&(w?this.title=o.localize(790,"Run: {0}",this.state.actions.validActions[0].action.title):v&&this._preferredKbLabel?this.title=o.localize(791,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!v&&this._quickFixKbLabel?this.title=o.localize(792,"Show Code Actions ({0})",this._quickFixKbLabel):v||(this.title=o.localize(793,"Show Code Actions")))}set title(v){this._domNode.title=v}};e.LightBulbWidget=f,e.LightBulbWidget=f=g=ke([ce(1,t.IKeybindingService)],f)}),define(ne[287],se([1,0,5,46,8,98,2,9,35,17,157,733,757,421,184,3,760,24,28,12,7,108,96,32,97,25,134,408,91,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionController=void 0;const M="quickfix-edit-highlight";let A=class extends y.Disposable{static{T=this}static{this.ID="editor.contrib.codeActionController"}static get(N){return N.getContribution(T.ID)}constructor(N,O,F,x,W,V,q,H,z,U,j){super(),this._commandService=q,this._configurationService=H,this._actionWidgetService=z,this._instantiationService=U,this._telemetryService=j,this._activeCodeActions=this._register(new y.MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=N,this._model=this._register(new S.CodeActionModel(this._editor,W.codeActionProvider,O,F,V,H,this._telemetryService)),this._register(this._model.onDidChangeState(Y=>this.update(Y))),this._lightBulbWidget=new E.Lazy(()=>{const Y=this._editor.getContribution(t.LightBulbWidget.ID);return Y&&this._register(Y.onClick(G=>this.showCodeActionsFromLightbulb(G.actions,G))),Y}),this._resolver=x.createInstance(n.CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(N,O){if(N.allAIFixes&&N.validActions.length===1){const F=N.validActions[0],x=F.action.command;x&&x.id==="inlineChat.start"&&x.arguments&&x.arguments.length>=1&&(x.arguments[0]={...x.arguments[0],autoSend:!1}),await this._applyCodeAction(F,!1,!1,p.ApplyCodeActionReason.FromAILightbulb);return}await this.showCodeActionList(N,O,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(N,O,F){return this.showCodeActionList(O,F,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(N,O,F,x){if(!this._editor.hasModel())return;i.MessageController.get(this._editor)?.closeMessage();const W=this._editor.getPosition();this._trigger({type:1,triggerAction:O,filter:F,autoApply:x,context:{notAvailableMessage:N,position:W}})}_trigger(N){return this._model.trigger(N)}async _applyCodeAction(N,O,F,x){try{await this._instantiationService.invokeFunction(p.applyCodeAction,N,x,{preview:F,editor:this._editor})}finally{O&&this._trigger({type:2,triggerAction:w.CodeActionTriggerSource.QuickFix,filter:{}})}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(N){if(N.type!==1){this.hideLightBulbWidget();return}let O;try{O=await N.actions}catch(x){(0,I.onUnexpectedError)(x);return}if(!(this._disposed||this._editor.getSelection()?.startLineNumber!==N.position.lineNumber))if(this._lightBulbWidget.value?.update(O,N.trigger,N.position),N.trigger.type===1){if(N.trigger.filter?.include){const W=this.tryGetValidActionToApply(N.trigger,O);if(W){try{this.hideLightBulbWidget(),await this._applyCodeAction(W,!1,!1,p.ApplyCodeActionReason.FromCodeActions)}finally{O.dispose()}return}if(N.trigger.context){const V=this.getInvalidActionThatWouldHaveBeenApplied(N.trigger,O);if(V&&V.action.disabled){i.MessageController.get(this._editor)?.showMessage(V.action.disabled,N.trigger.context.position),O.dispose();return}}}const x=!!N.trigger.filter?.include;if(N.trigger.context&&(!O.allActions.length||!x&&!O.validActions.length)){i.MessageController.get(this._editor)?.showMessage(N.trigger.context.notAvailableMessage,N.trigger.context.position),this._activeCodeActions.value=O,O.dispose();return}this._activeCodeActions.value=O,this.showCodeActionList(O,this.toCoords(N.position),{includeDisabledActions:x,fromLightbulb:!1})}else this._actionWidgetService.isVisible?O.dispose():this._activeCodeActions.value=O}getInvalidActionThatWouldHaveBeenApplied(N,O){if(O.allActions.length&&(N.autoApply==="first"&&O.validActions.length===0||N.autoApply==="ifSingle"&&O.allActions.length===1))return O.allActions.find(({action:F})=>F.disabled)}tryGetValidActionToApply(N,O){if(O.validActions.length&&(N.autoApply==="first"&&O.validActions.length>0||N.autoApply==="ifSingle"&&O.validActions.length===1))return O.validActions[0]}static{this.DECORATION=_.ModelDecorationOptions.register({description:"quickfix-highlight",className:M})}async showCodeActionList(N,O,F){const x=this._editor.createDecorationsCollection(),W=this._editor.getDomNode();if(!W)return;const V=F.includeDisabledActions&&(this._showDisabled||N.validActions.length===0)?N.allActions:N.validActions;if(!V.length)return;const q=m.Position.isIPosition(O)?this.toCoords(O):O,H={onSelect:async(z,U)=>{this._applyCodeAction(z,!0,!!U,F.fromLightbulb?p.ApplyCodeActionReason.FromAILightbulb:p.ApplyCodeActionReason.FromCodeActions),this._actionWidgetService.hide(!1),x.clear()},onHide:z=>{this._editor?.focus(),x.clear()},onHover:async(z,U)=>{if(U.isCancellationRequested)return;let j=!1;const Y=z.action.kind;if(Y){const G=new L.HierarchicalKind(Y);j=[w.CodeActionKind.RefactorExtract,w.CodeActionKind.RefactorInline,w.CodeActionKind.RefactorRewrite,w.CodeActionKind.RefactorMove,w.CodeActionKind.Source].some(R=>R.contains(G))}return{canPreview:j||!!z.action.edit?.edits.length}},onFocus:z=>{if(z&&z.action){const U=z.action.ranges,j=z.action.diagnostics;if(x.clear(),U&&U.length>0){const Y=j&&j?.length>1?j.map(G=>({range:G,options:T.DECORATION})):U.map(G=>({range:G,options:T.DECORATION}));x.set(Y)}else if(j&&j.length>0){const Y=j.map(K=>({range:K,options:T.DECORATION}));x.set(Y);const G=j[0];if(G.startLineNumber&&G.startColumn){const K=this._editor.getModel()?.getWordAtPosition({lineNumber:G.startLineNumber,column:G.startColumn})?.word;k.status((0,s.localize)(774,"Context: {0} at line {1} and column {2}.",K,G.startLineNumber,G.startColumn))}}}else x.clear()}};this._actionWidgetService.show("codeActionWidget",!0,(0,o.toMenuItems)(V,this._shouldShowHeaders(),this._resolver.getResolver()),H,q,W,this._getActionBarActions(N,O,F))}toCoords(N){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(N,1),this._editor.render();const O=this._editor.getScrolledVisiblePosition(N),F=(0,d.getDomNodePagePosition)(this._editor.getDomNode()),x=F.left+O.left,W=F.top+O.top+O.height;return{x,y:W}}_shouldShowHeaders(){const N=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:N?.uri})}_getActionBarActions(N,O,F){if(F.fromLightbulb)return[];const x=N.documentation.map(W=>({id:W.id,label:W.title,tooltip:W.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(W.id,...W.arguments??[])}));return F.includeDisabledActions&&N.validActions.length>0&&N.allActions.length!==N.validActions.length&&x.push(this._showDisabled?{id:"hideMoreActions",label:(0,s.localize)(775,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(N,O,F))}:{id:"showMoreActions",label:(0,s.localize)(776,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(N,O,F))}),x}};e.CodeActionController=A,e.CodeActionController=A=T=ke([ce(1,u.IMarkerService),ce(2,a.IContextKeyService),ce(3,r.IInstantiationService),ce(4,b.ILanguageFeaturesService),ce(5,C.IEditorProgressService),ce(6,c.ICommandService),ce(7,l.IConfigurationService),ce(8,g.IActionWidgetService),ce(9,r.IInstantiationService),ce(10,D.ITelemetryService)],A),(0,v.registerThemingParticipant)((P,N)=>{((x,W)=>{W&&N.addRule(`.monaco-editor ${x} { background-color: ${W}; }`)})(".quickfix-edit-highlight",P.getColor(f.editorFindMatchHighlight));const F=P.getColor(f.editorFindMatchHighlightBorder);F&&N.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${(0,h.isHighContrast)(P.type)?"dotted":"solid"} ${F}; box-sizing: border-box; }`)})}),define(ne[816],se([1,0,91,11,15,20,157,3,12,134,287,408]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoFixAction=e.FixAllAction=e.OrganizeImportsAction=e.SourceAction=e.RefactorAction=e.CodeActionCommand=e.QuickFixAction=void 0;function o(C){return _.ContextKeyExpr.regex(n.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+(0,k.escapeRegExpCharacters)(C.value)+"\\b"))}const t={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:m.localize(743,"Kind of the code action to run.")},apply:{type:"string",description:m.localize(744,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[m.localize(745,"Always apply the first returned code action."),m.localize(746,"Apply the first returned code action if it is the only one."),m.localize(747,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:m.localize(748,"Controls if only preferred code actions should be returned.")}}};function i(C,f,h,v,w=b.CodeActionTriggerSource.Default){C.hasModel()&&p.CodeActionController.get(C)?.manualTriggerAtCurrentPosition(f,w,h,v)}class s extends I.EditorAction{constructor(){super({id:y.quickFixCommandId,label:m.localize(749,"Quick Fix..."),alias:"Quick Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(f,h){return i(h,m.localize(750,"No code actions available"),void 0,void 0,b.CodeActionTriggerSource.QuickFix)}}e.QuickFixAction=s;class g extends I.EditorCommand{constructor(){super({id:y.codeActionCommandId,precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:t}]}})}runEditorCommand(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:d.HierarchicalKind.Empty,apply:"ifSingle"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(751,"No preferred code actions for '{0}' available",v.kind):m.localize(752,"No code actions for '{0}' available",v.kind):w.preferred?m.localize(753,"No preferred code actions available"):m.localize(754,"No code actions available"),{include:w.kind,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply)}}e.CodeActionCommand=g;class c extends I.EditorAction{constructor(){super({id:y.refactorCommandId,label:m.localize(755,"Refactor..."),alias:"Refactor...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Refactor,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(756,"No preferred refactorings for '{0}' available",v.kind):m.localize(757,"No refactorings for '{0}' available",v.kind):w.preferred?m.localize(758,"No preferred refactorings available"):m.localize(759,"No refactorings available"),{include:b.CodeActionKind.Refactor.contains(w.kind)?w.kind:d.HierarchicalKind.None,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.Refactor)}}e.RefactorAction=c;class l extends I.EditorAction{constructor(){super({id:y.sourceActionCommandId,label:m.localize(760,"Source Action..."),alias:"Source Action...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Source,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(761,"No preferred source actions for '{0}' available",v.kind):m.localize(762,"No source actions for '{0}' available",v.kind):w.preferred?m.localize(763,"No preferred source actions available"):m.localize(764,"No source actions available"),{include:b.CodeActionKind.Source.contains(w.kind)?w.kind:d.HierarchicalKind.None,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.SourceAction)}}e.SourceAction=l;class a extends I.EditorAction{constructor(){super({id:y.organizeImportsCommandId,label:m.localize(765,"Organize Imports"),alias:"Organize Imports",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(f,h){return i(h,m.localize(766,"No organize imports action available"),{include:b.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.OrganizeImports)}}e.OrganizeImportsAction=a;class r extends I.EditorAction{constructor(){super({id:y.fixAllCommandId,label:m.localize(767,"Fix All"),alias:"Fix All",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceFixAll))})}run(f,h){return i(h,m.localize(768,"No fix all action available"),{include:b.CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.FixAll)}}e.FixAllAction=r;class u extends I.EditorAction{constructor(){super({id:y.autoFixCommandId,label:m.localize(769,"Auto Fix..."),alias:"Auto Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.QuickFix)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(f,h){return i(h,m.localize(770,"No auto fixes available"),{include:b.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",b.CodeActionTriggerSource.AutoFix)}}e.AutoFixAction=u}),define(ne[817],se([1,0,15,274,816,287,421,3,109,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(E.CodeActionController.ID,E.CodeActionController,3),(0,d.registerEditorContribution)(y.LightBulbWidget.ID,y.LightBulbWidget,4),(0,d.registerEditorAction)(I.QuickFixAction),(0,d.registerEditorAction)(I.RefactorAction),(0,d.registerEditorAction)(I.SourceAction),(0,d.registerEditorAction)(I.OrganizeImportsAction),(0,d.registerEditorAction)(I.AutoFixAction),(0,d.registerEditorAction)(I.FixAllAction),(0,d.registerEditorCommand)(new I.CodeActionCommand),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:m.localize(771,"Enable/disable showing group headers in the Code Action menu."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:m.localize(772,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:5,markdownDescription:m.localize(773,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}})}),define(ne[818],se([1,0,5,114,4,35,506]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensWidget=e.CodeLensHelper=void 0;class y{constructor(o,t,i){this.afterColumn=1073741824,this.afterLineNumber=o,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(o){this._lastHeight===void 0?this._lastHeight=o:this._lastHeight!==o&&(this._lastHeight=o,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class m{static{this._idPool=0}constructor(o,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=o,this._id=`codelens.widget-${m._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(o,t){this._commands.clear();const i=[];let s=!1;for(let g=0;g{r.symbol.command&&a.push(r.symbol),i.addDecoration({range:r.symbol.range,options:b},C=>this._decorationIds[u]=C),l?l=I.Range.plusRange(l,r.symbol.range):l=I.Range.lift(r.symbol.range)}),this._viewZone=new y(l.startLineNumber-1,g,c),this._viewZoneId=s.addZone(this._viewZone),a.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(a,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new m(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(o,t){this._decorationIds.forEach(o.removeDecoration,o),this._decorationIds=[],t?.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((o,t)=>{const i=this._editor.getModel().getDecorationRange(o),s=this._data[t].symbol;return!!(i&&I.Range.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(o,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=o,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:b},g=>this._decorationIds[s]=g)})}updateHeight(o,t){this._viewZone.heightInPx=o,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(o){if(!this._viewZone.isVisible())return null;for(let t=0;tthis._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(w=>{(w.hasChanged(50)||w.hasChanged(19)||w.hasChanged(18))&&this._updateLensStyle(),w.hasChanged(17)&&this._onModelChange()})),this._disposables.add(u.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),this._currentCodeLensModel?.dispose()}_getLayoutInfo(){const r=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let u=this._editor.getOption(19);return(!u||u<5)&&(u=this._editor.getOption(52)*.9|0),{fontSize:u,codeLensHeight:u*r|0}}_updateLensStyle(){const{codeLensHeight:r,fontSize:u}=this._getLayoutInfo(),C=this._editor.getOption(18),f=this._editor.getOption(50),{style:h}=this._editor.getContainerDomNode();h.setProperty("--vscode-editorCodeLens-lineHeight",`${r}px`),h.setProperty("--vscode-editorCodeLens-fontSize",`${u}px`),h.setProperty("--vscode-editorCodeLens-fontFeatureSettings",f.fontFeatureSettings),C&&(h.setProperty("--vscode-editorCodeLens-fontFamily",C),h.setProperty("--vscode-editorCodeLens-fontFamilyDefault",m.EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(v=>{for(const w of this._lenses)w.updateHeight(r,v)})}_localDispose(){this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=void 0,this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),this._currentCodeLensModel?.dispose()}_onModelChange(){this._localDispose();const r=this._editor.getModel();if(!r||!this._editor.getOption(17)||r.isTooLargeForTokenization())return;const u=this._codeLensCache.get(r);if(u&&this._renderCodeLensSymbols(u),!this._languageFeaturesService.codeLensProvider.has(r)){u&&(0,d.disposableTimeout)(()=>{const f=this._codeLensCache.get(r);u===f&&(this._codeLensCache.delete(r),this._onModelChange())},30*1e3,this._localToDispose);return}for(const f of this._languageFeaturesService.codeLensProvider.all(r))if(typeof f.onDidChange=="function"){const h=f.onDidChange(()=>C.schedule());this._localToDispose.add(h)}const C=new d.RunOnceScheduler(()=>{const f=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=(0,d.createCancelablePromise)(h=>(0,b.getCodeLensModel)(this._languageFeaturesService.codeLensProvider,r,h)),this._getCodeLensModelPromise.then(h=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=h,this._codeLensCache.put(r,h);const v=this._provideCodeLensDebounce.update(r,Date.now()-f);C.delay=v,this._renderCodeLensSymbols(h),this._resolveCodeLensesInViewportSoon()},k.onUnexpectedError)},this._provideCodeLensDebounce.get(r));this._localToDispose.add(C),this._localToDispose.add((0,I.toDisposable)(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(f=>{this._editor.changeViewZones(h=>{const v=[];let w=-1;this._lenses.forEach(L=>{!L.isValid()||w===L.getLineNumber()?v.push(L):(L.update(h),w=L.getLineNumber())});const S=new n.CodeLensHelper;v.forEach(L=>{L.dispose(S,h),this._lenses.splice(this._lenses.indexOf(L),1)}),S.commit(f)})}),C.schedule(),this._resolveCodeLensesScheduler.cancel(),this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{C.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{C.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(f=>{f.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add((0,I.toDisposable)(()=>{if(this._editor.getModel()){const f=E.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(h=>{this._editor.changeViewZones(v=>{this._disposeAllLenses(h,v)})}),f.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(f=>{if(f.target.type!==9)return;let h=f.target.element;if(h?.tagName==="SPAN"&&(h=h.parentElement),h?.tagName==="A")for(const v of this._lenses){const w=v.getCommand(h);if(w){this._commandService.executeCommand(w.id,...w.arguments||[]).catch(S=>this._notificationService.error(S));break}}})),C.schedule()}_disposeAllLenses(r,u){const C=new n.CodeLensHelper;for(const f of this._lenses)f.dispose(C,u);r&&C.commit(r),this._lenses.length=0}_renderCodeLensSymbols(r){if(!this._editor.hasModel())return;const u=this._editor.getModel().getLineCount(),C=[];let f;for(const w of r.lenses){const S=w.symbol.range.startLineNumber;S<1||S>u||(f&&f[f.length-1].symbol.range.startLineNumber===S?f.push(w):(f=[w],C.push(f)))}if(!C.length&&!this._lenses.length)return;const h=E.StableEditorScrollState.capture(this._editor),v=this._getLayoutInfo();this._editor.changeDecorations(w=>{this._editor.changeViewZones(S=>{const L=new n.CodeLensHelper;let D=0,T=0;for(;Tthis._resolveCodeLensesInViewportSoon())),D++,T++)}for(;Dthis._resolveCodeLensesInViewportSoon())),T++;L.commit(w)})}),h.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0;const r=this._editor.getModel();if(!r)return;const u=[],C=[];if(this._lenses.forEach(v=>{const w=v.computeIfNecessary(r);w&&(u.push(w),C.push(v))}),u.length===0)return;const f=Date.now(),h=(0,d.createCancelablePromise)(v=>{const w=u.map((S,L)=>{const D=new Array(S.length),T=S.map((M,A)=>!M.symbol.command&&typeof M.provider.resolveCodeLens=="function"?Promise.resolve(M.provider.resolveCodeLens(r,M.symbol,v)).then(P=>{D[A]=P},k.onUnexpectedExternalError):(D[A]=M.symbol,Promise.resolve(void 0)));return Promise.all(T).then(()=>{!v.isCancellationRequested&&!C[L].isDisposed()&&C[L].updateCommands(D)})});return Promise.all(w)});this._resolveCodeLensesPromise=h,this._resolveCodeLensesPromise.then(()=>{const v=this._resolveCodeLensesDebounce.update(r,Date.now()-f);this._resolveCodeLensesScheduler.delay=v,this._currentCodeLensModel&&this._codeLensCache.put(r,this._currentCodeLensModel),this._oldCodeLensModels.clear(),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},v=>{(0,k.onUnexpectedError)(v),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}};e.CodeLensContribution=l,e.CodeLensContribution=l=ke([ce(1,c.ILanguageFeaturesService),ce(2,g.ILanguageFeatureDebounceService),ce(3,t.ICommandService),ce(4,i.INotificationService),ce(5,p.ICodeLensCache)],l),(0,y.registerEditorContribution)(l.ID,l,1),(0,y.registerEditorAction)(class extends y.EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:_.EditorContextKeys.hasCodeLensProvider,label:(0,o.localize)(794,"Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(r,u){if(!u.hasModel())return;const C=r.get(s.IQuickInputService),f=r.get(t.ICommandService),h=r.get(i.INotificationService),v=u.getSelection().positionLineNumber,w=u.getContribution(l.ID);if(!w)return;const S=await w.getModel();if(!S)return;const L=[];for(const M of S.lenses)M.symbol.command&&M.symbol.range.startLineNumber===v&&L.push({label:M.symbol.command.title,command:M.symbol.command});if(L.length===0)return;const D=await C.pick(L,{canPickMany:!1,placeHolder:(0,o.localize)(795,"Select a command")});if(!D)return;let T=D.command;if(S.isDisposed){const A=(await w.getModel())?.lenses.find(P=>P.symbol.range.startLineNumber===v&&P.symbol.command?.title===T.title);if(!A||!A.symbol.command)return;T=A.symbol.command}try{await f.executeCommand(T.id,...T.arguments||[])}catch(M){h.error(M)}}})}),define(ne[422],se([1,0,14,33,8,6,2,54,11,185,15,4,35,79,17,388,28]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.DecoratorLimitReporter=e.ColorDetector=e.ColorDecorationInjectedTextMarker=void 0,e.ColorDecorationInjectedTextMarker=Object.create({});let l=class extends y.Disposable{static{c=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1e3}constructor(u,C,f,h){super(),this._editor=u,this._configurationService=C,this._languageFeaturesService=f,this._localToDispose=this._register(new y.DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new b.DynamicCssRules(this._editor),this._decoratorLimitReporter=new a,this._colorDecorationClassRefs=this._register(new y.DisposableStore),this._debounceInformation=h.for(f.colorProvider,"Document Colors",{min:c.RECOMPUTE_TIME}),this._register(u.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(u.onDidChangeModelLanguage(()=>this.updateColors())),this._register(f.colorProvider.onDidChange(()=>this.updateColors())),this._register(u.onDidChangeConfiguration(v=>{const w=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148);const S=w!==this._isColorDecoratorsEnabled||v.hasChanged(21),L=v.hasChanged(148);(S||L)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148),this.updateColors()}isEnabled(){const u=this._editor.getModel();if(!u)return!1;const C=u.getLanguageId(),f=this._configurationService.getValue(C);if(f&&typeof f=="object"){const h=f.colorDecorators;if(h&&h.enable!==void 0&&!h.enable)return h.enable}return this._editor.getOption(20)}static get(u){return u.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const u=this._editor.getModel();!u||!this._languageFeaturesService.colorProvider.has(u)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new d.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(u)))})),this.beginCompute())}async beginCompute(){this._computePromise=(0,d.createCancelablePromise)(async u=>{const C=this._editor.getModel();if(!C)return[];const f=new m.StopWatch(!1),h=await(0,s.getColors)(this._languageFeaturesService.colorProvider,C,u,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(C,f.elapsed()),h});try{const u=await this._computePromise;this.updateDecorations(u),this.updateColorDecorators(u),this._computePromise=null}catch(u){(0,I.onUnexpectedError)(u)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(u){const C=u.map(f=>({range:{startLineNumber:f.colorInfo.range.startLineNumber,startColumn:f.colorInfo.range.startColumn,endLineNumber:f.colorInfo.range.endLineNumber,endColumn:f.colorInfo.range.endColumn},options:o.ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(f=>{this._decorationsIds=f.deltaDecorations(this._decorationsIds,C),this._colorDatas=new Map,this._decorationsIds.forEach((h,v)=>this._colorDatas.set(h,u[v]))})}updateColorDecorators(u){this._colorDecorationClassRefs.clear();const C=[],f=this._editor.getOption(21);for(let v=0;vthis._colorDatas.has(h.id));return f.length===0?null:this._colorDatas.get(f[0].id)}isColorDecoration(u){return this._colorDecoratorIds.has(u)}};e.ColorDetector=l,e.ColorDetector=l=c=ke([ce(1,g.IConfigurationService),ce(2,i.ILanguageFeaturesService),ce(3,t.ILanguageFeatureDebounceService)],l);class a{constructor(){this._onDidChange=new E.Emitter,this._computed=0,this._limited=!1}update(u,C){(u!==this._computed||C!==this._limited)&&(this._computed=u,this._limited=C,this._onDidChange.fire())}}e.DecoratorLimitReporter=a,(0,p.registerEditorContribution)(l.ID,l,1)}),define(ne[288],se([1,0,14,18,33,2,4,388,422,608,763,84,25,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerParticipant=e.StandaloneColorPickerHover=e.ColorHoverParticipant=e.ColorHover=void 0;class i{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w,this.forceShowAtRange=!0}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}e.ColorHover=i;let s=class{constructor(f,h){this._editor=f,this._themeService=h,this.hoverOrdinal=2}computeSync(f,h){return[]}computeAsync(f,h,v){return d.AsyncIterableObject.fromPromise(this._computeAsync(f,h,v))}async _computeAsync(f,h,v){if(!this._editor.hasModel())return[];const w=_.ColorDetector.get(this._editor);if(!w)return[];for(const S of h){if(!w.isColorDecoration(S))continue;const L=w.getColorData(S.range.getStartPosition());if(L)return[await l(this,this._editor.getModel(),L.colorInfo,L.provider)]}return[]}renderHoverParts(f,h){const v=a(this,this._editor,this._themeService,h,f);if(!v)return new n.RenderedHoverParts([]);this._colorPicker=v.colorPicker;const w={hoverPart:v.hoverPart,hoverElement:this._colorPicker.domNode,dispose(){v.disposables.dispose()}};return new n.RenderedHoverParts([w])}handleResize(){this._colorPicker?.layout()}isColorPickerVisible(){return!!this._colorPicker}};e.ColorHoverParticipant=s,e.ColorHoverParticipant=s=ke([ce(1,o.IThemeService)],s);class g{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w}}e.StandaloneColorPickerHover=g;let c=class{constructor(f,h){this._editor=f,this._themeService=h,this._color=null}async createColorHover(f,h,v){if(!this._editor.hasModel()||!_.ColorDetector.get(this._editor))return null;const S=await(0,m.getColors)(v,this._editor.getModel(),k.CancellationToken.None);let L=null,D=null;for(const P of S){const N=P.colorInfo;y.Range.containsRange(N.range,f.range)&&(L=N,D=P.provider)}const T=L??f,M=D??h,A=!!L;return{colorHover:await l(this,this._editor.getModel(),T,M),foundInEditor:A}}async updateEditorModel(f){if(!this._editor.hasModel())return;const h=f.model;let v=new y.Range(f.range.startLineNumber,f.range.startColumn,f.range.endLineNumber,f.range.endColumn);this._color&&(await u(this._editor.getModel(),h,this._color,v,f),v=r(this._editor,v,h))}renderHoverParts(f,h){return a(this,this._editor,this._themeService,h,f)}set color(f){this._color=f}get color(){return this._color}};e.StandaloneColorPickerParticipant=c,e.StandaloneColorPickerParticipant=c=ke([ce(1,o.IThemeService)],c);async function l(C,f,h,v){const w=f.getValueInRange(h.range),{red:S,green:L,blue:D,alpha:T}=h.color,M=new I.RGBA(Math.round(S*255),Math.round(L*255),Math.round(D*255),T),A=new I.Color(M),P=await(0,m.getColorPresentations)(f,h,v,k.CancellationToken.None),N=new b.ColorPickerModel(A,[],0);return N.colorPresentations=P||[],N.guessColorPresentation(A,w),C instanceof s?new i(C,y.Range.lift(h.range),N,v):new g(C,y.Range.lift(h.range),N,v)}function a(C,f,h,v,w){if(v.length===0||!f.hasModel())return;if(w.setMinimumDimensions){const N=f.getOption(67)+8;w.setMinimumDimensions(new t.Dimension(302,N))}const S=new E.DisposableStore,L=v[0],D=f.getModel(),T=L.model,M=S.add(new p.ColorPickerWidget(w.fragment,T,f.getOption(144),h,C instanceof c));let A=!1,P=new y.Range(L.range.startLineNumber,L.range.startColumn,L.range.endLineNumber,L.range.endColumn);if(C instanceof c){const N=L.model.color;C.color=N,u(D,T,N,P,L),S.add(T.onColorFlushed(O=>{C.color=O}))}else S.add(T.onColorFlushed(async N=>{await u(D,T,N,P,L),A=!0,P=r(f,P,T)}));return S.add(T.onDidChangeColor(N=>{u(D,T,N,P,L)})),S.add(f.onDidChangeModelContent(N=>{A?A=!1:(w.hide(),f.focus())})),{hoverPart:L,colorPicker:M,disposables:S}}function r(C,f,h){const v=[],w=h.presentation.textEdit??{range:f,text:h.presentation.label,forceMoveMarkers:!1};v.push(w),h.presentation.additionalTextEdits&&v.push(...h.presentation.additionalTextEdits);const S=y.Range.lift(w.range),L=C.getModel()._setTrackedRange(null,S,3);return C.executeEdits("colorpicker",v),C.pushUndoStop(),C.getModel()._getTrackedRange(L)??S}async function u(C,f,h,v,w){const S=await(0,m.getColorPresentations)(C,{range:v,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},w.provider,k.CancellationToken.None);f.colorPresentations=S||[]}}),define(ne[820],se([1,0,2,288,7,391,31,6,17,15,20,12,385,5,100,227]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";var s,g;Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerWidget=e.StandaloneColorPickerController=void 0;let c=class extends d.Disposable{static{s=this}static{this.ID="editor.contrib.standaloneColorPickerController"}constructor(f,h,v){super(),this._editor=f,this._instantiationService=v,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=p.EditorContextKeys.standaloneColorPickerVisible.bindTo(h),this._standaloneColorPickerFocused=p.EditorContextKeys.standaloneColorPickerFocused.bindTo(h)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(r,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerWidget?.hide(),this._editor.focus()}insertColor(){this._standaloneColorPickerWidget?.updateEditor(),this.hide()}static get(f){return f.getContribution(s.ID)}};e.StandaloneColorPickerController=c,e.StandaloneColorPickerController=c=s=ke([ce(1,n.IContextKeyService),ce(2,I.IInstantiationService)],c),(0,b.registerEditorContribution)(c.ID,c,1);const l=8,a=22;let r=class extends d.Disposable{static{g=this}static{this.ID="editor.contrib.standaloneColorPickerWidget"}constructor(f,h,v,w,S,L,D){super(),this._editor=f,this._standaloneColorPickerVisible=h,this._standaloneColorPickerFocused=v,this._keybindingService=S,this._languageFeaturesService=L,this._editorWorkerService=D,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new m.Emitter),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=w.createInstance(k.StandaloneColorPickerParticipant,this._editor),this._position=this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;const T=this._editor.getSelection(),M=T?{startLineNumber:T.startLineNumber,startColumn:T.startColumn,endLineNumber:T.endLineNumber,endColumn:T.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},A=this._register(t.trackFocus(this._body));this._register(A.onDidBlur(P=>{this.hide()})),this._register(A.onDidFocus(P=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(P=>{const N=P.target.element?.classList;N&&N.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(P=>{this._render(P.value,P.foundInEditor)})),this._start(M),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return g.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const f=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:f?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(f){const h=await this._computeAsync(f);h&&this._onResult.fire(new u(h.result,h.foundInEditor))}async _computeAsync(f){if(!this._editor.hasModel())return null;const h={range:f,color:{red:0,green:0,blue:0,alpha:1}},v=await this._standaloneColorPickerParticipant.createColorHover(h,new o.DefaultDocumentColorProvider(this._editorWorkerService),this._languageFeaturesService.colorProvider);return v?{result:v.colorHover,foundInEditor:v.foundInEditor}:null}_render(f,h){const v=document.createDocumentFragment(),w=this._register(new E.EditorHoverStatusBar(this._keybindingService)),S={fragment:v,statusBar:w,onContentsChanged:()=>{},hide:()=>this.hide()};this._colorHover=f;const L=this._standaloneColorPickerParticipant.renderHoverParts(S,[f]);if(!L)return;this._register(L.disposables);const D=L.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(v),D.layout();const T=D.body,M=T.saturationBox.domNode.clientWidth,A=T.domNode.clientWidth-M-a-l,P=D.body.enterButton;P?.onClicked(()=>{this.updateEditor(),this.hide()});const N=D.header,O=N.pickedColorNode;O.style.width=M+l+"px";const F=N.originalColorNode;F.style.width=A+"px",D.header.closeButton?.onClicked(()=>{this.hide()}),h&&(P&&(P.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(f.range)),this._editor.layoutContentWidget(this)}};e.StandaloneColorPickerWidget=r,e.StandaloneColorPickerWidget=r=g=ke([ce(3,I.IInstantiationService),ce(4,y.IKeybindingService),ce(5,_.ILanguageFeaturesService),ce(6,i.IEditorWorkerService)],r);class u{constructor(f,h){this.value=f,this.foundInEditor=h}}}),define(ne[821],se([1,0,15,3,820,20,29,227]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowOrFocusStandaloneColorPicker=void 0;class m extends d.EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...(0,k.localize2)(801,"Show or Focus Standalone Color Picker"),mnemonicTitle:(0,k.localize)(798,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:y.MenuId.CommandPalette}],metadata:{description:(0,k.localize2)(802,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(n,o){I.StandaloneColorPickerController.get(o)?.showOrFocus()}}e.ShowOrFocusStandaloneColorPicker=m;class _ extends d.EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:(0,k.localize)(799,"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:(0,k.localize2)(803,"Hide the standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.hide()}}class b extends d.EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:(0,k.localize)(800,"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:(0,k.localize2)(804,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.insertColor()}}(0,d.registerEditorAction)(_),(0,d.registerEditorAction)(b),(0,y.registerAction2)(m)}),define(ne[822],se([1,0,2,16,15,9,4,23,35,610,507]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropController=void 0;function p(o){return k.isMacintosh?o.altKey:o.ctrlKey}class n extends d.Disposable{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=k.isMacintosh?6:5}constructor(t){super(),this._editor=t,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(i))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(i))),this._register(this._editor.onMouseDrag(i=>this._onEditorMouseDrag(i))),this._register(this._editor.onMouseDrop(i=>this._onEditorMouseDrop(i))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(i=>this.onEditorKeyDown(i))),this._register(this._editor.onKeyUp(i=>this.onEditorKeyUp(i))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!0),this._mouseDown&&p(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===n.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const i=t.target;if(this._dragSelection===null){const g=(this._editor.getSelections()||[]).filter(c=>i.position&&c.containsPosition(i.position));if(g.length===1)this._dragSelection=g[0];else return}p(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),i.position&&(this._dragSelection.containsPosition(i.position)?this._removeDecoration():this.showAt(i.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const i=new E.Position(t.target.position.lineNumber,t.target.position.column);if(this._dragSelection===null){let s=null;if(t.event.shiftKey){const g=this._editor.getSelection();if(g){const{selectionStartLineNumber:c,selectionStartColumn:l}=g;s=[new m.Selection(c,l,i.lineNumber,i.column)]}}else s=(this._editor.getSelections()||[]).map(g=>g.containsPosition(i)?new m.Selection(i.lineNumber,i.column,i.lineNumber,i.column):g);this._editor.setSelections(s||[],"mouse",3)}else(!this._dragSelection.containsPosition(i)||(p(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new b.DragAndDropCommand(this._dragSelection,i,p(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=_.ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"})}showAt(t){this._dndDecorationIds.set([{range:new y.Range(t.lineNumber,t.column,t.lineNumber,t.column),options:n._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return t.type===6||t.type===7}_hitMargin(t){return t.type===2||t.type===3||t.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}e.DragAndDropController=n,(0,I.registerEditorContribution)(n.ID,n,2)}),define(ne[823],se([1,0,4,40,35,32,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindDecorations=void 0;class m{constructor(b){this._editor=b,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const b=this._findScopeDecorationIds.map(p=>this._editor.getModel().getDecorationRange(p)).filter(p=>!!p);if(b.length)return b}return null}getStartPosition(){return this._startPosition}setStartPosition(b){this._startPosition=b,this.setCurrentFindMatch(null)}_getDecorationIndex(b){const p=this._decorations.indexOf(b);return p>=0?p+1:1}getDecorationRangeAt(b){const p=b{if(this._highlightedDecorationId!==null&&(o.changeDecorationOptions(this._highlightedDecorationId,m._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),p!==null&&(this._highlightedDecorationId=p,o.changeDecorationOptions(this._highlightedDecorationId,m._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(o.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),p!==null){let t=this._editor.getModel().getDecorationRange(p);if(t.startLineNumber!==t.endLineNumber&&t.endColumn===1){const i=t.endLineNumber-1,s=this._editor.getModel().getLineMaxColumn(i);t=new d.Range(t.startLineNumber,t.startColumn,i,s)}this._rangeHighlightDecorationId=o.addDecoration(t,m._RANGE_HIGHLIGHT_DECORATION)}}),n}set(b,p){this._editor.changeDecorations(n=>{let o=m._FIND_MATCH_DECORATION;const t=[];if(b.length>1e3){o=m._FIND_MATCH_NO_OVERVIEW_DECORATION;const s=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/s,l=Math.max(2,Math.ceil(3/c));let a=b[0].range.startLineNumber,r=b[0].range.endLineNumber;for(let u=1,C=b.length;u=f.startLineNumber?f.endLineNumber>r&&(r=f.endLineNumber):(t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),a=f.startLineNumber,r=f.endLineNumber)}t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const i=new Array(b.length);for(let s=0,g=b.length;sn.removeDecoration(s)),this._findScopeDecorationIds=[]),p?.length&&(this._findScopeDecorationIds=p.map(s=>n.addDecoration(s,m._FIND_SCOPE_DECORATION)))})}matchBeforePosition(b){if(this._decorations.length===0)return null;for(let p=this._decorations.length-1;p>=0;p--){const n=this._decorations[p],o=this._editor.getModel().getDecorationRange(n);if(!(!o||o.endLineNumber>b.lineNumber)){if(o.endLineNumberb.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(b){if(this._decorations.length===0)return null;for(let p=0,n=this._decorations.length;pb.lineNumber)return t;if(!(t.startColumn{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(a=>{(a.reason===3||a.reason===5||a.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(a=>{this._ignoreModelContentChanged||(a.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,I.dispose)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(c){this._isDisposed||this._editor.hasModel()&&(c.searchString||c.isReplaceRevealed||c.isRegex||c.wholeWord||c.matchCase||c.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor)},i)):c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor))}static _getSearchRange(c,l){return l||c.getFullModelRange()}research(c,l){let a=null;typeof l<"u"?l!==null&&(Array.isArray(l)?a=l:a=[l]):a=this._decorations.getFindScopes(),a!==null&&(a=a.map(f=>{if(f.startLineNumber!==f.endLineNumber){let h=f.endLineNumber;return f.endColumn===1&&(h=h-1),new m.Range(f.startLineNumber,1,h,this._editor.getModel().getLineMaxColumn(h))}return f}));const r=this._findMatches(a,!1,e.MATCHES_LIMIT);this._decorations.set(r,a);const u=this._editor.getSelection();let C=this._decorations.getCurrentMatchesPosition(u);if(C===0&&r.length>0){const f=(0,d.findFirstIdxMonotonousOrArrLen)(r.map(h=>h.range),h=>m.Range.compareRangesUsingStarts(h,u)>=0);C=f>0?f-1+1:C}this._state.changeMatchInfo(C,this._decorations.getCount(),void 0),c&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const c=this._decorations.getFindScope();return c&&this._editor.revealRangeInCenterIfOutsideViewport(c,0),!0}return!1}_setCurrentFindMatch(c){const l=this._decorations.setCurrentFindMatch(c);this._state.changeMatchInfo(l,this._decorations.getCount(),c),this._editor.setSelection(c),this._editor.revealRangeInCenterIfOutsideViewport(c,0)}_prevSearchPosition(c){const l=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===1?(a===1?a=u.getLineCount():a--,r=u.getLineMaxColumn(a)):r--,new y.Position(a,r)}_moveToPrevMatch(c,l=!1){if(!this._state.canNavigateBack()){const w=this._decorations.matchAfterPosition(c);w&&this._setCurrentFindMatch(w);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===u.getLineMaxColumn(a)?(a===u.getLineCount()?a=1:a++,r=1):r++,new y.Position(a,r)}_moveToNextMatch(c){if(!this._state.canNavigateForward()){const a=this._decorations.matchBeforePosition(c);a&&this._setCurrentFindMatch(a);return}if(this._decorations.getCount()s._getSearchRange(this._editor.getModel(),u));return this._editor.getModel().findMatches(this._state.searchString,r,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,l,a)}replaceAll(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();c===null&&this._state.matchesCount>=e.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(c),this.research(!1)}_largeReplaceAll(){const l=new b.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null).parseSearchRequest();if(!l)return;let a=l.regex;if(!a.multiline){let S="mu";a.ignoreCase&&(S+="i"),a.global&&(S+="g"),a=new RegExp(a.source,S)}const r=this._editor.getModel(),u=r.getValue(1),C=r.getFullModelRange(),f=this._getReplacePattern();let h;const v=this._state.preserveCase;f.hasReplacementPatterns||v?h=u.replace(a,function(){return f.buildReplaceString(arguments,v)}):h=u.replace(a,f.buildReplaceString(null,v));const w=new E.ReplaceCommandThatPreservesSelection(C,h,this._editor.getSelection());this._executeEditorCommand("replaceAll",w)}_regularReplaceAll(c){const l=this._getReplacePattern(),a=this._findMatches(c,l.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let C=0,f=a.length;CC.range),r);this._executeEditorCommand("replaceAll",u)}selectAllMatches(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();let a=this._findMatches(c,!1,1073741824).map(u=>new _.Selection(u.range.startLineNumber,u.range.startColumn,u.range.endLineNumber,u.range.endColumn));const r=this._editor.getSelection();for(let u=0,C=a.length;uthis._hide(),2e3)),this._isVisible=!1,this._editor=n,this._state=o,this._keybindingService=t,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const i={inputActiveOptionBorder:(0,m.asCssVariable)(m.inputActiveOptionBorder),inputActiveOptionForeground:(0,m.asCssVariable)(m.inputActiveOptionForeground),inputActiveOptionBackground:(0,m.asCssVariable)(m.inputActiveOptionBackground)},s=this._register((0,_.createInstantHoverDelegate)());this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:s,...i})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:s,...i})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new k.RegexToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:s,...i})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(g=>{let c=!1;g.isRegex&&(this.regex.checked=this._state.isRegex,c=!0),g.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,c=!0),g.matchCase&&(this.caseSensitive.checked=this._state.matchCase,c=!0),!this._state.isRevealed&&c&&this._revealTemporarily()})),this._register(d.addDisposableListener(this._domNode,d.EventType.MOUSE_LEAVE,g=>this._onMouseLeave())),this._register(d.addDisposableListener(this._domNode,"mouseover",g=>this._onMouseOver()))}_keybindingLabelFor(n){const o=this._keybindingService.lookupKeybinding(n);return o?` (${o.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return b.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}e.FindOptionsWidget=b}),define(ne[825],se([1,0,6,2,4,220]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindReplaceState=void 0;function y(_,b){return _===1?!0:_===2?!1:b}class m extends k.Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return y(this._isRegexOverride,this._isRegex)}get wholeWord(){return y(this._wholeWordOverride,this._wholeWord)}get matchCase(){return y(this._matchCaseOverride,this._matchCase)}get preserveCase(){return y(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new d.Emitter),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(b,p,n){const o={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;p===0&&(b=0),b>p&&(b=p),this._matchesPosition!==b&&(this._matchesPosition=b,o.matchesPosition=!0,t=!0),this._matchesCount!==p&&(this._matchesCount=p,o.matchesCount=!0,t=!0),typeof n<"u"&&(I.Range.equalsRange(this._currentMatch,n)||(this._currentMatch=n,o.currentMatch=!0,t=!0)),t&&this._onFindReplaceStateChange.fire(o)}change(b,p,n=!0){const o={moveCursor:p,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;const i=this.isRegex,s=this.wholeWord,g=this.matchCase,c=this.preserveCase;typeof b.searchString<"u"&&this._searchString!==b.searchString&&(this._searchString=b.searchString,o.searchString=!0,t=!0),typeof b.replaceString<"u"&&this._replaceString!==b.replaceString&&(this._replaceString=b.replaceString,o.replaceString=!0,t=!0),typeof b.isRevealed<"u"&&this._isRevealed!==b.isRevealed&&(this._isRevealed=b.isRevealed,o.isRevealed=!0,t=!0),typeof b.isReplaceRevealed<"u"&&this._isReplaceRevealed!==b.isReplaceRevealed&&(this._isReplaceRevealed=b.isReplaceRevealed,o.isReplaceRevealed=!0,t=!0),typeof b.isRegex<"u"&&(this._isRegex=b.isRegex),typeof b.wholeWord<"u"&&(this._wholeWord=b.wholeWord),typeof b.matchCase<"u"&&(this._matchCase=b.matchCase),typeof b.preserveCase<"u"&&(this._preserveCase=b.preserveCase),typeof b.searchScope<"u"&&(b.searchScope?.every(l=>this._searchScope?.some(a=>!I.Range.equalsRange(a,l)))||(this._searchScope=b.searchScope,o.searchScope=!0,t=!0)),typeof b.loop<"u"&&this._loop!==b.loop&&(this._loop=b.loop,o.loop=!0,t=!0),typeof b.isSearching<"u"&&this._isSearching!==b.isSearching&&(this._isSearching=b.isSearching,o.isSearching=!0,t=!0),typeof b.filters<"u"&&(this._filters?this._filters.update(b.filters):this._filters=b.filters,o.filters=!0,t=!0),this._isRegexOverride=typeof b.isRegexOverride<"u"?b.isRegexOverride:0,this._wholeWordOverride=typeof b.wholeWordOverride<"u"?b.wholeWordOverride:0,this._matchCaseOverride=typeof b.matchCaseOverride<"u"?b.matchCaseOverride:0,this._preserveCaseOverride=typeof b.preserveCaseOverride<"u"?b.preserveCaseOverride:0,i!==this.isRegex&&(t=!0,o.isRegex=!0),s!==this.wholeWord&&(t=!0,o.wholeWord=!0),g!==this.matchCase&&(t=!0,o.matchCase=!0),c!==this.preserveCase&&(t=!0,o.preserveCase=!0),t&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=E.MATCHES_LIMIT}}e.FindReplaceState=m}),define(ne[826],se([1,0,5,46,175,173,85,14,26,8,2,16,11,4,220,3,404,675,32,71,25,30,97,19,110,44,510]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleButton=e.FindWidget=e.FindWidgetViewZone=e.NLS_NO_RESULTS=e.NLS_MATCHES_LOCATION=e.findNextMatchIcon=e.findPreviousMatchIcon=e.findReplaceAllIcon=e.findReplaceIcon=e.findSelectionIcon=void 0;const w=(0,a.registerIcon)("find-collapsed",_.Codicon.chevronRight,s.localize(864,"Icon to indicate that the editor find widget is collapsed.")),S=(0,a.registerIcon)("find-expanded",_.Codicon.chevronDown,s.localize(865,"Icon to indicate that the editor find widget is expanded."));e.findSelectionIcon=(0,a.registerIcon)("find-selection",_.Codicon.selection,s.localize(866,"Icon for 'Find in Selection' in the editor find widget.")),e.findReplaceIcon=(0,a.registerIcon)("find-replace",_.Codicon.replace,s.localize(867,"Icon for 'Replace' in the editor find widget.")),e.findReplaceAllIcon=(0,a.registerIcon)("find-replace-all",_.Codicon.replaceAll,s.localize(868,"Icon for 'Replace All' in the editor find widget.")),e.findPreviousMatchIcon=(0,a.registerIcon)("find-previous-match",_.Codicon.arrowUp,s.localize(869,"Icon for 'Find Previous' in the editor find widget.")),e.findNextMatchIcon=(0,a.registerIcon)("find-next-match",_.Codicon.arrowDown,s.localize(870,"Icon for 'Find Next' in the editor find widget."));const L=s.localize(871,"Find / Replace"),D=s.localize(872,"Find"),T=s.localize(873,"Find"),M=s.localize(874,"Previous Match"),A=s.localize(875,"Next Match"),P=s.localize(876,"Find in Selection"),N=s.localize(877,"Close"),O=s.localize(878,"Replace"),F=s.localize(879,"Replace"),x=s.localize(880,"Replace"),W=s.localize(881,"Replace All"),V=s.localize(882,"Toggle Replace"),q=s.localize(883,"Only the first {0} results are highlighted, but all find operations work on the entire text.",i.MATCHES_LIMIT);e.NLS_MATCHES_LOCATION=s.localize(884,"{0} of {1}"),e.NLS_NO_RESULTS=s.localize(885,"No results");const H=419,U=275-54;let j=69;const Y=33,G="ctrlEnterReplaceAll.windows.donotask",K=n.isMacintosh?256:2048;class R{constructor(ae){this.afterLineNumber=ae,this.heightInPx=Y,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}e.FindWidgetViewZone=R;function J(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionStart>0){pe.stopPropagation();return}}function ie(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(re=>this._onStateChanged(re))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(re=>{if(re.hasChanged(92)&&(this._codeEditor.getOption(92)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),re.hasChanged(146)&&this._tryUpdateWidgetWidth(),re.hasChanged(2)&&this.updateAccessibilitySupport(),re.hasChanged(41)){const le=this._codeEditor.getOption(41).loop;this._state.change({loop:le},!1);const me=this._codeEditor.getOption(41).addExtraSpaceOnTop;me&&!this._viewZone&&(this._viewZone=new R(0),this._showViewZone()),!me&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const re=await this._controller.getGlobalBufferTerm();re&&re!==this._state.searchString&&(this._state.change({searchString:re},!1),this._findInput.select())}})),this._findInputFocused=i.CONTEXT_FIND_INPUT_FOCUSED.bindTo(B),this._findFocusTracker=this._register(d.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=i.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(B),this._replaceFocusTracker=this._register(d.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new R(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(re=>{if(re.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ue.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(ae){if(ae.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(ae.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),ae.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),ae.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(92)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(ae.isRevealed||ae.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),ae.isRegex&&this._findInput.setRegex(this._state.isRegex),ae.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),ae.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),ae.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),ae.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),ae.searchString||ae.matchesCount||ae.matchesPosition){const ee=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",ee),this._updateMatchesCount(),this._updateButtons()}(ae.searchString||ae.currentMatch)&&this._layoutViewZone(),ae.updateHistory&&this._delayedUpdateHistory(),ae.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,b.onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=j+"px",this._state.matchesCount>=i.MATCHES_LIMIT?this._matchesCount.title=q:this._matchesCount.title="",this._matchesCount.firstChild?.remove();let ae;if(this._state.matchesCount>0){let ee=String(this._state.matchesCount);this._state.matchesCount>=i.MATCHES_LIMIT&&(ee+="+");let de=String(this._state.matchesPosition);de==="0"&&(de="?"),ae=o.format(e.NLS_MATCHES_LOCATION,de,ee)}else ae=e.NLS_NO_RESULTS;this._matchesCount.appendChild(document.createTextNode(ae)),(0,k.alert)(this._getAriaLabel(ae,this._state.currentMatch,this._state.searchString)),j=Math.max(j,this._matchesCount.clientWidth)}_getAriaLabel(ae,ee,de){if(ae===e.NLS_NO_RESULTS)return de===""?s.localize(886,"{0} found",ae):s.localize(887,"{0} found for '{1}'",ae,de);if(ee){const ge=s.localize(888,"{0} found for '{1}', at {2}",ae,de,ee.startLineNumber+":"+ee.startColumn),X=this._codeEditor.getModel();return X&&ee.startLineNumber<=X.getLineCount()&&ee.startLineNumber>=1?`${X.getLineContent(ee.startLineNumber)}, ${ge}`:ge}return s.localize(889,"{0} found for '{1}'",ae,de)}_updateToggleSelectionFindButton(){const ae=this._codeEditor.getSelection(),ee=ae?ae.startLineNumber!==ae.endLineNumber||ae.startColumn!==ae.endColumn:!1,de=this._toggleSelectionFind.checked;this._isVisible&&(de||ee)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const ae=this._state.searchString.length>0,ee=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const de=!this._codeEditor.getOption(92);this._toggleReplaceBtn.setEnabled(this._isVisible&&de)}_reveal(){if(this._revealTimeouts.forEach(ae=>{clearTimeout(ae)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const ae=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const de=!!ae&&ae.startLineNumber!==ae.endLineNumber;this._toggleSelectionFind.checked=de;break}default:break}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let ee=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&ae){const de=this._codeEditor.getDomNode();if(de){const ge=d.getDomNodePagePosition(de),X=this._codeEditor.getScrolledVisiblePosition(ae.getStartPosition()),B=ge.left+(X?X.left:0),$=X?X.top:0;if(this._viewZone&&$ae.startLineNumber&&(ee=!1);const Q=d.getTopLeftOffset(this._domNode).left;B>Q&&(ee=!1);const Z=this._codeEditor.getScrolledVisiblePosition(ae.getEndPosition());ge.left+(Z?Z.left:0)>Q&&(ee=!1)}}}this._showViewZone(ee)}}_hide(ae){this._revealTimeouts.forEach(ee=>{clearTimeout(ee)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),ae&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(ae){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const de=this._viewZone;this._viewZoneId!==void 0||!de||this._codeEditor.changeViewZones(ge=>{de.heightInPx=this._getHeight(),this._viewZoneId=ge.addZone(de),this._codeEditor.setScrollTop(ae||this._codeEditor.getScrollTop()+de.heightInPx)})}_showViewZone(ae=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new R(0));const de=this._viewZone;this._codeEditor.changeViewZones(ge=>{if(this._viewZoneId!==void 0){const X=this._getHeight();if(X===de.heightInPx)return;const B=X-de.heightInPx;de.heightInPx=X,ge.layoutZone(this._viewZoneId),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+B);return}else{let X=this._getHeight();if(X-=this._codeEditor.getOption(84).top,X<=0)return;de.heightInPx=X,this._viewZoneId=ge.addZone(de),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+X)}})}_removeViewZone(){this._codeEditor.changeViewZones(ae=>{this._viewZoneId!==void 0&&(ae.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const ae=this._codeEditor.getLayoutInfo();if(ae.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const de=ae.width,ge=ae.minimap.minimapWidth;let X=!1,B=!1,$=!1;if(this._resized&&d.getTotalWidth(this._domNode)>H){this._domNode.style.maxWidth=`${de-28-ge-15}px`,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode);return}if(H+28+ge>=de&&(B=!0),H+28+ge-j>=de&&($=!0),H+28+ge-j>=de+50&&(X=!0),this._domNode.classList.toggle("collapsed-find-widget",X),this._domNode.classList.toggle("narrow-find-widget",$),this._domNode.classList.toggle("reduced-find-widget",B),!$&&!X&&(this._domNode.style.maxWidth=`${de-28-ge-15}px`),this._findInput.layout({collapsedFindWidget:X,narrowFindWidget:$,reducedFindWidget:B}),this._resized){const Q=this._findInput.inputBox.element.clientWidth;Q>0&&(this._replaceInput.width=Q)}else this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode))}_getHeight(){let ae=0;return ae+=4,ae+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(ae+=4,ae+=this._replaceInput.inputBox.height+2),ae+=4,ae}_tryUpdateHeight(){const ae=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===ae?!1:(this._cachedHeight=ae,this._domNode.style.height=`${ae}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const ae=this._codeEditor.getSelections();ae.map(ee=>{ee.endColumn===1&&ee.endLineNumber>ee.startLineNumber&&(ee=ee.setEndPosition(ee.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(ee.endLineNumber-1)));const de=this._state.currentMatch;return ee.startLineNumber!==ee.endLineNumber&&!t.Range.equalsRange(ee,de)?ee:null}).filter(ee=>!!ee),ae.length&&this._state.change({searchScope:ae},!0)}}_onFindInputMouseDown(ae){ae.middleButton&&ae.stopPropagation()}_onFindInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` -`),ae.preventDefault();return}if(ae.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{n.isWindows&&n.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(s.localize(890,"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(G,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` -`),ae.preventDefault();return}if(ae.equals(2)){this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(1026)){this._findInput.focus(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(ae){return 0}_keybindingLabelFor(ae){const ee=this._keybindingService.lookupKeybinding(ae);return ee?` (${ee.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new g.ContextScopedFindInput(null,this._contextViewProvider,{width:U,label:D,placeholder:T,appendCaseSensitiveLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleRegexCommand),validation:te=>{if(te.length===0||!this._findInput.getRegex())return null;try{return new RegExp(te,"gu"),null}catch(re){return{content:re.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(te=>this._onFindInputKeyDown(te))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(te=>{te.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),te.preventDefault())})),this._register(this._findInput.onRegexKeyDown(te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),te.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(te=>{this._tryUpdateHeight()&&this._showViewZone()})),n.isLinux&&this._register(this._findInput.onMouseDown(te=>this._onFindInputMouseDown(te))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const de=this._register((0,v.createInstantHoverDelegate)());this._prevBtn=this._register(new he({label:M+this._keybindingLabelFor(i.FIND_IDS.PreviousMatchFindAction),icon:e.findPreviousMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.PreviousMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService)),this._nextBtn=this._register(new he({label:A+this._keybindingLabelFor(i.FIND_IDS.NextMatchFindAction),icon:e.findNextMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.NextMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService));const ge=document.createElement("div");ge.className="find-part",ge.appendChild(this._findInput.domNode);const X=document.createElement("div");X.className="find-actions",ge.appendChild(X),X.appendChild(this._matchesCount),X.appendChild(this._prevBtn.domNode),X.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new I.Toggle({icon:e.findSelectionIcon,title:P+this._keybindingLabelFor(i.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:de,inputActiveOptionBackground:(0,l.asCssVariable)(l.inputActiveOptionBackground),inputActiveOptionBorder:(0,l.asCssVariable)(l.inputActiveOptionBorder),inputActiveOptionForeground:(0,l.asCssVariable)(l.inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let te=this._codeEditor.getSelections();te=te.map(re=>(re.endColumn===1&&re.endLineNumber>re.startLineNumber&&(re=re.setEndPosition(re.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(re.endLineNumber-1))),re.isEmpty()?null:re)).filter(re=>!!re),te.length&&this._state.change({searchScope:te},!0)}}else this._state.change({searchScope:null},!0)})),X.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new he({label:N+this._keybindingLabelFor(i.FIND_IDS.CloseFindWidgetCommand),icon:a.widgetClose,hoverDelegate:de,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),te.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new g.ContextScopedReplaceInput(null,void 0,{label:O,placeholder:F,appendPreserveCaseLabel:this._keybindingLabelFor(i.FIND_IDS.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(te=>this._onReplaceInputKeyDown(te))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(te=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(te=>{te.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),te.preventDefault())}));const B=this._register((0,v.createInstantHoverDelegate)());this._replaceBtn=this._register(new he({label:x+this._keybindingLabelFor(i.FIND_IDS.ReplaceOneAction),icon:e.findReplaceIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replace()},onKeyDown:te=>{te.equals(1026)&&(this._closeBtn.focus(),te.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new he({label:W+this._keybindingLabelFor(i.FIND_IDS.ReplaceAllAction),icon:e.findReplaceAllIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const $=document.createElement("div");$.className="replace-part",$.appendChild(this._replaceInput.domNode);const Q=document.createElement("div");Q.className="replace-actions",$.appendChild(Q),Q.appendChild(this._replaceBtn.domNode),Q.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new he({label:V,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=L,this._domNode.role="dialog",this._domNode.style.width=`${H}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(ge),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild($),this._resizeSash=this._register(new E.Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let Z=H;this._register(this._resizeSash.onDidStart(()=>{Z=d.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(te=>{this._resized=!0;const re=Z+te.startX-te.currentX;if(rele||(this._domNode.style.width=`${re}px`,this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const te=d.getTotalWidth(this._domNode);if(te{this._opts.onTrigger(),ge.preventDefault()}),this.onkeydown(this._domNode,ge=>{if(ge.equals(10)||ge.equals(3)){this._opts.onTrigger(),ge.preventDefault();return}this._opts.onKeyDown?.(ge)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(ae){this._domNode.classList.toggle("disabled",!ae),this._domNode.setAttribute("aria-disabled",String(!ae)),this._domNode.tabIndex=ae?0:-1}setExpanded(ae){this._domNode.setAttribute("aria-expanded",String(!!ae)),ae?(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(w)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(S))):(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(S)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(w)))}}e.SimpleButton=he,(0,r.registerThemingParticipant)((pe,ae)=>{const ee=pe.getColor(l.editorFindMatchHighlightBorder);ee&&ae.addRule(`.monaco-editor .findMatch { border: 1px ${(0,C.isHighContrast)(pe.type)?"dotted":"solid"} ${ee}; box-sizing: border-box; }`);const de=pe.getColor(l.editorFindRangeHighlightBorder);de&&ae.addRule(`.monaco-editor .findScope { border: 1px ${(0,C.isHighContrast)(pe.type)?"dashed":"solid"} ${de}; }`);const ge=pe.getColor(l.contrastBorder);ge&&ae.addRule(`.monaco-editor .find-widget { border: 1px solid ${ge}; }`);const X=pe.getColor(l.editorFindMatchForeground);X&&ae.addRule(`.monaco-editor .findMatchInline { color: ${X}; }`);const B=pe.getColor(l.editorFindMatchHighlightForeground);B&&ae.addRule(`.monaco-editor .currentFindMatchInline { color: ${B}; }`)})}),define(ne[423],se([1,0,14,2,11,15,80,20,40,220,824,825,826,3,29,117,12,58,31,50,66,101,25,118]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StartFindReplaceAction=e.PreviousSelectionMatchFindAction=e.NextSelectionMatchFindAction=e.SelectionMatchFindAction=e.MoveToMatchFindAction=e.PreviousMatchFindAction=e.NextMatchFindAction=e.MatchFindAction=e.StartFindWithSelectionAction=e.StartFindWithArgsAction=e.StartFindAction=e.FindController=e.CommonFindController=void 0,e.getSelectionSearchString=w;const v=524288;function w(q,H="single",z=!1){if(!q.hasModel())return null;const U=q.getSelection();if(H==="single"&&U.startLineNumber===U.endLineNumber||H==="multiple"){if(U.isEmpty()){const j=q.getConfiguredWordAtPosition(U.getStartPosition());if(j&&z===!1)return j.word}else if(q.getModel().getValueLengthInRange(U)this._onStateChanged(K))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const K=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),K&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(H){this.saveQueryState(H),H.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),H.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(H){H.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),H.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),H.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),H.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!b.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let H=this._editor.getSelections();H=H.map(z=>(z.endColumn===1&&z.endLineNumber>z.startLineNumber&&(z=z.setEndPosition(z.endLineNumber-1,this._editor.getModel().getLineMaxColumn(z.endLineNumber-1))),z.isEmpty()?null:z)).filter(z=>!!z),H.length&&this._state.change({searchScope:H},!0)}}setSearchString(H){this._state.isRegex&&(H=I.escapeRegExpCharacters(H)),this._state.change({searchString:H},!1)}highlightFindOptions(H=!1){}async _start(H,z){if(this.disposeModel(),!this._editor.hasModel())return;const U={...z,isRevealed:!0};if(H.seedSearchStringFromSelection==="single"){const j=w(this._editor,H.seedSearchStringFromSelection,H.seedSearchStringFromNonEmptySelection);j&&(this._state.isRegex?U.searchString=I.escapeRegExpCharacters(j):U.searchString=j)}else if(H.seedSearchStringFromSelection==="multiple"&&!H.updateSearchScope){const j=w(this._editor,H.seedSearchStringFromSelection);j&&(U.searchString=j)}if(!U.searchString&&H.seedSearchStringFromGlobalClipboard){const j=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;j&&(U.searchString=j)}if(H.forceRevealReplace||U.isReplaceRevealed?U.isReplaceRevealed=!0:this._findWidgetVisible.get()||(U.isReplaceRevealed=!1),H.updateSearchScope){const j=this._editor.getSelections();j.some(Y=>!Y.isEmpty())&&(U.searchScope=j)}U.loop=H.loop,this._state.change(U,!1),this._model||(this._model=new b.FindModelBoundToEditorModel(this._editor,this._state))}start(H,z){return this._start(H,z)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(H){return this._model?(this._model.moveToMatch(H),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(t.localize(848,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(H){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(H)}};e.CommonFindController=S,e.CommonFindController=S=h=ke([ce(1,g.IContextKeyService),ce(2,u.IStorageService),ce(3,s.IClipboardService),ce(4,a.INotificationService),ce(5,f.IHoverService)],S);let L=class extends S{constructor(H,z,U,j,Y,G,K,R,J){super(H,U,K,R,G,J),this._contextViewService=z,this._keybindingService=j,this._themeService=Y,this._widget=null,this._findOptionsWidget=null}async _start(H,z){this._widget||this._createFindWidget();const U=this._editor.getSelection();let j=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":j=!0;break;case"never":j=!1;break;case"multiline":{j=!!U&&U.startLineNumber!==U.endLineNumber;break}default:break}H.updateSearchScope=H.updateSearchScope||j,await super._start(H,z),this._widget&&(H.shouldFocus===2?this._widget.focusReplaceInput():H.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(H=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!H?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new o.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new p.FindOptionsWidget(this._editor,this._state,this._keybindingService))}};e.FindController=L,e.FindController=L=ke([ce(1,c.IContextViewService),ce(2,g.IContextKeyService),ce(3,l.IKeybindingService),ce(4,C.IThemeService),ce(5,a.INotificationService),ce(6,u.IStorageService),ce(7,s.IClipboardService),ce(8,f.IHoverService)],L),e.StartFindAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindAction,label:t.localize(849,"Find"),alias:"Find",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(850,"&&Find"),order:1}})),e.StartFindAction.addImplementation(0,(q,H,z)=>{const U=S.get(H);return U?U.start({forceRevealReplace:!1,seedSearchStringFromSelection:H.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop}):!1});const D={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class T extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithArgs,label:t.localize(851,"Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:D})}async run(H,z,U){const j=S.get(z);if(j){const Y=U?{searchString:U.searchString,replaceString:U.replaceString,isReplaceRevealed:U.replaceString!==void 0,isRegex:U.isRegex,wholeWord:U.matchWholeWord,matchCase:U.isCaseSensitive,preserveCase:U.preserveCase}:{};await j.start({forceRevealReplace:!1,seedSearchStringFromSelection:j.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:U?.findInSelection||!1,loop:z.getOption(41).loop},Y),j.setGlobalBufferTerm(j.getState().searchString)}}}e.StartFindWithArgsAction=T;class M extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithSelection,label:t.localize(852,"Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(H,z){const U=S.get(z);U&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),U.setGlobalBufferTerm(U.getState().searchString))}}e.StartFindWithSelectionAction=M;class A extends E.EditorAction{async run(H,z){const U=S.get(z);U&&!this._run(U)&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:U.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.MatchFindAction=A;class P extends A{constructor(){super({id:b.FIND_IDS.NextMatchFindAction,label:t.localize(853,"Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}]})}_run(H){return H.moveToNextMatch()?(H.editor.pushUndoStop(),!0):!1}}e.NextMatchFindAction=P;class N extends A{constructor(){super({id:b.FIND_IDS.PreviousMatchFindAction,label:t.localize(854,"Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}]})}_run(H){return H.moveToPrevMatch()}}e.PreviousMatchFindAction=N;class O extends E.EditorAction{constructor(){super({id:b.FIND_IDS.GoToMatchFindAction,label:t.localize(855,"Go to Match..."),alias:"Go to Match...",precondition:b.CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(H,z,U){const j=S.get(z);if(!j)return;const Y=j.getState().matchesCount;if(Y<1){H.get(a.INotificationService).notify({severity:a.Severity.Warning,message:t.localize(856,"No matches. Try searching for something else.")});return}const G=H.get(r.IQuickInputService),K=new k.DisposableStore,R=K.add(G.createInputBox());R.placeholder=t.localize(857,"Type a number to go to a specific match (between 1 and {0})",Y);const J=ue=>{const he=parseInt(ue);if(isNaN(he))return;const pe=j.getState().matchesCount;if(he>0&&he<=pe)return he-1;if(he<0&&he>=-pe)return pe+he},ie=ue=>{const he=J(ue);if(typeof he=="number"){R.validationMessage=void 0,j.goToMatch(he);const pe=j.getState().currentMatch;pe&&this.addDecorations(z,pe)}else R.validationMessage=t.localize(858,"Please type a number between 1 and {0}",j.getState().matchesCount),this.clearDecorations(z)};K.add(R.onDidChangeValue(ue=>{ie(ue)})),K.add(R.onDidAccept(()=>{const ue=J(R.value);typeof ue=="number"?(j.goToMatch(ue),R.hide()):R.validationMessage=t.localize(859,"Please type a number between 1 and {0}",j.getState().matchesCount)})),K.add(R.onDidHide(()=>{this.clearDecorations(z),K.dispose()})),R.show()}clearDecorations(H){H.changeDecorations(z=>{this._highlightDecorations=z.deltaDecorations(this._highlightDecorations,[])})}addDecorations(H,z){H.changeDecorations(U=>{this._highlightDecorations=U.deltaDecorations(this._highlightDecorations,[{range:z,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:z,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:(0,C.themeColorFromId)(y.overviewRulerRangeHighlight),position:_.OverviewRulerLane.Full}}}])})}}e.MoveToMatchFindAction=O;class F extends E.EditorAction{async run(H,z){const U=S.get(z);if(!U)return;const j=w(z,"single",!1);j&&U.setSearchString(j),this._run(U)||(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.SelectionMatchFindAction=F;class x extends F{constructor(){super({id:b.FIND_IDS.NextSelectionMatchFindAction,label:t.localize(860,"Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:2109,weight:100}})}_run(H){return H.moveToNextMatch()}}e.NextSelectionMatchFindAction=x;class W extends F{constructor(){super({id:b.FIND_IDS.PreviousSelectionMatchFindAction,label:t.localize(861,"Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:3133,weight:100}})}_run(H){return H.moveToPrevMatch()}}e.PreviousSelectionMatchFindAction=W,e.StartFindReplaceAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindReplaceAction,label:t.localize(862,"Replace"),alias:"Replace",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(863,"&&Replace"),order:2}})),e.StartFindReplaceAction.addImplementation(0,(q,H,z)=>{if(!H.hasModel()||H.getOption(92))return!1;const U=S.get(H);if(!U)return!1;const j=H.getSelection(),Y=U.isFindInputFocused(),G=!j.isEmpty()&&j.startLineNumber===j.endLineNumber&&H.getOption(41).seedSearchStringFromSelection!=="never"&&!Y,K=Y||G?2:1;return U.start({forceRevealReplace:!0,seedSearchStringFromSelection:G?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:K,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop})}),(0,E.registerEditorContribution)(S.ID,L,0),(0,E.registerEditorAction)(T),(0,E.registerEditorAction)(M),(0,E.registerEditorAction)(P),(0,E.registerEditorAction)(N),(0,E.registerEditorAction)(O),(0,E.registerEditorAction)(x),(0,E.registerEditorAction)(W);const V=E.EditorCommand.bindToContribution(S.get);(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.CloseFindWidgetCommand,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.closeFindWidget(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,g.ContextKeyExpr.not("isComposing")),primary:9,secondary:[1033]}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:q=>q.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleCaseSensitiveKeybinding.primary,mac:b.ToggleCaseSensitiveKeybinding.mac,win:b.ToggleCaseSensitiveKeybinding.win,linux:b.ToggleCaseSensitiveKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:q=>q.toggleWholeWords(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleWholeWordKeybinding.primary,mac:b.ToggleWholeWordKeybinding.mac,win:b.ToggleWholeWordKeybinding.win,linux:b.ToggleWholeWordKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:q=>q.toggleRegex(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleRegexKeybinding.primary,mac:b.ToggleRegexKeybinding.mac,win:b.ToggleRegexKeybinding.win,linux:b.ToggleRegexKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:q=>q.toggleSearchScope(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleSearchScopeKeybinding.primary,mac:b.ToggleSearchScopeKeybinding.mac,win:b.ToggleSearchScopeKeybinding.win,linux:b.ToggleSearchScopeKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.TogglePreserveCaseCommand,precondition:void 0,handler:q=>q.togglePreserveCase(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.TogglePreserveCaseKeybinding.primary,mac:b.TogglePreserveCaseKeybinding.mac,win:b.TogglePreserveCaseKeybinding.win,linux:b.TogglePreserveCaseKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:3094}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:2563}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.SelectAllMatchesAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.selectAllMatches(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:515}}))}),define(ne[424],se([1,0,26,35,3,32,71,25,30]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingDecorationProvider=e.foldingManualExpandedIcon=e.foldingManualCollapsedIcon=e.foldingCollapsedIcon=e.foldingExpandedIcon=void 0;const b=(0,E.registerColor)("editor.foldBackground",{light:(0,E.transparent)(E.editorSelectionBackground,.3),dark:(0,E.transparent)(E.editorSelectionBackground,.3),hcDark:null,hcLight:null},(0,I.localize)(910,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);(0,E.registerColor)("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},(0,I.localize)(911,"Color of the collapsed text after the first line of a folded range.")),(0,E.registerColor)("editorGutter.foldingControlForeground",E.iconForeground,(0,I.localize)(912,"Color of the folding control in the editor gutter.")),e.foldingExpandedIcon=(0,y.registerIcon)("folding-expanded",d.Codicon.chevronDown,(0,I.localize)(913,"Icon for expanded ranges in the editor glyph margin.")),e.foldingCollapsedIcon=(0,y.registerIcon)("folding-collapsed",d.Codicon.chevronRight,(0,I.localize)(914,"Icon for collapsed ranges in the editor glyph margin.")),e.foldingManualCollapsedIcon=(0,y.registerIcon)("folding-manual-collapsed",e.foldingCollapsedIcon,(0,I.localize)(915,"Icon for manually collapsed ranges in the editor glyph margin.")),e.foldingManualExpandedIcon=(0,y.registerIcon)("folding-manual-expanded",e.foldingExpandedIcon,(0,I.localize)(916,"Icon for manually expanded ranges in the editor glyph margin."));const p={color:(0,m.themeColorFromId)(b),position:1},n=(0,I.localize)(917,"Click to expand the range."),o=(0,I.localize)(918,"Click to collapse the range.");class t{static{this.COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n})}static{this.EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(s){this.editor=s,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(s,g,c){return g?t.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?s?this.showFoldingHighlights?t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:t.NO_CONTROLS_EXPANDED_RANGE_DECORATION:s?c?this.showFoldingHighlights?t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?c?t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c?t.MANUALLY_EXPANDED_VISUAL_DECORATION:t.EXPANDED_VISUAL_DECORATION}changeDecorations(s){return this.editor.changeDecorations(s)}removeDecorations(s){this.editor.removeDecorations(s)}}e.FoldingDecorationProvider=t}),define(ne[289],se([1,0,14,18,8,72,2,11,19,143,15,20,27,36,334,613,335,3,12,424,203,336,50,79,54,17,6,24,22,51,28,511]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.RangesLimitReporter=e.FoldingController=void 0,e.toSelectedLines=F;const A=new l.RawContextKey("foldingEnabled",!1);let P=class extends y.Disposable{static{M=this}static{this.ID="editor.contrib.folding"}static get(X){return X.getContribution(M.ID)}static getFoldingRangeProviders(X,B){const $=X.foldingRangeProvider.ordered(B);return M._foldingRangeSelector?.($,B)??$}constructor(X,B,$,Q,Z,te){super(),this.contextKeyService=B,this.languageConfigurationService=$,this.languageFeaturesService=te,this.localToDispose=this._register(new y.DisposableStore),this.editor=X,this._foldingLimitReporter=new N(X);const re=this.editor.getOptions();this._isEnabled=re.get(43),this._useFoldingProviders=re.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=re.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=re.get(46),this.updateDebounceInfo=Z.for(te.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new a.FoldingDecorationProvider(X),this.foldingDecorationProvider.showFoldingControls=re.get(111),this.foldingDecorationProvider.showFoldingHighlights=re.get(45),this.foldingEnabled=A.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(le=>{if(le.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),le.hasChanged(47)&&this.onModelChanged(),le.hasChanged(111)||le.hasChanged(45)){const me=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=me.get(111),this.foldingDecorationProvider.showFoldingHighlights=me.get(45),this.triggerFoldingModelChanged()}le.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),le.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),le.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const X=this.editor.getModel();if(!X||!this._isEnabled||X.isTooLargeForTokenization())return{};if(this.foldingModel){const B=this.foldingModel.getMemento(),$=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:B,lineCount:X.getLineCount(),provider:$,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(X){const B=this.editor.getModel();if(!(!B||!this._isEnabled||B.isTooLargeForTokenization()||!this.hiddenRangeModel)&&X&&(this._currentModelHasFoldedImports=!!X.foldedImports,X.collapsedRegions&&X.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(X.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const X=this.editor.getModel();!this._isEnabled||!X||X.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new i.FoldingModel(X,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new s.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(B=>this.onHiddenRangesChanges(B))),this.updateScheduler=new d.Delayer(this.updateDebounceInfo.get(X)),this.cursorChangedScheduler=new d.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(B=>this.onDidChangeModelContent(B))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(B=>this.onEditorMouseDown(B))),this.localToDispose.add(this.editor.onMouseUp(B=>this.onEditorMouseUp(B))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(X){if(this.rangeProvider)return this.rangeProvider;const B=new g.IndentRangeProvider(X,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=B,this._useFoldingProviders&&this.foldingModel){const $=M.getFoldingRangeProviders(this.languageFeaturesService,X);$.length>0&&(this.rangeProvider=new u.SyntaxRangeProvider(X,$,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,B))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(X){this.hiddenRangeModel?.notifyChangeModelContent(X),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const X=this.foldingModel;if(!X)return null;const B=new h.StopWatch,$=this.getRangeProvider(X.textModel),Q=this.foldingRegionPromise=(0,d.createCancelablePromise)(Z=>$.compute(Z));return Q.then(Z=>{if(Z&&Q===this.foldingRegionPromise){let te;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const me=Z.setCollapsedAllOfType(o.FoldingRangeKind.Imports.value,!0);me&&(te=b.StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=me)}const re=this.editor.getSelections();X.update(Z,F(re)),te?.restore(this.editor);const le=this.updateDebounceInfo.update(X.textModel,B.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=le)}return X})}).then(void 0,X=>((0,I.onUnexpectedError)(X),null)))}onHiddenRangesChanges(X){if(this.hiddenRangeModel&&X.length&&!this._restoringViewState){const B=this.editor.getSelections();B&&this.hiddenRangeModel.adjustSelections(B)&&this.editor.setSelections(B)}this.editor.setHiddenAreas(X,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const X=this.getFoldingModel();X&&X.then(B=>{if(B){const $=this.editor.getSelections();if($&&$.length>0){const Q=[];for(const Z of $){const te=Z.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(te)&&Q.push(...B.getAllRegionsAtLine(te,re=>re.isCollapsed&&te>re.startLineNumber))}Q.length&&(B.toggleCollapseState(Q),this.reveal($[0].getPosition()))}}}).then(void 0,I.onUnexpectedError)}onEditorMouseDown(X){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!X.target||!X.target.range||!X.event.leftButton&&!X.event.middleButton)return;const B=X.target.range;let $=!1;switch(X.target.type){case 4:{const Q=X.target.detail,Z=X.target.element.offsetLeft;if(Q.offsetX-Z<4)return;$=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!X.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const Q=this.editor.getModel();if(Q&&B.startColumn===Q.getLineMaxColumn(B.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:B.startLineNumber,iconClicked:$}}onEditorMouseUp(X){const B=this.foldingModel;if(!B||!this.mouseDownInfo||!X.target)return;const $=this.mouseDownInfo.lineNumber,Q=this.mouseDownInfo.iconClicked,Z=X.target.range;if(!Z||Z.startLineNumber!==$)return;if(Q){if(X.target.type!==4)return}else{const re=this.editor.getModel();if(!re||Z.startColumn!==re.getLineMaxColumn($))return}const te=B.getRegionAtLine($);if(te&&te.startLineNumber===$){const re=te.isCollapsed;if(Q||re){const le=X.event.altKey;let me=[];if(le){const Ce=Le=>!Le.containedBy(te)&&!te.containedBy(Le),ye=B.getRegionsInside(null,Ce);for(const Le of ye)Le.isCollapsed&&me.push(Le);me.length===0&&(me=ye)}else{const Ce=X.event.middleButton||X.event.shiftKey;if(Ce)for(const ye of B.getRegionsInside(te))ye.isCollapsed===re&&me.push(ye);(re||!Ce||me.length===0)&&me.push(te)}B.toggleCollapseState(me),this.reveal({lineNumber:$,column:1})}}}reveal(X){this.editor.revealPositionInCenterIfOutsideViewport(X,0)}};e.FoldingController=P,e.FoldingController=P=M=ke([ce(1,l.IContextKeyService),ce(2,t.ILanguageConfigurationService),ce(3,C.INotificationService),ce(4,f.ILanguageFeatureDebounceService),ce(5,v.ILanguageFeaturesService)],P);class N{constructor(X){this.editor=X,this._onDidChange=new w.Emitter,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(X,B){(X!==this._computed||B!==this._limited)&&(this._computed=X,this._limited=B,this._onDidChange.fire())}}e.RangesLimitReporter=N;class O extends p.EditorAction{runEditorCommand(X,B,$){const Q=X.get(t.ILanguageConfigurationService),Z=P.get(B);if(!Z)return;const te=Z.getFoldingModel();if(te)return this.reportTelemetry(X,B),te.then(re=>{if(re){this.invoke(Z,re,B,$,Q);const le=B.getSelection();le&&Z.reveal(le.getStartPosition())}})}getSelectedLines(X){const B=X.getSelections();return B?B.map($=>$.startLineNumber):[]}getLineNumbers(X,B){return X&&X.selectionLines?X.selectionLines.map($=>$+1):this.getSelectedLines(B)}run(X,B){}}function F(ge){return!ge||ge.length===0?{startsInside:()=>!1}:{startsInside(X,B){for(const $ of ge){const Q=$.startLineNumber;if(Q>=X&&Q<=B)return!0}return!1}}}function x(ge){if(!_.isUndefined(ge)){if(!_.isObject(ge))return!1;const X=ge;if(!_.isUndefined(X.levels)&&!_.isNumber(X.levels)||!_.isUndefined(X.direction)&&!_.isString(X.direction)||!_.isUndefined(X.selectionLines)&&(!Array.isArray(X.selectionLines)||!X.selectionLines.every(_.isNumber)))return!1}return!0}class W extends O{constructor(){super({id:"editor.unfold",label:c.localize(891,"Unfold"),alias:"Unfold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: - * 'levels': Number of levels to unfold. If not set, defaults to 1. - * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. - * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. - `,constraint:x,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(X,B,$,Q){const Z=Q&&Q.levels||1,te=this.getLineNumbers(Q,$);Q&&Q.direction==="up"?(0,i.setCollapseStateLevelsUp)(B,!1,Z,te):(0,i.setCollapseStateLevelsDown)(B,!1,Z,te)}}class V extends O{constructor(){super({id:"editor.unfoldRecursively",label:c.localize(892,"Unfold Recursively"),alias:"Unfold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2142),weight:100}})}invoke(X,B,$,Q){(0,i.setCollapseStateLevelsDown)(B,!1,Number.MAX_VALUE,this.getSelectedLines($))}}class q extends O{constructor(){super({id:"editor.fold",label:c.localize(893,"Fold"),alias:"Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: - * 'levels': Number of levels to fold. - * 'direction': If 'up', folds given number of levels up otherwise folds down. - * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. - If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. - `,constraint:x,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(X,B,$,Q){const Z=this.getLineNumbers(Q,$),te=Q&&Q.levels,re=Q&&Q.direction;typeof te!="number"&&typeof re!="string"?(0,i.setCollapseStateUp)(B,!0,Z):re==="up"?(0,i.setCollapseStateLevelsUp)(B,!0,te||1,Z):(0,i.setCollapseStateLevelsDown)(B,!0,te||1,Z)}}class H extends O{constructor(){super({id:"editor.toggleFold",label:c.localize(894,"Toggle Fold"),alias:"Toggle Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2090),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.toggleCollapseState)(B,1,Q)}}class z extends O{constructor(){super({id:"editor.foldRecursively",label:c.localize(895,"Fold Recursively"),alias:"Fold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2140),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateLevelsDown)(B,!0,Number.MAX_VALUE,Q)}}class U extends O{constructor(){super({id:"editor.toggleFoldRecursively",label:c.localize(896,"Toggle Fold Recursively"),alias:"Toggle Fold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,3114),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.toggleCollapseState)(B,Number.MAX_VALUE,Q)}}class j extends O{constructor(){super({id:"editor.foldAllBlockComments",label:c.localize(897,"Fold All Block Comments"),alias:"Fold All Block Comments",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2138),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Comment.value,!0);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).comments;if(re&&re.blockCommentStartToken){const le=new RegExp("^\\s*"+(0,m.escapeRegExpCharacters)(re.blockCommentStartToken));(0,i.setCollapseStateForMatchingLines)(B,le,!0)}}}}class Y extends O{constructor(){super({id:"editor.foldAllMarkerRegions",label:c.localize(898,"Fold All Regions"),alias:"Fold All Regions",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2077),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Region.value,!0);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).foldingRules;if(re&&re.markers&&re.markers.start){const le=new RegExp(re.markers.start);(0,i.setCollapseStateForMatchingLines)(B,le,!0)}}}}class G extends O{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:c.localize(899,"Unfold All Regions"),alias:"Unfold All Regions",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2078),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Region.value,!1);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).foldingRules;if(re&&re.markers&&re.markers.start){const le=new RegExp(re.markers.start);(0,i.setCollapseStateForMatchingLines)(B,le,!1)}}}}class K extends O{constructor(){super({id:"editor.foldAllExcept",label:c.localize(900,"Fold All Except Selected"),alias:"Fold All Except Selected",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2136),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateForRest)(B,!0,Q)}}class R extends O{constructor(){super({id:"editor.unfoldAllExcept",label:c.localize(901,"Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2134),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateForRest)(B,!1,Q)}}class J extends O{constructor(){super({id:"editor.foldAll",label:c.localize(902,"Fold All"),alias:"Fold All",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2069),weight:100}})}invoke(X,B,$){(0,i.setCollapseStateLevelsDown)(B,!0)}}class ie extends O{constructor(){super({id:"editor.unfoldAll",label:c.localize(903,"Unfold All"),alias:"Unfold All",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2088),weight:100}})}invoke(X,B,$){(0,i.setCollapseStateLevelsDown)(B,!1)}}class ue extends O{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=X=>ue.ID_PREFIX+X}getFoldingLevel(){return parseInt(this.id.substr(ue.ID_PREFIX.length))}invoke(X,B,$){(0,i.setCollapseStateAtLevel)(B,this.getFoldingLevel(),!0,this.getSelectedLines($))}}class he extends O{constructor(){super({id:"editor.gotoParentFold",label:c.localize(904,"Go to Parent Fold"),alias:"Go to Parent Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getParentFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class pe extends O{constructor(){super({id:"editor.gotoPreviousFold",label:c.localize(905,"Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getPreviousFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class ae extends O{constructor(){super({id:"editor.gotoNextFold",label:c.localize(906,"Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getNextFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class ee extends O{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:c.localize(907,"Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2135),weight:100}})}invoke(X,B,$){const Q=[],Z=$.getSelections();if(Z){for(const te of Z){let re=te.endLineNumber;te.endColumn===1&&--re,re>te.startLineNumber&&(Q.push({startLineNumber:te.startLineNumber,endLineNumber:re,type:void 0,isCollapsed:!0,source:1}),$.setSelection({startLineNumber:te.startLineNumber,startColumn:1,endLineNumber:te.startLineNumber,endColumn:1}))}if(Q.length>0){Q.sort((re,le)=>re.startLineNumber-le.startLineNumber);const te=r.FoldingRegions.sanitizeAndMerge(B.regions,Q,$.getModel()?.getLineCount());B.updatePost(r.FoldingRegions.fromFoldRanges(te))}}}}class de extends O{constructor(){super({id:"editor.removeManualFoldingRanges",label:c.localize(908,"Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2137),weight:100}})}invoke(X,B,$){const Q=$.getSelections();if(Q){const Z=[];for(const te of Q){const{startLineNumber:re,endLineNumber:le}=te;Z.push(le>=re?{startLineNumber:re,endLineNumber:le}:{endLineNumber:le,startLineNumber:re})}B.removeManualRanges(Z),X.triggerFoldingModelChanged()}}}(0,p.registerEditorContribution)(P.ID,P,0),(0,p.registerEditorAction)(W),(0,p.registerEditorAction)(V),(0,p.registerEditorAction)(q),(0,p.registerEditorAction)(z),(0,p.registerEditorAction)(U),(0,p.registerEditorAction)(J),(0,p.registerEditorAction)(ie),(0,p.registerEditorAction)(j),(0,p.registerEditorAction)(Y),(0,p.registerEditorAction)(G),(0,p.registerEditorAction)(K),(0,p.registerEditorAction)(R),(0,p.registerEditorAction)(H),(0,p.registerEditorAction)(he),(0,p.registerEditorAction)(pe),(0,p.registerEditorAction)(ae),(0,p.registerEditorAction)(ee),(0,p.registerEditorAction)(de);for(let ge=1;ge<=7;ge++)(0,p.registerInstantiatedEditorAction)(new ue({id:ue.ID(ge),label:c.localize(909,"Fold Level {0}",ge),alias:`Fold Level ${ge}`,precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2048|21+ge),weight:100}}));S.CommandsRegistry.registerCommand("_executeFoldingRangeProvider",async function(ge,...X){const[B]=X;if(!(B instanceof L.URI))throw(0,I.illegalArgument)();const $=ge.get(v.ILanguageFeaturesService),Q=ge.get(D.IModelService).getModel(B);if(!Q)throw(0,I.illegalArgument)();const Z=ge.get(T.IConfigurationService);if(!Z.getValue("editor.folding",{resource:B}))return[];const te=ge.get(t.ILanguageConfigurationService),re=Z.getValue("editor.foldingStrategy",{resource:B}),le={get limit(){return Z.getValue("editor.foldingMaximumRegions",{resource:B})},update:(Ee,Me)=>{}},me=new g.IndentRangeProvider(Q,te,le);let Ce=me;if(re!=="indentation"){const Ee=P.getFoldingRangeProviders($,Q);Ee.length&&(Ce=new u.SyntaxRangeProvider(Q,Ee,()=>{},le,me))}const ye=await Ce.compute(k.CancellationToken.None),Le=[];try{if(ye)for(let Ee=0;Eethis.editorWorkerService.navigateValueSet(h,C,a)),this.currentRequest.then(v=>{if(!v||!v.range||!v.value||!f.validate(this.editor))return;const w=y.Range.lift(v.range);let S=v.range;const L=v.value.length-(C.endColumn-C.startColumn);S={startLineNumber:S.startLineNumber,startColumn:S.startColumn,endLineNumber:S.endLineNumber,endColumn:S.startColumn+v.value.length},L>1&&(C=new m.Selection(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn+L-1));const D=new o.InPlaceReplaceCommand(w,C,v.value);this.editor.pushUndoStop(),this.editor.executeCommand(l,D),this.editor.pushUndoStop(),this.decorations.set([{range:S,options:t.DECORATION}]),this.decorationRemover?.cancel(),this.decorationRemover=(0,d.timeout)(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(k.onUnexpectedError)}).catch(k.onUnexpectedError)):Promise.resolve(void 0)}};i=t=ke([ce(1,p.IEditorWorkerService)],i);class s extends E.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:n.localize(1103,"Replace with Previous Value"),alias:"Replace with Previous Value",precondition:_.EditorContextKeys.writable,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(l,a){const r=i.get(a);return r?r.run(this.id,!1):Promise.resolve(void 0)}}class g extends E.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:n.localize(1104,"Replace with Next Value"),alias:"Replace with Next Value",precondition:_.EditorContextKeys.writable,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(l,a){const r=i.get(a);return r?r.run(this.id,!0):Promise.resolve(void 0)}}(0,E.registerEditorContribution)(i.ID,i,4),(0,E.registerEditorAction)(s),(0,E.registerEditorAction)(g)}),define(ne[828],se([1,0,2,21,9,4,43,40,150,205,139,518]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GhostTextWidget=e.INLINE_EDIT_DESCRIPTION=void 0,e.INLINE_EDIT_DESCRIPTION="inline-edit";let n=class extends d.Disposable{constructor(t,i,s){super(),this.editor=t,this.model=i,this.languageService=s,this.isDisposed=(0,k.observableValue)(this,!1),this.currentTextModel=(0,k.observableFromEvent)(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,k.derived)(this,g=>{if(this.isDisposed.read(g))return;const c=this.currentTextModel.read(g);if(c!==this.model.targetTextModel.read(g))return;const l=this.model.ghostText.read(g);if(!l)return;let a=this.model.range?.read(g);a&&a.startLineNumber===a.endLineNumber&&a.startColumn===a.endColumn&&(a=void 0);const r=(a?a.startLineNumber===a.endLineNumber:!0)&&l.parts.length===1&&l.parts[0].lines.length===1,u=l.parts.length===1&&l.parts[0].lines.every(T=>T.length===0),C=[],f=[];function h(T,M){if(f.length>0){const A=f[f.length-1];M&&A.decorations.push(new _.LineDecoration(A.content.length+1,A.content.length+1+T[0].length,M,0)),A.content+=T[0],T=T.slice(1)}for(const A of T)f.push({content:A,decorations:M?[new _.LineDecoration(1,A.length+1,M,0)]:[]})}const v=c.getLineContent(l.lineNumber);let w,S=0;if(!u&&(r||!a)){for(const T of l.parts){let M=T.lines;a&&!r&&(h(M,e.INLINE_EDIT_DESCRIPTION),M=[]),w===void 0?(C.push({column:T.column,text:M[0],preview:T.preview}),M=M.slice(1)):h([v.substring(S,T.column-1)],void 0),M.length>0&&(h(M,e.INLINE_EDIT_DESCRIPTION),w===void 0&&T.column<=v.length&&(w=T.column)),S=T.column-1}w!==void 0&&h([v.substring(S)],void 0)}const L=w!==void 0?new b.ColumnRange(w,v.length+1):void 0,D=r||!a?l.lineNumber:a.endLineNumber-1;return{inlineTexts:C,additionalLines:f,hiddenRange:L,lineNumber:D,additionalReservedLineCount:this.model.minReservedLineCount.read(g),targetTextModel:c,range:a,isSingleLine:r,isPureRemove:u}}),this.decorations=(0,k.derived)(this,g=>{const c=this.uiState.read(g);if(!c)return[];const l=[];if(c.hiddenRange&&l.push({range:c.hiddenRange.toRange(c.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),c.range){const a=[];if(c.isSingleLine)a.push(c.range);else if(!c.isPureRemove){const r=c.range.endLineNumber-c.range.startLineNumber;for(let u=0;u{this.isDisposed.set(!0,void 0)})),this._register((0,b.applyObservableDecorations)(this.editor,this.decorations))}};e.GhostTextWidget=n,e.GhostTextWidget=n=ke([ce(2,y.ILanguageService)],n)}),define(ne[829],se([1,0,5,18,2,21,65,22,112,125,215,139,9,4,70,35,51,7,520]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";var l,a;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditSideBySideWidget=void 0;function*r(h,v,w=1){v===void 0&&([v,h]=[h,0]);for(let S=h;SS.replace(new RegExp("^"+v),"")),shift:w}}let C=class extends I.Disposable{static{l=this}static{this._modelId=0}static _createUniqueUri(){return m.URI.from({scheme:"inline-edit-widget",path:new Date().toString()+String(l._modelId++)})}constructor(v,w,S,L,D){super(),this._editor=v,this._model=w,this._instantiationService=S,this._diffProviderFactoryService=L,this._modelService=D,this._position=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M||M.text.length===0||M.range.startLineNumber===M.range.endLineNumber&&!(M.range.startColumn===M.range.endColumn&&M.range.startColumn===1))return null;const A=this._editor.getModel();if(!A)return null;const P=Array.from(r(M.range.startLineNumber,M.range.endLineNumber+1)),N=P.map(V=>A.getLineLastNonWhitespaceColumn(V)),O=Math.max(...N),F=P[N.indexOf(O)],x=new o.Position(F,O);return{top:M.range.startLineNumber,left:x}}),this._text=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M)return{text:"",shift:0};const A=u(M.text.split(` -`));return{text:A.text.join(` -`),shift:A.shift}}),this._originalModel=(0,y.derivedDisposable)(()=>this._modelService.createModel("",null,l._createUniqueUri())).keepObserved(this._store),this._modifiedModel=(0,y.derivedDisposable)(()=>this._modelService.createModel("",null,l._createUniqueUri())).keepObserved(this._store),this._diff=(0,E.derived)(this,T=>this._diffPromise.read(T)?.promiseResult.read(T)?.data),this._diffPromise=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M)return;const A=this._editor.getModel();if(!A)return;const P=u(A.getValueInRange(M.range).split(` -`)).text.join(` -`),N=u(M.text.split(` -`)).text.join(` -`);this._originalModel.get().setValue(P),this._modifiedModel.get().setValue(N);const O=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return E.ObservablePromise.fromFn(async()=>{const F=await O.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},k.CancellationToken.None);if(!F.identical)return F.changes})}),this._register((0,E.autorunWithStore)((T,M)=>{if(!this._model.read(T)||this._position.get()===null)return;const P=M.add(this._instantiationService.createInstance(f,this._editor,this._position,this._text.map(N=>N.text),this._text.map(N=>N.shift),this._diff));v.addOverlayWidget(P),M.add((0,I.toDisposable)(()=>v.removeOverlayWidget(P)))}))}};e.InlineEditSideBySideWidget=C,e.InlineEditSideBySideWidget=C=l=ke([ce(2,c.IInstantiationService),ce(3,p.IDiffProviderFactoryService),ce(4,g.IModelService)],C);let f=class extends I.Disposable{static{a=this}static{this.id=0}constructor(v,w,S,L,D,T){super(),this._editor=v,this._position=w,this._text=S,this._shift=L,this._diff=D,this._instantiationService=T,this.id=`InlineEditSideBySideContentWidget${a.id++}`,this.allowEditorOverflow=!1,this._nodes=(0,d.$)("div.inlineEditSideBySide",void 0),this._scrollChanged=(0,E.observableSignalFromEvent)("editor.onDidScrollChange",this._editor.onDidScrollChange),this._previewEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._nodes,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,scrollbar:{vertical:"hidden",horizontal:"hidden",alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off",wrappingIndent:"none",wrappingStrategy:void 0},{contributions:[],isSimpleWidget:!0},this._editor)),this._previewEditorObs=(0,_.observableCodeEditor)(this._previewEditor),this._editorObs=(0,_.observableCodeEditor)(this._editor),this._previewTextModel=this._register(this._instantiationService.createInstance(s.TextModel,"",this._editor.getModel()?.getLanguageId()??i.PLAINTEXT_LANGUAGE_ID,s.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=(0,E.derived)(M=>{const A=this._text.read(M);A&&this._previewTextModel.setValue(A)}).recomputeInitiallyAndOnChange(this._store),this._decorations=(0,E.derived)(this,M=>{this._setText.read(M);const A=this._position.read(M);if(!A)return{org:[],mod:[]};const P=this._diff.read(M);if(!P)return{org:[],mod:[]};const N=[],O=[];if(P.length===1&&P[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return{org:[],mod:[]};const F=this._shift.get(),x=W=>new t.Range(W.startLineNumber+A.top-1,W.startColumn+F,W.endLineNumber+A.top-1,W.endColumn+F);for(const W of P)if(W.original.isEmpty||N.push({range:x(W.original.toInclusiveRange()),options:n.diffLineDeleteDecorationBackgroundWithIndicator}),W.modified.isEmpty||O.push({range:W.modified.toInclusiveRange(),options:n.diffLineAddDecorationBackgroundWithIndicator}),W.modified.isEmpty||W.original.isEmpty)W.original.isEmpty||N.push({range:x(W.original.toInclusiveRange()),options:n.diffWholeLineDeleteDecoration}),W.modified.isEmpty||O.push({range:W.modified.toInclusiveRange(),options:n.diffWholeLineAddDecoration});else for(const V of W.innerChanges||[])W.original.contains(V.originalRange.startLineNumber)&&N.push({range:x(V.originalRange),options:V.originalRange.isEmpty()?n.diffDeleteDecorationEmpty:n.diffDeleteDecoration}),W.modified.contains(V.modifiedRange.startLineNumber)&&O.push({range:V.modifiedRange,options:V.modifiedRange.isEmpty()?n.diffAddDecorationEmpty:n.diffAddDecoration});return{org:N,mod:O}}),this._originalDecorations=(0,E.derived)(this,M=>this._decorations.read(M).org),this._modifiedDecorations=(0,E.derived)(this,M=>this._decorations.read(M).mod),this._previewEditor.setModel(this._previewTextModel),this._register(this._editorObs.setDecorations(this._originalDecorations)),this._register(this._previewEditorObs.setDecorations(this._modifiedDecorations)),this._register((0,E.autorun)(M=>{const A=this._previewEditorObs.contentWidth.read(M),P=this._text.read(M).split(` -`).length-1,N=this._editor.getOption(67)*P;A<=0||this._previewEditor.layout({height:N,width:A})})),this._register((0,E.autorun)(M=>{this._position.read(M),this._editor.layoutOverlayWidget(this)})),this._register((0,E.autorun)(M=>{this._scrollChanged.read(M),this._position.read(M)&&this._editor.layoutOverlayWidget(this)}))}getId(){return this.id}getDomNode(){return this._nodes}getPosition(){const v=this._position.get();if(!v)return null;const w=this._editor.getLayoutInfo(),S=this._editor.getScrolledVisiblePosition(new o.Position(v.top,1));if(!S)return null;const L=S.top-1,D=this._editor.getOffsetForColumn(v.left.lineNumber,v.left.column);return{preference:{left:w.contentLeft+D+10,top:L}}}};f=a=ke([ce(5,c.IInstantiationService)],f)}),define(ne[425],se([1,0,2,21,75,9,4,828,12,7,27,17,18,204,24,800,5,28,8,65,829,215,51]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditController=void 0;let h=class extends d.Disposable{static{f=this}static{this.ID="editor.contrib.inlineEditController"}static{this.inlineEditVisibleKey="inlineEditVisible"}static{this.inlineEditVisibleContext=new _.RawContextKey(this.inlineEditVisibleKey,!1)}static{this.cursorAtInlineEditKey="cursorAtInlineEdit"}static{this.cursorAtInlineEditContext=new _.RawContextKey(this.cursorAtInlineEditKey,!1)}static get(S){return S.getContribution(f.ID)}constructor(S,L,D,T,M,A,P,N){super(),this.editor=S,this.instantiationService=L,this.contextKeyService=D,this.languageFeaturesService=T,this._commandService=M,this._configurationService=A,this._diffProviderFactoryService=P,this._modelService=N,this._isVisibleContext=f.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=f.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=(0,k.observableValue)(this,void 0),this._currentWidget=(0,a.derivedDisposable)(this._currentEdit,q=>{const H=this._currentEdit.read(q);if(!H)return;const z=H.range.endLineNumber,U=H.range.endColumn,j=H.text.endsWith(` -`)&&!(H.range.startLineNumber===H.range.endLineNumber&&H.range.startColumn===H.range.endColumn)?H.text.slice(0,-1):H.text,Y=new t.GhostText(z,[new t.GhostTextPart(U,j,!1)]),G=H.range.startLineNumber===H.range.endLineNumber&&Y.parts.length===1&&Y.parts[0].lines.length===1,K=H.text==="";return!G&&!K?void 0:this.instantiationService.createInstance(m.GhostTextWidget,this.editor,{ghostText:(0,k.constObservable)(Y),minReservedLineCount:(0,k.constObservable)(0),targetTextModel:(0,k.constObservable)(this.editor.getModel()??void 0),range:(0,k.constObservable)(H.range)})}),this._isAccepting=(0,k.observableValue)(this,!1),this._enabled=(0,k.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=(0,k.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily);const O=(0,k.observableSignalFromEvent)("InlineEditController.modelContentChangedSignal",S.onDidChangeModelContent);this._register((0,k.autorun)(q=>{this._enabled.read(q)&&(O.read(q),!this._isAccepting.read(q)&&this.getInlineEdit(S,!0))}));const F=(0,k.observableFromEvent)(this,S.onDidChangeCursorPosition,()=>S.getPosition());this._register((0,k.autorun)(q=>{if(!this._enabled.read(q))return;const H=F.read(q);H&&this.checkCursorPosition(H)})),this._register((0,k.autorun)(q=>{const H=this._currentEdit.read(q);if(this._isCursorAtInlineEditContext.set(!1),!H){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const z=S.getPosition();z&&this.checkCursorPosition(z)}));const x=(0,k.observableSignalFromEvent)("InlineEditController.editorBlurSignal",S.onDidBlurEditorWidget);this._register((0,k.autorun)(async q=>{this._enabled.read(q)&&(x.read(q),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||S.getOption(63).keepOnBlur)&&(this._currentRequestCts?.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));const W=(0,k.observableSignalFromEvent)("InlineEditController.editorFocusSignal",S.onDidFocusEditorText);this._register((0,k.autorun)(q=>{this._enabled.read(q)&&(W.read(q),this.getInlineEdit(S,!0))}));const V=this._register((0,g.createStyleSheet2)());this._register((0,k.autorun)(q=>{const H=this._fontFamily.read(q);V.setStyle(H===""||H==="default"?"":` -.monaco-editor .inline-edit-decoration, -.monaco-editor .inline-edit-decoration-preview, -.monaco-editor .inline-edit { - font-family: ${H}; -}`)})),this._register(new s.InlineEditHintsWidget(this.editor,this._currentWidget,this.instantiationService)),this._register(new r.InlineEditSideBySideWidget(this.editor,this._currentEdit,this.instantiationService,this._diffProviderFactoryService,this._modelService))}checkCursorPosition(S){if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const L=this._currentEdit.get();if(!L){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(y.Range.containsPosition(L.range,S))}validateInlineEdit(S,L){if(L.text.includes(` -`)&&L.range.startLineNumber!==L.range.endLineNumber&&L.range.startColumn!==L.range.endColumn){if(L.range.startColumn!==1)return!1;const T=L.range.endLineNumber,M=L.range.endColumn,A=S.getModel()?.getLineLength(T)??0;if(M!==A+1)return!1}return!0}async fetchInlineEdit(S,L){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const D=S.getModel();if(!D)return;const T=D.getVersionId(),M=this.languageFeaturesService.inlineEditProvider.all(D);if(M.length===0)return;const A=M[0];this._currentRequestCts=new o.CancellationTokenSource;const P=this._currentRequestCts.token,N=L?p.InlineEditTriggerKind.Automatic:p.InlineEditTriggerKind.Invoke;if(L&&await v(50,P),P.isCancellationRequested||D.isDisposed()||D.getVersionId()!==T)return;const F=await A.provideInlineEdit(D,{triggerKind:N},P);if(F&&!(P.isCancellationRequested||D.isDisposed()||D.getVersionId()!==T)&&this.validateInlineEdit(S,F))return F}async getInlineEdit(S,L){this._isCursorAtInlineEditContext.set(!1),await this.clear();const D=await this.fetchInlineEdit(S,L);D&&this._currentEdit.set(D,void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){this._isAccepting.set(!0,void 0);const S=this._currentEdit.get();if(!S)return;let L=S.text;S.text.startsWith(` -`)&&(L=S.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[I.EditOperation.replace(y.Range.lift(S.range),L)]),S.accepted&&await this._commandService.executeCommand(S.accepted.id,...S.accepted.arguments||[]).then(void 0,l.onUnexpectedExternalError),this.freeEdit(S),(0,k.transaction)(D=>{this._currentEdit.set(void 0,D),this._isAccepting.set(!1,D)})}jumpToCurrent(){this._jumpBackPosition=this.editor.getSelection()?.getStartPosition();const S=this._currentEdit.get();if(!S)return;const L=E.Position.lift({lineNumber:S.range.startLineNumber,column:S.range.startColumn});this.editor.setPosition(L),this.editor.revealPositionInCenterIfOutsideViewport(L)}async clear(S=!0){const L=this._currentEdit.get();L&&L?.rejected&&S&&await this._commandService.executeCommand(L.rejected.id,...L.rejected.arguments||[]).then(void 0,l.onUnexpectedExternalError),L&&this.freeEdit(L),this._currentEdit.set(void 0,void 0)}freeEdit(S){const L=this.editor.getModel();if(!L)return;const D=this.languageFeaturesService.inlineEditProvider.all(L);D.length!==0&&D[0].freeInlineEdit(S)}};e.InlineEditController=h,e.InlineEditController=h=f=ke([ce(1,b.IInstantiationService),ce(2,_.IContextKeyService),ce(3,n.ILanguageFeaturesService),ce(4,i.ICommandService),ce(5,c.IConfigurationService),ce(6,u.IDiffProviderFactoryService),ce(7,C.IModelService)],h);function v(w,S){return new Promise(L=>{let D;const T=setTimeout(()=>{D&&D.dispose(),L()},w);S&&(D=S.onCancellationRequested(()=>{clearTimeout(T),D&&D.dispose(),L()}))})}}),define(ne[830],se([1,0,15,20,618,425,29,12]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RejectInlineEdit=e.JumpBackInlineEdit=e.JumpToInlineEdit=e.TriggerInlineEdit=e.AcceptInlineEdit=void 0;class _ extends d.EditorAction{constructor(){super({id:I.inlineEditAcceptId,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext,E.InlineEditController.cursorAtInlineEditContext)}],menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(i,s){await E.InlineEditController.get(s)?.accept()}}e.AcceptInlineEdit=_;class b extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,m.ContextKeyExpr.not(E.InlineEditController.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:i,kbOpts:{weight:101,primary:2646,kbExpr:i}})}async run(i,s){E.InlineEditController.get(s)?.trigger()}}e.TriggerInlineEdit=b;class p extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext,m.ContextKeyExpr.not(E.InlineEditController.cursorAtInlineEditKey));super({id:I.inlineEditJumpToId,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:i,kbOpts:{weight:101,primary:2646,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:i}]})}async run(i,s){E.InlineEditController.get(s)?.jumpToCurrent()}}e.JumpToInlineEdit=p;class n extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.cursorAtInlineEditContext);super({id:I.inlineEditJumpBackId,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:i,kbOpts:{weight:110,primary:2646,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:i}]})}async run(i,s){E.InlineEditController.get(s)?.jumpBack()}}e.JumpBackInlineEdit=n;class o extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext);super({id:I.inlineEditRejectId,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:i,kbOpts:{weight:100,primary:9,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(i,s){await E.InlineEditController.get(s)?.clear()}}e.RejectInlineEdit=o}),define(ne[831],se([1,0,15,830,425]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorAction)(k.AcceptInlineEdit),(0,d.registerEditorAction)(k.RejectInlineEdit),(0,d.registerEditorAction)(k.JumpToInlineEdit),(0,d.registerEditorAction)(k.JumpBackInlineEdit),(0,d.registerEditorAction)(k.TriggerInlineEdit),(0,d.registerEditorContribution)(I.InlineEditController.ID,I.InlineEditController,3)}),define(ne[290],se([1,0,5,14,26,2,11,30,4,35,7,522]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineProgressManager=void 0;const n=b.ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:y.noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class o extends E.Disposable{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(s,g,c,l,a){super(),this.typeId=s,this.editor=g,this.range=c,this.delegate=a,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(l),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(s){this.domNode=d.$(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=s;const g=d.$("span.icon");this.domNode.append(g),g.classList.add(...m.ThemeIcon.asClassNameArray(I.Codicon.loading),"codicon-modifier-spin");const c=()=>{const l=this.editor.getOption(67);this.domNode.style.height=`${l}px`,this.domNode.style.width=`${Math.ceil(.8*l)}px`};c(),this._register(this.editor.onDidChangeConfiguration(l=>{(l.hasChanged(52)||l.hasChanged(67))&&c()})),this._register(d.addDisposableListener(this.domNode,d.EventType.CLICK,l=>{this.delegate.cancel()}))}getId(){return o.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}let t=class extends E.Disposable{constructor(s,g,c){super(),this.id=s,this._editor=g,this._instantiationService=c,this._showDelay=500,this._showPromise=this._register(new E.MutableDisposable),this._currentWidget=this._register(new E.MutableDisposable),this._operationIdPool=0,this._currentDecorations=g.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(s,g,c,l,a){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=(0,k.disposableTimeout)(()=>{const u=_.Range.fromPositions(s);this._currentDecorations.set([{range:u,options:n}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(o,this.id,this._editor,u,g,l))},a??this._showDelay);try{return await c}finally{this._currentOperation===r&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};e.InlineProgressManager=t,e.InlineProgressManager=t=ke([ce(2,p.IInstantiationService)],t)}),define(ne[832],se([1,0,13,14,194,91,2,400,4,17,327,678,122,290,3,28,12,399,7,268,396]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.DropIntoEditorController=e.dropWidgetVisibleCtx=e.changeDropTypeCommandId=e.defaultProviderConfig=void 0,e.defaultProviderConfig="editor.experimental.dropIntoEditor.defaultProvider",e.changeDropTypeCommandId="editor.changeDropType",e.dropWidgetVisibleCtx=new g.RawContextKey("dropWidgetVisible",!1,(0,i.localize)(842,"Whether the drop widget is showing"));let C=class extends y.Disposable{static{u=this}static{this.ID="editor.contrib.dropIntoEditorController"}static get(h){return h.getContribution(u.ID)}constructor(h,v,w,S,L){super(),this._configService=w,this._languageFeaturesService=S,this._treeViewsDragAndDropService=L,this.treeItemsTransfer=c.LocalSelectionTransfer.getInstance(),this._dropProgressManager=this._register(v.createInstance(t.InlineProgressManager,"dropIntoEditor",h)),this._postDropWidgetManager=this._register(v.createInstance(r.PostEditWidgetManager,"dropIntoEditor",h,e.dropWidgetVisibleCtx,{id:e.changeDropTypeCommandId,label:(0,i.localize)(843,"Show drop options...")})),this._register(h.onDropIntoEditor(D=>this.onDropIntoEditor(h,D.position,D.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(h,v,w){if(!w.dataTransfer||!h.hasModel())return;this._currentOperation?.cancel(),h.focus(),h.setPosition(v);const S=(0,k.createCancelablePromise)(async L=>{const D=new y.DisposableStore,T=D.add(new o.EditorStateCancellationTokenSource(h,1,void 0,L));try{const M=await this.extractDataTransferData(w);if(M.size===0||T.token.isCancellationRequested)return;const A=h.getModel();if(!A)return;const P=this._languageFeaturesService.documentDropEditProvider.ordered(A).filter(O=>O.dropMimeTypes?O.dropMimeTypes.some(F=>M.matches(F)):!0),N=D.add(await this.getDropEdits(P,A,v,M,T));if(T.token.isCancellationRequested)return;if(N.edits.length){const O=this.getInitialActiveEditIndex(A,N.edits),F=h.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([_.Range.fromPositions(v)],{activeEditIndex:O,allEdits:N.edits},F,async x=>x,L)}}finally{D.dispose(),this._currentOperation===S&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(v,(0,i.localize)(844,"Running drop handlers. Click to cancel"),S,{cancel:()=>S.cancel()}),this._currentOperation=S}async getDropEdits(h,v,w,S,L){const D=new y.DisposableStore,T=await(0,k.raceCancellation)(Promise.all(h.map(async A=>{try{const P=await A.provideDocumentDropEdits(v,w,S,L.token);return P&&D.add(P),P?.edits.map(N=>({...N,providerId:A.id}))}catch(P){console.error(P)}})),L.token),M=(0,d.coalesce)(T??[]).flat();return{edits:(0,a.sortEditsByYieldTo)(M),dispose:()=>D.dispose()}}getInitialActiveEditIndex(h,v){const w=this._configService.getValue(e.defaultProviderConfig,{resource:h.uri});for(const[S,L]of Object.entries(w)){const D=new E.HierarchicalKind(L),T=v.findIndex(M=>D.value===M.providerId&&M.handledMimeType&&(0,I.matchesMimeType)(S,[M.handledMimeType]));if(T>=0)return T}return 0}async extractDataTransferData(h){if(!h.dataTransfer)return new I.VSDataTransfer;const v=(0,m.toExternalVSDataTransfer)(h.dataTransfer);if(this.treeItemsTransfer.hasData(p.DraggedTreeItemsIdentifier.prototype)){const w=this.treeItemsTransfer.getData(p.DraggedTreeItemsIdentifier.prototype);if(Array.isArray(w))for(const S of w){const L=await this._treeViewsDragAndDropService.removeDragOperationTransfer(S.identifier);if(L)for(const[D,T]of L)v.replace(D,T)}}return v}};e.DropIntoEditorController=C,e.DropIntoEditorController=C=u=ke([ce(1,l.IInstantiationService),ce(2,s.IConfigurationService),ce(3,b.ILanguageFeaturesService),ce(4,n.ITreeViewsDnDService)],C)}),define(ne[833],se([1,0,13,14,18,33,8,6,2,11,22,15,34,9,4,20,35,36,3,12,17,32,79,54,523]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.editorLinkedEditingBackground=e.LinkedEditingAction=e.LinkedEditingContribution=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=void 0,e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new a.RawContextKey("LinkedEditingInputVisible",!1);const v="linked-editing-decoration";let w=class extends _.Disposable{static{h=this}static{this.ID="editor.contrib.linkedEditing"}static{this.DECORATION=g.ModelDecorationOptions.register({description:"linked-editing",stickiness:0,className:v})}static get(M){return M.getContribution(h.ID)}constructor(M,A,P,N,O){super(),this.languageConfigurationService=N,this._syncRangesToken=0,this._localToDispose=this._register(new _.DisposableStore),this._editor=M,this._providers=P.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(A),this._debounceInformation=O.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new _.DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(F=>{(F.hasChanged(70)||F.hasChanged(94))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(M){const A=this._editor.getModel(),P=A!==null&&(this._editor.getOption(70)||this._editor.getOption(94))&&this._providers.has(A);if(P===this._enabled&&!M||(this._enabled=P,this.clearRanges(),this._localToDispose.clear(),!P||A===null))return;this._localToDispose.add(m.Event.runAndSubscribe(A.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(A.getLanguageId()).getWordDefinition()}));const N=new k.Delayer(this._debounceInformation.get(A)),O=()=>{this._rangeUpdateTriggerPromise=N.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(A))},F=new k.Delayer(0),x=W=>{this._rangeSyncTriggerPromise=F.trigger(()=>this._syncRanges(W))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{O()})),this._localToDispose.add(this._editor.onDidChangeModelContent(W=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const V=this._currentDecorations.getRange(0);if(V&&W.changes.every(q=>V.intersectRanges(q.range))){x(this._syncRangesToken);return}}O()})),this._localToDispose.add({dispose:()=>{N.dispose(),F.dispose()}}),this.updateRanges()}_syncRanges(M){if(!this._editor.hasModel()||M!==this._syncRangesToken||this._currentDecorations.length===0)return;const A=this._editor.getModel(),P=this._currentDecorations.getRange(0);if(!P||P.startLineNumber!==P.endLineNumber)return this.clearRanges();const N=A.getValueInRange(P);if(this._currentWordPattern){const F=N.match(this._currentWordPattern);if((F?F[0].length:0)!==N.length)return this.clearRanges()}const O=[];for(let F=1,x=this._currentDecorations.length;F1){this.clearRanges();return}const P=this._editor.getModel(),N=P.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===N){if(A.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const F=this._currentDecorations.getRange(0);if(F&&F.containsPosition(A))return}}this.clearRanges(),this._currentRequestPosition=A,this._currentRequestModelVersion=N;const O=this._currentRequestCts=new I.CancellationTokenSource;try{const F=new f.StopWatch(!1),x=await D(this._providers,P,A,O.token);if(this._debounceInformation.update(P,F.elapsed()),O!==this._currentRequestCts||(this._currentRequestCts=null,N!==P.getVersionId()))return;let W=[];x?.ranges&&(W=x.ranges),this._currentWordPattern=x?.wordPattern||this._languageWordPattern;let V=!1;for(let H=0,z=W.length;H({range:H,options:h.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(q),this._syncRangesToken++}catch(F){(0,y.isCancellationError)(F)||(0,y.onUnexpectedError)(F),(this._currentRequestCts===O||!this._currentRequestCts)&&this.clearRanges()}}};e.LinkedEditingContribution=w,e.LinkedEditingContribution=w=h=ke([ce(1,a.IContextKeyService),ce(2,r.ILanguageFeaturesService),ce(3,c.ILanguageConfigurationService),ce(4,C.ILanguageFeatureDebounceService)],w);class S extends n.EditorAction{constructor(){super({id:"editor.action.linkedEditing",label:l.localize(1136,"Start Linked Editing"),alias:"Start Linked Editing",precondition:a.ContextKeyExpr.and(s.EditorContextKeys.writable,s.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(M,A){const P=M.get(o.ICodeEditorService),[N,O]=Array.isArray(A)&&A||[void 0,void 0];return p.URI.isUri(N)&&t.Position.isIPosition(O)?P.openCodeEditor({resource:N},P.getActiveCodeEditor()).then(F=>{F&&(F.setPosition(O),F.invokeWithinContext(x=>(this.reportTelemetry(x,F),this.run(x,F))))},y.onUnexpectedError):super.runCommand(M,A)}run(M,A){const P=w.get(A);return P?Promise.resolve(P.updateRanges(!0)):Promise.resolve()}}e.LinkedEditingAction=S;const L=n.EditorCommand.bindToContribution(w.get);(0,n.registerEditorCommand)(new L({id:"cancelLinkedEditingInput",precondition:e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,handler:T=>T.clearRanges(),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function D(T,M,A,P){const N=T.ordered(M);return(0,k.first)(N.map(O=>async()=>{try{return await O.provideLinkedEditingRanges(M,A,P)}catch(F){(0,y.onUnexpectedExternalError)(F);return}}),O=>!!O&&d.isNonEmptyArray(O?.ranges))}e.editorLinkedEditingBackground=(0,u.registerColor)("editor.linkedEditingBackground",{dark:E.Color.fromHex("#f00").transparent(.3),light:E.Color.fromHex("#f00").transparent(.3),hcDark:E.Color.fromHex("#f00").transparent(.3),hcLight:E.Color.white},l.localize(1137,"Background color when the editor auto renames on type.")),(0,n.registerModelAndPositionCommand)("_executeLinkedEditingProvider",(T,M,A)=>{const{linkedEditingRangeProvider:P}=T.get(r.ILanguageFeaturesService);return D(P,M,A,I.CancellationToken.None)}),(0,n.registerEditorContribution)(w.ID,w,1),(0,n.registerEditorAction)(S)}),define(ne[834],se([1,0,14,18,8,57,2,42,16,48,54,22,15,35,79,17,209,681,3,50,59,524]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.LinkDetector=void 0;let C=class extends y.Disposable{static{u=this}static{this.ID="editor.linkDetector"}static get(L){return L.getContribution(u.ID)}constructor(L,D,T,M,A){super(),this.editor=L,this.openerService=D,this.notificationService=T,this.languageFeaturesService=M,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=A.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new d.RunOnceScheduler(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const P=this._register(new g.ClickLinkGesture(L));this._register(P.onMouseMoveOrRelevantKeyDown(([N,O])=>{this._onEditorMouseMove(N,O)})),this._register(P.onExecute(N=>{this.onEditorMouseUp(N)})),this._register(P.onCancel(N=>{this.cleanUpActiveLinkDecoration()})),this._register(L.onDidChangeConfiguration(N=>{N.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(L.onDidChangeModelContent(N=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(L.onDidChangeModel(N=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(L.onDidChangeModelLanguage(N=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(N=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const L=this.editor.getModel();if(!L.isTooLargeForSyncing()&&this.providers.has(L)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,d.createCancelablePromise)(D=>(0,c.getLinks)(this.providers,L,D));try{const D=new p.StopWatch(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(L,D.elapsed()),L.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(D){(0,I.onUnexpectedError)(D)}finally{this.computePromise=null}}}updateDecorations(L){const D=this.editor.getOption(78)==="altKey",T=[],M=Object.keys(this.currentOccurrences);for(const P of M){const N=this.currentOccurrences[P];T.push(N.decorationId)}const A=[];if(L)for(const P of L)A.push(h.decoration(P,D));this.editor.changeDecorations(P=>{const N=P.deltaDecorations(T,A);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let O=0,F=N.length;O{M.activate(A,T),this.activeLinkDecorationId=M.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const L=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const D=this.currentOccurrences[this.activeLinkDecorationId];D&&this.editor.changeDecorations(T=>{D.deactivate(T,L)}),this.activeLinkDecorationId=null}}onEditorMouseUp(L){if(!this.isEnabled(L))return;const D=this.getLinkOccurrence(L.target.position);D&&this.openLinkOccurrence(D,L.hasSideBySideModifier,!0)}openLinkOccurrence(L,D,T=!1){if(!this.openerService)return;const{link:M}=L;M.resolve(k.CancellationToken.None).then(A=>{if(typeof A=="string"&&this.editor.hasModel()){const P=this.editor.getModel().uri;if(P.scheme===m.Schemas.file&&A.startsWith(`${m.Schemas.file}:`)){const N=n.URI.parse(A);if(N.scheme===m.Schemas.file){const O=b.originalFSPath(N);let F=null;O.startsWith("/./")||O.startsWith("\\.\\")?F=`.${O.substr(1)}`:(O.startsWith("//./")||O.startsWith("\\\\.\\"))&&(F=`.${O.substr(2)}`),F&&(A=b.joinPath(P,F))}}}return this.openerService.open(A,{openToSide:D,fromUserGesture:T,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},A=>{const P=A instanceof Error?A.message:A;P==="invalid"?this.notificationService.warn(l.localize(1138,"Failed to open this link because it is not well-formed: {0}",M.url.toString())):P==="missing"?this.notificationService.warn(l.localize(1139,"Failed to open this link because its target is missing.")):(0,I.onUnexpectedError)(A)})}getLinkOccurrence(L){if(!this.editor.hasModel()||!L)return null;const D=this.editor.getModel().getDecorationsInRange({startLineNumber:L.lineNumber,startColumn:L.column,endLineNumber:L.lineNumber,endColumn:L.column},0,!0);for(const T of D){const M=this.currentOccurrences[T.id];if(M)return M}return null}isEnabled(L,D){return!!(L.target.type===6&&(L.hasTriggerModifier||D&&D.keyCodeIsTriggerKey))}stop(){this.computeLinks.cancel(),this.activeLinksList&&(this.activeLinksList?.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};e.LinkDetector=C,e.LinkDetector=C=u=ke([ce(1,r.IOpenerService),ce(2,a.INotificationService),ce(3,s.ILanguageFeaturesService),ce(4,i.ILanguageFeatureDebounceService)],C);const f={general:t.ModelDecorationOptions.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:t.ModelDecorationOptions.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class h{static decoration(L,D){return{range:L.range,options:h._getOptions(L,D,!1)}}static _getOptions(L,D,T){const M={...T?f.active:f.general};return M.hoverMessage=v(L,D),M}constructor(L,D){this.link=L,this.decorationId=D}activate(L,D){L.changeDecorationOptions(this.decorationId,h._getOptions(this.link,D,!0))}deactivate(L,D){L.changeDecorationOptions(this.decorationId,h._getOptions(this.link,D,!1))}}function v(S,L){const D=S.url&&/^command:/i.test(S.url.toString()),T=S.tooltip?S.tooltip:D?l.localize(1140,"Execute command"):l.localize(1141,"Follow link"),M=L?_.isMacintosh?l.localize(1142,"cmd + click"):l.localize(1143,"ctrl + click"):_.isMacintosh?l.localize(1144,"option + click"):l.localize(1145,"alt + click");if(S.url){let A="";if(/^command:/i.test(S.url.toString())){const N=S.url.toString().match(/^command:([^?#]+)/);if(N){const O=N[1];A=l.localize(1146,"Execute command {0}",O)}}return new E.MarkdownString("",!0).appendLink(S.url.toString(!0).replace(/ /g,"%20"),T,A).appendMarkdown(` (${M})`)}else return new E.MarkdownString().appendText(`${T} (${M})`)}class w extends o.EditorAction{constructor(){super({id:"editor.action.openLink",label:l.localize(1147,"Open Link"),alias:"Open Link",precondition:void 0})}run(L,D){const T=C.get(D);if(!T||!D.hasModel())return;const M=D.getSelections();for(const A of M){const P=T.getLinkOccurrence(A.getEndPosition());P&&T.openLinkOccurrence(P,!1)}}}(0,o.registerEditorContribution)(C.ID,C,1),(0,o.registerEditorAction)(w)}),define(ne[835],se([1,0,14,2,15,36,35,100]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SectionHeaderDetector=void 0;let _=class extends k.Disposable{static{this.ID="editor.sectionHeaderDetector"}constructor(n,o,t){super(),this.editor=n,this.languageConfigurationService=o,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(n.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(n.onDidChangeModel(i=>{this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(n.onDidChangeModelLanguage(i=>{this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(o.onDidChange(i=>{const s=this.editor.getModel()?.getLanguageId();s&&i.affects(s)&&(this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(n.onDidChangeConfiguration(i=>{this.options&&!i.hasChanged(73)||(this.options=this.createOptions(n.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(i=>{this.computeSectionHeaders.schedule()})),this._register(n.onDidChangeModelTokens(i=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new d.RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(n){if(!n||!this.editor.hasModel())return;const o=this.editor.getModel().getLanguageId();if(!o)return;const t=this.languageConfigurationService.getLanguageConfiguration(o).comments,i=this.languageConfigurationService.getLanguageConfiguration(o).foldingRules;if(!(!t&&!i?.markers))return{foldingRules:i,findMarkSectionHeaders:n.showMarkSectionHeaders,findRegionSectionHeaders:n.showRegionSectionHeaders}}findSectionHeaders(){if(!this.editor.hasModel()||!this.options?.findMarkSectionHeaders&&!this.options?.findRegionSectionHeaders)return;const n=this.editor.getModel();if(n.isDisposed()||n.isTooLargeForSyncing())return;const o=n.getVersionId();this.editorWorkerService.findSectionHeaders(n.uri,this.options).then(t=>{n.isDisposed()||n.getVersionId()!==o||this.updateDecorations(t)})}updateDecorations(n){const o=this.editor.getModel();o&&(n=n.filter(s=>{if(!s.shouldBeInComments)return!0;const g=o.validateRange(s.range),c=o.tokenization.getLineTokens(g.startLineNumber),l=c.findTokenIndexAtOffset(g.startColumn-1),a=c.getStandardTokenType(l);return c.getLanguageId(l)===o.getLanguageId()&&a===1}));const t=Object.values(this.currentOccurrences).map(s=>s.decorationId),i=n.map(s=>b(s));this.editor.changeDecorations(s=>{const g=s.deltaDecorations(t,i);this.currentOccurrences={};for(let c=0,l=g.length;cf.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(f){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const h of this._modelProviders){const{statusPromise:v,modelPromise:w}=h.computeStickyModel(f);this._modelPromise=w;const S=await v;if(this._modelPromise!==w)return null;switch(S){case s.CANCELED:return this._updateOperation.clear(),null;case s.VALID:return h.stickyModel}}return null}).catch(h=>((0,p.onUnexpectedError)(h),null))}};e.StickyModelProvider=g,e.StickyModelProvider=g=ke([ce(2,t.IInstantiationService),ce(3,k.ILanguageFeaturesService)],g);class c extends d.Disposable{constructor(f){super(),this._editor=f,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,s.INVALID}computeStickyModel(f){if(f.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const h=(0,E.createCancelablePromise)(v=>this.createModelFromProvider(v));return{statusPromise:h.then(v=>this.isModelValid(v)?f.isCancellationRequested?s.CANCELED:(this._stickyModel=this.createStickyModel(f,v),s.VALID):this._invalid()).then(void 0,v=>((0,p.onUnexpectedError)(v),s.CANCELED)),modelPromise:h}}isModelValid(f){return!0}isProviderValid(){return!0}}let l=class extends c{constructor(f,h){super(f),this._languageFeaturesService=h}createModelFromProvider(f){return I.OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),f)}createStickyModel(f,h){const{stickyOutlineElement:v,providerID:w}=this._stickyModelFromOutlineModel(h,this._stickyModel?.outlineProviderId),S=this._editor.getModel();return new n.StickyModel(S.uri,S.getVersionId(),v,w)}isModelValid(f){return f&&f.children.size>0}_stickyModelFromOutlineModel(f,h){let v;if(o.Iterable.first(f.children.values())instanceof I.OutlineGroup){const D=o.Iterable.find(f.children.values(),T=>T.id===h);if(D)v=D.children;else{let T="",M=-1,A;for(const[P,N]of f.children.entries()){const O=this._findSumOfRangesOfGroup(N);O>M&&(A=N,M=O,T=N.id)}h=T,v=A.children}}else v=f.children;const w=[],S=Array.from(v.values()).sort((D,T)=>{const M=new n.StickyRange(D.symbol.range.startLineNumber,D.symbol.range.endLineNumber),A=new n.StickyRange(T.symbol.range.startLineNumber,T.symbol.range.endLineNumber);return this._comparator(M,A)});for(const D of S)w.push(this._stickyModelFromOutlineElement(D,D.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new n.StickyElement(void 0,w,void 0),providerID:h}}_stickyModelFromOutlineElement(f,h){const v=[];for(const S of f.children.values())if(S.symbol.selectionRange.startLineNumber!==S.symbol.range.endLineNumber)if(S.symbol.selectionRange.startLineNumber!==h)v.push(this._stickyModelFromOutlineElement(S,S.symbol.selectionRange.startLineNumber));else for(const L of S.children.values())v.push(this._stickyModelFromOutlineElement(L,S.symbol.selectionRange.startLineNumber));v.sort((S,L)=>this._comparator(S.range,L.range));const w=new n.StickyRange(f.symbol.selectionRange.startLineNumber,f.symbol.range.endLineNumber);return new n.StickyElement(w,v,void 0)}_comparator(f,h){return f.startLineNumber!==h.startLineNumber?f.startLineNumber-h.startLineNumber:h.endLineNumber-f.endLineNumber}_findSumOfRangesOfGroup(f){let h=0;for(const v of f.children.values())h+=this._findSumOfRangesOfGroup(v);return f instanceof I.OutlineElement?h+f.symbol.range.endLineNumber-f.symbol.selectionRange.startLineNumber:h}};l=ke([ce(1,k.ILanguageFeaturesService)],l);class a extends c{constructor(f){super(f),this._foldingLimitReporter=new y.RangesLimitReporter(f)}createStickyModel(f,h){const v=this._fromFoldingRegions(h),w=this._editor.getModel();return new n.StickyModel(w.uri,w.getVersionId(),v,void 0)}isModelValid(f){return f!==null}_fromFoldingRegions(f){const h=f.length,v=[],w=new n.StickyElement(void 0,[],void 0);for(let S=0;S0&&(this.provider=this._register(new m.SyntaxRangeProvider(f.getModel(),w,h,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(f){return this.provider?.compute(f)??null}};u=ke([ce(2,k.ILanguageFeaturesService)],u)}),define(ne[837],se([1,0,2,17,18,14,13,6,36,836]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyLineCandidateProvider=e.StickyLineCandidate=void 0;class p{constructor(t,i,s){this.startLineNumber=t,this.endLineNumber=i,this.nestingDepth=s}}e.StickyLineCandidate=p;let n=class extends d.Disposable{constructor(t,i,s){super(),this._languageFeaturesService=i,this._languageConfigurationService=s,this._onDidChangeStickyScroll=this._register(new m.Emitter),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new d.DisposableStore),this._updateSoon=this._register(new E.RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(g=>{g.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add((0,d.toDisposable)(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){return this._model?.version}updateStickyModelProvider(){this._stickyModelProvider?.dispose(),this._stickyModelProvider=null;const t=this._editor;t.hasModel()&&(this._stickyModelProvider=new b.StickyModelProvider(t,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){this._cts?.dispose(!0),this._cts=new I.CancellationTokenSource,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const i=await this._stickyModelProvider.update(t);t.isCancellationRequested||(this._model=i)}updateIndex(t){return t===-1?t=0:t<0&&(t=-t-2),t}getCandidateStickyLinesIntersectingFromStickyModel(t,i,s,g,c){if(i.children.length===0)return;let l=c;const a=[];for(let C=0;CC-f)),u=this.updateIndex((0,y.binarySearch)(a,t.startLineNumber+g,(C,f)=>C-f));for(let C=r;C<=u;C++){const f=i.children[C];if(!f)return;if(f.range){const h=f.range.startLineNumber,v=f.range.endLineNumber;t.startLineNumber<=v+1&&h-1<=t.endLineNumber&&h!==l&&(l=h,s.push(new p(h,v-1,g+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,f,s,g+1,h))}else this.getCandidateStickyLinesIntersectingFromStickyModel(t,f,s,g,c)}}getCandidateStickyLinesIntersecting(t){if(!this._model?.element)return[];let i=[];this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,i,0,-1);const s=this._editor._getViewModel()?.getHiddenAreas();if(s)for(const g of s)i=i.filter(c=>!(c.startLineNumber>=g.startLineNumber&&c.endLineNumber<=g.endLineNumber+1));return i}};e.StickyLineCandidateProvider=n,e.StickyLineCandidateProvider=n=ke([ce(1,k.ILanguageFeaturesService),ce(2,_.ILanguageConfigurationService)],n)}),define(ne[838],se([1,0,5,103,13,2,30,281,125,9,116,150,136,424,531]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollWidget=e.StickyScrollWidgetState=void 0;class i{constructor(h,v,w,S=null){this.startLineNumbers=h,this.endLineNumbers=v,this.lastLineRelativePosition=w,this.showEndForLine=S}equals(h){return!!h&&this.lastLineRelativePosition===h.lastLineRelativePosition&&this.showEndForLine===h.showEndForLine&&(0,I.equals)(this.startLineNumbers,h.startLineNumbers)&&(0,I.equals)(this.endLineNumbers,h.endLineNumbers)}static get Empty(){return new i([],[],0)}}e.StickyScrollWidgetState=i;const s=(0,k.createTrustedTypesPolicy)("stickyScrollViewLayer",{createHTML:f=>f}),g="data-sticky-line-index",c="data-sticky-is-line",l="data-sticky-is-line-number",a="data-sticky-is-folding-icon";class r extends E.Disposable{constructor(h){super(),this._editor=h,this._foldingIconStore=new E.DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",h instanceof _.EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const v=()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(w=>{w.hasChanged(116)&&v(),w.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(w=>{w.scrollLeftChanged&&v(),w.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{v(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),v(),this._register(this._editor.onDidLayoutChange(w=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(h){return this._renderedStickyLines.find(v=>v.lineNumber===h)}getCurrentLines(){return this._lineNumbers}setState(h,v,w){if(w===void 0&&(!this._previousState&&!h||this._previousState&&this._previousState.equals(h)))return;const S=this._isWidgetHeightZero(h),L=S?void 0:h,D=S?0:this._findLineToRebuildWidgetFrom(h,w);this._renderRootNode(L,v,D),this._previousState=h}_isWidgetHeightZero(h){if(!h)return!0;const v=h.startLineNumbers.length*this._lineHeight+h.lastLineRelativePosition;if(v>0){this._lastLineRelativePosition=h.lastLineRelativePosition;const w=[...h.startLineNumbers];h.showEndForLine!==null&&(w[h.showEndForLine]=h.endLineNumbers[h.showEndForLine]),this._lineNumbers=w}else this._lastLineRelativePosition=0,this._lineNumbers=[];return v===0}_findLineToRebuildWidgetFrom(h,v){if(!h||!this._previousState)return 0;if(v!==void 0)return v;const w=this._previousState,S=h.startLineNumbers.findIndex(L=>!w.startLineNumbers.includes(L));return S===-1?0:S}_updateWidgetWidth(){const h=this._editor.getLayoutInfo(),v=h.contentLeft;this._lineNumbersDomNode.style.width=`${v}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-h.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${h.width-h.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(h){this._foldingIconStore.clear();for(let v=h;vT.scrollWidth))+S.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)==="mouseover"&&(this._foldingIconStore.add(d.addDisposableListener(this._lineNumbersDomNode,d.EventType.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(d.addDisposableListener(this._lineNumbersDomNode,d.EventType.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(h,v,w,S){const L=this._editor._getViewModel();if(!L)return;const D=L.coordinatesConverter.convertModelPositionToViewPosition(new b.Position(v,1)).lineNumber,T=L.getViewLineRenderingData(D),M=this._editor.getOption(68);let A;try{A=n.LineDecoration.filter(T.inlineDecorations,D,T.minColumn,T.maxColumn)}catch{A=[]}const P=new o.RenderLineInput(!0,!0,T.content,T.continuesWithWrappedLine,T.isBasicASCII,T.containsRTL,0,T.tokens,A,T.tabSize,T.startVisibleColumn,1,1,1,500,"none",!0,!0,null),N=new p.StringBuilder(2e3),O=(0,o.renderViewLine)(P,N);let F;s?F=s.createHTML(N.build()):F=N.build();const x=document.createElement("span");x.setAttribute(g,String(h)),x.setAttribute(c,""),x.setAttribute("role","listitem"),x.tabIndex=0,x.className="sticky-line-content",x.classList.add(`stickyLine${v}`),x.style.lineHeight=`${this._lineHeight}px`,x.innerHTML=F;const W=document.createElement("span");W.setAttribute(g,String(h)),W.setAttribute(l,""),W.className="sticky-line-number",W.style.lineHeight=`${this._lineHeight}px`;const V=S.contentLeft;W.style.width=`${V}px`;const q=document.createElement("span");M.renderType===1||M.renderType===3&&v%10===0?q.innerText=v.toString():M.renderType===2&&(q.innerText=Math.abs(v-this._editor.getPosition().lineNumber).toString()),q.className="sticky-line-number-inner",q.style.lineHeight=`${this._lineHeight}px`,q.style.width=`${S.lineNumbersWidth}px`,q.style.paddingLeft=`${S.lineNumbersLeft}px`,W.appendChild(q);const H=this._renderFoldingIconForLine(w,v);H&&W.appendChild(H.domNode),this._editor.applyFontInfo(x),this._editor.applyFontInfo(q),W.style.lineHeight=`${this._lineHeight}px`,x.style.lineHeight=`${this._lineHeight}px`,W.style.height=`${this._lineHeight}px`,x.style.height=`${this._lineHeight}px`;const z=new u(h,v,x,W,H,O.characterMapping,x.scrollWidth);return this._updateTopAndZIndexOfStickyLine(z)}_updateTopAndZIndexOfStickyLine(h){const v=h.index,w=h.lineDomNode,S=h.lineNumberDomNode,L=v===this._lineNumbers.length-1,D="0",T="1";w.style.zIndex=L?D:T,S.style.zIndex=L?D:T;const M=`${v*this._lineHeight+this._lastLineRelativePosition+(h.foldingIcon?.isCollapsed?1:0)}px`,A=`${v*this._lineHeight}px`;return w.style.top=L?M:A,S.style.top=L?M:A,h}_renderFoldingIconForLine(h,v){const w=this._editor.getOption(111);if(!h||w==="never")return;const S=h.regions,L=S.findRange(v),D=S.getStartLineNumber(L);if(!(v===D))return;const M=S.isCollapsed(L),A=new C(M,D,S.getEndLineNumber(L),this._lineHeight);return A.setVisible(this._isOnGlyphMargin?!0:M||w==="always"),A.domNode.setAttribute(a,""),A}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(h){0<=h&&h0)return null;const v=this._getRenderedStickyLineFromChildDomNode(h);if(!v)return null;const w=(0,m.getColumnOfNodeOffset)(v.characterMapping,h,0);return new b.Position(v.lineNumber,w)}getLineNumberFromChildDomNode(h){return this._getRenderedStickyLineFromChildDomNode(h)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(h){const v=this.getLineIndexFromChildDomNode(h);return v===null||v<0||v>=this._renderedStickyLines.length?null:this._renderedStickyLines[v]}getLineIndexFromChildDomNode(h){const v=this._getAttributeValue(h,g);return v?parseInt(v,10):null}isInStickyLine(h){return this._getAttributeValue(h,c)!==void 0}isInFoldingIconDomNode(h){return this._getAttributeValue(h,a)!==void 0}_getAttributeValue(h,v){for(;h&&h!==this._rootDomNode;){const w=h.getAttribute(v);if(w!==null)return w;h=h.parentElement}}}e.StickyScrollWidget=r;class u{constructor(h,v,w,S,L,D,T){this.index=h,this.lineNumber=v,this.lineDomNode=w,this.lineNumberDomNode=S,this.foldingIcon=L,this.characterMapping=D,this.scrollWidth=T}}class C{constructor(h,v,w,S){this.isCollapsed=h,this.foldingStartLine=v,this.foldingEndLine=w,this.dimension=S,this.domNode=document.createElement("div"),this.domNode.style.width=`${S}px`,this.domNode.style.height=`${S}px`,this.domNode.className=y.ThemeIcon.asClassName(h?t.foldingCollapsedIcon:t.foldingExpandedIcon)}setVisible(h){this.domNode.style.cursor=h?"pointer":"default",this.domNode.style.opacity=h?"1":"0"}}}),define(ne[839],se([1,0,5,115,14,8,6,2,141,11,125,798,3,12,7,101,32,97,25,255,155,402,793,110,46,195,532,280]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";var v;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestContentWidget=e.SuggestWidget=e.editorSuggestWidgetSelectedBackground=void 0,(0,g.registerColor)("editorSuggestWidget.background",g.editorWidgetBackground,o.localize(1328,"Background color of the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.border",g.editorWidgetBorder,o.localize(1329,"Border color of the suggest widget."));const w=(0,g.registerColor)("editorSuggestWidget.foreground",g.editorForeground,o.localize(1330,"Foreground color of the suggest widget."));(0,g.registerColor)("editorSuggestWidget.selectedForeground",g.quickInputListFocusForeground,o.localize(1331,"Foreground color of the selected entry in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.selectedIconForeground",g.quickInputListFocusIconForeground,o.localize(1332,"Icon foreground color of the selected entry in the suggest widget.")),e.editorSuggestWidgetSelectedBackground=(0,g.registerColor)("editorSuggestWidget.selectedBackground",g.quickInputListFocusBackground,o.localize(1333,"Background color of the selected entry in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.highlightForeground",g.listHighlightForeground,o.localize(1334,"Color of the match highlights in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.focusHighlightForeground",g.listFocusHighlightForeground,o.localize(1335,"Color of the match highlights in the suggest widget when an item is focused.")),(0,g.registerColor)("editorSuggestWidgetStatus.foreground",(0,g.transparent)(w,.5),o.localize(1336,"Foreground color of the suggest widget status."));class S{constructor(M,A){this._service=M,this._key=`suggestWidget.size/${A.getEditorType()}/${A instanceof p.EmbeddedCodeEditorWidget}`}restore(){const M=this._service.get(this._key,0)??"";try{const A=JSON.parse(M);if(d.Dimension.is(A))return d.Dimension.lift(A)}catch{}}store(M){this._service.store(this._key,JSON.stringify(M),0,1)}reset(){this._service.remove(this._key,0)}}let L=class{static{v=this}static{this.LOADING_MESSAGE=o.localize(1337,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=o.localize(1338,"No suggestions.")}constructor(M,A,P,N,O){this.editor=M,this._storageService=A,this._state=0,this._isAuto=!1,this._pendingLayout=new m.MutableDisposable,this._pendingShowDetails=new m.MutableDisposable,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new I.TimeoutTimer,this._disposables=new m.DisposableStore,this._onDidSelect=new y.PauseableEmitter,this._onDidFocus=new y.PauseableEmitter,this._onDidHide=new y.Emitter,this._onDidShow=new y.Emitter,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new y.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new a.ResizableHTMLElement,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new D(this,M),this._persistedSize=new S(A,M);class F{constructor(U,j,Y=!1,G=!1){this.persistedSize=U,this.currentSize=j,this.persistHeight=Y,this.persistWidth=G}}let x;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),x=new F(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(z=>{if(this._resize(z.dimension.width,z.dimension.height),x&&(x.persistHeight=x.persistHeight||!!z.north||!!z.south,x.persistWidth=x.persistWidth||!!z.east||!!z.west),!!z.done){if(x){const{itemHeight:U,defaultSize:j}=this.getLayoutInfo(),Y=Math.round(U/2);let{width:G,height:K}=this.element.size;(!x.persistHeight||Math.abs(x.currentSize.height-K)<=Y)&&(K=x.persistedSize?.height??j.height),(!x.persistWidth||Math.abs(x.currentSize.width-G)<=Y)&&(G=x.persistedSize?.width??j.width),this._persistedSize.store(new d.Dimension(G,K))}this._contentWidget.unlockPreference(),x=void 0}})),this._messageElement=d.append(this.element.domNode,d.$(".message")),this._listElement=d.append(this.element.domNode,d.$(".tree"));const W=this._disposables.add(O.createInstance(u.SuggestDetailsWidget,this.editor));W.onDidClose(this.toggleDetails,this,this._disposables),this._details=new u.SuggestDetailsOverlay(W,this.editor);const V=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(119).showIcons);V();const q=O.createInstance(C.ItemRenderer,this.editor);this._disposables.add(q),this._disposables.add(q.onDidToggleDetails(()=>this.toggleDetails())),this._list=new k.List("SuggestWidget",this._listElement,{getHeight:z=>this.getLayoutInfo().itemHeight,getTemplateId:z=>"suggestion"},[q],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>o.localize(1339,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:z=>{let U=z.textLabel;if(typeof z.completion.label!="string"){const{detail:K,description:R}=z.completion.label;K&&R?U=o.localize(1340,"{0} {1}, {2}",U,K,R):K?U=o.localize(1341,"{0} {1}",U,K):R&&(U=o.localize(1342,"{0}, {1}",U,R))}if(!z.isResolved||!this._isDetailsVisible())return U;const{documentation:j,detail:Y}=z.completion,G=b.format("{0}{1}",Y||"",j?typeof j=="string"?j:j.value:"");return o.localize(1343,"{0}, docs: {1}",U,G)}}}),this._list.style((0,f.getListStyles)({listInactiveFocusBackground:e.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:g.activeContrastBorder})),this._status=O.createInstance(n.SuggestWidgetStatus,this.element.domNode,r.suggestWidgetStatusbarMenu);const H=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(119).showStatusBar);H(),this._disposables.add(N.onDidColorThemeChange(z=>this._onThemeChange(z))),this._onThemeChange(N.getColorTheme()),this._disposables.add(this._list.onMouseDown(z=>this._onListMouseDownOrTap(z))),this._disposables.add(this._list.onTap(z=>this._onListMouseDownOrTap(z))),this._disposables.add(this._list.onDidChangeSelection(z=>this._onListSelection(z))),this._disposables.add(this._list.onDidChangeFocus(z=>this._onListFocus(z))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(z=>{z.hasChanged(119)&&(H(),V()),this._completionModel&&(z.hasChanged(50)||z.hasChanged(120)||z.hasChanged(121))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=r.Context.Visible.bindTo(P),this._ctxSuggestWidgetDetailsVisible=r.Context.DetailsVisible.bindTo(P),this._ctxSuggestWidgetMultipleSuggestions=r.Context.MultipleSuggestions.bindTo(P),this._ctxSuggestWidgetHasFocusedSuggestion=r.Context.HasFocusedSuggestion.bindTo(P),this._disposables.add(d.addStandardDisposableListener(this._details.widget.domNode,"keydown",z=>{this._onDetailsKeydown.fire(z)})),this._disposables.add(this.editor.onMouseDown(z=>this._onEditorMouseDown(z)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout?.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(M){this._details.widget.domNode.contains(M.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(M.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(M){typeof M.element>"u"||typeof M.index>"u"||(M.browserEvent.preventDefault(),M.browserEvent.stopPropagation(),this._select(M.element,M.index))}_onListSelection(M){M.elements.length&&this._select(M.elements[0],M.indexes[0])}_select(M,A){const P=this._completionModel;P&&(this._onDidSelect.fire({item:M,index:A,model:P}),this.editor.focus())}_onThemeChange(M){this._details.widget.borderWidth=(0,c.isHighContrast)(M.type)?2:1}_onListFocus(M){if(this._ignoreFocusEvents)return;if(!M.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const A=M.elements[0],P=M.indexes[0];A!==this._focusedItem&&(this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=A,this._list.reveal(P),this._currentSuggestionDetails=(0,I.createCancelablePromise)(async N=>{const O=(0,I.disposableTimeout)(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),F=N.onCancellationRequested(()=>O.dispose());try{return await A.resolve(N)}finally{O.dispose(),F.dispose()}}),this._currentSuggestionDetails.then(()=>{P>=this._list.length||A!==this._list.element(P)||(this._ignoreFocusEvents=!0,this._list.splice(P,1,[A]),this._list.setFocus([P]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:(0,C.getAriaId)(P)}))}).catch(E.onUnexpectedError)),this._onDidFocus.fire({item:A,index:P,model:this._completionModel})}_setState(M){if(this._state!==M)switch(this._state=M,this.element.domNode.classList.toggle("frozen",M===4),this.element.domNode.classList.remove("message"),M){case 0:d.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=v.LOADING_MESSAGE,d.hide(this._listElement,this._status.element),d.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,h.status)(v.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=v.NO_SUGGESTIONS_MESSAGE,d.hide(this._listElement,this._status.element),d.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,h.status)(v.NO_SUGGESTIONS_MESSAGE);break;case 3:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._show();break;case 4:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._show();break;case 5:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(M,A){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!M,this._isAuto||(this._loadingTimeout=(0,I.disposableTimeout)(()=>this._setState(1),A)))}showSuggestions(M,A,P,N,O){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout?.dispose(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==M&&(this._completionModel=M),P&&this._state!==2&&this._state!==0){this._setState(4);return}const F=this._completionModel.items.length,x=F===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(F>1),x){this._setState(N?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(P?4:3),this._list.reveal(A,0),this._list.setFocus(O?[]:[A])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=d.runAtThisOrScheduleAtNextAnimationFrame(d.getWindow(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):((0,u.canExpandCompletionItem)(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(M){this._pendingShowDetails.value=d.runAtThisOrScheduleAtNextAnimationFrame(d.getWindow(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),M?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout?.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const M=this._persistedSize.restore(),A=Math.ceil(this.getLayoutInfo().itemHeight*4.3);M&&M.heightF&&(O=F);const x=this._completionModel?this._completionModel.stats.pLabelLen*P.typicalHalfwidthCharacterWidth:O,W=P.statusBarHeight+this._list.contentHeight+P.borderHeight,V=P.itemHeight+P.statusBarHeight,q=d.getDomNodePagePosition(this.editor.getDomNode()),H=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),z=q.top+H.top+H.height,U=Math.min(A.height-z-P.verticalPadding,W),j=q.top+H.top-P.verticalPadding,Y=Math.min(j,W);let G=Math.min(Math.max(Y,U)+P.borderHeight,W);N===this._cappedHeight?.capped&&(N=this._cappedHeight.wanted),NG&&(N=G),N>U||this._forceRenderingAbove&&j>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),G=Y):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),G=U),this.element.preferredSize=new d.Dimension(x,P.defaultSize.height),this.element.maxSize=new d.Dimension(F,G),this.element.minSize=new d.Dimension(220,V),this._cappedHeight=N===W?{wanted:this._cappedHeight?.wanted??M.height,capped:N}:void 0}this._resize(O,N)}_resize(M,A){const{width:P,height:N}=this.element.maxSize;M=Math.min(P,M),A=Math.min(N,A);const{statusBarHeight:O}=this.getLayoutInfo();this._list.layout(A-O,M),this._listElement.style.height=`${A-O}px`,this.element.layout(A,M),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}getLayoutInfo(){const M=this.editor.getOption(50),A=(0,_.clamp)(this.editor.getOption(121)||M.lineHeight,8,1e3),P=!this.editor.getOption(119).showStatusBar||this._state===2||this._state===1?0:A,N=this._details.widget.borderWidth,O=2*N;return{itemHeight:A,statusBarHeight:P,borderWidth:N,borderHeight:O,typicalHalfwidthCharacterWidth:M.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new d.Dimension(430,P+12*A+O)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(M){this._storageService.store("expandSuggestionDocs",M,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};e.SuggestWidget=L,e.SuggestWidget=L=v=ke([ce(1,s.IStorageService),ce(2,t.IContextKeyService),ce(3,l.IThemeService),ce(4,i.IInstantiationService)],L);class D{constructor(M,A){this._widget=M,this._editor=A,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:M,width:A}=this._widget.element.size,{borderWidth:P,horizontalPadding:N}=this._widget.getLayoutInfo();return new d.Dimension(A+2*P+N,M+2*P)}afterRender(M){this._widget._afterRender(M)}setPreference(M){this._preferenceLocked||(this._preference=M)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(M){this._position=M}}e.SuggestContentWidget=D}),define(ne[426],se([1,0,40,35,27,3,32,25,536]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getHighlightDecorationOptions=l,e.getSelectionHighlightDecorationOptions=a;const _=(0,y.registerColor)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},E.localize(1415,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);(0,y.registerColor)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},E.localize(1416,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),(0,y.registerColor)("editor.wordHighlightTextBackground",_,E.localize(1417,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const b=(0,y.registerColor)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},E.localize(1418,"Border color of a symbol during read-access, like reading a variable."));(0,y.registerColor)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},E.localize(1419,"Border color of a symbol during write-access, like writing to a variable.")),(0,y.registerColor)("editor.wordHighlightTextBorder",b,E.localize(1420,"Border color of a textual occurrence for a symbol."));const p=(0,y.registerColor)("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",E.localize(1421,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),n=(0,y.registerColor)("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",E.localize(1422,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),o=(0,y.registerColor)("editorOverviewRuler.wordHighlightTextForeground",y.overviewRulerSelectionHighlightForeground,E.localize(1423,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),t=k.ModelDecorationOptions.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,m.themeColorFromId)(n),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),i=k.ModelDecorationOptions.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:(0,m.themeColorFromId)(o),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),s=k.ModelDecorationOptions.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,m.themeColorFromId)(y.overviewRulerSelectionHighlightForeground),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),g=k.ModelDecorationOptions.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),c=k.ModelDecorationOptions.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,m.themeColorFromId)(p),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}});function l(r){return r===I.DocumentHighlightKind.Write?t:r===I.DocumentHighlightKind.Text?i:c}function a(r){return r?g:s}(0,m.registerThemingParticipant)((r,u)=>{const C=r.getColor(y.editorSelectionHighlight);C&&u.addRule(`.monaco-editor .selectionHighlight { background-color: ${C.transparent(.5)}; }`)})}),define(ne[840],se([1,0,46,14,72,2,15,235,4,23,20,423,3,29,12,17,426,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";var l;Object.defineProperty(e,"__esModule",{value:!0}),e.FocusPreviousCursor=e.FocusNextCursor=e.SelectionHighlighter=e.CompatChangeAll=e.SelectHighlightsAction=e.MoveSelectionToPreviousFindMatchAction=e.MoveSelectionToNextFindMatchAction=e.AddSelectionToPreviousFindMatchAction=e.AddSelectionToNextFindMatchAction=e.MultiCursorSelectionControllerAction=e.MultiCursorSelectionController=e.MultiCursorSession=e.MultiCursorSessionResult=e.InsertCursorBelow=e.InsertCursorAbove=void 0;function a(H,z){const U=z.filter(j=>!H.find(Y=>Y.equals(j)));if(U.length>=1){const j=U.map(G=>`line ${G.viewState.position.lineNumber} column ${G.viewState.position.column}`).join(", "),Y=U.length===1?o.localize(1149,"Cursor added: {0}",j):o.localize(1150,"Cursors added: {0}",j);(0,d.status)(Y)}}class r extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:o.localize(1151,"Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1152,"&&Add Cursor Above"),order:2}})}run(z,U,j){if(!U.hasModel())return;let Y=!0;j&&j.logicalLine===!1&&(Y=!1);const G=U._getViewModel();if(G.cursorConfig.readOnly)return;G.model.pushStackElement();const K=G.getCursorStates();G.setCursorStates(j.source,3,m.CursorMoveCommands.addCursorUp(G,K,Y)),G.revealTopMostCursor(j.source),a(K,G.getCursorStates())}}e.InsertCursorAbove=r;class u extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:o.localize(1153,"Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1154,"A&&dd Cursor Below"),order:3}})}run(z,U,j){if(!U.hasModel())return;let Y=!0;j&&j.logicalLine===!1&&(Y=!1);const G=U._getViewModel();if(G.cursorConfig.readOnly)return;G.model.pushStackElement();const K=G.getCursorStates();G.setCursorStates(j.source,3,m.CursorMoveCommands.addCursorDown(G,K,Y)),G.revealBottomMostCursor(j.source),a(K,G.getCursorStates())}}e.InsertCursorBelow=u;class C extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:o.localize(1155,"Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1156,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(z,U,j){if(!z.isEmpty()){for(let Y=z.startLineNumber;Y1&&j.push(new b.Selection(z.endLineNumber,z.endColumn,z.endLineNumber,z.endColumn))}}run(z,U){if(!U.hasModel())return;const j=U.getModel(),Y=U.getSelections(),G=U._getViewModel(),K=G.getCursorStates(),R=[];Y.forEach(J=>this.getCursorsForSelection(J,j,R)),R.length>0&&U.setSelections(R),a(K,G.getCursorStates())}}class f extends y.EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:o.localize(1157,"Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(z,U){if(!U.hasModel())return;const j=U.getSelections(),Y=U.getModel().getLineCount(),G=[];for(let J=j[0].startLineNumber;J<=Y;J++)G.push(new b.Selection(J,j[0].startColumn,J,j[0].endColumn));const K=U._getViewModel(),R=K.getCursorStates();G.length>0&&U.setSelections(G),a(R,K.getCursorStates())}}class h extends y.EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:o.localize(1158,"Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(z,U){if(!U.hasModel())return;const j=U.getSelections(),Y=[];for(let R=j[0].startLineNumber;R>=1;R--)Y.push(new b.Selection(R,j[0].startColumn,R,j[0].endColumn));const G=U._getViewModel(),K=G.getCursorStates();Y.length>0&&U.setSelections(Y),a(K,G.getCursorStates())}}class v{constructor(z,U,j){this.selections=z,this.revealRange=U,this.revealScrollType=j}}e.MultiCursorSessionResult=v;class w{static create(z,U){if(!z.hasModel())return null;const j=U.getState();if(!z.hasTextFocus()&&j.isRevealed&&j.searchString.length>0)return new w(z,U,!1,j.searchString,j.wholeWord,j.matchCase,null);let Y=!1,G,K;const R=z.getSelections();R.length===1&&R[0].isEmpty()?(Y=!0,G=!0,K=!0):(G=j.wholeWord,K=j.matchCase);const J=z.getSelection();let ie,ue=null;if(J.isEmpty()){const he=z.getConfiguredWordAtPosition(J.getStartPosition());if(!he)return null;ie=he.word,ue=new b.Selection(J.startLineNumber,he.startColumn,J.startLineNumber,he.endColumn)}else ie=z.getModel().getValueInRange(J).replace(/\r\n/g,` -`);return new w(z,U,Y,ie,G,K,ue)}constructor(z,U,j,Y,G,K,R){this._editor=z,this.findController=U,this.isDisconnectedFromFindController=j,this.searchText=Y,this.wholeWord=G,this.matchCase=K,this.currentMatch=R}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const z=this._getNextMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.concat(z),z,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const z=this._getNextMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.slice(0,U.length-1).concat(z),z,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const Y=this.currentMatch;return this.currentMatch=null,Y}this.findController.highlightFindOptions();const z=this._editor.getSelections(),U=z[z.length-1],j=this._editor.getModel().findNextMatch(this.searchText,U.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return j?new b.Selection(j.range.startLineNumber,j.range.startColumn,j.range.endLineNumber,j.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const z=this._getPreviousMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.concat(z),z,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const z=this._getPreviousMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.slice(0,U.length-1).concat(z),z,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const Y=this.currentMatch;return this.currentMatch=null,Y}this.findController.highlightFindOptions();const z=this._editor.getSelections(),U=z[z.length-1],j=this._editor.getModel().findPreviousMatch(this.searchText,U.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return j?new b.Selection(j.range.startLineNumber,j.range.startColumn,j.range.endLineNumber,j.range.endColumn):null}selectAll(z){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const U=this._editor.getModel();return z?U.findMatches(this.searchText,z,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824):U.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824)}}e.MultiCursorSession=w;class S extends E.Disposable{static{this.ID="editor.contrib.multiCursorController"}static get(z){return z.getContribution(S.ID)}constructor(z){super(),this._sessionDispose=this._register(new E.DisposableStore),this._editor=z,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(z){if(!this._session){const U=w.create(this._editor,z);if(!U)return;this._session=U;const j={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(j.wholeWordOverride=1,j.matchCaseOverride=1,j.isRegexOverride=2),z.getState().change(j,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(Y=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(z.getState().onFindReplaceStateChange(Y=>{(Y.matchCase||Y.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const z={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(z,!1)}this._session=null}_setSelections(z){this._ignoreSelectionChange=!0,this._editor.setSelections(z),this._ignoreSelectionChange=!1}_expandEmptyToWord(z,U){if(!U.isEmpty())return U;const j=this._editor.getConfiguredWordAtPosition(U.getStartPosition());return j?new b.Selection(U.startLineNumber,j.startColumn,U.startLineNumber,j.endColumn):U}_applySessionResult(z){z&&(this._setSelections(z.selections),z.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(z.revealRange,z.revealScrollType))}getSession(z){return this._session}addSelectionToNextFindMatch(z){if(this._editor.hasModel()){if(!this._session){const U=this._editor.getSelections();if(U.length>1){const Y=z.getState().matchCase;if(!x(this._editor.getModel(),U,Y)){const K=this._editor.getModel(),R=[];for(let J=0,ie=U.length;J0&&j.isRegex){const Y=this._editor.getModel();j.searchScope?U=Y.findMatches(j.searchString,j.searchScope,j.isRegex,j.matchCase,j.wholeWord?this._editor.getOption(132):null,!1,1073741824):U=Y.findMatches(j.searchString,!0,j.isRegex,j.matchCase,j.wholeWord?this._editor.getOption(132):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(z),!this._session)return;U=this._session.selectAll(j.searchScope)}if(U.length>0){const Y=this._editor.getSelection();for(let G=0,K=U.length;Gnew b.Selection(G.range.startLineNumber,G.range.startColumn,G.range.endLineNumber,G.range.endColumn)))}}}e.MultiCursorSelectionController=S;class L extends y.EditorAction{run(z,U){const j=S.get(U);if(!j)return;const Y=U._getViewModel();if(Y){const G=Y.getCursorStates(),K=n.CommonFindController.get(U);if(K)this._run(j,K);else{const R=z.get(c.IInstantiationService).createInstance(n.CommonFindController,U);this._run(j,R),R.dispose()}a(G,Y.getCursorStates())}}}e.MultiCursorSelectionControllerAction=L;class D extends L{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:o.localize(1159,"Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1160,"Add &&Next Occurrence"),order:5}})}_run(z,U){z.addSelectionToNextFindMatch(U)}}e.AddSelectionToNextFindMatchAction=D;class T extends L{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:o.localize(1161,"Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1162,"Add P&&revious Occurrence"),order:6}})}_run(z,U){z.addSelectionToPreviousFindMatch(U)}}e.AddSelectionToPreviousFindMatchAction=T;class M extends L{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:o.localize(1163,"Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:(0,I.KeyChord)(2089,2082),weight:100}})}_run(z,U){z.moveSelectionToNextFindMatch(U)}}e.MoveSelectionToNextFindMatchAction=M;class A extends L{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:o.localize(1164,"Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(z,U){z.moveSelectionToPreviousFindMatch(U)}}e.MoveSelectionToPreviousFindMatchAction=A;class P extends L{constructor(){super({id:"editor.action.selectHighlights",label:o.localize(1165,"Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1166,"Select All &&Occurrences"),order:7}})}_run(z,U){z.selectAll(U)}}e.SelectHighlightsAction=P;class N extends L{constructor(){super({id:"editor.action.changeAll",label:o.localize(1167,"Change All Occurrences"),alias:"Change All Occurrences",precondition:i.ContextKeyExpr.and(p.EditorContextKeys.writable,p.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(z,U){z.selectAll(U)}}e.CompatChangeAll=N;class O{constructor(z,U,j,Y,G){this._model=z,this._searchText=U,this._matchCase=j,this._wordSeparators=Y,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,G&&this._model===G._model&&this._searchText===G._searchText&&this._matchCase===G._matchCase&&this._wordSeparators===G._wordSeparators&&this._modelVersionId===G._modelVersionId&&(this._cachedFindMatches=G._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(z=>z.range),this._cachedFindMatches.sort(_.Range.compareRangesUsingStarts)),this._cachedFindMatches}}let F=class extends E.Disposable{static{l=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(z,U){super(),this._languageFeaturesService=U,this.editor=z,this._isEnabled=z.getOption(109),this._decorations=z.createDecorationsCollection(),this.updateSoon=this._register(new k.RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(z.onDidChangeConfiguration(Y=>{this._isEnabled=z.getOption(109)})),this._register(z.onDidChangeCursorSelection(Y=>{this._isEnabled&&(Y.selection.isEmpty()?Y.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(z.onDidChangeModel(Y=>{this._setState(null)})),this._register(z.onDidChangeModelContent(Y=>{this._isEnabled&&this.updateSoon.schedule()}));const j=n.CommonFindController.get(z);j&&this._register(j.getState().onFindReplaceStateChange(Y=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(l._createState(this.state,this._isEnabled,this.editor))}static _createState(z,U,j){if(!U||!j.hasModel())return null;const Y=j.getSelection();if(Y.startLineNumber!==Y.endLineNumber)return null;const G=S.get(j);if(!G)return null;const K=n.CommonFindController.get(j);if(!K)return null;let R=G.getSession(K);if(!R){const ue=j.getSelections();if(ue.length>1){const pe=K.getState().matchCase;if(!x(j.getModel(),ue,pe))return null}R=w.create(j,K)}if(!R||R.currentMatch||/^[ \t]+$/.test(R.searchText)||R.searchText.length>200)return null;const J=K.getState(),ie=J.matchCase;if(J.isRevealed){let ue=J.searchString;ie||(ue=ue.toLowerCase());let he=R.searchText;if(ie||(he=he.toLowerCase()),ue===he&&R.matchCase===J.matchCase&&R.wholeWord===J.wholeWord&&!J.isRegex)return null}return new O(j.getModel(),R.searchText,R.matchCase,R.wholeWord?j.getOption(132):null,z)}_setState(z){if(this.state=z,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const U=this.editor.getModel();if(U.isTooLargeForTokenization())return;const j=this.state.findMatches(),Y=this.editor.getSelections();Y.sort(_.Range.compareRangesUsingStarts);const G=[];for(let ie=0,ue=0,he=j.length,pe=Y.length;ie=pe)G.push(ae),ie++;else{const ee=_.Range.compareRangesUsingStarts(ae,Y[ue]);ee<0?((Y[ue].isEmpty()||!_.Range.areIntersecting(ae,Y[ue]))&&G.push(ae),ie++):(ee>0||ie++,ue++)}}const K=this.editor.getOption(81)!=="off",R=this._languageFeaturesService.documentHighlightProvider.has(U)&&K,J=G.map(ie=>({range:ie,options:(0,g.getSelectionHighlightDecorationOptions)(R)}));this._decorations.set(J)}dispose(){this._setState(null),super.dispose()}};e.SelectionHighlighter=F,e.SelectionHighlighter=F=l=ke([ce(1,s.ILanguageFeaturesService)],F);function x(H,z,U){const j=W(H,z[0],!U);for(let Y=1,G=z.length;Y()=>Promise.resolve(j.provideDocumentHighlights(q,H,z)).then(void 0,y.onUnexpectedExternalError)),j=>j!=null).then(j=>{if(j){const Y=new l.ResourceMap;return Y.set(q.uri,j),Y}return new l.ResourceMap})}function S(V,q,H,z,U,j){const Y=V.ordered(q);return(0,I.first)(Y.map(G=>()=>{const K=j.filter(R=>(0,t.shouldSynchronizeModel)(R)).filter(R=>(0,a.score)(G.selector,R.uri,R.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(G.provideMultiDocumentHighlights(q,H,K,U)).then(void 0,y.onUnexpectedExternalError)}),G=>G!=null)}class L{constructor(q,H,z){this._model=q,this._selection=H,this._wordSeparators=z,this._wordRange=this._getCurrentWordRange(q,H),this._result=null}get result(){return this._result||(this._result=(0,I.createCancelablePromise)(q=>this._compute(this._model,this._selection,this._wordSeparators,q))),this._result}_getCurrentWordRange(q,H){const z=q.getWordAtPosition(H.getPosition());return z?new n.Range(H.startLineNumber,z.startColumn,H.startLineNumber,z.endColumn):null}isValid(q,H,z){const U=H.startLineNumber,j=H.startColumn,Y=H.endColumn,G=this._getCurrentWordRange(q,H);let K=!!(this._wordRange&&this._wordRange.equalsRange(G));for(let R=0,J=z.length;!K&&R=Y&&(K=!0)}return K}cancel(){this.result.cancel()}}class D extends L{constructor(q,H,z,U){super(q,H,z),this._providers=U}_compute(q,H,z,U){return w(this._providers,q,H.getPosition(),U).then(j=>j||new l.ResourceMap)}}class T extends L{constructor(q,H,z,U,j){super(q,H,z),this._providers=U,this._otherModels=j}_compute(q,H,z,U){return S(this._providers,q,H.getPosition(),z,U,this._otherModels).then(j=>j||new l.ResourceMap)}}function M(V,q,H,z,U){return new D(q,H,U,V)}function A(V,q,H,z,U,j){return new T(q,H,U,V,j)}(0,b.registerModelAndPositionCommand)("_executeDocumentHighlights",async(V,q,H)=>{const z=V.get(i.ILanguageFeaturesService);return(await w(z.documentHighlightProvider,q,H,E.CancellationToken.None))?.get(q.uri)});let P=class{static{f=this}static{this.storedDecorationIDs=new l.ResourceMap}static{this.query=null}constructor(q,H,z,U,j){this.toUnhook=new m.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new l.ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.runDelayer=this.toUnhook.add(new I.Delayer(50)),this.editor=q,this.providers=H,this.multiDocumentProviders=z,this.codeEditorService=j,this._hasWordHighlights=v.bindTo(U),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(q.onDidChangeCursorPosition(Y=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(Y)})})),this.toUnhook.add(q.onDidFocusEditorText(Y=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(q.onDidChangeModelContent(Y=>{(0,c.matchesScheme)(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(q.onDidChangeModel(Y=>{!Y.newModelUrl&&Y.oldModelUrl?this._stopSingular():f.query&&this._run()})),this.toUnhook.add(q.onDidChangeConfiguration(Y=>{const G=this.editor.getOption(81);if(this.occurrencesHighlight!==G)switch(this.occurrencesHighlight=G,G){case"off":this._stopAll();break;case"singleFile":this._stopAll(f.query?.modelInfo?.model);break;case"multiFile":f.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",G);break}})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,f.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&(this.runDelayer.cancel(),this._run())}_getSortedHighlights(){return this.decorations.getRanges().sort(n.Range.compareRangesUsingStarts)}moveNext(){const q=this._getSortedHighlights(),z=(q.findIndex(j=>j.containsPosition(this.editor.getPosition()))+1)%q.length,U=q[z];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(U.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(U);const j=this._getWord();if(j){const Y=this.editor.getModel().getLineContent(U.startLineNumber);(0,k.alert)(`${Y}, ${z+1} of ${q.length} for '${j.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const q=this._getSortedHighlights(),z=(q.findIndex(j=>j.containsPosition(this.editor.getPosition()))-1+q.length)%q.length,U=q[z];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(U.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(U);const j=this._getWord();if(j){const Y=this.editor.getModel().getLineContent(U.startLineNumber);(0,k.alert)(`${Y}, ${z+1} of ${q.length} for '${j.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const q=f.storedDecorationIDs.get(this.editor.getModel().uri);q&&(this.editor.removeDecorations(q),f.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(q){const H=this.codeEditorService.listCodeEditors(),z=[];for(const U of H){if(!U.hasModel()||(0,r.isEqual)(U.getModel().uri,q?.uri))continue;const j=f.storedDecorationIDs.get(U.getModel().uri);if(!j)continue;U.removeDecorations(j),z.push(U.getModel().uri);const Y=N.get(U);Y?.wordHighlighter&&Y.wordHighlighter.decorations.length>0&&(Y.wordHighlighter.decorations.clear(),Y.wordHighlighter.workerRequest=null,Y.wordHighlighter._hasWordHighlights.set(!1))}for(const U of z)f.storedDecorationIDs.delete(U)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==c.Schemas.vscodeNotebookCell&&f.query?.modelInfo?.model.uri.scheme!==c.Schemas.vscodeNotebookCell?(f.query=null,this._run()):f.query?.modelInfo&&(f.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(q){this._removeAllDecorations(q),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(q){if(this.occurrencesHighlight==="off"){this._stopAll();return}if(q.reason!==3&&this.editor.getModel()?.uri.scheme!==c.Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const q=this.editor.getSelection(),H=q.startLineNumber,z=q.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:H,column:z})}getOtherModelsToHighlight(q){if(!q)return[];if(q.uri.scheme===c.Schemas.vscodeNotebookCell){const j=[],Y=this.codeEditorService.listCodeEditors();for(const G of Y){const K=G.getModel();K&&K!==q&&K.uri.scheme===c.Schemas.vscodeNotebookCell&&j.push(K)}return j}const z=[],U=this.codeEditorService.listCodeEditors();for(const j of U){if(!(0,_.isDiffEditor)(j))continue;const Y=j.getModel();Y&&q===Y.modified&&z.push(Y.modified)}if(z.length)return z;if(this.occurrencesHighlight==="singleFile")return[];for(const j of U){const Y=j.getModel();Y&&Y!==q&&z.push(Y)}return z}_run(q){let H;if(this.editor.hasTextFocus()){const U=this.editor.getSelection();if(!U||U.startLineNumber!==U.endLineNumber){f.query=null,this._stopAll();return}const j=U.startColumn,Y=U.endColumn,G=this._getWord();if(!G||G.startColumn>j||G.endColumn{U===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=Y||[],this._beginRenderDecorations())},y.onUnexpectedError)}}computeWithModel(q,H,z,U){return U.length?A(this.multiDocumentProviders,q,H,z,this.editor.getOption(132),U):M(this.providers,q,H,z,this.editor.getOption(132))}_beginRenderDecorations(){const q=new Date().getTime(),H=this.lastCursorPositionChangeTime+250;q>=H?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},H-q)}renderDecorations(){this.renderDecorationsTimer=-1;const q=this.codeEditorService.listCodeEditors();for(const H of q){const z=N.get(H);if(!z)continue;const U=[],j=H.getModel()?.uri;if(j&&this.workerRequestValue.has(j)){const Y=f.storedDecorationIDs.get(j),G=this.workerRequestValue.get(j);if(G)for(const R of G)R.range&&U.push({range:R.range,options:(0,s.getHighlightDecorationOptions)(R.kind)});let K=[];H.changeDecorations(R=>{K=R.deltaDecorations(Y??[],U)}),f.storedDecorationIDs=f.storedDecorationIDs.set(j,K),U.length>0&&(z.wordHighlighter?.decorations.set(U),z.wordHighlighter?._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};P=f=ke([ce(4,p.ICodeEditorService)],P);let N=class extends m.Disposable{static{h=this}static{this.ID="editor.contrib.wordHighlighter"}static get(q){return q.getContribution(h.ID)}constructor(q,H,z,U){super(),this._wordHighlighter=null;const j=()=>{q.hasModel()&&!q.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new P(q,z.documentHighlightProvider,z.multiDocumentHighlightProvider,H,U))};this._register(q.onDidChangeModel(Y=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),j()})),j()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){this._wordHighlighter?.moveNext()}moveBack(){this._wordHighlighter?.moveBack()}restoreViewState(q){this._wordHighlighter&&q&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};e.WordHighlighterContribution=N,e.WordHighlighterContribution=N=h=ke([ce(1,g.IContextKeyService),ce(2,i.ILanguageFeaturesService),ce(3,p.ICodeEditorService)],N);class O extends b.EditorAction{constructor(q,H){super(H),this._isNext=q}run(q,H){const z=N.get(H);z&&(this._isNext?z.moveNext():z.moveBack())}}class F extends O{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:d.localize(1424,"Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:v,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:65,weight:100}})}}class x extends O{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:d.localize(1425,"Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:v,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}}class W extends b.EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:d.localize(1426,"Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:void 0,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(q,H,z){const U=N.get(H);U&&U.restoreViewState(!0)}}(0,b.registerEditorContribution)(N.ID,N,0),(0,b.registerEditorAction)(F),(0,b.registerEditorAction)(x),(0,b.registerEditorAction)(W),(0,C.registerEditorFeature)(u.TextualMultiDocumentHighlightFeature)}),define(ne[842],se([1,0,5,173,33,187,2,60,4,35,537]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ZoneWidget=e.OverlayWidgetDelegate=void 0;const p=new I.Color(new I.RGBA(0,122,204)),n={showArrow:!0,showFrame:!0,className:"",frameColor:p,arrowColor:p,keepEditorSelection:!1},o="vs.editor.contrib.zoneWidget";class t{constructor(l,a,r,u,C,f,h,v){this.id="",this.domNode=l,this.afterLineNumber=a,this.afterColumn=r,this.heightInLines=u,this.showInHiddenAreas=h,this.ordinal=v,this._onDomNodeTop=C,this._onComputedHeight=f}onDomNodeTop(l){this._onDomNodeTop(l)}onComputedHeight(l){this._onComputedHeight(l)}}class i{constructor(l,a){this._id=l,this._domNode=a}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}e.OverlayWidgetDelegate=i;class s{static{this._IdGenerator=new E.IdGenerator(".arrow-decoration-")}constructor(l){this._editor=l,this._ruleName=s._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),d.removeCSSRulesContainingSelector(this._ruleName)}set color(l){this._color!==l&&(this._color=l,this._updateStyle())}set height(l){this._height!==l&&(this._height=l,this._updateStyle())}_updateStyle(){d.removeCSSRulesContainingSelector(this._ruleName),d.createCSSRule(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(l){l.column===1&&(l={lineNumber:l.lineNumber,column:2}),this._decorations.set([{range:_.Range.fromPositions(l),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class g{constructor(l,a={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new y.DisposableStore,this.container=null,this._isShowing=!1,this.editor=l,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=m.deepClone(a),m.mixin(this.options,n,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(r=>{const u=this._getWidth(r);this.domNode.style.width=u+"px",this.domNode.style.left=this._getLeft(r)+"px",this._onWidth(u)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(l=>{this._viewZone&&l.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new s(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(l){l.frameColor&&(this.options.frameColor=l.frameColor),l.arrowColor&&(this.options.arrowColor=l.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const l=this.options.frameColor.toString();this.container.style.borderTopColor=l,this.container.style.borderBottomColor=l}if(this._arrow&&this.options.arrowColor){const l=this.options.arrowColor.toString();this._arrow.color=l}}_getWidth(l){return l.width-l.minimap.minimapWidth-l.verticalScrollbarWidth}_getLeft(l){return l.minimap.minimapWidth>0&&l.minimap.minimapLeft===0?l.minimap.minimapWidth:0}_onViewZoneTop(l){this.domNode.style.top=l+"px"}_onViewZoneHeight(l){if(this.domNode.style.height=`${l}px`,this.container){const a=l-this._decoratingElementsHeight();this.container.style.height=`${a}px`;const r=this.editor.getLayoutInfo();this._doLayout(a,this._getWidth(r))}this._resizeSash?.layout()}get position(){const l=this._positionMarkerId.getRange(0);if(l)return l.getStartPosition()}show(l,a){const r=_.Range.isIRange(l)?_.Range.lift(l):_.Range.fromPositions(l);this._isShowing=!0,this._showImpl(r,a),this._isShowing=!1,this._positionMarkerId.set([{range:r,options:b.ModelDecorationOptions.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones(l=>{this._viewZone&&l.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow?.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const l=this.editor.getOption(67);let a=0;if(this.options.showArrow){const r=Math.round(l/3);a+=2*r}if(this.options.showFrame){const r=Math.round(l/9);a+=2*r}return a}_showImpl(l,a){const r=l.getStartPosition(),u=this.editor.getLayoutInfo(),C=this._getWidth(u);this.domNode.style.width=`${C}px`,this.domNode.style.left=this._getLeft(u)+"px";const f=document.createElement("div");f.style.overflow="hidden";const h=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const D=Math.max(12,this.editor.getLayoutInfo().height/h*.8);a=Math.min(a,D)}let v=0,w=0;if(this._arrow&&this.options.showArrow&&(v=Math.round(h/3),this._arrow.height=v,this._arrow.show(r)),this.options.showFrame&&(w=Math.round(h/9)),this.editor.changeViewZones(D=>{this._viewZone&&D.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new t(f,r.lineNumber,r.column,a,T=>this._onViewZoneTop(T),T=>this._onViewZoneHeight(T),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=D.addZone(this._viewZone),this._overlayWidget=new i(o+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const D=this.options.frameWidth?this.options.frameWidth:w;this.container.style.borderTopWidth=D+"px",this.container.style.borderBottomWidth=D+"px"}const S=a*h-this._decoratingElementsHeight();this.container&&(this.container.style.top=v+"px",this.container.style.height=S+"px",this.container.style.overflow="hidden"),this._doLayout(S,C),this.options.keepEditorSelection||this.editor.setSelection(l);const L=this.editor.getModel();if(L){const D=L.validateRange(new _.Range(l.startLineNumber,1,l.endLineNumber+1,1));this.revealRange(D,D.startLineNumber===L.getLineCount())}}revealRange(l,a){a?this.editor.revealLineNearTop(l.endLineNumber,0):this.editor.revealRange(l,0)}setCssClass(l,a){this.container&&(a&&this.container.classList.remove(a),this.container.classList.add(l))}_onWidth(l){}_doLayout(l,a){}_relayout(l){this._viewZone&&this._viewZone.heightInLines!==l&&this.editor.changeViewZones(a=>{this._viewZone&&(this._viewZone.heightInLines=l,a.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new k.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let l;this._disposables.add(this._resizeSash.onDidStart(a=>{this._viewZone&&(l={startY:a.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{l=void 0})),this._disposables.add(this._resizeSash.onDidChange(a=>{if(l){const r=(a.currentY-l.startY)/this.editor.getOption(67),u=r<0?Math.ceil(r):Math.floor(r),C=l.heightInLines+u;C>5&&C<35&&this._relayout(C)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const l=this.editor.getLayoutInfo();return l.width-l.minimap.minimapWidth}}e.ZoneWidget=g}),define(ne[158],se([1,0,5,87,41,26,30,33,6,60,15,34,125,842,3,124,12,49,7,32,527]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.peekViewEditorMatchHighlightBorder=e.peekViewEditorMatchHighlight=e.peekViewResultsMatchHighlight=e.peekViewEditorStickyScrollBackground=e.peekViewEditorGutterBackground=e.peekViewEditorBackground=e.peekViewResultsSelectionForeground=e.peekViewResultsSelectionBackground=e.peekViewResultsFileForeground=e.peekViewResultsMatchForeground=e.peekViewResultsBackground=e.peekViewBorder=e.peekViewTitleInfoForeground=e.peekViewTitleForeground=e.peekViewTitleBackground=e.PeekViewWidget=e.PeekContext=e.IPeekViewService=void 0,e.getOuterEditor=C,e.IPeekViewService=(0,l.createDecorator)("IPeekViewService"),(0,c.registerSingleton)(e.IPeekViewService,class{constructor(){this._widgets=new Map}addExclusiveWidget(v,w){const S=this._widgets.get(v);S&&(S.listener.dispose(),S.widget.dispose());const L=()=>{const D=this._widgets.get(v);D&&D.widget===w&&(D.listener.dispose(),this._widgets.delete(v))};this._widgets.set(v,{widget:w,listener:w.onDidClose(L)})}},1);var r;(function(v){v.inPeekEditor=new g.RawContextKey("inReferenceSearchEditor",!0,i.localize(1177,"Whether the current code editor is embedded inside peek")),v.notInPeekEditor=v.inPeekEditor.toNegated()})(r||(e.PeekContext=r={}));let u=class{static{this.ID="editor.contrib.referenceController"}constructor(w,S){w instanceof o.EmbeddedCodeEditorWidget&&r.inPeekEditor.bindTo(S)}dispose(){}};u=ke([ce(1,g.IContextKeyService)],u),(0,p.registerEditorContribution)(u.ID,u,0);function C(v){const w=v.get(n.ICodeEditorService).getFocusedCodeEditor();return w instanceof o.EmbeddedCodeEditorWidget?w.getParentEditor():w}const f={headerBackgroundColor:m.Color.white,primaryHeadingColor:m.Color.fromHex("#333333"),secondaryHeadingColor:m.Color.fromHex("#6c6c6cb3")};let h=class extends t.ZoneWidget{constructor(w,S,L){super(w,S),this.instantiationService=L,this._onDidClose=new _.Emitter,this.onDidClose=this._onDidClose.event,b.mixin(this.options,f,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(w){const S=this.options;w.headerBackgroundColor&&(S.headerBackgroundColor=w.headerBackgroundColor),w.primaryHeadingColor&&(S.primaryHeadingColor=w.primaryHeadingColor),w.secondaryHeadingColor&&(S.secondaryHeadingColor=w.secondaryHeadingColor),super.style(w)}_applyStyles(){super._applyStyles();const w=this.options;this._headElement&&w.headerBackgroundColor&&(this._headElement.style.backgroundColor=w.headerBackgroundColor.toString()),this._primaryHeading&&w.primaryHeadingColor&&(this._primaryHeading.style.color=w.primaryHeadingColor.toString()),this._secondaryHeading&&w.secondaryHeadingColor&&(this._secondaryHeading.style.color=w.secondaryHeadingColor.toString()),this._bodyElement&&w.frameColor&&(this._bodyElement.style.borderColor=w.frameColor.toString())}_fillContainer(w){this.setCssClass("peekview-widget"),this._headElement=d.$(".head"),this._bodyElement=d.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),w.appendChild(this._headElement),w.appendChild(this._bodyElement)}_fillHead(w,S){this._titleElement=d.$(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),d.addStandardDisposableListener(this._titleElement,"click",T=>this._onTitleClick(T))),d.append(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=d.$("span.filename"),this._secondaryHeading=d.$("span.dirname"),this._metaHeading=d.$("span.meta"),d.append(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const L=d.$(".peekview-actions");d.append(this._headElement,L);const D=this._getActionBarOptions();this._actionbarWidget=new k.ActionBar(L,D),this._disposables.add(this._actionbarWidget),S||this._actionbarWidget.push(new I.Action("peekview.close",i.localize(1178,"Close"),y.ThemeIcon.asClassName(E.Codicon.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(w){}_getActionBarOptions(){return{actionViewItemProvider:s.createActionViewItem.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(w){}setTitle(w,S){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=w,this._primaryHeading.setAttribute("title",w),S?this._secondaryHeading.innerText=S:d.clearNode(this._secondaryHeading))}setMetaTitle(w){this._metaHeading&&(w?(this._metaHeading.innerText=w,d.show(this._metaHeading)):d.hide(this._metaHeading))}_doLayout(w,S){if(!this._isShowing&&w<0){this.dispose();return}const L=Math.ceil(this.editor.getOption(67)*1.2),D=Math.round(w-(L+2));this._doLayoutHead(L,S),this._doLayoutBody(D,S)}_doLayoutHead(w,S){this._headElement&&(this._headElement.style.height=`${w}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(w,S){this._bodyElement&&(this._bodyElement.style.height=`${w}px`)}};e.PeekViewWidget=h,e.PeekViewWidget=h=ke([ce(2,l.IInstantiationService)],h),e.peekViewTitleBackground=(0,a.registerColor)("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1179,"Background color of the peek view title area.")),e.peekViewTitleForeground=(0,a.registerColor)("peekViewTitleLabel.foreground",{dark:m.Color.white,light:m.Color.black,hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1180,"Color of the peek view title.")),e.peekViewTitleInfoForeground=(0,a.registerColor)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},i.localize(1181,"Color of the peek view title info.")),e.peekViewBorder=(0,a.registerColor)("peekView.border",{dark:a.editorInfoForeground,light:a.editorInfoForeground,hcDark:a.contrastBorder,hcLight:a.contrastBorder},i.localize(1182,"Color of the peek view borders and arrow.")),e.peekViewResultsBackground=(0,a.registerColor)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1183,"Background color of the peek view result list.")),e.peekViewResultsMatchForeground=(0,a.registerColor)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1184,"Foreground color for line nodes in the peek view result list.")),e.peekViewResultsFileForeground=(0,a.registerColor)("peekViewResult.fileForeground",{dark:m.Color.white,light:"#1E1E1E",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1185,"Foreground color for file nodes in the peek view result list.")),e.peekViewResultsSelectionBackground=(0,a.registerColor)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},i.localize(1186,"Background color of the selected entry in the peek view result list.")),e.peekViewResultsSelectionForeground=(0,a.registerColor)("peekViewResult.selectionForeground",{dark:m.Color.white,light:"#6C6C6C",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1187,"Foreground color of the selected entry in the peek view result list.")),e.peekViewEditorBackground=(0,a.registerColor)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1188,"Background color of the peek view editor.")),e.peekViewEditorGutterBackground=(0,a.registerColor)("peekViewEditorGutter.background",e.peekViewEditorBackground,i.localize(1189,"Background color of the gutter in the peek view editor.")),e.peekViewEditorStickyScrollBackground=(0,a.registerColor)("peekViewEditorStickyScroll.background",e.peekViewEditorBackground,i.localize(1190,"Background color of sticky scroll in the peek view editor.")),e.peekViewResultsMatchHighlight=(0,a.registerColor)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},i.localize(1191,"Match highlight color in the peek view result list.")),e.peekViewEditorMatchHighlight=(0,a.registerColor)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},i.localize(1192,"Match highlight color in the peek view editor.")),e.peekViewEditorMatchHighlightBorder=(0,a.registerColor)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:a.activeContrastBorder,hcLight:a.activeContrastBorder},i.localize(1193,"Match highlight border in the peek view editor."))}),define(ne[843],se([1,0,5,86,13,33,6,2,48,11,4,158,3,124,29,12,7,181,108,59,723,32,25,512]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerNavigationWidget=void 0;class h{constructor(x,W,V,q,H){this._openerService=q,this._labelService=H,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new m.DisposableStore,this._editor=W;const z=document.createElement("div");z.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),z.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),z.appendChild(this._relatedBlock),this._disposables.add(d.addStandardDisposableListener(this._relatedBlock,"click",U=>{U.preventDefault();const j=this._relatedDiagnostics.get(U.target);j&&V(j)})),this._scrollable=new k.ScrollableElement(z,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),x.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(U=>{z.style.left=`-${U.scrollLeft}px`,z.style.top=`-${U.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){(0,m.dispose)(this._disposables)}update(x){const{source:W,message:V,relatedInformation:q,code:H}=x;let z=(W?.length||0)+2;H&&(typeof H=="string"?z+=H.length:z+=H.value.length);const U=(0,b.splitLines)(V);this._lines=U.length,this._longestLineLength=0;for(const R of U)this._longestLineLength=Math.max(R.length+z,this._longestLineLength);d.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(x)),this._editor.applyFontInfo(this._messageBlock);let j=this._messageBlock;for(const R of U)j=document.createElement("div"),j.innerText=R,R===""&&(j.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(j);if(W||H){const R=document.createElement("span");if(R.classList.add("details"),j.appendChild(R),W){const J=document.createElement("span");J.innerText=W,J.classList.add("source"),R.appendChild(J)}if(H)if(typeof H=="string"){const J=document.createElement("span");J.innerText=`(${H})`,J.classList.add("code"),R.appendChild(J)}else{this._codeLink=d.$("a.code-link"),this._codeLink.setAttribute("href",`${H.target.toString()}`),this._codeLink.onclick=ie=>{this._openerService.open(H.target,{allowCommands:!0}),ie.preventDefault(),ie.stopPropagation()};const J=d.append(this._codeLink,d.$("span"));J.innerText=H.value,R.appendChild(this._codeLink)}}if(d.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,I.isNonEmptyArray)(q)){const R=this._relatedBlock.appendChild(document.createElement("div"));R.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const J of q){const ie=document.createElement("div"),ue=document.createElement("a");ue.classList.add("filename"),ue.innerText=`${this._labelService.getUriBasenameLabel(J.resource)}(${J.startLineNumber}, ${J.startColumn}): `,ue.title=this._labelService.getUriLabel(J.resource),this._relatedDiagnostics.set(ue,J);const he=document.createElement("span");he.innerText=J.message,ie.appendChild(ue),ie.appendChild(he),this._lines+=1,R.appendChild(ie)}}const Y=this._editor.getOption(50),G=Math.ceil(Y.typicalFullwidthCharacterWidth*this._longestLineLength*.75),K=Y.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:G,scrollHeight:K})}layout(x,W){this._scrollable.getDomNode().style.height=`${x}px`,this._scrollable.getDomNode().style.width=`${W}px`,this._scrollable.setScrollDimensions({width:W,height:x})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(x){let W="";switch(x.severity){case l.MarkerSeverity.Error:W=o.localize(932,"Error");break;case l.MarkerSeverity.Warning:W=o.localize(933,"Warning");break;case l.MarkerSeverity.Info:W=o.localize(934,"Info");break;case l.MarkerSeverity.Hint:W=o.localize(935,"Hint");break}let V=o.localize(936,"{0} at {1}. ",W,x.startLineNumber+":"+x.startColumn);const q=this._editor.getModel();return q&&x.startLineNumber<=q.getLineCount()&&x.startLineNumber>=1&&(V=`${q.getLineContent(x.startLineNumber)}, ${V}`),V}}let v=class extends n.PeekViewWidget{static{f=this}static{this.TitleMenu=new i.MenuId("gotoErrorTitleMenu")}constructor(x,W,V,q,H,z,U){super(x,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},H),this._themeService=W,this._openerService=V,this._menuService=q,this._contextKeyService=z,this._labelService=U,this._callOnDispose=new m.DisposableStore,this._onDidSelectRelatedInformation=new y.Emitter,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=l.MarkerSeverity.Warning,this._backgroundColor=E.Color.white,this._applyTheme(W.getColorTheme()),this._callOnDispose.add(W.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(x){this._backgroundColor=x.getColor(O);let W=D,V=T;this._severity===l.MarkerSeverity.Warning?(W=M,V=A):this._severity===l.MarkerSeverity.Info&&(W=P,V=N);const q=x.getColor(W),H=x.getColor(V);this.style({arrowColor:q,frameColor:q,headerBackgroundColor:H,primaryHeadingColor:x.getColor(n.peekViewTitleForeground),secondaryHeadingColor:x.getColor(n.peekViewTitleInfoForeground)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(x){super._fillHead(x),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(q=>this.editor.focus()));const W=[],V=this._menuService.getMenuActions(f.TitleMenu,this._contextKeyService);(0,t.createAndFillInActionBarActions)(V,W),this._actionbarWidget.push(W,{label:!1,icon:!0,index:0})}_fillTitleIcon(x){this._icon=d.append(x,d.$(""))}_fillBody(x){this._parentContainer=x,x.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),x.appendChild(this._container),this._message=new h(this._container,this.editor,W=>this._onDidSelectRelatedInformation.fire(W),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(x,W,V){this._container.classList.remove("stale"),this._message.update(x),this._severity=x.severity,this._applyTheme(this._themeService.getColorTheme());const q=p.Range.lift(x),H=this.editor.getPosition(),z=H&&q.containsPosition(H)?H:q.getStartPosition();super.show(z,this.computeRequiredHeight());const U=this.editor.getModel();if(U){const j=V>1?o.localize(937,"{0} of {1} problems",W,V):o.localize(938,"{0} of {1} problem",W,V);this.setTitle((0,_.basename)(U.uri),j)}this._icon.className=`codicon ${r.SeverityIcon.className(l.MarkerSeverity.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(z,0),this.editor.focus()}updateMarker(x){this._container.classList.remove("stale"),this._message.update(x)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(x,W){super._doLayoutBody(x,W),this._heightInPixel=x,this._message.layout(x,W),this._container.style.height=`${x}px`}_onWidth(x){this._message.layout(this._heightInPixel,x)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};e.MarkerNavigationWidget=v,e.MarkerNavigationWidget=v=f=ke([ce(1,C.IThemeService),ce(2,a.IOpenerService),ce(3,i.IMenuService),ce(4,g.IInstantiationService),ce(5,s.IContextKeyService),ce(6,c.ILabelService)],v);const w=(0,u.oneOf)(u.editorErrorForeground,u.editorErrorBorder),S=(0,u.oneOf)(u.editorWarningForeground,u.editorWarningBorder),L=(0,u.oneOf)(u.editorInfoForeground,u.editorInfoBorder),D=(0,u.registerColor)("editorMarkerNavigationError.background",{dark:w,light:w,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(939,"Editor marker navigation widget error color.")),T=(0,u.registerColor)("editorMarkerNavigationError.headerBackground",{dark:(0,u.transparent)(D,.1),light:(0,u.transparent)(D,.1),hcDark:null,hcLight:null},o.localize(940,"Editor marker navigation widget error heading background.")),M=(0,u.registerColor)("editorMarkerNavigationWarning.background",{dark:S,light:S,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(941,"Editor marker navigation widget warning color.")),A=(0,u.registerColor)("editorMarkerNavigationWarning.headerBackground",{dark:(0,u.transparent)(M,.1),light:(0,u.transparent)(M,.1),hcDark:"#0C141F",hcLight:(0,u.transparent)(M,.2)},o.localize(942,"Editor marker navigation widget warning heading background.")),P=(0,u.registerColor)("editorMarkerNavigationInfo.background",{dark:L,light:L,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(943,"Editor marker navigation widget info color.")),N=(0,u.registerColor)("editorMarkerNavigationInfo.headerBackground",{dark:(0,u.transparent)(P,.1),light:(0,u.transparent)(P,.1),hcDark:null,hcLight:null},o.localize(944,"Editor marker navigation widget info heading background.")),O=(0,u.registerColor)("editorMarkerNavigation.background",u.editorBackground,o.localize(945,"Editor marker navigation widget background."))}),define(ne[427],se([1,0,26,2,15,34,9,4,20,698,3,29,12,7,71,843]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.NextMarkerAction=e.MarkerController=void 0;let c=class{static{g=this}static{this.ID="editor.contrib.markerController"}static get(w){return w.getContribution(g.ID)}constructor(w,S,L,D,T){this._markerNavigationService=S,this._contextKeyService=L,this._editorService=D,this._instantiationService=T,this._sessionDispoables=new k.DisposableStore,this._editor=w,this._widgetVisible=f.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(w){if(this._model&&this._model.matches(w))return this._model;let S=!1;return this._model&&(S=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(w),S&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(s.MarkerNavigationWidget,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(L=>{(!this._model?.selected||!m.Range.containsPosition(this._model?.selected.marker,L.position))&&this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const L=this._model.find(this._editor.getModel().uri,this._widget.position);L?this._widget.updateMarker(L.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(L=>{this._editorService.openCodeEditor({resource:L.resource,options:{pinned:!0,revealIfOpened:!0,selection:m.Range.lift(L).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(w=!0){this._cleanUp(),w&&this._editor.focus()}showAtMarker(w){if(this._editor.hasModel()){const S=this._getOrCreateModel(this._editor.getModel().uri);S.resetIndex(),S.move(!0,this._editor.getModel(),new y.Position(w.startLineNumber,w.startColumn)),S.selected&&this._widget.showAtMarker(S.selected.marker,S.selected.index,S.selected.total)}}async nagivate(w,S){if(this._editor.hasModel()){const L=this._getOrCreateModel(S?void 0:this._editor.getModel().uri);if(L.move(w,this._editor.getModel(),this._editor.getPosition()),!L.selected)return;if(L.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const D=await this._editorService.openCodeEditor({resource:L.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:L.selected.marker}},this._editor);D&&(g.get(D)?.close(),g.get(D)?.nagivate(w,S))}else this._widget.showAtMarker(L.selected.marker,L.selected.index,L.selected.total)}}};e.MarkerController=c,e.MarkerController=c=g=ke([ce(1,b.IMarkerNavigationService),ce(2,o.IContextKeyService),ce(3,E.ICodeEditorService),ce(4,t.IInstantiationService)],c);class l extends I.EditorAction{constructor(w,S,L){super(L),this._next=w,this._multiFile=S}async run(w,S){S.hasModel()&&c.get(S)?.nagivate(this._next,this._multiFile)}}class a extends l{static{this.ID="editor.action.marker.next"}static{this.LABEL=p.localize(924,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:a.ID,label:a.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:s.MarkerNavigationWidget.TitleMenu,title:a.LABEL,icon:(0,i.registerIcon)("marker-navigation-next",d.Codicon.arrowDown,p.localize(925,"Icon for goto next marker.")),group:"navigation",order:1}})}}e.NextMarkerAction=a;class r extends l{static{this.ID="editor.action.marker.prev"}static{this.LABEL=p.localize(926,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:r.ID,label:r.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:s.MarkerNavigationWidget.TitleMenu,title:r.LABEL,icon:(0,i.registerIcon)("marker-navigation-previous",d.Codicon.arrowUp,p.localize(927,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class u extends l{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:p.localize(928,"Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:n.MenuId.MenubarGoMenu,title:p.localize(929,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class C extends l{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:p.localize(930,"Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:n.MenuId.MenubarGoMenu,title:p.localize(931,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}(0,I.registerEditorContribution)(c.ID,c,4),(0,I.registerEditorAction)(a),(0,I.registerEditorAction)(r),(0,I.registerEditorAction)(u),(0,I.registerEditorAction)(C);const f=new o.RawContextKey("markersNavigationVisible",!1),h=I.EditorCommand.bindToContribution(c.get);(0,I.registerEditorCommand)(new h({id:"closeMarkersNavigation",precondition:f,handler:v=>v.close(),kbOpts:{weight:150,kbExpr:_.EditorContextKeys.focus,primary:9,secondary:[1033]}}))}),define(ne[844],se([1,0,5,357,33,6,2,42,48,125,4,35,70,78,758,158,3,7,31,181,216,25,178,514]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferenceWidget=e.LayoutData=void 0;class f{static{this.DecorationOptions=n.ModelDecorationOptions.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(L,D){this._editor=L,this._model=D,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new y.DisposableStore,this._callOnModelChange=new y.DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const L=this._editor.getModel();if(L){for(const D of this._model.references)if(D.uri.toString()===L.uri.toString()){this._addDecorations(D.parent);return}}}_addDecorations(L){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const D=[],T=[];for(let M=0,A=L.children.length;M{const A=M.deltaDecorations([],D);for(let P=0;P{A.equals(9)&&(this._keybindingService.dispatchEvent(A,A.target),A.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(v,"ReferencesWidget",this._treeContainer,new i.Delegate,[this._instantiationService.createInstance(i.FileReferencesRenderer),this._instantiationService.createInstance(i.OneReferenceRenderer)],this._instantiationService.createInstance(i.DataSource),T),this._splitView.addView({onDidChange:E.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:A=>{this._preview.layout({height:this._dim.height,width:A})}},k.Sizing.Distribute),this._splitView.addView({onDidChange:E.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:A=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${A}px`,this._tree.layout(this._dim.height,A)}},k.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const M=(A,P)=>{A instanceof C.OneReference&&(P==="show"&&this._revealReference(A,!1),this._onDidSelectReference.fire({element:A,kind:P,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(A=>{A.sideBySide?M(A.element,"side"):A.editorOptions.pinned?M(A.element,"goto"):M(A.element,"show")})),d.hide(this._treeContainer)}_onWidth(L){this._dim&&this._doLayoutBody(this._dim.height,L)}_doLayoutBody(L,D){super._doLayoutBody(L,D),this._dim=new d.Dimension(D,L),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(D),this._splitView.resizeView(0,D*this.layoutData.ratio)}setSelection(L){return this._revealReference(L,!0).then(()=>{this._model&&(this._tree.setSelection([L]),this._tree.setFocus([L]))})}setModel(L){return this._disposeOnNewModel.clear(),this._model=L,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=g.localize(993,"No results"),d.show(this._messageContainer),Promise.resolve(void 0)):(d.hide(this._messageContainer),this._decorationsManager=new f(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(L=>this._tree.rerender(L))),this._disposeOnNewModel.add(this._preview.onMouseDown(L=>{const{event:D,target:T}=L;if(D.detail!==2)return;const M=this._getFocusedReference();M&&this._onDidSelectReference.fire({element:{uri:M.uri,range:T.range},kind:D.ctrlKey||D.metaKey||D.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),d.show(this._treeContainer),d.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[L]=this._tree.getFocus();if(L instanceof C.OneReference)return L;if(L instanceof C.FileReferences&&L.children.length>0)return L.children[0]}async revealReference(L){await this._revealReference(L,!1),this._onDidSelectReference.fire({element:L,kind:"goto",source:"tree"})}async _revealReference(L,D){if(this._revealedReference===L)return;this._revealedReference=L,L.uri.scheme!==m.Schemas.inMemory?this.setTitle((0,_.basenameOrAuthority)(L.uri),this._uriLabel.getUriLabel((0,_.dirname)(L.uri))):this.setTitle(g.localize(994,"References"));const T=this._textModelResolverService.createModelReference(L.uri);this._tree.getInput()===L.parent?this._tree.reveal(L):(D&&this._tree.reveal(L.parent),await this._tree.expand(L.parent),this._tree.reveal(L));const M=await T;if(!this._model){M.dispose();return}(0,y.dispose)(this._previewModelReference);const A=M.object;if(A){const P=this._preview.getModel()===A.textEditorModel?0:1,N=p.Range.lift(L.range).collapseToStart();this._previewModelReference=M,this._preview.setModel(A.textEditorModel),this._preview.setSelection(N),this._preview.revealRangeInCenter(N,P)}else this._preview.setModel(this._previewNotAvailableMessage),M.dispose()}};e.ReferenceWidget=w,e.ReferenceWidget=w=ke([ce(3,u.IThemeService),ce(4,t.ITextModelService),ce(5,c.IInstantiationService),ce(6,s.IPeekViewService),ce(7,a.ILabelService),ce(8,l.IKeybindingService)],w)}),define(ne[428],se([1,0,14,8,72,2,34,9,4,158,3,24,28,12,7,121,216,50,101,178,844,20,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesController=e.ctxReferenceSearchVisible=void 0,e.ctxReferenceSearchVisible=new t.RawContextKey("referenceSearchVisible",!1,p.localize(986,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let h=class{static{f=this}static{this.ID="editor.contrib.referencesController"}static get(S){return S.getContribution(f.ID)}constructor(S,L,D,T,M,A,P,N){this._defaultTreeKeyboardSupport=S,this._editor=L,this._editorService=T,this._notificationService=M,this._instantiationService=A,this._storageService=P,this._configurationService=N,this._disposables=new E.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=e.ctxReferenceSearchVisible.bindTo(D)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(S,L,D){let T;if(this._widget&&(T=this._widget.position),this.closeWidget(),T&&S.containsPosition(T))return;this._peekMode=D,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const M="peekViewLayout",A=r.LayoutData.fromJSON(this._storageService.get(M,0,"{}"));this._widget=this._instantiationService.createInstance(r.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,A),this._widget.setTitle(p.localize(987,"Loading...")),this._widget.show(S),this._disposables.add(this._widget.onDidClose(()=>{L.cancel(),this._widget?(this._storageService.store(M,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(N=>{const{element:O,kind:F}=N;if(O)switch(F){case"open":(N.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(O,!1,!1);break;case"side":this.openReference(O,!0,!1);break;case"goto":D?this._gotoReference(O,!0):this.openReference(O,!1,!0);break}}));const P=++this._requestIdPool;L.then(N=>{if(P!==this._requestIdPool||!this._widget){N.dispose();return}return this._model?.dispose(),this._model=N,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(p.localize(988,"{0} ({1})",this._model.title,this._model.references.length));const O=this._editor.getModel().uri,F=new m.Position(S.startLineNumber,S.startColumn),x=this._model.nearestReference(O,F);if(x)return this._widget.setSelection(x).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},N=>{this._notificationService.error(N)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(S){if(!this._editor.hasModel()||!this._model||!this._widget)return;const L=this._widget.position;if(!L)return;const D=this._model.nearestReference(this._editor.getModel().uri,L);if(!D)return;const T=this._model.nextOrPreviousReference(D,S),M=this._editor.hasTextFocus(),A=this._widget.isPreviewEditorFocused();await this._widget.setSelection(T),await this._gotoReference(T,!1),M?this._editor.focus():this._widget&&A&&this._widget.focusOnPreviewEditor()}async revealReference(S){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(S)}closeWidget(S=!0){this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,S&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(S,L){this._widget?.hide(),this._ignoreModelChangeEvent=!0;const D=_.Range.lift(S.range).collapseToStart();return this._editorService.openCodeEditor({resource:S.uri,options:{selection:D,selectionSource:"code.jump",pinned:L}},this._editor).then(T=>{if(this._ignoreModelChangeEvent=!1,!T||!this._widget){this.closeWidget();return}if(this._editor===T)this._widget.show(D),this._widget.focusOnReferenceTree();else{const M=f.get(T),A=this._model.clone();this.closeWidget(),T.focus(),M?.toggleWidget(D,(0,d.createCancelablePromise)(P=>Promise.resolve(A)),this._peekMode??!1)}},T=>{this._ignoreModelChangeEvent=!1,(0,k.onUnexpectedError)(T)})}openReference(S,L,D){L||this.closeWidget();const{uri:T,range:M}=S;this._editorService.openCodeEditor({resource:T,options:{selection:M,selectionSource:"code.jump",pinned:D}},this._editor,L)}};e.ReferencesController=h,e.ReferencesController=h=f=ke([ce(2,t.IContextKeyService),ce(3,y.ICodeEditorService),ce(4,c.INotificationService),ce(5,i.IInstantiationService),ce(6,l.IStorageService),ce(7,o.IConfigurationService)],h);function v(w,S){const L=(0,b.getOuterEditor)(w);if(!L)return;const D=h.get(L);D&&S(D)}s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,I.KeyChord)(2089,60),when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.changeFocusBetweenPreviewAndReferences()})}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.goToNextOrPreviousReference(!0)})}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.goToNextOrPreviousReference(!1)})}}),n.CommandsRegistry.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),n.CommandsRegistry.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),n.CommandsRegistry.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),n.CommandsRegistry.registerCommand("closeReferenceSearch",w=>v(w,S=>S.closeWidget())),s.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:t.ContextKeyExpr.and(b.PeekContext.inPeekEditor,t.ContextKeyExpr.not("config.editor.stablePeek"))}),s.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,t.ContextKeyExpr.not("config.editor.stablePeek"),t.ContextKeyExpr.or(u.EditorContextKeys.editorTextFocus,C.InputFocusedContext.negate()))}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(w){const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.revealReference(L[0]))}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(w){const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.openReference(L[0],!0,!0))}}),n.CommandsRegistry.registerCommand("openReference",w=>{const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.openReference(L[0],!1,!0))})}),define(ne[291],se([1,0,46,14,72,19,22,122,168,15,34,125,9,4,20,27,428,178,736,184,158,3,29,24,12,7,50,96,277,17,53,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefinitionAction=e.SymbolNavigationAction=e.SymbolNavigationAnchor=void 0,C.MenuRegistry.appendMenuItem(C.MenuId.EditorContext,{submenu:C.MenuId.EditorContextPeek,title:u.localize(946,"Peek"),group:"navigation",order:100});class A{static is(H){return!H||typeof H!="object"?!1:!!(H instanceof A||o.Position.isIPosition(H.position)&&H.model)}constructor(H,z){this.model=H,this.position=z}}e.SymbolNavigationAnchor=A;class P extends b.EditorAction2{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return P._allSymbolNavigationCommands.values()}static _patchConfig(H){const z={...H,f1:!0};if(z.menu)for(const U of T.Iterable.wrap(z.menu))(U.id===C.MenuId.EditorContext||U.id===C.MenuId.EditorContextPeek)&&(U.when=h.ContextKeyExpr.and(H.precondition,U.when));return z}constructor(H,z){super(P._patchConfig(z)),this.configuration=H,P._allSymbolNavigationCommands.set(z.id,this)}runEditorCommand(H,z,U,j){if(!z.hasModel())return Promise.resolve(void 0);const Y=H.get(w.INotificationService),G=H.get(p.ICodeEditorService),K=H.get(S.IEditorProgressService),R=H.get(l.ISymbolNavigationService),J=H.get(D.ILanguageFeaturesService),ie=H.get(v.IInstantiationService),ue=z.getModel(),he=z.getPosition(),pe=A.is(U)?U:new A(ue,he),ae=new m.EditorStateCancellationTokenSource(z,5),ee=(0,k.raceCancellation)(this._getLocationModel(J,pe.model,pe.position,ae.token),ae.token).then(async de=>{if(!de||ae.token.isCancellationRequested)return;(0,d.alert)(de.ariaMessage);let ge;if(de.referenceAt(ue.uri,he)){const B=this._getAlternativeCommand(z);!P._activeAlternativeCommands.has(B)&&P._allSymbolNavigationCommands.has(B)&&(ge=P._allSymbolNavigationCommands.get(B))}const X=de.references.length;if(X===0){if(!this.configuration.muteMessage){const B=ue.getWordAtPosition(he);a.MessageController.get(z)?.showMessage(this._getNoResultFoundMessage(B),he)}}else if(X===1&&ge)P._activeAlternativeCommands.add(this.desc.id),ie.invokeFunction(B=>ge.runEditorCommand(B,z,U,j).finally(()=>{P._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(G,R,z,de,j)},de=>{Y.error(de)}).finally(()=>{ae.dispose()});return K.showWhile(ee,250),ee}async _onResult(H,z,U,j,Y){const G=this._getGoToPreference(U);if(!(U instanceof n.EmbeddedCodeEditorWidget)&&(this.configuration.openInPeek||G==="peek"&&j.references.length>1))this._openInPeek(U,j,Y);else{const K=j.firstReference(),R=j.references.length>1&&G==="gotoAndPeek",J=await this._openReference(U,H,K,this.configuration.openToSide,!R);R&&J?this._openInPeek(J,j,Y):j.dispose(),G==="goto"&&z.put(K)}}async _openReference(H,z,U,j,Y){let G;if((0,s.isLocationLink)(U)&&(G=U.targetSelectionRange),G||(G=U.range),!G)return;const K=await z.openCodeEditor({resource:U.uri,options:{selection:t.Range.collapseToStart(G),selectionRevealType:3,selectionSource:"code.jump"}},H,j);if(K){if(Y){const R=K.getModel(),J=K.createDecorationsCollection([{range:G,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{K.getModel()===R&&J.clear()},350)}return K}}_openInPeek(H,z,U){const j=g.ReferencesController.get(H);j&&H.hasModel()?j.toggleWidget(U??H.getSelection(),(0,k.createCancelablePromise)(Y=>Promise.resolve(z)),this.configuration.openInPeek):z.dispose()}}e.SymbolNavigationAction=P;class N extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getDefinitionsAtPosition)(H.definitionProvider,z,U,!1,j),u.localize(947,"Definitions"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(948,"No definition found for '{0}'",H.word):u.localize(949,"No definition found")}_getAlternativeCommand(H){return H.getOption(58).alternativeDefinitionCommand}_getGoToPreference(H){return H.getOption(58).multipleDefinitions}}e.DefinitionAction=N,(0,C.registerAction2)(class Gt extends N{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Gt.id,title:{...u.localize2(973,"Go to Definition"),mnemonicTitle:u.localize(950,"Go to &&Definition")},precondition:i.EditorContextKeys.hasDefinitionProvider,keybinding:[{when:i.EditorContextKeys.editorTextFocus,primary:70,weight:100},{when:h.ContextKeyExpr.and(i.EditorContextKeys.editorTextFocus,M.IsWebContext),primary:2118,weight:100}],menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.1},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),f.CommandsRegistry.registerCommandAlias("editor.action.goToDeclaration",Gt.id)}}),(0,C.registerAction2)(class Yt extends N{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:Yt.id,title:u.localize2(974,"Open Definition to the Side"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDefinitionProvider,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:[{when:i.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,70),weight:100},{when:h.ContextKeyExpr.and(i.EditorContextKeys.editorTextFocus,M.IsWebContext),primary:(0,I.KeyChord)(2089,2118),weight:100}]}),f.CommandsRegistry.registerCommandAlias("editor.action.openDeclarationToTheSide",Yt.id)}}),(0,C.registerAction2)(class Qt extends N{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Qt.id,title:u.localize2(975,"Peek Definition"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDefinitionProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:2}}),f.CommandsRegistry.registerCommandAlias("editor.action.previewDeclaration",Qt.id)}});class O extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getDeclarationsAtPosition)(H.declarationProvider,z,U,!1,j),u.localize(951,"Declarations"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(952,"No declaration found for '{0}'",H.word):u.localize(953,"No declaration found")}_getAlternativeCommand(H){return H.getOption(58).alternativeDeclarationCommand}_getGoToPreference(H){return H.getOption(58).multipleDeclarations}}(0,C.registerAction2)(class hi extends O{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:hi.id,title:{...u.localize2(976,"Go to Declaration"),mnemonicTitle:u.localize(954,"Go to &&Declaration")},precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDeclarationProvider,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.3},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(H){return H&&H.word?u.localize(955,"No declaration found for '{0}'",H.word):u.localize(956,"No declaration found")}}),(0,C.registerAction2)(class extends O{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:u.localize2(977,"Peek Declaration"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDeclarationProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:3}})}});class F extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getTypeDefinitionsAtPosition)(H.typeDefinitionProvider,z,U,!1,j),u.localize(957,"Type Definitions"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(958,"No type definition found for '{0}'",H.word):u.localize(959,"No type definition found")}_getAlternativeCommand(H){return H.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(H){return H.getOption(58).multipleTypeDefinitions}}(0,C.registerAction2)(class gi extends F{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:gi.ID,title:{...u.localize2(978,"Go to Type Definition"),mnemonicTitle:u.localize(960,"Go to &&Type Definition")},precondition:i.EditorContextKeys.hasTypeDefinitionProvider,keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:0,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.4},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}}),(0,C.registerAction2)(class fi extends F{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:fi.ID,title:u.localize2(979,"Peek Type Definition"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasTypeDefinitionProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:4}})}});class x extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getImplementationsAtPosition)(H.implementationProvider,z,U,!1,j),u.localize(961,"Implementations"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(962,"No implementation found for '{0}'",H.word):u.localize(963,"No implementation found")}_getAlternativeCommand(H){return H.getOption(58).alternativeImplementationCommand}_getGoToPreference(H){return H.getOption(58).multipleImplementations}}(0,C.registerAction2)(class mi extends x{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:mi.ID,title:{...u.localize2(980,"Go to Implementations"),mnemonicTitle:u.localize(964,"Go to &&Implementations")},precondition:i.EditorContextKeys.hasImplementationProvider,keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.45},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}}),(0,C.registerAction2)(class pi extends x{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:pi.ID,title:u.localize2(981,"Peek Implementations"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasImplementationProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:5}})}});class W extends P{_getNoResultFoundMessage(H){return H?u.localize(965,"No references found for '{0}'",H.word):u.localize(966,"No references found")}_getAlternativeCommand(H){return H.getOption(58).alternativeReferenceCommand}_getGoToPreference(H){return H.getOption(58).multipleReferences}}(0,C.registerAction2)(class extends W{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...u.localize2(982,"Go to References"),mnemonicTitle:u.localize(967,"Go to &&References")},precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasReferenceProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:1094,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.45},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getReferencesAtPosition)(H.referenceProvider,z,U,!0,!1,j),u.localize(968,"References"))}}),(0,C.registerAction2)(class extends W{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:u.localize2(983,"Peek References"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasReferenceProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getReferencesAtPosition)(H.referenceProvider,z,U,!1,!1,j),u.localize(969,"References"))}});class V extends P{constructor(H,z,U){super(H,{id:"editor.action.goToLocation",title:u.localize2(984,"Go to Any Symbol"),precondition:h.ContextKeyExpr.and(r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated())}),this._references=z,this._gotoMultipleBehaviour=U}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(this._references,u.localize(970,"Locations"))}_getNoResultFoundMessage(H){return H&&u.localize(971,"No results for '{0}'",H.word)||""}_getGoToPreference(H){return this._gotoMultipleBehaviour??H.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}f.CommandsRegistry.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:y.URI},{name:"position",description:"The position at which to start",constraint:o.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(q,H,z,U,j,Y,G)=>{(0,E.assertType)(y.URI.isUri(H)),(0,E.assertType)(o.Position.isIPosition(z)),(0,E.assertType)(Array.isArray(U)),(0,E.assertType)(typeof j>"u"||typeof j=="string"),(0,E.assertType)(typeof G>"u"||typeof G=="boolean");const K=q.get(p.ICodeEditorService),R=await K.openCodeEditor({resource:H},K.getFocusedCodeEditor());if((0,_.isCodeEditor)(R))return R.setPosition(z),R.revealPositionInCenterIfOutsideViewport(z,0),R.invokeWithinContext(J=>{const ie=new class extends V{_getNoResultFoundMessage(ue){return Y||super._getNoResultFoundMessage(ue)}}({muteMessage:!Y,openInPeek:!!G,openToSide:!1},U,j);J.get(v.IInstantiationService).invokeFunction(ie.run.bind(ie),R)})}}),f.CommandsRegistry.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:y.URI},{name:"position",description:"The position at which to start",constraint:o.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(q,H,z,U,j)=>{q.get(f.ICommandService).executeCommand("editor.action.goToLocations",H,z,U,j,void 0,!0)}}),f.CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(q,H,z)=>{(0,E.assertType)(y.URI.isUri(H)),(0,E.assertType)(o.Position.isIPosition(z));const U=q.get(D.ILanguageFeaturesService),j=q.get(p.ICodeEditorService);return j.openCodeEditor({resource:H},j.getFocusedCodeEditor()).then(Y=>{if(!(0,_.isCodeEditor)(Y)||!Y.hasModel())return;const G=g.ReferencesController.get(Y);if(!G)return;const K=(0,k.createCancelablePromise)(J=>(0,L.getReferencesAtPosition)(U.referenceProvider,Y.getModel(),o.Position.lift(z),!1,!1,J).then(ie=>new c.ReferencesModel(ie,u.localize(972,"References")))),R=new t.Range(z.lineNumber,z.column,z.lineNumber,z.column);return Promise.resolve(G.toggleWidget(R,K,!1))})}}),f.CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations")}),define(ne[429],se([1,0,14,8,57,2,122,15,4,43,78,209,158,3,12,291,277,17,35,513]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.GotoDefinitionAtPositionEditorContribution=void 0;let r=class{static{a=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(C,f,h,v){this.textModelResolverService=f,this.languageService=h,this.languageFeaturesService=v,this.toUnhook=new E.DisposableStore,this.toUnhookForKeyboard=new E.DisposableStore,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=C,this.linkDecorations=this.editor.createDecorationsCollection();const w=new n.ClickLinkGesture(C);this.toUnhook.add(w),this.toUnhook.add(w.onMouseMoveOrRelevantKeyDown(([S,L])=>{this.startFindDefinitionFromMouse(S,L??void 0)})),this.toUnhook.add(w.onExecute(S=>{this.isEnabled(S)&&this.gotoDefinition(S.target.position,S.hasSideBySideModifier).catch(L=>{(0,k.onUnexpectedError)(L)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(w.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(C){return C.getContribution(a.ID)}async startFindDefinitionFromCursor(C){await this.startFindDefinition(C),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(f=>{f&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(C,f){if(C.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(C,f)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const h=C.target.position;this.startFindDefinition(h)}async startFindDefinition(C){this.toUnhookForKeyboard.clear();const f=C?this.editor.getModel()?.getWordAtPosition(C):null;if(!f){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===f.startColumn&&this.currentWordAtPosition.endColumn===f.endColumn&&this.currentWordAtPosition.word===f.word)return;this.currentWordAtPosition=f;const h=new y.EditorState(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,d.createCancelablePromise)(S=>this.findDefinition(C,S));let v;try{v=await this.previousPromise}catch(S){(0,k.onUnexpectedError)(S);return}if(!v||!v.length||!h.validate(this.editor)){this.removeLinkDecorations();return}const w=v[0].originSelectionRange?_.Range.lift(v[0].originSelectionRange):new _.Range(C.lineNumber,f.startColumn,C.lineNumber,f.endColumn);if(v.length>1){let S=w;for(const{originSelectionRange:L}of v)L&&(S=_.Range.plusRange(S,L));this.addDecoration(S,new I.MarkdownString().appendText(t.localize(985,"Click to show {0} definitions.",v.length)))}else{const S=v[0];if(!S.uri)return;this.textModelResolverService.createModelReference(S.uri).then(L=>{if(!L.object||!L.object.textEditorModel){L.dispose();return}const{object:{textEditorModel:D}}=L,{startLineNumber:T}=S.range;if(T<1||T>D.getLineCount()){L.dispose();return}const M=this.getPreviewValue(D,T,S),A=this.languageService.guessLanguageIdByFilepathOrFirstLine(D.uri);this.addDecoration(w,M?new I.MarkdownString().appendCodeblock(A||"",M):void 0),L.dispose()})}}getPreviewValue(C,f,h){let v=h.range;return v.endLineNumber-v.startLineNumber>=a.MAX_SOURCE_PREVIEW_LINES&&(v=this.getPreviewRangeBasedOnIndentation(C,f)),this.stripIndentationFromPreviewRange(C,f,v)}stripIndentationFromPreviewRange(C,f,h){let w=C.getLineFirstNonWhitespaceColumn(f);for(let L=f+1;L{const v=!f&&this.editor.getOption(89)&&!this.isInPeekEditor(h);return new s.DefinitionAction({openToSide:f,openInPeek:v,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(h)})}isInPeekEditor(C){const f=C.get(i.IContextKeyService);return o.PeekContext.inPeekEditor.getValue(f)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};e.GotoDefinitionAtPositionEditorContribution=r,e.GotoDefinitionAtPositionEditorContribution=r=a=ke([ce(1,p.ITextModelService),ce(2,b.ILanguageService),ce(3,c.ILanguageFeaturesService)],r),(0,m.registerEditorContribution)(r.ID,r,2)}),define(ne[845],se([1,0,5,13,14,8,2,48,4,17,266,157,287,134,427,84,3,108,59,96]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerHoverParticipant=e.MarkerHover=void 0;const r=d.$;class u{constructor(v,w,S){this.owner=v,this.range=w,this.marker=S}isValidForHoverAnchor(v){return v.type===1&&this.range.startColumn<=v.range.startColumn&&this.range.endColumn>=v.range.endColumn}}e.MarkerHover=u;const C={type:1,filter:{include:t.CodeActionKind.QuickFix},triggerAction:t.CodeActionTriggerSource.QuickFixHover};let f=class{constructor(v,w,S,L){this._editor=v,this._markerDecorationsService=w,this._openerService=S,this._languageFeaturesService=L,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(v,w){if(!this._editor.hasModel()||v.type!==1&&!v.supportsMarkerHover)return[];const S=this._editor.getModel(),L=v.range.startLineNumber,D=S.getLineMaxColumn(L),T=[];for(const M of w){const A=M.range.startLineNumber===L?M.range.startColumn:1,P=M.range.endLineNumber===L?M.range.endColumn:D,N=this._markerDecorationsService.getMarker(S.uri,M);if(!N)continue;const O=new _.Range(v.range.startLineNumber,A,v.range.startLineNumber,P);T.push(new u(this,O,N))}return T}renderHoverParts(v,w){if(!w.length)return new s.RenderedHoverParts([]);const S=new y.DisposableStore,L=[];w.forEach(T=>{const M=this._renderMarkerHover(T);v.fragment.appendChild(M.hoverElement),L.push(M)});const D=w.length===1?w[0]:w.sort((T,M)=>c.MarkerSeverity.compare(T.marker.severity,M.marker.severity))[0];return this.renderMarkerStatusbar(v,D,S),new s.RenderedHoverParts(L)}_renderMarkerHover(v){const w=new y.DisposableStore,S=r("div.hover-row"),L=d.append(S,r("div.marker.hover-contents")),{source:D,message:T,code:M,relatedInformation:A}=v.marker;this._editor.applyFontInfo(L);const P=d.append(L,r("span"));if(P.style.whiteSpace="pre-wrap",P.innerText=T,D||M)if(M&&typeof M!="string"){const O=r("span");if(D){const V=d.append(O,r("span"));V.innerText=D}const F=d.append(O,r("a.code-link"));F.setAttribute("href",M.target.toString()),w.add(d.addDisposableListener(F,"click",V=>{this._openerService.open(M.target,{allowCommands:!0}),V.preventDefault(),V.stopPropagation()}));const x=d.append(F,r("span"));x.innerText=M.value;const W=d.append(L,O);W.style.opacity="0.6",W.style.paddingLeft="6px"}else{const O=d.append(L,r("span"));O.style.opacity="0.6",O.style.paddingLeft="6px",O.innerText=D&&M?`${D}(${M})`:D||`(${M})`}if((0,k.isNonEmptyArray)(A))for(const{message:O,resource:F,startLineNumber:x,startColumn:W}of A){const V=d.append(L,r("div"));V.style.marginTop="8px";const q=d.append(V,r("a"));q.innerText=`${(0,m.basename)(F)}(${x}, ${W}): `,q.style.cursor="pointer",w.add(d.addDisposableListener(q,"click",z=>{if(z.stopPropagation(),z.preventDefault(),this._openerService){const U={selection:{startLineNumber:x,startColumn:W}};this._openerService.open(F,{fromUserGesture:!0,editorOptions:U}).catch(E.onUnexpectedError)}}));const H=d.append(V,r("span"));H.innerText=O,this._editor.applyFontInfo(H)}return{hoverPart:v,hoverElement:S,dispose:()=>w.dispose()}}renderMarkerStatusbar(v,w,S){if(w.marker.severity===c.MarkerSeverity.Error||w.marker.severity===c.MarkerSeverity.Warning||w.marker.severity===c.MarkerSeverity.Info){const L=i.MarkerController.get(this._editor);L&&v.statusBar.addAction({label:g.localize(1040,"View Problem"),commandId:i.NextMarkerAction.ID,run:()=>{v.hide(),L.showAtMarker(w.marker),this._editor.focus()}})}if(!this._editor.getOption(92)){const L=v.statusBar.append(r("div"));this.recentMarkerCodeActionsInfo&&(c.IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===c.IMarkerData.makeKey(w.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(L.textContent=g.localize(1041,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const D=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?y.Disposable.None:(0,I.disposableTimeout)(()=>L.textContent=g.localize(1042,"Checking for quick fixes..."),200,S);L.textContent||(L.textContent="\xA0");const T=this.getCodeActions(w.marker);S.add((0,y.toDisposable)(()=>T.cancel())),T.then(M=>{if(D.dispose(),this.recentMarkerCodeActionsInfo={marker:w.marker,hasCodeActions:M.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){M.dispose(),L.textContent=g.localize(1043,"No quick fixes available");return}L.style.display="none";let A=!1;S.add((0,y.toDisposable)(()=>{A||M.dispose()})),v.statusBar.addAction({label:g.localize(1044,"Quick Fix..."),commandId:n.quickFixCommandId,run:P=>{A=!0;const N=o.CodeActionController.get(this._editor),O=d.getDomNodePagePosition(P);v.hide(),N?.showCodeActions(C,M,{x:O.left,y:O.top,width:O.width,height:O.height})}})},E.onUnexpectedError)}}getCodeActions(v){return(0,I.createCancelablePromise)(w=>(0,n.getCodeActions)(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new _.Range(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn),C,a.Progress.None,w))}};e.MarkerHoverParticipant=f,e.MarkerHoverParticipant=f=ke([ce(1,p.IMarkerDecorationsService),ce(2,l.IOpenerService),ce(3,b.ILanguageFeaturesService)],f)}),define(ne[430],se([1,0,5,41,18,193,4,78,291,158,29,24,12,58,7,50]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.showGoToContextMenu=g,e.goToDefinitionWithLocation=c;async function g(l,a,r,u){const C=l.get(m.ITextModelService),f=l.get(t.IContextMenuService),h=l.get(n.ICommandService),v=l.get(i.IInstantiationService),w=l.get(s.INotificationService);if(await u.item.resolve(I.CancellationToken.None),!u.part.location)return;const S=u.part.location,L=[],D=new Set(p.MenuRegistry.getMenuItems(p.MenuId.EditorContext).map(M=>(0,p.isIMenuItem)(M)?M.command.id:(0,E.generateUuid)()));for(const M of _.SymbolNavigationAction.all())D.has(M.desc.id)&&L.push(new k.Action(M.desc.id,p.MenuItemAction.label(M.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const A=await C.createModelReference(S.uri);try{const P=new _.SymbolNavigationAnchor(A.object.textEditorModel,y.Range.getStartPosition(S.range)),N=u.item.anchor.range;await v.invokeFunction(M.runEditorCommand.bind(M),a,P,N)}finally{A.dispose()}}));if(u.part.command){const{command:M}=u.part;L.push(new k.Separator),L.push(new k.Action(M.id,M.title,void 0,!0,async()=>{try{await h.executeCommand(M.id,...M.arguments??[])}catch(A){w.notify({severity:s.Severity.Error,source:u.item.provider.displayName,message:A})}}))}const T=a.getOption(128);f.showContextMenu({domForShadowRoot:T?a.getDomNode()??void 0:void 0,getAnchor:()=>{const M=d.getDomNodePagePosition(r);return{x:M.left,y:M.top+M.height+8}},getActions:()=>L,onHide:()=>{a.focus()},autoSelectFirstItem:!0})}async function c(l,a,r,u){const f=await l.get(m.ITextModelService).createModelReference(u.uri);await r.invokeWithinContext(async h=>{const v=a.hasSideBySideModifier,w=h.get(o.IContextKeyService),S=b.PeekContext.inPeekEditor.getValue(w),L=!v&&r.getOption(89)&&!S;return new _.DefinitionAction({openToSide:v,openInPeek:L,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(h,new _.SymbolNavigationAnchor(f.object.textEditorModel,y.Range.getStartPosition(u.range)),y.Range.lift(u.range))}),f.dispose()}}),define(ne[431],se([1,0,5,13,14,18,8,2,45,19,22,185,143,37,75,4,27,40,35,79,17,78,209,377,430,24,49,7,50,32,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsController=e.RenderedInlayHintLabelPart=void 0;class A{constructor(){this._entries=new _.LRUCache(50)}get(V){const q=A._key(V);return this._entries.get(q)}set(V,q){const H=A._key(V);this._entries.set(H,q)}static _key(V){return`${V.uri.toString()}/${V.getVersionId()}`}}const P=(0,S.createDecorator)("IInlayHintsCache");(0,w.registerSingleton)(P,A,1);class N{constructor(V,q){this.item=V,this.index=q}get part(){const V=this.item.hint.label;return typeof V=="string"?{label:V}:V[this.index]}}e.RenderedInlayHintLabelPart=N;class O{constructor(V,q){this.part=V,this.hasTriggerModifier=q}}let F=class{static{M=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._MAX_LABEL_LEN=43}static get(V){return V.getContribution(M.ID)??void 0}constructor(V,q,H,z,U,j,Y){this._editor=V,this._languageFeaturesService=q,this._inlayHintsCache=z,this._commandService=U,this._notificationService=j,this._instaService=Y,this._disposables=new m.DisposableStore,this._sessionDisposables=new m.DisposableStore,this._decorationsMetadata=new Map,this._ruleFactory=new n.DynamicCssRules(this._editor),this._activeRenderMode=0,this._debounceInfo=H.for(q.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(q.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(V.onDidChangeModel(()=>this._update())),this._disposables.add(V.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(V.onDidChangeConfiguration(G=>{G.hasChanged(142)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const V=this._editor.getOption(142);if(V.enabled==="off")return;const q=this._editor.getModel();if(!q||!this._languageFeaturesService.inlayHintsProvider.has(q))return;if(V.enabled==="on")this._activeRenderMode=0;else{let Y,G;V.enabled==="onUnlessPressed"?(Y=0,G=1):(Y=1,G=0),this._activeRenderMode=Y,this._sessionDisposables.add(d.ModifierKeyEmitter.getInstance().event(K=>{if(!this._editor.hasModel())return;const R=K.altKey&&K.ctrlKey&&!(K.shiftKey||K.metaKey)?G:Y;if(R!==this._activeRenderMode){this._activeRenderMode=R;const J=this._editor.getModel(),ie=this._copyInlayHintsWithCurrentAnchor(J);this._updateHintsDecorators([J.getFullModelRange()],ie),j.schedule(0)}}))}const H=this._inlayHintsCache.get(q);H&&this._updateHintsDecorators([q.getFullModelRange()],H),this._sessionDisposables.add((0,m.toDisposable)(()=>{q.isDisposed()||this._cacheHintsForFastRestore(q)}));let z;const U=new Set,j=new I.RunOnceScheduler(async()=>{const Y=Date.now();z?.dispose(!0),z=new E.CancellationTokenSource;const G=q.onWillDispose(()=>z?.cancel());try{const K=z.token,R=await f.InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider,q,this._getHintsRanges(),K);if(j.delay=this._debounceInfo.update(q,Date.now()-Y),K.isCancellationRequested){R.dispose();return}for(const J of R.provider)typeof J.onDidChangeInlayHints=="function"&&!U.has(J)&&(U.add(J),this._sessionDisposables.add(J.onDidChangeInlayHints(()=>{j.isScheduled()||j.schedule()})));this._sessionDisposables.add(R),this._updateHintsDecorators(R.ranges,R.items),this._cacheHintsForFastRestore(q)}catch(K){(0,y.onUnexpectedError)(K)}finally{z.dispose(),G.dispose()}},this._debounceInfo.get(q));this._sessionDisposables.add(j),this._sessionDisposables.add((0,m.toDisposable)(()=>z?.dispose(!0))),j.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(Y=>{(Y.scrollTopChanged||!j.isScheduled())&&j.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(Y=>{z?.cancel();const G=Math.max(j.delay,1250);j.schedule(G)})),this._sessionDisposables.add(this._installDblClickGesture(()=>j.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const V=new m.DisposableStore,q=V.add(new C.ClickLinkGesture(this._editor)),H=new m.DisposableStore;return V.add(H),V.add(q.onMouseMoveOrRelevantKeyDown(z=>{const[U]=z,j=this._getInlayHintLabelPart(U),Y=this._editor.getModel();if(!j||!Y){H.clear();return}const G=new E.CancellationTokenSource;H.add((0,m.toDisposable)(()=>G.dispose(!0))),j.item.resolve(G.token),this._activeInlayHintPart=j.part.command||j.part.location?new O(j,U.hasTriggerModifier):void 0;const K=Y.validatePosition(j.item.hint.position).lineNumber,R=new s.Range(K,1,K,Y.getLineMaxColumn(K)),J=this._getInlineHintsForRange(R);this._updateHintsDecorators([R],J),H.add((0,m.toDisposable)(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([R],J)}))})),V.add(q.onCancel(()=>H.clear())),V.add(q.onExecute(async z=>{const U=this._getInlayHintLabelPart(z);if(U){const j=U.part;j.location?this._instaService.invokeFunction(h.goToDefinitionWithLocation,z,this._editor,j.location):g.Command.is(j.command)&&await this._invokeCommand(j.command,U.item)}})),V}_getInlineHintsForRange(V){const q=new Set;for(const H of this._decorationsMetadata.values())V.containsRange(H.item.anchor.range)&&q.add(H.item);return Array.from(q)}_installDblClickGesture(V){return this._editor.onMouseUp(async q=>{if(q.event.detail!==2)return;const H=this._getInlayHintLabelPart(q);if(H&&(q.event.preventDefault(),await H.item.resolve(E.CancellationToken.None),(0,k.isNonEmptyArray)(H.item.hint.textEdits))){const z=H.item.hint.textEdits.map(U=>i.EditOperation.replace(s.Range.lift(U.range),U.text));this._editor.executeEdits("inlayHint.default",z),V()}})}_installContextMenu(){return this._editor.onContextMenu(async V=>{if(!(0,d.isHTMLElement)(V.event.target))return;const q=this._getInlayHintLabelPart(V);q&&await this._instaService.invokeFunction(h.showGoToContextMenu,this._editor,V.event.target,q)})}_getInlayHintLabelPart(V){if(V.target.type!==6)return;const q=V.target.detail.injectedText?.options;if(q instanceof l.ModelDecorationInjectedTextOptions&&q?.attachedData instanceof N)return q.attachedData}async _invokeCommand(V,q){try{await this._commandService.executeCommand(V.id,...V.arguments??[])}catch(H){this._notificationService.notify({severity:L.Severity.Error,source:q.provider.displayName,message:H})}}_cacheHintsForFastRestore(V){const q=this._copyInlayHintsWithCurrentAnchor(V);this._inlayHintsCache.set(V,q)}_copyInlayHintsWithCurrentAnchor(V){const q=new Map;for(const[H,z]of this._decorationsMetadata){if(q.has(z.item))continue;const U=V.getDecorationRange(H);if(U){const j=new f.InlayHintAnchor(U,z.item.anchor.direction),Y=z.item.with({anchor:j});q.set(z.item,Y)}}return Array.from(q.values())}_getHintsRanges(){const q=this._editor.getModel(),H=this._editor.getVisibleRangesPlusViewportAboveBelow(),z=[];for(const U of H.sort(s.Range.compareRangesUsingStarts)){const j=q.validateRange(new s.Range(U.startLineNumber-30,U.startColumn,U.endLineNumber+30,U.endColumn));z.length===0||!s.Range.areIntersectingOrTouching(z[z.length-1],j)?z.push(j):z[z.length-1]=s.Range.plusRange(z[z.length-1],j)}return z}_updateHintsDecorators(V,q){const H=[],z=(he,pe,ae,ee,de)=>{const ge={content:ae,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:pe.className,cursorStops:ee,attachedData:de};H.push({item:he,classNameRef:pe,decoration:{range:he.anchor.range,options:{description:"InlayHint",showIfCollapsed:he.anchor.range.isEmpty(),collapseOnReplaceEdit:!he.anchor.range.isEmpty(),stickiness:0,[he.anchor.direction]:this._activeRenderMode===0?ge:void 0}}})},U=(he,pe)=>{const ae=this._ruleFactory.createClassNameRef({width:`${j/3|0}px`,display:"inline-block"});z(he,ae,"\u200A",pe?c.InjectedTextCursorStops.Right:c.InjectedTextCursorStops.None)},{fontSize:j,fontFamily:Y,padding:G,isUniform:K}=this._getLayoutInfo(),R="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(R,Y);let J={line:0,totalLen:0};for(const he of q){if(J.line!==he.anchor.range.startLineNumber&&(J={line:he.anchor.range.startLineNumber,totalLen:0}),J.totalLen>M._MAX_LABEL_LEN)continue;he.hint.paddingLeft&&U(he,!1);const pe=typeof he.hint.label=="string"?[{label:he.hint.label}]:he.hint.label;for(let ae=0;ae0&&(B=B.slice(0,-Q)+"\u2026",$=!0),z(he,this._ruleFactory.createClassNameRef(X),x(B),ge&&!he.hint.paddingRight?c.InjectedTextCursorStops.Right:c.InjectedTextCursorStops.None,new N(he,ae)),$)break}if(he.hint.paddingRight&&U(he,!0),H.length>M._MAX_DECORATORS)break}const ie=[];for(const[he,pe]of this._decorationsMetadata){const ae=this._editor.getModel()?.getDecorationRange(he);ae&&V.some(ee=>ee.containsRange(ae))&&(ie.push(he),pe.classNameRef.dispose(),this._decorationsMetadata.delete(he))}const ue=o.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(he=>{const pe=he.deltaDecorations(ie,H.map(ae=>ae.decoration));for(let ae=0;aeH)&&(U=H);const j=V.fontFamily||z;return{fontSize:U,fontFamily:j,padding:q,isUniform:!q&&j===z&&U===H}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const V of this._decorationsMetadata.values())V.classNameRef.dispose();this._decorationsMetadata.clear()}};e.InlayHintsController=F,e.InlayHintsController=F=M=ke([ce(1,r.ILanguageFeaturesService),ce(2,a.ILanguageFeatureDebounceService),ce(3,P),ce(4,v.ICommandService),ce(5,L.INotificationService),ce(6,S.IInstantiationService)],F);function x(W){return W.replace(/[ \t]/g,"\xA0")}v.CommandsRegistry.registerCommand("_executeInlayHintProvider",async(W,...V)=>{const[q,H]=V;(0,b.assertType)(p.URI.isUri(q)),(0,b.assertType)(s.Range.isIRange(H));const{inlayHintsProvider:z}=W.get(r.ILanguageFeaturesService),U=await W.get(u.ITextModelService).createModelReference(q);try{const j=await f.InlayHintsFragments.create(z,U.object.textEditorModel,[s.Range.lift(H)],E.CancellationToken.None),Y=j.items.map(G=>G.hint);return setTimeout(()=>j.dispose(),0),Y}finally{U.dispose()}})}),define(ne[432],se([1,0,14,57,9,35,84,43,78,410,217,431,28,59,17,3,16,377,13,31,118,24]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsHover=void 0;class C extends y.HoverForeignElementAnchor{constructor(v,w,S,L){super(10,w,v.item.anchor.range,S,L,!0),this.part=v}}let f=class extends p.MarkdownHoverParticipant{constructor(v,w,S,L,D,T,M,A,P){super(v,w,S,T,A,L,D,P),this._resolverService=M,this.hoverOrdinal=6}suggestHoverAnchor(v){if(!n.InlayHintsController.get(this._editor)||v.target.type!==6)return null;const S=v.target.detail.injectedText?.options;return S instanceof E.ModelDecorationInjectedTextOptions&&S.attachedData instanceof n.RenderedInlayHintLabelPart?new C(S.attachedData,this,v.event.posx,v.event.posy):null}computeSync(){return[]}computeAsync(v,w,S){return v instanceof C?new d.AsyncIterableObject(async L=>{const{part:D}=v;if(await D.item.resolve(S),S.isCancellationRequested)return;let T;typeof D.item.hint.tooltip=="string"?T=new k.MarkdownString().appendText(D.item.hint.tooltip):D.item.hint.tooltip&&(T=D.item.hint.tooltip),T&&L.emitOne(new p.MarkdownHover(this,v.range,[T],!1,0)),(0,l.isNonEmptyArray)(D.item.hint.textEdits)&&L.emitOne(new p.MarkdownHover(this,v.range,[new k.MarkdownString().appendText((0,s.localize)(1065,"Double-click to insert"))],!1,10001));let M;if(typeof D.part.tooltip=="string"?M=new k.MarkdownString().appendText(D.part.tooltip):D.part.tooltip&&(M=D.part.tooltip),M&&L.emitOne(new p.MarkdownHover(this,v.range,[M],!1,1)),D.part.location||D.part.command){let P;const O=this._editor.getOption(78)==="altKey"?g.isMacintosh?(0,s.localize)(1066,"cmd + click"):(0,s.localize)(1067,"ctrl + click"):g.isMacintosh?(0,s.localize)(1068,"option + click"):(0,s.localize)(1069,"alt + click");D.part.location&&D.part.command?P=new k.MarkdownString().appendText((0,s.localize)(1070,"Go to Definition ({0}), right click for more",O)):D.part.location?P=new k.MarkdownString().appendText((0,s.localize)(1071,"Go to Definition ({0})",O)):D.part.command&&(P=new k.MarkdownString(`[${(0,s.localize)(1072,"Execute Command")}](${(0,c.asCommandLink)(D.part.command)} "${D.part.command.title}") (${O})`,{isTrusted:!0})),P&&L.emitOne(new p.MarkdownHover(this,v.range,[P],!1,1e4))}const A=await this._resolveInlayHintLabelPartHover(D,S);for await(const P of A)L.emitOne(P)}):d.AsyncIterableObject.EMPTY}async _resolveInlayHintLabelPartHover(v,w){if(!v.part.location)return d.AsyncIterableObject.EMPTY;const{uri:S,range:L}=v.part.location,D=await this._resolverService.createModelReference(S);try{const T=D.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(T)?(0,b.getHoverProviderResultsAsAsyncIterable)(this._languageFeaturesService.hoverProvider,T,new I.Position(L.startLineNumber,L.startColumn),w).filter(M=>!(0,k.isEmptyMarkdownString)(M.hover.contents)).map(M=>new p.MarkdownHover(this,v.item.anchor.range,M.hover.contents,!1,2+M.ordinal)):d.AsyncIterableObject.EMPTY}finally{D.dispose()}}};e.InlayHintsHover=f,e.InlayHintsHover=f=ke([ce(1,m.ILanguageService),ce(2,t.IOpenerService),ce(3,a.IKeybindingService),ce(4,r.IHoverService),ce(5,o.IConfigurationService),ce(6,_.ITextModelService),ce(7,i.ILanguageFeaturesService),ce(8,u.ICommandService)],f)}),define(ne[846],se([1,0,84,2,391,35,9,4,5,217,288,432,8]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderedContentHover=void 0;class t extends k.Disposable{constructor(c,l,a,r,u,C){super();const f=l.anchor,h=l.hoverParts;this._renderedHoverParts=this._register(new s(c,a,h,C,u));const{showAtPosition:v,showAtSecondaryPosition:w}=t.computeHoverPositions(c,f.range,h);this.shouldAppearBeforeContent=h.some(S=>S.isBeforeContent),this.showAtPosition=v,this.showAtSecondaryPosition=w,this.initialMousePosX=f.initialMousePosX,this.initialMousePosY=f.initialMousePosY,this.shouldFocus=r.shouldFocus,this.source=r.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}async updateHoverVerbosityLevel(c,l,a){this._renderedHoverParts.updateHoverVerbosityLevel(c,l,a)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(c,l,a){let r=1;if(c.hasModel()){const w=c._getViewModel(),S=w.coordinatesConverter,L=S.convertModelRangeToViewRange(l),D=w.getLineMinColumn(L.startLineNumber),T=new y.Position(L.startLineNumber,D);r=S.convertViewPositionToModelPosition(T).column}const u=l.startLineNumber;let C=l.startColumn,f;for(const w of a){const S=w.range,L=S.startLineNumber===u,D=S.endLineNumber===u;if(L&&D){const M=S.startColumn,A=Math.min(C,M);C=Math.max(A,r)}w.forceShowAtRange&&(f=S)}let h,v;if(f){const w=f.getStartPosition();h=w,v=w}else h=l.getStartPosition(),v=new y.Position(u,C);return{showAtPosition:h,showAtSecondaryPosition:v}}}e.RenderedContentHover=t;class i{constructor(c,l){this._statusBar=l,c.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}class s extends k.Disposable{static{this._DECORATION_OPTIONS=E.ModelDecorationOptions.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(c,l,a,r,u){super(),this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=u,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(l,a,u,r)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(c,a)),this._updateMarkdownAndColorParticipantInfo(l)}_createEditorDecorations(c,l){if(l.length===0)return k.Disposable.None;let a=l[0].range;for(const u of l){const C=u.range;a=m.Range.plusRange(a,C)}const r=c.createDecorationsCollection();return r.set([{range:a,options:s._DECORATION_OPTIONS}]),(0,k.toDisposable)(()=>{r.clear()})}_renderParts(c,l,a,r){const u=new I.EditorHoverStatusBar(r),C={fragment:this._fragment,statusBar:u,...a},f=new k.DisposableStore;for(const v of c){const w=this._renderHoverPartsForParticipant(l,v,C);f.add(w);for(const S of w.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:v,hoverPart:S.hoverPart,hoverElement:S.hoverElement})}const h=this._renderStatusBar(this._fragment,u);return h&&(f.add(h),this._renderedParts.push({type:"statusBar",hoverElement:h.hoverElement,actions:h.actions})),(0,k.toDisposable)(()=>{f.dispose()})}_renderHoverPartsForParticipant(c,l,a){const r=c.filter(C=>C.owner===l);return r.length>0?l.renderHoverParts(a,r):new d.RenderedHoverParts([])}_renderStatusBar(c,l){if(l.hasContent)return new i(c,l)}_registerListenersOnRenderedParts(){const c=new k.DisposableStore;return this._renderedParts.forEach((l,a)=>{const r=l.hoverElement;r.tabIndex=0,c.add(_.addDisposableListener(r,_.EventType.FOCUS_IN,u=>{u.stopPropagation(),this._focusedHoverPartIndex=a})),c.add(_.addDisposableListener(r,_.EventType.FOCUS_OUT,u=>{u.stopPropagation(),this._focusedHoverPartIndex=-1}))}),c}_updateMarkdownAndColorParticipantInfo(c){const l=c.find(a=>a instanceof b.MarkdownHoverParticipant&&!(a instanceof n.InlayHintsHover));l&&(this._markdownHoverParticipant=l),this._colorHoverParticipant=c.find(a=>a instanceof p.ColorHoverParticipant)}async updateHoverVerbosityLevel(c,l,a){if(!this._markdownHoverParticipant)return;const r=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,l);if(r===void 0)return;const u=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(c,r,a);u&&(this._renderedParts[l]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:u.hoverPart,hoverElement:u.hoverElement},this._context.onContentsChanged())}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(c,l){const a=this._renderedParts[l];if(!a||a.type!=="hoverPart"||!(a.participant===c))return;const u=this._renderedParts.findIndex(C=>C.type==="hoverPart"&&C.participant===c);if(u===-1)throw new o.BugIndicatingError;return l-u}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}}}),define(ne[847],se([1,0,5,2,27,376,84,7,31,690,668,614,6,846,210]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverWidgetWrapper=void 0;let s=class extends k.Disposable{constructor(c,l,a){super(),this._editor=c,this._instantiationService=l,this._keybindingService=a,this._currentResult=null,this._onContentsChanged=this._register(new o.Emitter),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(b.ContentHoverWidget,this._editor)),this._participants=this._initializeHoverParticipants(),this._computer=new p.ContentHoverComputer(this._editor,this._participants),this._hoverOperation=this._register(new E.HoverOperation(this._editor,this._computer)),this._registerListeners()}_initializeHoverParticipants(){const c=[];for(const l of y.HoverParticipantRegistry.getAll()){const a=this._instantiationService.createInstance(l,this._editor);c.push(a)}return c.sort((l,a)=>l.hoverOrdinal-a.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(l=>l.handleResize?.())})),c}_registerListeners(){this._register(this._hoverOperation.onResult(l=>{if(!this._computer.anchor)return;const a=l.hasLoadingMessage?this._addLoadingMessage(l.value):l.value;this._withResult(new n.HoverResult(this._computer.anchor,a,l.isComplete))}));const c=this._contentHoverWidget.getDomNode();this._register(d.addStandardDisposableListener(c,"keydown",l=>{l.equals(9)&&this.hide()})),this._register(d.addStandardDisposableListener(c,"mouseleave",l=>{this._onMouseLeave(l)})),this._register(I.TokenizationRegistry.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(c,l,a,r,u){if(!(this._contentHoverWidget.position&&this._currentResult))return c?(this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):!1;const f=this._editor.getOption(60).sticky,h=u&&this._contentHoverWidget.isMouseGettingCloser(u.event.posx,u.event.posy);return f&&h?(c&&this._startHoverOperationIfNecessary(c,l,a,r,!0),!0):c?this._currentResult.anchor.equals(c)?!0:c.canAdoptVisibleHover(this._currentResult.anchor,this._contentHoverWidget.position)?(this._setCurrentResult(this._currentResult.filter(c)),this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(c,l,a,r,u){this._computer.anchor&&this._computer.anchor.equals(c)||(this._hoverOperation.cancel(),this._computer.anchor=c,this._computer.shouldFocus=r,this._computer.source=a,this._computer.insistOnKeepingHoverVisible=u,this._hoverOperation.start(l))}_setCurrentResult(c){let l=c;if(this._currentResult===l)return;l&&l.hoverParts.length===0&&(l=null),this._currentResult=l,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(c){if(!this._computer.anchor)return c;for(const l of this._participants){if(!l.createLoadingMessage)continue;const a=l.createLoadingMessage(this._computer.anchor);if(a)return c.slice(0).concat([a])}return c}_withResult(c){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(c),!c.isComplete)return;const r=c.hoverParts.length===0,u=this._computer.insistOnKeepingHoverVisible;r&&u||this._setCurrentResult(c)}_showHover(c){const l=this._getHoverContext();this._renderedContentHover=new t.RenderedContentHover(this._editor,c,this._participants,this._computer,l,this._keybindingService),this._renderedContentHover.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover):this._renderedContentHover.dispose()}_hideHover(){this._contentHoverWidget.hide()}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._onContentsChanged.fire(),this._contentHoverWidget.onContentsChanged()},setMinimumDimensions:r=>{this._contentHoverWidget.setMinimumDimensions(r)}}}showsOrWillShow(c){if(this._contentHoverWidget.isResizing)return!0;const a=this._findHoverAnchorCandidates(c);if(!(a.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,c);const u=a[0];return this._startShowingOrUpdateHover(u,0,0,!1,c)}_findHoverAnchorCandidates(c){const l=[];for(const r of this._participants){if(!r.suggestHoverAnchor)continue;const u=r.suggestHoverAnchor(c);u&&l.push(u)}const a=c.target;switch(a.type){case 6:{l.push(new y.HoverRangeAnchor(0,a.range,c.event.posx,c.event.posy));break}case 7:{const r=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;if(!(!a.detail.isAfterLines&&typeof a.detail.horizontalDistanceToText=="number"&&a.detail.horizontalDistanceToTextu.priority-r.priority),l}_onMouseLeave(c){const l=this._editor.getDomNode();(!l||!(0,i.isMousePositionWithinElement)(l,c.x,c.y))&&this.hide()}startShowingAtRange(c,l,a,r){this._startShowingOrUpdateHover(new y.HoverRangeAnchor(0,c,void 0,void 0),l,a,r,null)}async updateHoverVerbosityLevel(c,l,a){this._renderedContentHover?.updateHoverVerbosityLevel(c,l,a)}focusedHoverPartIndex(){return this._renderedContentHover?.focusedHoverPartIndex??-1}containsNode(c){return c?this._contentHoverWidget.getDomNode().contains(c):!1}focus(){this._contentHoverWidget.focus()}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};e.ContentHoverWidgetWrapper=s,e.ContentHoverWidgetWrapper=s=ke([ce(1,m.IInstantiationService),ce(2,_.IKeybindingService)],s)}),define(ne[292],se([1,0,264,2,7,283,31,14,210,847,6,196]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverController=void 0;const o=!1;let t=class extends k.Disposable{static{n=this}static{this.ID="editor.contrib.contentHover"}constructor(s,g,c){super(),this._editor=s,this._instantiationService=g,this._keybindingService=c,this._onHoverContentsChanged=this._register(new p.Emitter),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new k.DisposableStore,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new m.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(s){return s.getContribution(n.ID)}_hookListeners(){const s=this._editor.getOption(60);this._hoverSettings={enabled:s.enabled,sticky:s.sticky,hidingDelay:s.hidingDelay},s.enabled?(this._listenersStore.add(this._editor.onMouseDown(g=>this._onEditorMouseDown(g))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(g=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown(g=>this._onKeyDown(g)))):(this._listenersStore.add(this._editor.onMouseMove(g=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown(g=>this._onKeyDown(g)))),this._listenersStore.add(this._editor.onMouseLeave(g=>this._onEditorMouseLeave(g))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(g=>this._onEditorScrollChanged(g)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(s){(s.scrollTopChanged||s.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(s){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(s)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(s){return this._isMouseOnContentHoverWidget(s)||this._isContentWidgetResizing()}_isMouseOnContentHoverWidget(s){const g=this._contentWidget?.getDomNode();return g?(0,_.isMousePositionWithinElement)(g,s.event.posx,s.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(s){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldNotHideCurrentHoverWidget(s))||o||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(s){const g=this._hoverSettings.sticky,c=(r,u)=>{const C=this._isMouseOnContentHoverWidget(r);return u&&C},l=r=>{const u=this._isMouseOnContentHoverWidget(r),C=this._contentWidget?.isColorPickerVisible??!1;return u&&C},a=(r,u)=>(u&&this._contentWidget?.containsNode(r.event.browserEvent.view?.document.activeElement)&&!r.event.browserEvent.view?.getSelection()?.isCollapsed)??!1;return c(s,g)||l(s)||a(s,g)}_onEditorMouseMove(s){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=s,this._contentWidget?.isFocused||this._contentWidget?.isResizing))return;const g=this._hoverSettings.sticky;if(g&&this._contentWidget?.isVisibleFromKeyboard)return;if(this._shouldNotRecomputeCurrentHoverWidget(s)){this._reactToEditorMouseMoveRunner.cancel();return}const l=this._hoverSettings.hidingDelay;if(this._contentWidget?.isVisible&&g&&l>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(l);return}this._reactToEditorMouseMove(s)}_reactToEditorMouseMove(s){if(!s)return;const c=s.target.element?.classList.contains("colorpicker-color-decoration"),l=this._editor.getOption(149),a=this._hoverSettings.enabled,r=this._hoverState.activatedByDecoratorClick;if(c&&(l==="click"&&!r||l==="hover"&&!a&&!o||l==="clickAndHover"&&!a&&!r)||!c&&!a&&!r){this._hideWidgets();return}this._tryShowHoverWidget(s)||o||this._hideWidgets()}_tryShowHoverWidget(s){return this._getOrCreateContentWidget().showsOrWillShow(s)}_onKeyDown(s){if(!this._editor.hasModel())return;const g=this._keybindingService.softDispatch(s,this._editor.getDomNode()),c=g.kind===1||g.kind===2&&(g.commandId===d.SHOW_OR_FOCUS_HOVER_ACTION_ID||g.commandId===d.INCREASE_HOVER_VERBOSITY_ACTION_ID||g.commandId===d.DECREASE_HOVER_VERBOSITY_ACTION_ID)&&this._contentWidget?.isVisible;s.keyCode===5||s.keyCode===6||s.keyCode===57||s.keyCode===4||c||this._hideWidgets()}_hideWidgets(){o||this._hoverState.mouseDown&&this._contentWidget?.isColorPickerVisible||E.InlineSuggestionHintsContentWidget.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._contentWidget?.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(b.ContentHoverWidgetWrapper,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(s,g,c,l,a=!1){this._hoverState.activatedByDecoratorClick=a,this._getOrCreateContentWidget().startShowingAtRange(s,g,c,l)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(s,g,c){this._getOrCreateContentWidget().updateHoverVerbosityLevel(s,g,c)}focus(){this._contentWidget?.focus()}scrollUp(){this._contentWidget?.scrollUp()}scrollDown(){this._contentWidget?.scrollDown()}scrollLeft(){this._contentWidget?.scrollLeft()}scrollRight(){this._contentWidget?.scrollRight()}pageUp(){this._contentWidget?.pageUp()}pageDown(){this._contentWidget?.pageDown()}goToTop(){this._contentWidget?.goToTop()}goToBottom(){this._contentWidget?.goToBottom()}get isColorPickerVisible(){return this._contentWidget?.isColorPickerVisible}get isHoverVisible(){return this._contentWidget?.isVisible}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._contentWidget?.dispose()}};e.ContentHoverController=t,e.ContentHoverController=t=n=ke([ce(1,I.IInstantiationService),ce(2,y.IKeybindingService)],t)}),define(ne[848],se([1,0,2,15,4,422,288,292,84]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorContribution=void 0;class b extends d.Disposable{static{this.ID="editor.contrib.colorContribution"}constructor(n){super(),this._editor=n,this._register(n.onMouseDown(o=>this.onMouseDown(o)))}dispose(){super.dispose()}onMouseDown(n){const o=this._editor.getOption(149);if(o!=="click"&&o!=="clickAndHover")return;const t=n.target;if(t.type!==6||!t.detail.injectedText||t.detail.injectedText.options.attachedData!==E.ColorDecorationInjectedTextMarker||!t.range)return;const i=this._editor.getContribution(m.ContentHoverController.ID);if(i&&!i.isColorPickerVisible){const s=new I.Range(t.range.startLineNumber,t.range.startColumn+1,t.range.endLineNumber,t.range.endColumn+1);i.showContentHover(s,1,0,!1,!0)}}}e.ColorContribution=b,(0,k.registerEditorContribution)(b.ID,b,2),_.HoverParticipantRegistry.register(y.ColorHoverParticipant)}),define(ne[849],se([1,0,264,72,15,4,20,429,292,27,3,196]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DecreaseHoverVerbosityLevel=e.IncreaseHoverVerbosityLevel=e.GoToBottomHoverAction=e.GoToTopHoverAction=e.PageDownHoverAction=e.PageUpHoverAction=e.ScrollRightHoverAction=e.ScrollLeftHoverAction=e.ScrollDownHoverAction=e.ScrollUpHoverAction=e.ShowDefinitionPreviewHoverAction=e.ShowOrFocusHoverAction=void 0;var n;(function(h){h.NoAutoFocus="noAutoFocus",h.FocusIfVisible="focusIfVisible",h.AutoFocusImmediately="autoFocusImmediately"})(n||(n={}));class o extends I.EditorAction{constructor(){super({id:d.SHOW_OR_FOCUS_HOVER_ACTION_ID,label:p.localize(1008,"Show or Focus Hover"),metadata:{description:p.localize2(1021,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[n.NoAutoFocus,n.FocusIfVisible,n.AutoFocusImmediately],enumDescriptions:[p.localize(1009,"The hover will not automatically take focus."),p.localize(1010,"The hover will take focus only if it is already visible."),p.localize(1011,"The hover will automatically take focus when it appears.")],default:n.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:y.EditorContextKeys.editorTextFocus,primary:(0,k.KeyChord)(2089,2087),weight:100}})}run(v,w,S){if(!w.hasModel())return;const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.focus;let T=n.FocusIfVisible;Object.values(n).includes(D)?T=D:typeof D=="boolean"&&D&&(T=n.AutoFocusImmediately);const M=P=>{const N=w.getPosition(),O=new E.Range(N.lineNumber,N.column,N.lineNumber,N.column);L.showContentHover(O,1,1,P)},A=w.getOption(2)===2;L.isHoverVisible?T!==n.NoAutoFocus?L.focus():M(A):M(A||T===n.AutoFocusImmediately)}}e.ShowOrFocusHoverAction=o;class t extends I.EditorAction{constructor(){super({id:d.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,label:p.localize(1012,"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0,metadata:{description:p.localize2(1022,"Show the definition preview hover in the editor.")}})}run(v,w){const S=_.ContentHoverController.get(w);if(!S)return;const L=w.getPosition();if(!L)return;const D=new E.Range(L.lineNumber,L.column,L.lineNumber,L.column),T=m.GotoDefinitionAtPositionEditorContribution.get(w);if(!T)return;T.startFindDefinitionFromCursor(L).then(()=>{S.showContentHover(D,1,1,!0)})}}e.ShowDefinitionPreviewHoverAction=t;class i extends I.EditorAction{constructor(){super({id:d.SCROLL_UP_HOVER_ACTION_ID,label:p.localize(1013,"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:16,weight:100},metadata:{description:p.localize2(1023,"Scroll up the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollUp()}}e.ScrollUpHoverAction=i;class s extends I.EditorAction{constructor(){super({id:d.SCROLL_DOWN_HOVER_ACTION_ID,label:p.localize(1014,"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:18,weight:100},metadata:{description:p.localize2(1024,"Scroll down the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollDown()}}e.ScrollDownHoverAction=s;class g extends I.EditorAction{constructor(){super({id:d.SCROLL_LEFT_HOVER_ACTION_ID,label:p.localize(1015,"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:15,weight:100},metadata:{description:p.localize2(1025,"Scroll left the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollLeft()}}e.ScrollLeftHoverAction=g;class c extends I.EditorAction{constructor(){super({id:d.SCROLL_RIGHT_HOVER_ACTION_ID,label:p.localize(1016,"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:17,weight:100},metadata:{description:p.localize2(1026,"Scroll right the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollRight()}}e.ScrollRightHoverAction=c;class l extends I.EditorAction{constructor(){super({id:d.PAGE_UP_HOVER_ACTION_ID,label:p.localize(1017,"Page Up Hover"),alias:"Page Up Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:p.localize2(1027,"Page up the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.pageUp()}}e.PageUpHoverAction=l;class a extends I.EditorAction{constructor(){super({id:d.PAGE_DOWN_HOVER_ACTION_ID,label:p.localize(1018,"Page Down Hover"),alias:"Page Down Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:p.localize2(1028,"Page down the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.pageDown()}}e.PageDownHoverAction=a;class r extends I.EditorAction{constructor(){super({id:d.GO_TO_TOP_HOVER_ACTION_ID,label:p.localize(1019,"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:p.localize2(1029,"Go to the top of the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.goToTop()}}e.GoToTopHoverAction=r;class u extends I.EditorAction{constructor(){super({id:d.GO_TO_BOTTOM_HOVER_ACTION_ID,label:p.localize(1020,"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:p.localize2(1030,"Go to the bottom of the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.goToBottom()}}e.GoToBottomHoverAction=u;class C extends I.EditorAction{constructor(){super({id:d.INCREASE_HOVER_VERBOSITY_ACTION_ID,label:d.INCREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Increase Hover Verbosity Level",precondition:y.EditorContextKeys.hoverVisible})}run(v,w,S){const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.index!==void 0?S.index:L.focusedHoverPartIndex();L.updateHoverVerbosityLevel(b.HoverVerbosityAction.Increase,D,S?.focus)}}e.IncreaseHoverVerbosityLevel=C;class f extends I.EditorAction{constructor(){super({id:d.DECREASE_HOVER_VERBOSITY_ACTION_ID,label:d.DECREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Decrease Hover Verbosity Level",precondition:y.EditorContextKeys.hoverVisible})}run(v,w,S){const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.index!==void 0?S.index:L.focusedHoverPartIndex();_.ContentHoverController.get(w)?.updateHoverVerbosityLevel(b.HoverVerbosityAction.Decrease,D,S?.focus)}}e.DecreaseHoverVerbosityLevel=f}),define(ne[850],se([1,0,849,15,32,25,84,217,845,292,713,380,615,196]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,k.registerEditorContribution)(b.ContentHoverController.ID,b.ContentHoverController,2),(0,k.registerEditorContribution)(p.MarginHoverController.ID,p.MarginHoverController,2),(0,k.registerEditorAction)(d.ShowOrFocusHoverAction),(0,k.registerEditorAction)(d.ShowDefinitionPreviewHoverAction),(0,k.registerEditorAction)(d.ScrollUpHoverAction),(0,k.registerEditorAction)(d.ScrollDownHoverAction),(0,k.registerEditorAction)(d.ScrollLeftHoverAction),(0,k.registerEditorAction)(d.ScrollRightHoverAction),(0,k.registerEditorAction)(d.PageUpHoverAction),(0,k.registerEditorAction)(d.PageDownHoverAction),(0,k.registerEditorAction)(d.GoToTopHoverAction),(0,k.registerEditorAction)(d.GoToBottomHoverAction),(0,k.registerEditorAction)(d.IncreaseHoverVerbosityLevel),(0,k.registerEditorAction)(d.DecreaseHoverVerbosityLevel),y.HoverParticipantRegistry.register(m.MarkdownHoverParticipant),y.HoverParticipantRegistry.register(_.MarkerHoverParticipant),(0,E.registerThemingParticipant)((t,i)=>{const s=t.getColor(I.editorHoverBorder);s&&(i.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${s.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${s.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${s.transparent(.5)}; }`))}),n.AccessibleViewRegistry.register(new o.HoverAccessibleView),n.AccessibleViewRegistry.register(new o.HoverAccessibilityHelp),n.AccessibleViewRegistry.register(new o.ExtHoverAccessibleView)}),define(ne[851],se([1,0,15,84,431,432]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.InlayHintsController.ID,I.InlayHintsController,1),k.HoverParticipantRegistry.register(E.InlayHintsHover)}),define(ne[433],se([1,0,2,17,838,837,7,58,29,12,20,209,4,277,430,9,18,36,79,5,341,77,289,334]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollController=void 0;let v=class extends d.Disposable{static{h=this}static{this.ID="store.contrib.stickyScrollController"}constructor(S,L,D,T,M,A,P){super(),this._editor=S,this._contextMenuService=L,this._languageFeaturesService=D,this._instaService=T,this._contextKeyService=P,this._sessionStore=new d.DisposableStore,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new I.StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new E.StickyLineCandidateProvider(this._editor,D,M),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=I.StickyScrollWidgetState.Empty,this._onDidResize(),this._readConfiguration();const N=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(F=>{this._readConfigurationChange(F)})),this._register(a.addDisposableListener(N,a.EventType.CONTEXT_MENU,async F=>{this._onContextMenu(a.getWindow(N),F)})),this._stickyScrollFocusedContextKey=p.EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=p.EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const O=this._register(a.trackFocus(N));this._register(O.onDidBlur(F=>{this._positionRevealed===!1&&N.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(O.onDidFocus(F=>{this.focus()})),this._registerMouseListeners(),this._register(a.addDisposableListener(N,a.EventType.MOUSE_DOWN,F=>{this._onMouseDown=!0}))}static get(S){return S.getContribution(h.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new d.DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(S){this._focusedStickyElementIndex=S?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const S=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:S[this._focusedStickyElementIndex],column:1})}_revealPosition(S){this._reveaInEditor(S,()=>this._editor.revealPosition(S))}_revealLineInCenterIfOutsideViewport(S){this._reveaInEditor(S,()=>this._editor.revealLineInCenterIfOutsideViewport(S.lineNumber,0))}_reveaInEditor(S,L){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,L(),this._editor.setSelection(o.Range.fromPositions(S)),this._editor.focus()}_registerMouseListeners(){const S=this._register(new d.DisposableStore),L=this._register(new n.ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:M=>{const A=this._stickyScrollWidget.getEditorPositionFromNode(M.target.element);return A?A.lineNumber:0}})),D=M=>{if(!this._editor.hasModel()||M.target.type!==12||M.target.detail!==this._stickyScrollWidget.getId())return null;const A=M.target.element;if(!A||A.innerText!==A.innerHTML)return null;const P=this._stickyScrollWidget.getEditorPositionFromNode(A);return P?{range:new o.Range(P.lineNumber,P.column,P.lineNumber,P.column+A.innerText.length),textElement:A}:null},T=this._stickyScrollWidget.getDomNode();this._register(a.addStandardDisposableListener(T,a.EventType.CLICK,M=>{if(M.ctrlKey||M.altKey||M.metaKey||!M.leftButton)return;if(M.shiftKey){const O=this._stickyScrollWidget.getLineIndexFromChildDomNode(M.target);if(O===null)return;const F=new s.Position(this._endLineNumbers[O],1);this._revealLineInCenterIfOutsideViewport(F);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(M.target)){const O=this._stickyScrollWidget.getLineNumberFromChildDomNode(M.target);this._toggleFoldingRegionForLine(O);return}if(!this._stickyScrollWidget.isInStickyLine(M.target))return;let N=this._stickyScrollWidget.getEditorPositionFromNode(M.target);if(!N){const O=this._stickyScrollWidget.getLineNumberFromChildDomNode(M.target);if(O===null)return;N=new s.Position(O,1)}this._revealPosition(N)})),this._register(a.addStandardDisposableListener(T,a.EventType.MOUSE_MOVE,M=>{if(M.shiftKey){const A=this._stickyScrollWidget.getLineIndexFromChildDomNode(M.target);if(A===null||this._showEndForLine!==null&&this._showEndForLine===A)return;this._showEndForLine=A,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(a.addDisposableListener(T,a.EventType.MOUSE_LEAVE,M=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(L.onMouseMoveOrRelevantKeyDown(([M,A])=>{const P=D(M);if(!P||!M.hasTriggerModifier||!this._editor.hasModel()){S.clear();return}const{range:N,textElement:O}=P;if(!N.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=N,S.clear();else if(O.style.textDecoration==="underline")return;const F=new g.CancellationTokenSource;S.add((0,d.toDisposable)(()=>F.dispose(!0)));let x;(0,t.getDefinitionsAtPosition)(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new s.Position(N.startLineNumber,N.startColumn+1),!1,F.token).then(W=>{if(!F.token.isCancellationRequested)if(W.length!==0){this._candidateDefinitionsLength=W.length;const V=O;x!==V?(S.clear(),x=V,x.style.textDecoration="underline",S.add((0,d.toDisposable)(()=>{x.style.textDecoration="none"}))):x||(x=V,x.style.textDecoration="underline",S.add((0,d.toDisposable)(()=>{x.style.textDecoration="none"})))}else S.clear()})})),this._register(L.onCancel(()=>{S.clear()})),this._register(L.onExecute(async M=>{if(M.target.type!==12||M.target.detail!==this._stickyScrollWidget.getId())return;const A=this._stickyScrollWidget.getEditorPositionFromNode(M.target.element);A&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:A.lineNumber,column:1})),this._instaService.invokeFunction(i.goToDefinitionWithLocation,M,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(S,L){const D=new u.StandardMouseEvent(S,L);this._contextMenuService.showContextMenu({menuId:_.MenuId.StickyScrollContext,getAnchor:()=>D})}_toggleFoldingRegionForLine(S){if(!this._foldingModel||S===null)return;const L=this._stickyScrollWidget.getRenderedStickyLine(S),D=L?.foldingIcon;if(!D)return;(0,f.toggleCollapseState)(this._foldingModel,Number.MAX_VALUE,[S]),D.isCollapsed=!D.isCollapsed;const T=(D.isCollapsed?this._editor.getTopForLineNumber(D.foldingEndLine):this._editor.getTopForLineNumber(D.foldingStartLine))-this._editor.getOption(67)*L.index+1;this._editor.setScrollTop(T),this._renderStickyScroll(S)}_readConfiguration(){const S=this._editor.getOption(116);if(S.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else S.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(D=>{D.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(D=>this._onTokensChange(D))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(S){(S.hasChanged(116)||S.hasChanged(73)||S.hasChanged(67)||S.hasChanged(111)||S.hasChanged(68))&&this._readConfiguration(),S.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(S){const L=this._stickyScrollWidget.getCurrentLines();for(const D of L)for(const T of S.ranges)if(D>=T.fromLineNumber&&D<=T.toLineNumber)return!0;return!1}_onTokensChange(S){this._needsUpdate(S)&&this._renderStickyScroll(0)}_onDidResize(){const L=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(L*.25)}async _renderStickyScroll(S){const L=this._editor.getModel();if(!L||L.isTooLargeForTokenization()){this._resetState();return}const D=this._updateAndGetMinRebuildFromLine(S),T=this._stickyLineCandidateProvider.getVersionId();if(T===void 0||T===L.getVersionId())if(!this._focused)await this._updateState(D);else if(this._focusedStickyElementIndex===-1)await this._updateState(D),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const A=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(D),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(A)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(S){if(S!==void 0){const L=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(S,L)}return this._minRebuildFromLine}async _updateState(S){this._minRebuildFromLine=void 0,this._foldingModel=await C.FoldingController.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();const L=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(L),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,S)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=I.StickyScrollWidgetState.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const S=this._editor.getOption(67),L=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),D=this._editor.getScrollTop();let T=0;const M=[],A=[],P=this._editor.getVisibleRanges();if(P.length!==0){const N=new r.StickyRange(P[0].startLineNumber,P[P.length-1].endLineNumber),O=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(N);for(const F of O){const x=F.startLineNumber,W=F.endLineNumber,V=F.nestingDepth;if(W-x>0){const q=(V-1)*S,H=V*S,z=this._editor.getBottomForLineNumber(x)-D,U=this._editor.getTopForLineNumber(W)-D,j=this._editor.getBottomForLineNumber(W)-D;if(q>U&&q<=j){M.push(x),A.push(W+1),T=j-H;break}else H>z&&H<=j&&(M.push(x),A.push(W+1));if(M.length===L)break}}}return this._endLineNumbers=A,new I.StickyScrollWidgetState(M,A,T,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};e.StickyScrollController=v,e.StickyScrollController=v=h=ke([ce(1,m.IContextMenuService),ce(2,k.ILanguageFeaturesService),ce(3,y.IInstantiationService),ce(4,c.ILanguageConfigurationService),ce(5,l.ILanguageFeatureDebounceService),ce(6,b.IContextKeyService)],v)}),define(ne[852],se([1,0,15,3,671,29,28,12,20,433]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectEditor=e.GoToStickyScrollLine=e.SelectPreviousStickyScrollLine=e.SelectNextStickyScrollLine=e.FocusStickyScroll=e.ToggleStickyScroll=void 0;class p extends E.Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...(0,k.localize2)(1303,"Toggle Editor Sticky Scroll"),mnemonicTitle:(0,k.localize)(1299,"&&Toggle Editor Sticky Scroll")},metadata:{description:(0,k.localize2)(1304,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:I.Categories.View,toggled:{condition:m.ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:(0,k.localize)(1300,"Sticky Scroll"),mnemonicTitle:(0,k.localize)(1301,"&&Sticky Scroll")},menu:[{id:E.MenuId.CommandPalette},{id:E.MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:E.MenuId.StickyScrollContext}]})}async run(l){const a=l.get(y.IConfigurationService),r=!a.getValue("editor.stickyScroll.enabled");return a.updateValue("editor.stickyScroll.enabled",r)}}e.ToggleStickyScroll=p;const n=100;class o extends d.EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...(0,k.localize2)(1305,"Focus on the editor sticky scroll"),mnemonicTitle:(0,k.localize)(1302,"&&Focus Sticky Scroll")},precondition:m.ContextKeyExpr.and(m.ContextKeyExpr.has("config.editor.stickyScroll.enabled"),_.EditorContextKeys.stickyScrollVisible),menu:[{id:E.MenuId.CommandPalette}]})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focus()}}e.FocusStickyScroll=o;class t extends d.EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:(0,k.localize2)(1306,"Select the next editor sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:18}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focusNext()}}e.SelectNextStickyScrollLine=t;class i extends d.EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:(0,k.localize2)(1307,"Select the previous sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:16}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focusPrevious()}}e.SelectPreviousStickyScrollLine=i;class s extends d.EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:(0,k.localize2)(1308,"Go to the focused sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:3}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.goToFocused()}}e.GoToStickyScrollLine=s;class g extends d.EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:(0,k.localize2)(1309,"Select Editor"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:9}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.selectEditor()}}e.SelectEditor=g}),define(ne[853],se([1,0,15,852,433,29]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.StickyScrollController.ID,I.StickyScrollController,1),(0,E.registerAction2)(k.ToggleStickyScroll),(0,E.registerAction2)(k.FocusStickyScroll),(0,E.registerAction2)(k.SelectPreviousStickyScrollLine),(0,E.registerAction2)(k.SelectNextStickyScrollLine),(0,E.registerAction2)(k.GoToStickyScrollLine),(0,E.registerAction2)(k.SelectEditor)}),define(ne[854],se([1,0,15,34,428,28,12,7,50,101]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneReferencesController=void 0;let p=class extends I.ReferencesController{constructor(o,t,i,s,g,c,l){super(!0,o,t,i,s,g,c,l)}};e.StandaloneReferencesController=p,e.StandaloneReferencesController=p=ke([ce(1,y.IContextKeyService),ce(2,k.ICodeEditorService),ce(3,_.INotificationService),ce(4,m.IInstantiationService),ce(5,b.IStorageService),ce(6,E.IConfigurationService)],p),(0,d.registerEditorContribution)(I.ReferencesController.ID,p,4)}),define(ne[855],se([1,0,8,2,42,111,3,180,49,50,284]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoService=void 0;const n=!1;function o(f){return f.scheme===I.Schemas.file?f.fsPath:f.path}let t=0;class i{constructor(h,v,w,S,L,D,T){this.id=++t,this.type=0,this.actual=h,this.label=h.label,this.confirmBeforeUndo=h.confirmBeforeUndo||!1,this.resourceLabel=v,this.strResource=w,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=S,this.groupOrder=L,this.sourceId=D,this.sourceOrder=T,this.isValid=!0}setValid(h){this.isValid=h}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class s{constructor(h,v){this.resourceLabel=h,this.reason=v}}class g{constructor(){this.elements=new Map}createMessage(){const h=[],v=[];for(const[,S]of this.elements)(S.reason===0?h:v).push(S.resourceLabel);const w=[];return h.length>0&&w.push(y.localize(1843,"The following files have been closed and modified on disk: {0}.",h.join(", "))),v.length>0&&w.push(y.localize(1844,"The following files have been modified in an incompatible way: {0}.",v.join(", "))),w.join(` -`)}get size(){return this.elements.size}has(h){return this.elements.has(h)}set(h,v){this.elements.set(h,v)}delete(h){return this.elements.delete(h)}}class c{constructor(h,v,w,S,L,D,T){this.id=++t,this.type=1,this.actual=h,this.label=h.label,this.confirmBeforeUndo=h.confirmBeforeUndo||!1,this.resourceLabels=v,this.strResources=w,this.groupId=S,this.groupOrder=L,this.sourceId=D,this.sourceOrder=T,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(h,v,w){this.removedResources||(this.removedResources=new g),this.removedResources.has(v)||this.removedResources.set(v,new s(h,w))}setValid(h,v,w){w?this.invalidatedResources&&(this.invalidatedResources.delete(v),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new g),this.invalidatedResources.has(v)||this.invalidatedResources.set(v,new s(h,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class l{constructor(h,v){this.resourceLabel=h,this.strResource=v,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const h of this._past)h.type===1&&h.removeResource(this.resourceLabel,this.strResource,0);for(const h of this._future)h.type===1&&h.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const h=[];h.push(`* ${this.strResource}:`);for(let v=0;v=0;v--)h.push(` * [REDO] ${this._future[v]}`);return h.join(` -`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(h,v){h.type===1?h.setValid(this.resourceLabel,this.strResource,v):h.setValid(v)}setElementsValidFlag(h,v){for(const w of this._past)v(w.actual)&&this._setElementValidFlag(w,h);for(const w of this._future)v(w.actual)&&this._setElementValidFlag(w,h)}pushElement(h){for(const v of this._future)v.type===1&&v.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(h),this.versionId++}createSnapshot(h){const v=[];for(let w=0,S=this._past.length;w=0;w--)v.push(this._future[w].id);return new p.ResourceEditStackSnapshot(h,v)}restoreSnapshot(h){const v=h.elements.length;let w=!0,S=0,L=-1;for(let T=0,M=this._past.length;T=v||A.id!==h.elements[S])&&(w=!1,L=0),!w&&A.type===1&&A.removeResource(this.resourceLabel,this.strResource,0)}let D=-1;for(let T=this._future.length-1;T>=0;T--,S++){const M=this._future[T];w&&(S>=v||M.id!==h.elements[S])&&(w=!1,D=T),!w&&M.type===1&&M.removeResource(this.resourceLabel,this.strResource,0)}L!==-1&&(this._past=this._past.slice(0,L)),D!==-1&&(this._future=this._future.slice(D+1)),this.versionId++}getElements(){const h=[],v=[];for(const w of this._past)h.push(w.actual);for(const w of this._future)v.push(w.actual);return{past:h,future:v}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(h,v){for(let w=this._past.length-1;w>=0;w--)if(this._past[w]===h){v.has(this.strResource)?this._past[w]=v.get(this.strResource):this._past.splice(w,1);break}this.versionId++}splitFutureWorkspaceElement(h,v){for(let w=this._future.length-1;w>=0;w--)if(this._future[w]===h){v.has(this.strResource)?this._future[w]=v.get(this.strResource):this._future.splice(w,1);break}this.versionId++}moveBackward(h){this._past.pop(),this._future.push(h),this.versionId++}moveForward(h){this._future.pop(),this._past.push(h),this.versionId++}}class a{constructor(h){this.editStacks=h,this._versionIds=[];for(let v=0,w=this.editStacks.length;vv.sourceOrder)&&(v=D,w=S)}return[v,w]}canUndo(h){if(h instanceof p.UndoRedoSource){const[,w]=this._findClosestUndoElementWithSource(h.id);return!!w}const v=this.getUriComparisonKey(h);return this._editStacks.has(v)?this._editStacks.get(v).hasPastElements():!1}_onError(h,v){(0,d.onUnexpectedError)(h);for(const w of v.strResources)this.removeElements(w);this._notificationService.error(h)}_acquireLocks(h){for(const v of h.editStacks)if(v.locked)throw new Error("Cannot acquire edit stack lock");for(const v of h.editStacks)v.locked=!0;return()=>{for(const v of h.editStacks)v.locked=!1}}_safeInvokeWithLocks(h,v,w,S,L){const D=this._acquireLocks(w);let T;try{T=v()}catch(M){return D(),S.dispose(),this._onError(M,h)}return T?T.then(()=>(D(),S.dispose(),L()),M=>(D(),S.dispose(),this._onError(M,h))):(D(),S.dispose(),L())}async _invokeWorkspacePrepare(h){if(typeof h.actual.prepareUndoRedo>"u")return k.Disposable.None;const v=h.actual.prepareUndoRedo();return typeof v>"u"?k.Disposable.None:v}_invokeResourcePrepare(h,v){if(h.actual.type!==1||typeof h.actual.prepareUndoRedo>"u")return v(k.Disposable.None);const w=h.actual.prepareUndoRedo();return w?(0,k.isDisposable)(w)?v(w):w.then(S=>v(S)):v(k.Disposable.None)}_getAffectedEditStacks(h){const v=[];for(const w of h.strResources)v.push(this._editStacks.get(w)||r);return new a(v)}_tryToSplitAndUndo(h,v,w,S){if(v.canSplit())return this._splitPastWorkspaceElement(v,w),this._notificationService.warn(S),new C(this._undo(h,0,!0));for(const L of v.strResources)this.removeElements(L);return this._notificationService.warn(S),new C}_checkWorkspaceUndo(h,v,w,S){if(v.removedResources)return this._tryToSplitAndUndo(h,v,v.removedResources,y.localize(1845,"Could not undo '{0}' across all files. {1}",v.label,v.removedResources.createMessage()));if(S&&v.invalidatedResources)return this._tryToSplitAndUndo(h,v,v.invalidatedResources,y.localize(1846,"Could not undo '{0}' across all files. {1}",v.label,v.invalidatedResources.createMessage()));const L=[];for(const T of w.editStacks)T.getClosestPastElement()!==v&&L.push(T.resourceLabel);if(L.length>0)return this._tryToSplitAndUndo(h,v,null,y.localize(1847,"Could not undo '{0}' across all files because changes were made to {1}",v.label,L.join(", ")));const D=[];for(const T of w.editStacks)T.locked&&D.push(T.resourceLabel);return D.length>0?this._tryToSplitAndUndo(h,v,null,y.localize(1848,"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",v.label,D.join(", "))):w.isValid()?null:this._tryToSplitAndUndo(h,v,null,y.localize(1849,"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",v.label))}_workspaceUndo(h,v,w){const S=this._getAffectedEditStacks(v),L=this._checkWorkspaceUndo(h,v,S,!1);return L?L.returnValue:this._confirmAndExecuteWorkspaceUndo(h,v,S,w)}_isPartOfUndoGroup(h){if(!h.groupId)return!1;for(const[,v]of this._editStacks){const w=v.getClosestPastElement();if(w){if(w===h){const S=v.getSecondClosestPastElement();if(S&&S.groupId===h.groupId)return!0}if(w.groupId===h.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(h,v,w,S){if(v.canSplit()&&!this._isPartOfUndoGroup(v)){let T;(function(P){P[P.All=0]="All",P[P.This=1]="This",P[P.Cancel=2]="Cancel"})(T||(T={}));const{result:M}=await this._dialogService.prompt({type:E.default.Info,message:y.localize(1850,"Would you like to undo '{0}' across all files?",v.label),buttons:[{label:y.localize(1851,"&&Undo in {0} Files",w.editStacks.length),run:()=>T.All},{label:y.localize(1852,"Undo this &&File"),run:()=>T.This}],cancelButton:{run:()=>T.Cancel}});if(M===T.Cancel)return;if(M===T.This)return this._splitPastWorkspaceElement(v,null),this._undo(h,0,!0);const A=this._checkWorkspaceUndo(h,v,w,!1);if(A)return A.returnValue;S=!0}let L;try{L=await this._invokeWorkspacePrepare(v)}catch(T){return this._onError(T,v)}const D=this._checkWorkspaceUndo(h,v,w,!0);if(D)return L.dispose(),D.returnValue;for(const T of w.editStacks)T.moveBackward(v);return this._safeInvokeWithLocks(v,()=>v.actual.undo(),w,L,()=>this._continueUndoInGroup(v.groupId,S))}_resourceUndo(h,v,w){if(!v.isValid){h.flushAllElements();return}if(h.locked){const S=y.localize(1853,"Could not undo '{0}' because there is already an undo or redo operation running.",v.label);this._notificationService.warn(S);return}return this._invokeResourcePrepare(v,S=>(h.moveBackward(v),this._safeInvokeWithLocks(v,()=>v.actual.undo(),new a([h]),S,()=>this._continueUndoInGroup(v.groupId,w))))}_findClosestUndoElementInGroup(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestPastElement();D&&D.groupId===h&&(!v||D.groupOrder>v.groupOrder)&&(v=D,w=S)}return[v,w]}_continueUndoInGroup(h,v){if(!h)return;const[,w]=this._findClosestUndoElementInGroup(h);if(w)return this._undo(w,0,v)}undo(h){if(h instanceof p.UndoRedoSource){const[,v]=this._findClosestUndoElementWithSource(h.id);return v?this._undo(v,h.id,!1):void 0}return typeof h=="string"?this._undo(h,0,!1):this._undo(this.getUriComparisonKey(h),0,!1)}_undo(h,v=0,w){if(!this._editStacks.has(h))return;const S=this._editStacks.get(h),L=S.getClosestPastElement();if(!L)return;if(L.groupId){const[T,M]=this._findClosestUndoElementInGroup(L.groupId);if(L!==T&&M)return this._undo(M,v,w)}if((L.sourceId!==v||L.confirmBeforeUndo)&&!w)return this._confirmAndContinueUndo(h,v,L);try{return L.type===1?this._workspaceUndo(h,L,w):this._resourceUndo(S,L,w)}finally{n&&this._print("undo")}}async _confirmAndContinueUndo(h,v,w){if((await this._dialogService.confirm({message:y.localize(1854,"Would you like to undo '{0}'?",w.label),primaryButton:y.localize(1855,"&&Yes"),cancelButton:y.localize(1856,"No")})).confirmed)return this._undo(h,v,!0)}_findClosestRedoElementWithSource(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestFutureElement();D&&D.sourceId===h&&(!v||D.sourceOrder0)return this._tryToSplitAndRedo(h,v,null,y.localize(1859,"Could not redo '{0}' across all files because changes were made to {1}",v.label,L.join(", ")));const D=[];for(const T of w.editStacks)T.locked&&D.push(T.resourceLabel);return D.length>0?this._tryToSplitAndRedo(h,v,null,y.localize(1860,"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",v.label,D.join(", "))):w.isValid()?null:this._tryToSplitAndRedo(h,v,null,y.localize(1861,"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",v.label))}_workspaceRedo(h,v){const w=this._getAffectedEditStacks(v),S=this._checkWorkspaceRedo(h,v,w,!1);return S?S.returnValue:this._executeWorkspaceRedo(h,v,w)}async _executeWorkspaceRedo(h,v,w){let S;try{S=await this._invokeWorkspacePrepare(v)}catch(D){return this._onError(D,v)}const L=this._checkWorkspaceRedo(h,v,w,!0);if(L)return S.dispose(),L.returnValue;for(const D of w.editStacks)D.moveForward(v);return this._safeInvokeWithLocks(v,()=>v.actual.redo(),w,S,()=>this._continueRedoInGroup(v.groupId))}_resourceRedo(h,v){if(!v.isValid){h.flushAllElements();return}if(h.locked){const w=y.localize(1862,"Could not redo '{0}' because there is already an undo or redo operation running.",v.label);this._notificationService.warn(w);return}return this._invokeResourcePrepare(v,w=>(h.moveForward(v),this._safeInvokeWithLocks(v,()=>v.actual.redo(),new a([h]),w,()=>this._continueRedoInGroup(v.groupId))))}_findClosestRedoElementInGroup(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestFutureElement();D&&D.groupId===h&&(!v||D.groupOrder"u")return typeof i=="string"?{id:(0,k.basename)(i)}:s?e.EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE:e.UNKNOWN_EMPTY_WINDOW_WORKSPACE;const g=i;return g.configuration?{id:g.id,configPath:g.configuration}:g.folders.length===1?{id:g.id,uri:g.folders[0].uri}:{id:g.id}}function p(i){const s=i;return typeof s?.id=="string"&&E.URI.isUri(s.configPath)}class n{constructor(s,g,c,l,a){this._id=s,this._transient=c,this._configuration=l,this._ignorePathCasing=a,this._foldersMap=I.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0),this.folders=g}get folders(){return this._folders}set folders(s){this._folders=s,this.updateFoldersMap()}get id(){return this._id}get transient(){return this._transient}get configuration(){return this._configuration}set configuration(s){this._configuration=s}getFolder(s){return s&&this._foldersMap.findSubstr(s)||null}updateFoldersMap(){this._foldersMap=I.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0);for(const s of this.folders)this._foldersMap.set(s.uri,s)}toJSON(){return{id:this.id,folders:this.folders,transient:this.transient,configuration:this.configuration}}}e.Workspace=n;class o{constructor(s,g){this.raw=g,this.uri=s.uri,this.index=s.index,this.name=s.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}e.WorkspaceFolder=o,e.WORKSPACE_EXTENSION="code-workspace",e.WORKSPACE_FILTER=[{name:(0,d.localize)(1863,"Code Workspace"),extensions:[e.WORKSPACE_EXTENSION]}],e.STANDALONE_EDITOR_WORKSPACE_ID="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function t(i){return i.id===e.STANDALONE_EDITOR_WORKSPACE_ID}}),define(ne[434],se([1,0,5,151,41,2,16,15,20,3,29,12,58,31,28,186]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuController=void 0;let c=class{static{g=this}static{this.ID="editor.contrib.contextmenu"}static get(r){return r.getContribution(g.ID)}constructor(r,u,C,f,h,v,w,S){this._contextMenuService=u,this._contextViewService=C,this._contextKeyService=f,this._keybindingService=h,this._menuService=v,this._configurationService=w,this._workspaceContextService=S,this._toDispose=new E.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=r,this._toDispose.add(this._editor.onContextMenu(L=>this._onContextMenu(L))),this._toDispose.add(this._editor.onMouseWheel(L=>{if(this._contextMenuIsBeingShownCount>0){const D=this._contextViewService.getContextViewElement(),T=L.srcElement;T.shadowRoot&&d.getShadowRoot(D)===T.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(L=>{this._editor.getOption(24)&&L.keyCode===58&&(L.preventDefault(),L.stopPropagation(),this.showContextMenu())}))}_onContextMenu(r){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),r.target.position&&!this._editor.getSelection().containsPosition(r.target.position)&&this._editor.setPosition(r.target.position);return}if(r.target.type===12||r.target.type===6&&r.target.detail.injectedText)return;if(r.event.preventDefault(),r.event.stopPropagation(),r.target.type===11)return this._showScrollbarContextMenu(r.event);if(r.target.type!==6&&r.target.type!==7&&r.target.type!==1)return;if(this._editor.focus(),r.target.position){let C=!1;for(const f of this._editor.getSelections())if(f.containsPosition(r.target.position)){C=!0;break}C||this._editor.setPosition(r.target.position)}let u=null;r.target.type!==1&&(u=r.event),this.showContextMenu(u)}showContextMenu(r){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const u=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);u.length>0&&this._doShowContextMenu(u,r)}_getMenuActions(r,u){const C=[],f=this._menuService.getMenuActions(u,this._contextKeyService,{arg:r.uri});for(const h of f){const[,v]=h;let w=0;for(const S of v)if(S instanceof p.SubmenuItemAction){const L=this._getMenuActions(r,S.item.submenu);L.length>0&&(C.push(new I.SubmenuAction(S.id,S.label,L)),w++)}else C.push(S),w++;w&&C.push(new I.Separator)}return C.length&&C.pop(),C}_doShowContextMenu(r,u=null){if(!this._editor.hasModel())return;const C=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let f=u;if(!f){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const v=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),w=d.getDomNodePagePosition(this._editor.getDomNode()),S=w.left+v.left,L=w.top+v.top+v.height;f={x:S,y:L}}const h=this._editor.getOption(128)&&!y.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:h?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>f,getActions:()=>r,getActionViewItem:v=>{const w=this._keybindingFor(v);if(w)return new k.ActionViewItem(v,v,{label:!0,keybinding:w.getLabel(),isMenu:!0});const S=v;return typeof S.getActionViewItem=="function"?S.getActionViewItem():new k.ActionViewItem(v,v,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:v=>this._keybindingFor(v),onHide:v=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:C})}})}_showScrollbarContextMenu(r){if(!this._editor.hasModel()||(0,s.isStandaloneEditorWorkspace)(this._workspaceContextService.getWorkspace()))return;const u=this._editor.getOption(73);let C=0;const f=L=>({id:`menu-action-${++C}`,label:L.label,tooltip:"",class:void 0,enabled:typeof L.enabled>"u"?!0:L.enabled,checked:L.checked,run:L.run}),h=(L,D)=>new I.SubmenuAction(`menu-action-${++C}`,L,D,void 0),v=(L,D,T,M,A)=>{if(!D)return f({label:L,enabled:D,run:()=>{}});const P=O=>()=>{this._configurationService.updateValue(T,O)},N=[];for(const O of A)N.push(f({label:O.label,checked:M===O.value,run:P(O.value)}));return h(L,N)},w=[];w.push(f({label:b.localize(811,"Minimap"),checked:u.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!u.enabled)}})),w.push(new I.Separator),w.push(f({label:b.localize(812,"Render Characters"),enabled:u.enabled,checked:u.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!u.renderCharacters)}})),w.push(v(b.localize(813,"Vertical size"),u.enabled,"editor.minimap.size",u.size,[{label:b.localize(814,"Proportional"),value:"proportional"},{label:b.localize(815,"Fill"),value:"fill"},{label:b.localize(816,"Fit"),value:"fit"}])),w.push(v(b.localize(817,"Slider"),u.enabled,"editor.minimap.showSlider",u.showSlider,[{label:b.localize(818,"Mouse Over"),value:"mouseover"},{label:b.localize(819,"Always"),value:"always"}]));const S=this._editor.getOption(128)&&!y.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:S?this._editor.getDomNode():void 0,getAnchor:()=>r,getActions:()=>w,onHide:L=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(r){return this._keybindingService.lookupKeybinding(r.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};e.ContextMenuController=c,e.ContextMenuController=c=g=ke([ce(1,o.IContextMenuService),ce(2,o.IContextViewService),ce(3,n.IContextKeyService),ce(4,t.IKeybindingService),ce(5,p.IMenuService),ce(6,i.IConfigurationService),ce(7,s.IWorkspaceContextService)],c);class l extends m.EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:b.localize(820,"Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(r,u){c.get(u)?.showContextMenu()}}(0,m.registerEditorContribution)(c.ID,c,2),(0,m.registerEditorAction)(l)}),define(ne[293],se([1,0,13,194,91,2,128,42,48,22,27,17,3,186]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultPasteProvidersFeature=e.DefaultDropProvidersFeature=e.DefaultTextPasteOrDropEditProvider=void 0;class i{async provideDocumentPasteEdits(f,h,v,w,S){const L=await this.getEdit(v,S);if(L)return{edits:[{insertText:L.insertText,title:L.title,kind:L.kind,handledMimeType:L.handledMimeType,yieldTo:L.yieldTo}],dispose(){}}}async provideDocumentDropEdits(f,h,v,w){const S=await this.getEdit(v,w);if(S)return{edits:[{insertText:S.insertText,title:S.title,kind:S.kind,handledMimeType:S.handledMimeType,yieldTo:S.yieldTo}],dispose(){}}}}class s extends i{constructor(){super(...arguments),this.kind=s.kind,this.dropMimeTypes=[y.Mimes.text],this.pasteMimeTypes=[y.Mimes.text]}static{this.id="text"}static{this.kind=new I.HierarchicalKind("text.plain")}async getEdit(f,h){const v=f.get(y.Mimes.text);if(!v||f.has(y.Mimes.uriList))return;const w=await v.asString();return{handledMimeType:y.Mimes.text,title:(0,o.localize)(833,"Insert Plain Text"),insertText:w,kind:this.kind}}}e.DefaultTextPasteOrDropEditProvider=s;class g extends i{constructor(){super(...arguments),this.kind=new I.HierarchicalKind("uri.absolute"),this.dropMimeTypes=[y.Mimes.uriList],this.pasteMimeTypes=[y.Mimes.uriList]}async getEdit(f,h){const v=await a(f);if(!v.length||h.isCancellationRequested)return;let w=0;const S=v.map(({uri:D,originalText:T})=>D.scheme===m.Schemas.file?D.fsPath:(w++,T)).join(" ");let L;return w>0?L=v.length>1?(0,o.localize)(834,"Insert Uris"):(0,o.localize)(835,"Insert Uri"):L=v.length>1?(0,o.localize)(836,"Insert Paths"):(0,o.localize)(837,"Insert Path"),{handledMimeType:y.Mimes.uriList,insertText:S,title:L,kind:this.kind}}}let c=class extends i{constructor(f){super(),this._workspaceContextService=f,this.kind=new I.HierarchicalKind("uri.relative"),this.dropMimeTypes=[y.Mimes.uriList],this.pasteMimeTypes=[y.Mimes.uriList]}async getEdit(f,h){const v=await a(f);if(!v.length||h.isCancellationRequested)return;const w=(0,d.coalesce)(v.map(({uri:S})=>{const L=this._workspaceContextService.getWorkspaceFolder(S);return L?(0,_.relativePath)(L.uri,S):void 0}));if(w.length)return{handledMimeType:y.Mimes.uriList,insertText:w.join(" "),title:v.length>1?(0,o.localize)(838,"Insert Relative Paths"):(0,o.localize)(839,"Insert Relative Path"),kind:this.kind}}};c=ke([ce(0,t.IWorkspaceContextService)],c);class l{constructor(){this.kind=new I.HierarchicalKind("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:y.Mimes.text}]}async provideDocumentPasteEdits(f,h,v,w,S){if(w.triggerKind!==p.DocumentPasteTriggerKind.PasteAs&&!w.only?.contains(this.kind))return;const D=await v.get("text/html")?.asString();if(!(!D||S.isCancellationRequested))return{dispose(){},edits:[{insertText:D,yieldTo:this._yieldTo,title:(0,o.localize)(840,"Insert HTML"),kind:this.kind}]}}}async function a(C){const f=C.get(y.Mimes.uriList);if(!f)return[];const h=await f.asString(),v=[];for(const w of k.UriList.parse(h))try{v.push({uri:b.URI.parse(w),originalText:w})}catch{}return v}let r=class extends E.Disposable{constructor(f,h){super(),this._register(f.documentDropEditProvider.register("*",new s)),this._register(f.documentDropEditProvider.register("*",new g)),this._register(f.documentDropEditProvider.register("*",new c(h)))}};e.DefaultDropProvidersFeature=r,e.DefaultDropProvidersFeature=r=ke([ce(0,n.ILanguageFeaturesService),ce(1,t.IWorkspaceContextService)],r);let u=class extends E.Disposable{constructor(f,h){super(),this._register(f.documentPasteEditProvider.register("*",new s)),this._register(f.documentPasteEditProvider.register("*",new g)),this._register(f.documentPasteEditProvider.register("*",new c(h))),this._register(f.documentPasteEditProvider.register("*",new l))}};e.DefaultPasteProvidersFeature=u,e.DefaultPasteProvidersFeature=u=ke([ce(0,n.ILanguageFeaturesService),ce(1,t.IWorkspaceContextService)],u)}),define(ne[435],se([1,0,5,13,14,18,194,91,2,128,16,193,212,400,152,4,27,17,293,268,122,290,184,3,117,12,7,96,66,396,8]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.CopyPasteController=e.pasteWidgetVisibleCtx=e.changePasteTypeCommandId=void 0,e.changePasteTypeCommandId="editor.changePasteType",e.pasteWidgetVisibleCtx=new v.RawContextKey("pasteWidgetVisible",!1,(0,f.localize)(826,"Whether the paste widget is showing"));const A="application/vnd.code.copyMetadata";let P=class extends _.Disposable{static{M=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(O){return O.getContribution(M.ID)}constructor(O,F,x,W,V,q,H){super(),this._bulkEditService=x,this._clipboardService=W,this._languageFeaturesService=V,this._quickInputService=q,this._progressService=H,this._editor=O;const z=O.getContainerDomNode();this._register((0,d.addDisposableListener)(z,"copy",U=>this.handleCopy(U))),this._register((0,d.addDisposableListener)(z,"cut",U=>this.handleCopy(U))),this._register((0,d.addDisposableListener)(z,"paste",U=>this.handlePaste(U),!0)),this._pasteProgressManager=this._register(new u.InlineProgressManager("pasteIntoEditor",O,F)),this._postPasteWidgetManager=this._register(F.createInstance(D.PostEditWidgetManager,"pasteIntoEditor",O,e.pasteWidgetVisibleCtx,{id:e.changePasteTypeCommandId,label:(0,f.localize)(827,"Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(O){this._editor.focus();try{this._pasteAsActionContext={preferred:O},(0,d.getActiveDocument)().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(O){if(!this._editor.hasTextFocus()||(this._clipboardService.clearInternalState?.(),!O.clipboardData||!this.isPasteAsEnabled()))return;const F=this._editor.getModel(),x=this._editor.getSelections();if(!F||!x?.length)return;const W=this._editor.getOption(37);let V=x;const q=x.length===1&&x[0].isEmpty();if(q){if(!W)return;V=[new s.Range(V[0].startLineNumber,1,V[0].startLineNumber,1+F.getLineLength(V[0].startLineNumber))]}const H=this._editor._getViewModel()?.getPlainTextToCopy(x,W,p.isWindows),U={multicursorText:Array.isArray(H)?H:null,pasteOnNewLine:q,mode:null},j=this._languageFeaturesService.documentPasteEditProvider.ordered(F).filter(J=>!!J.prepareDocumentPaste);if(!j.length){this.setCopyMetadata(O.clipboardData,{defaultPastePayload:U});return}const Y=(0,t.toVSDataTransfer)(O.clipboardData),G=j.flatMap(J=>J.copyMimeTypes??[]),K=(0,n.generateUuid)();this.setCopyMetadata(O.clipboardData,{id:K,providerCopyMimeTypes:G,defaultPastePayload:U});const R=(0,I.createCancelablePromise)(async J=>{const ie=(0,k.coalesce)(await Promise.all(j.map(async ue=>{try{return await ue.prepareDocumentPaste(F,V,Y,J)}catch(he){console.error(he);return}})));ie.reverse();for(const ue of ie)for(const[he,pe]of ue)Y.replace(he,pe);return Y});M._currentCopyOperation?.dataTransferPromise.cancel(),M._currentCopyOperation={handle:K,dataTransferPromise:R}}async handlePaste(O){if(!O.clipboardData||!this._editor.hasTextFocus())return;C.MessageController.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;const F=this._editor.getModel(),x=this._editor.getSelections();if(!x?.length||!F||this._editor.getOption(92)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const W=this.fetchCopyMetadata(O),V=(0,t.toExternalVSDataTransfer)(O.clipboardData);V.delete(A);const q=[...O.clipboardData.types,...W?.providerCopyMimeTypes??[],b.Mimes.uriList],H=this._languageFeaturesService.documentPasteEditProvider.ordered(F).filter(z=>{const U=this._pasteAsActionContext?.preferred;return U&&z.providedPasteEditKinds&&!this.providerMatchesPreference(z,U)?!1:z.pasteMimeTypes?.some(j=>(0,y.matchesMimeType)(j,q))});if(!H.length){this._pasteAsActionContext?.preferred&&this.showPasteAsNoEditMessage(x,this._pasteAsActionContext.preferred);return}O.preventDefault(),O.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,H,x,V,W):this.doPasteInline(H,x,V,W,O)}showPasteAsNoEditMessage(O,F){C.MessageController.get(this._editor)?.showMessage((0,f.localize)(828,"No paste edits for '{0}' found",F instanceof m.HierarchicalKind?F.value:F.providerId),O[0].getStartPosition())}doPasteInline(O,F,x,W,V){const q=this._editor;if(!q.hasModel())return;const H=new r.EditorStateCancellationTokenSource(q,3,void 0),z=(0,I.createCancelablePromise)(async U=>{const j=this._editor;if(!j.hasModel())return;const Y=j.getModel(),G=new _.DisposableStore,K=G.add(new E.CancellationTokenSource(U));G.add(H.token.onCancellationRequested(()=>K.cancel()));const R=K.token;try{if(await this.mergeInDataFromCopy(x,W,R),R.isCancellationRequested)return;const J=O.filter(he=>this.isSupportedPasteProvider(he,x));if(!J.length||J.length===1&&J[0]instanceof l.DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(x,W,R,V);const ie={triggerKind:g.DocumentPasteTriggerKind.Automatic},ue=await this.getPasteEdits(J,x,Y,F,ie,R);if(G.add(ue),R.isCancellationRequested)return;if(ue.edits.length===1&&ue.edits[0].provider instanceof l.DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(x,W,R,V);if(ue.edits.length){const he=j.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(F,{activeEditIndex:0,allEdits:ue.edits},he,(pe,ae)=>new Promise((ee,de)=>{(async()=>{try{const ge=pe.provider.resolveDocumentPasteEdit?.(pe,ae),X=new I.DeferredPromise,B=ge&&await this._pasteProgressManager.showWhile(F[0].getEndPosition(),(0,f.localize)(829,"Resolving paste edit. Click to cancel"),Promise.race([X.p,ge]),{cancel:()=>(X.cancel(),de(new T.CancellationError))},0);return B&&(pe.additionalEdit=B.additionalEdit),ee(pe)}catch(ge){return de(ge)}})()}),R)}await this.applyDefaultPasteHandler(x,W,R,V)}finally{G.dispose(),this._currentPasteOperation===z&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(F[0].getEndPosition(),(0,f.localize)(830,"Running paste handlers. Click to cancel and do basic paste"),z,{cancel:async()=>{try{if(z.cancel(),H.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(x,W,H.token,V)}finally{H.dispose()}}}).then(()=>{H.dispose()}),this._currentPasteOperation=z}showPasteAsPick(O,F,x,W,V){const q=(0,I.createCancelablePromise)(async H=>{const z=this._editor;if(!z.hasModel())return;const U=z.getModel(),j=new _.DisposableStore,Y=j.add(new r.EditorStateCancellationTokenSource(z,3,void 0,H));try{if(await this.mergeInDataFromCopy(W,V,Y.token),Y.token.isCancellationRequested)return;let G=F.filter(ue=>this.isSupportedPasteProvider(ue,W,O));O&&(G=G.filter(ue=>this.providerMatchesPreference(ue,O)));const K={triggerKind:g.DocumentPasteTriggerKind.PasteAs,only:O&&O instanceof m.HierarchicalKind?O:void 0};let R=j.add(await this.getPasteEdits(G,W,U,x,K,Y.token));if(Y.token.isCancellationRequested)return;if(O&&(R={edits:R.edits.filter(ue=>O instanceof m.HierarchicalKind?O.contains(ue.kind):O.providerId===ue.provider.id),dispose:R.dispose}),!R.edits.length){K.only&&this.showPasteAsNoEditMessage(x,K.only);return}let J;if(O?J=R.edits.at(0):J=(await this._quickInputService.pick(R.edits.map(he=>({label:he.title,description:he.kind?.value,edit:he})),{placeHolder:(0,f.localize)(831,"Select Paste Action")}))?.edit,!J)return;const ie=(0,a.createCombinedWorkspaceEdit)(U.uri,x,J);await this._bulkEditService.apply(ie,{editor:this._editor})}finally{j.dispose(),this._currentPasteOperation===q&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:(0,f.localize)(832,"Running paste handlers")},()=>q)}setCopyMetadata(O,F){O.setData(A,JSON.stringify(F))}fetchCopyMetadata(O){if(!O.clipboardData)return;const F=O.clipboardData.getData(A);if(F)try{return JSON.parse(F)}catch{return}const[x,W]=o.ClipboardEventUtils.getTextData(O.clipboardData);if(W)return{defaultPastePayload:{mode:W.mode,multicursorText:W.multicursorText??null,pasteOnNewLine:!!W.isFromEmptySelection}}}async mergeInDataFromCopy(O,F,x){if(F?.id&&M._currentCopyOperation?.handle===F.id){const W=await M._currentCopyOperation.dataTransferPromise;if(x.isCancellationRequested)return;for(const[V,q]of W)O.replace(V,q)}if(!O.has(b.Mimes.uriList)){const W=await this._clipboardService.readResources();if(x.isCancellationRequested)return;W.length&&O.append(b.Mimes.uriList,(0,y.createStringDataTransferItem)(y.UriList.create(W)))}}async getPasteEdits(O,F,x,W,V,q){const H=new _.DisposableStore,z=await(0,I.raceCancellation)(Promise.all(O.map(async j=>{try{const Y=await j.provideDocumentPasteEdits?.(x,W,F,V,q);return Y&&H.add(Y),Y?.edits?.map(G=>({...G,provider:j}))}catch(Y){(0,T.isCancellationError)(Y)||console.error(Y);return}})),q),U=(0,k.coalesce)(z??[]).flat().filter(j=>!V.only||V.only.contains(j.kind));return{edits:(0,a.sortEditsByYieldTo)(U),dispose:()=>H.dispose()}}async applyDefaultPasteHandler(O,F,x,W){const q=await(O.get(b.Mimes.text)??O.get("text"))?.asString()??"";if(x.isCancellationRequested)return;const H={clipboardEvent:W,text:q,pasteOnNewLine:F?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:F?.defaultPastePayload.multicursorText??null,mode:null};this._editor.trigger("keyboard","paste",H)}isSupportedPasteProvider(O,F,x){return O.pasteMimeTypes?.some(W=>F.matches(W))?!x||this.providerMatchesPreference(O,x):!1}providerMatchesPreference(O,F){return F instanceof m.HierarchicalKind?O.providedPasteEditKinds?O.providedPasteEditKinds.some(x=>F.contains(x)):!0:O.id===F.providerId}};e.CopyPasteController=P,e.CopyPasteController=P=M=ke([ce(1,w.IInstantiationService),ce(2,i.IBulkEditService),ce(3,h.IClipboardService),ce(4,c.ILanguageFeaturesService),ce(5,L.IQuickInputService),ce(6,S.IProgressService)],P)}),define(ne[856],se([1,0,64,5,16,212,15,34,20,435,3,29,117,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PasteAction=e.CopyAction=e.CutAction=void 0;const i="9_cutcopypaste",s=I.isNative||document.queryCommandSupported("cut"),g=I.isNative||document.queryCommandSupported("copy"),c=typeof navigator.clipboard>"u"||d.isFirefox?document.queryCommandSupported("paste"):!0;function l(u){return u.register(),u}e.CutAction=s?l(new y.MultiCommand({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:I.isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(725,"Cu&&t"),order:1},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(726,"Cut"),when:_.EditorContextKeys.writable,order:1},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(727,"Cut"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(728,"Cut"),when:_.EditorContextKeys.writable,order:1}]})):void 0,e.CopyAction=g?l(new y.MultiCommand({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:I.isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(729,"&&Copy"),order:2},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(730,"Copy"),order:2},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(731,"Copy"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(732,"Copy"),order:2}]})):void 0,n.MenuRegistry.appendMenuItem(n.MenuId.MenubarEditMenu,{submenu:n.MenuId.MenubarCopy,title:p.localize2(738,"Copy As"),group:"2_ccp",order:3}),n.MenuRegistry.appendMenuItem(n.MenuId.EditorContext,{submenu:n.MenuId.EditorContextCopy,title:p.localize2(739,"Copy As"),group:i,order:3}),n.MenuRegistry.appendMenuItem(n.MenuId.EditorContext,{submenu:n.MenuId.EditorContextShare,title:p.localize2(740,"Share"),group:"11_share",order:-1,when:t.ContextKeyExpr.and(t.ContextKeyExpr.notEquals("resourceScheme","output"),_.EditorContextKeys.editorTextFocus)}),n.MenuRegistry.appendMenuItem(n.MenuId.ExplorerContext,{submenu:n.MenuId.ExplorerContextShare,title:p.localize2(741,"Share"),group:"11_share",order:-1}),e.PasteAction=c?l(new y.MultiCommand({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:I.isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(733,"&&Paste"),order:4},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(734,"Paste"),when:_.EditorContextKeys.writable,order:4},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(735,"Paste"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(736,"Paste"),when:_.EditorContextKeys.writable,order:4}]})):void 0;class a extends y.EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:p.localize(737,"Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(C,f){!f.hasModel()||!f.getOption(37)&&f.getSelection().isEmpty()||(E.CopyOptions.forceCopyWithSyntaxHighlighting=!0,f.focus(),f.getContainerDomNode().ownerDocument.execCommand("copy"),E.CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function r(u,C){u&&(u.addImplementation(1e4,"code-editor",(f,h)=>{const v=f.get(m.ICodeEditorService).getFocusedCodeEditor();if(v&&v.hasTextFocus()){const w=v.getOption(37),S=v.getSelection();return S&&S.isEmpty()&&!w||v.getContainerDomNode().ownerDocument.execCommand(C),!0}return!1}),u.addImplementation(0,"generic-dom",(f,h)=>((0,k.getActiveDocument)().execCommand(C),!0)))}r(e.CutAction,"cut"),r(e.CopyAction,"copy"),e.PasteAction&&(e.PasteAction.addImplementation(1e4,"code-editor",(u,C)=>{const f=u.get(m.ICodeEditorService),h=u.get(o.IClipboardService),v=f.getFocusedCodeEditor();return v&&v.hasTextFocus()?v.getContainerDomNode().ownerDocument.execCommand("paste")?b.CopyPasteController.get(v)?.finishedPaste()??Promise.resolve():I.isWeb?(async()=>{const S=await h.readText();if(S!==""){const L=E.InMemoryClipboardMetadataManager.INSTANCE.get(S);let D=!1,T=null,M=null;L&&(D=v.getOption(37)&&!!L.isFromEmptySelection,T=typeof L.multicursorText<"u"?L.multicursorText:null,M=L.mode),v.trigger("keyboard","paste",{text:S,pasteOnNewLine:D,multicursorText:T,mode:M})}})():!0:!1}),e.PasteAction.addImplementation(0,"generic-dom",(u,C)=>((0,k.getActiveDocument)().execCommand("paste"),!0))),g&&(0,y.registerEditorAction)(a)}),define(ne[857],se([1,0,91,15,20,130,435,293,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,k.registerEditorContribution)(y.CopyPasteController.ID,y.CopyPasteController,0),(0,E.registerEditorFeature)(m.DefaultPasteProvidersFeature),(0,k.registerEditorCommand)(new class extends k.EditorCommand{constructor(){super({id:y.changePasteTypeCommandId,precondition:y.pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(b,p){return y.CopyPasteController.get(p)?.changePasteType()}}),(0,k.registerEditorCommand)(new class extends k.EditorCommand{constructor(){super({id:"editor.hidePasteWidget",precondition:y.pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(b,p){y.CopyPasteController.get(p)?.clearWidgets()}}),(0,k.registerEditorAction)(class bi extends k.EditorAction{static{this.argsSchema={type:"object",properties:{kind:{type:"string",description:_.localize(823,"The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.")}}}}constructor(){super({id:"editor.action.pasteAs",label:_.localize(824,"Paste As..."),alias:"Paste As...",precondition:I.EditorContextKeys.writable,metadata:{description:"Paste as",args:[{name:"args",schema:bi.argsSchema}]}})}run(p,n,o){let t=typeof o?.kind=="string"?o.kind:void 0;return!t&&o&&(t=typeof o.id=="string"?o.id:void 0),y.CopyPasteController.get(n)?.pasteAs(t?new d.HierarchicalKind(t):void 0)}}),(0,k.registerEditorAction)(class extends k.EditorAction{constructor(){super({id:"editor.action.pasteAsText",label:_.localize(825,"Paste as Text"),alias:"Paste as Text",precondition:I.EditorContextKeys.writable})}run(b,p){return y.CopyPasteController.get(p)?.pasteAs({providerId:m.DefaultTextPasteOrDropEditProvider.id})}})}),define(ne[858],se([1,0,15,274,130,293,3,109,38,832]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(b.DropIntoEditorController.ID,b.DropIntoEditorController,2),(0,I.registerEditorFeature)(E.DefaultDropProvidersFeature),(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:b.changeDropTypeCommandId,precondition:b.dropWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(p,n,o){b.DropIntoEditorController.get(n)?.changeDropType()}}),(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:"editor.hideDropWidget",precondition:b.dropWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(p,n,o){b.DropIntoEditorController.get(n)?.clearWidgets()}}),_.Registry.as(m.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{[b.defaultProviderConfig]:{type:"object",scope:5,description:y.localize(841,"Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}})}),define(ne[859],se([1,0,629,99,48,11,193,36,135,3,186]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RandomBasedVariableResolver=e.WorkspaceBasedVariableResolver=e.TimeBasedVariableResolver=e.CommentBasedVariableResolver=e.ClipboardBasedVariableResolver=e.ModelBasedVariableResolver=e.SelectionBasedVariableResolver=e.CompositeSnippetVariableResolver=e.KnownSnippetVariableNames=void 0,e.KnownSnippetVariableNames=Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class n{constructor(r){this._delegates=r}resolve(r){for(const u of this._delegates){const C=u.resolve(r);if(C!==void 0)return C}}}e.CompositeSnippetVariableResolver=n;class o{constructor(r,u,C,f){this._model=r,this._selection=u,this._selectionIdx=C,this._overtypingCapturer=f}resolve(r){const{name:u}=r;if(u==="SELECTION"||u==="TM_SELECTED_TEXT"){let C=this._model.getValueInRange(this._selection)||void 0,f=this._selection.startLineNumber!==this._selection.endLineNumber;if(!C&&this._overtypingCapturer){const h=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);h&&(C=h.value,f=h.multiline)}if(C&&f&&r.snippet){const h=this._model.getLineContent(this._selection.startLineNumber),v=(0,E.getLeadingWhitespace)(h,0,this._selection.startColumn-1);let w=v;r.snippet.walk(L=>L===r?!1:(L instanceof _.Text&&(w=(0,E.getLeadingWhitespace)((0,E.splitLines)(L.value).pop())),!0));const S=(0,E.commonPrefixLength)(w,v);C=C.replace(/(\r\n|\r|\n)(.*)/g,(L,D,T)=>`${D}${w.substr(S)}${T}`)}return C}else{if(u==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(u==="TM_CURRENT_WORD"){const C=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return C&&C.word||void 0}else{if(u==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(u==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(u==="CURSOR_INDEX")return String(this._selectionIdx);if(u==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}e.SelectionBasedVariableResolver=o;class t{constructor(r,u){this._labelService=r,this._model=u}resolve(r){const{name:u}=r;if(u==="TM_FILENAME")return k.basename(this._model.uri.fsPath);if(u==="TM_FILENAME_BASE"){const C=k.basename(this._model.uri.fsPath),f=C.lastIndexOf(".");return f<=0?C:C.slice(0,f)}else{if(u==="TM_DIRECTORY")return k.dirname(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel((0,I.dirname)(this._model.uri));if(u==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(u==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}e.ModelBasedVariableResolver=t;class i{constructor(r,u,C,f){this._readClipboardText=r,this._selectionIdx=u,this._selectionCount=C,this._spread=f}resolve(r){if(r.name!=="CLIPBOARD")return;const u=this._readClipboardText();if(u){if(this._spread){const C=u.split(/\r\n|\n|\r/).filter(f=>!(0,E.isFalsyOrWhitespace)(f));if(C.length===this._selectionCount)return C[this._selectionIdx]}return u}}}e.ClipboardBasedVariableResolver=i;let s=class{constructor(r,u,C){this._model=r,this._selection=u,this._languageConfigurationService=C}resolve(r){const{name:u}=r,C=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),f=this._languageConfigurationService.getLanguageConfiguration(C).comments;if(f){if(u==="LINE_COMMENT")return f.lineCommentToken||void 0;if(u==="BLOCK_COMMENT_START")return f.blockCommentStartToken||void 0;if(u==="BLOCK_COMMENT_END")return f.blockCommentEndToken||void 0}}};e.CommentBasedVariableResolver=s,e.CommentBasedVariableResolver=s=ke([ce(2,m.ILanguageConfigurationService)],s);class g{constructor(){this._date=new Date}static{this.dayNames=[b.localize(1261,"Sunday"),b.localize(1262,"Monday"),b.localize(1263,"Tuesday"),b.localize(1264,"Wednesday"),b.localize(1265,"Thursday"),b.localize(1266,"Friday"),b.localize(1267,"Saturday")]}static{this.dayNamesShort=[b.localize(1268,"Sun"),b.localize(1269,"Mon"),b.localize(1270,"Tue"),b.localize(1271,"Wed"),b.localize(1272,"Thu"),b.localize(1273,"Fri"),b.localize(1274,"Sat")]}static{this.monthNames=[b.localize(1275,"January"),b.localize(1276,"February"),b.localize(1277,"March"),b.localize(1278,"April"),b.localize(1279,"May"),b.localize(1280,"June"),b.localize(1281,"July"),b.localize(1282,"August"),b.localize(1283,"September"),b.localize(1284,"October"),b.localize(1285,"November"),b.localize(1286,"December")]}static{this.monthNamesShort=[b.localize(1287,"Jan"),b.localize(1288,"Feb"),b.localize(1289,"Mar"),b.localize(1290,"Apr"),b.localize(1291,"May"),b.localize(1292,"Jun"),b.localize(1293,"Jul"),b.localize(1294,"Aug"),b.localize(1295,"Sep"),b.localize(1296,"Oct"),b.localize(1297,"Nov"),b.localize(1298,"Dec")]}resolve(r){const{name:u}=r;if(u==="CURRENT_YEAR")return String(this._date.getFullYear());if(u==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(u==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(u==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(u==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(u==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(u==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(u==="CURRENT_DAY_NAME")return g.dayNames[this._date.getDay()];if(u==="CURRENT_DAY_NAME_SHORT")return g.dayNamesShort[this._date.getDay()];if(u==="CURRENT_MONTH_NAME")return g.monthNames[this._date.getMonth()];if(u==="CURRENT_MONTH_NAME_SHORT")return g.monthNamesShort[this._date.getMonth()];if(u==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(u==="CURRENT_TIMEZONE_OFFSET"){const C=this._date.getTimezoneOffset(),f=C>0?"-":"+",h=Math.trunc(Math.abs(C/60)),v=h<10?"0"+h:h,w=Math.abs(C)-h*60,S=w<10?"0"+w:w;return f+v+":"+S}}}e.TimeBasedVariableResolver=g;class c{constructor(r){this._workspaceService=r}resolve(r){if(!this._workspaceService)return;const u=(0,p.toWorkspaceIdentifier)(this._workspaceService.getWorkspace());if(!(0,p.isEmptyWorkspaceIdentifier)(u)){if(r.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(u);if(r.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(u)}}_resolveWorkspaceName(r){if((0,p.isSingleFolderWorkspaceIdentifier)(r))return k.basename(r.uri.path);let u=k.basename(r.configPath.path);return u.endsWith(p.WORKSPACE_EXTENSION)&&(u=u.substr(0,u.length-p.WORKSPACE_EXTENSION.length-1)),u}_resoveWorkspacePath(r){if((0,p.isSingleFolderWorkspaceIdentifier)(r))return(0,d.normalizeDriveLetter)(r.uri.fsPath);const u=k.basename(r.configPath.path);let C=r.configPath.fsPath;return C.endsWith(u)&&(C=C.substr(0,C.length-u.length-1)),C?(0,d.normalizeDriveLetter)(C):"/"}}e.WorkspaceBasedVariableResolver=c;class l{resolve(r){const{name:u}=r;if(u==="RANDOM")return Math.random().toString().slice(-6);if(u==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(u==="UUID")return(0,y.generateUuid)()}}e.RandomBasedVariableResolver=l}),define(ne[436],se([1,0,13,2,11,75,4,23,36,35,181,186,135,859,530]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetSession=e.OneSnippet=void 0;class s{static{this._decor={active:b.ModelDecorationOptions.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:b.ModelDecorationOptions.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:b.ModelDecorationOptions.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:b.ModelDecorationOptions.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(a,r,u){this._editor=a,this._snippet=r,this._snippetLineLeadingWhitespace=u,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,d.groupBy)(r.placeholders,o.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}initialize(a){this._offset=a.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const a=this._editor.getModel();this._editor.changeDecorations(r=>{for(const u of this._snippet.placeholders){const C=this._snippet.offset(u),f=this._snippet.fullLen(u),h=y.Range.fromPositions(a.getPositionAt(this._offset+C),a.getPositionAt(this._offset+C+f)),v=u.isFinalTabstop?s._decor.inactiveFinal:s._decor.inactive,w=r.addDecoration(h,v);this._placeholderDecorations.set(u,w)}})}move(a){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const C=[];for(const f of this._placeholderGroups[this._placeholderGroupsIdx])if(f.transform){const h=this._placeholderDecorations.get(f),v=this._editor.getModel().getDecorationRange(h),w=this._editor.getModel().getValueInRange(v),S=f.transform.resolve(w).split(/\r\n|\r|\n/);for(let L=1;L0&&this._editor.executeEdits("snippet.placeholderTransform",C)}let r=!1;a===!0&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,r=!0);const u=this._editor.getModel().changeDecorations(C=>{const f=new Set,h=[];for(const v of this._placeholderGroups[this._placeholderGroupsIdx]){const w=this._placeholderDecorations.get(v),S=this._editor.getModel().getDecorationRange(w);h.push(new m.Selection(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn)),r=r&&this._hasPlaceholderBeenCollapsed(v),C.changeDecorationOptions(w,v.isFinalTabstop?s._decor.activeFinal:s._decor.active),f.add(v);for(const L of this._snippet.enclosingPlaceholders(v)){const D=this._placeholderDecorations.get(L);C.changeDecorationOptions(D,L.isFinalTabstop?s._decor.activeFinal:s._decor.active),f.add(L)}}for(const[v,w]of this._placeholderDecorations)f.has(v)||C.changeDecorationOptions(w,v.isFinalTabstop?s._decor.inactiveFinal:s._decor.inactive);return h});return r?this.move(a):u??[]}_hasPlaceholderBeenCollapsed(a){let r=a;for(;r;){if(r instanceof o.Placeholder){const u=this._placeholderDecorations.get(r);if(this._editor.getModel().getDecorationRange(u).isEmpty()&&r.toString().length>0)return!0}r=r.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[a]=this._snippet.placeholders;if(a.isFinalTabstop&&this._snippet.rightMostDescendant===a)return!0}return!1}computePossibleSelections(){const a=new Map;for(const r of this._placeholderGroups){let u;for(const C of r){if(C.isFinalTabstop)break;u||(u=[],a.set(C.index,u));const f=this._placeholderDecorations.get(C),h=this._editor.getModel().getDecorationRange(f);if(!h){a.delete(C.index);break}u.push(h)}}return a}get activeChoice(){if(!this._placeholderDecorations)return;const a=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!a?.choice)return;const r=this._placeholderDecorations.get(a);if(!r)return;const u=this._editor.getModel().getDecorationRange(r);if(u)return{range:u,choice:a.choice}}get hasChoice(){let a=!1;return this._snippet.walk(r=>(a=r instanceof o.Choice,!a)),a}merge(a){const r=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(u=>{for(const C of this._placeholderGroups[this._placeholderGroupsIdx]){const f=a.shift();console.assert(f._offset!==-1),console.assert(!f._placeholderDecorations);const h=f._snippet.placeholderInfo.last.index;for(const w of f._snippet.placeholderInfo.all)w.isFinalTabstop?w.index=C.index+(h+1)/this._nestingLevel:w.index=C.index+w.index/this._nestingLevel;this._snippet.replace(C,f._snippet.children);const v=this._placeholderDecorations.get(C);u.removeDecoration(v),this._placeholderDecorations.delete(C);for(const w of f._snippet.placeholders){const S=f._snippet.offset(w),L=f._snippet.fullLen(w),D=y.Range.fromPositions(r.getPositionAt(f._offset+S),r.getPositionAt(f._offset+S+L)),T=u.addDecoration(D,s._decor.inactive);this._placeholderDecorations.set(w,T)}}this._placeholderGroups=(0,d.groupBy)(this._snippet.placeholders,o.Placeholder.compareByIndex)})}}e.OneSnippet=s;const g={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let c=i=class{static adjustWhitespace(a,r,u,C,f){const h=a.getLineContent(r.lineNumber),v=(0,I.getLeadingWhitespace)(h,0,r.column-1);let w;return C.walk(S=>{if(!(S instanceof o.Text)||S.parent instanceof o.Choice||f&&!f.has(S))return!0;const L=S.value.split(/\r\n|\r|\n/);if(u){const T=C.offset(S);if(T===0)L[0]=a.normalizeIndentation(L[0]);else{w=w??C.toString();const M=w.charCodeAt(T-1);(M===10||M===13)&&(L[0]=a.normalizeIndentation(v+L[0]))}for(let M=1;MW.get(n.IWorkspaceContextService)),A=a.invokeWithinContext(W=>new t.ModelBasedVariableResolver(W.get(p.ILabelService),T)),P=()=>v,N=T.getValueInRange(i.adjustSelection(T,a.getSelection(),u,0)),O=T.getValueInRange(i.adjustSelection(T,a.getSelection(),0,C)),F=T.getLineFirstNonWhitespaceColumn(a.getSelection().positionLineNumber),x=a.getSelections().map((W,V)=>({selection:W,idx:V})).sort((W,V)=>y.Range.compareRangesUsingStarts(W.selection,V.selection));for(const{selection:W,idx:V}of x){let q=i.adjustSelection(T,W,u,0),H=i.adjustSelection(T,W,0,C);N!==T.getValueInRange(q)&&(q=W),O!==T.getValueInRange(H)&&(H=W);const z=W.setStartPosition(q.startLineNumber,q.startColumn).setEndPosition(H.endLineNumber,H.endColumn),U=new o.SnippetParser().parse(r,!0,f),j=z.getStartPosition(),Y=i.adjustWhitespace(T,j,h||V>0&&F!==T.getLineFirstNonWhitespaceColumn(W.positionLineNumber),U);U.resolveVariables(new t.CompositeSnippetVariableResolver([A,new t.ClipboardBasedVariableResolver(P,V,x.length,a.getOption(79)==="spread"),new t.SelectionBasedVariableResolver(T,W,V,w),new t.CommentBasedVariableResolver(T,W,S),new t.TimeBasedVariableResolver,new t.WorkspaceBasedVariableResolver(M),new t.RandomBasedVariableResolver])),L[V]=E.EditOperation.replace(z,U.toString()),L[V].identifier={major:V,minor:0},L[V]._isTracked=!0,D[V]=new s(a,U,Y)}return{edits:L,snippets:D}}static createEditsAndSnippetsFromEdits(a,r,u,C,f,h,v){if(!a.hasModel()||r.length===0)return{edits:[],snippets:[]};const w=[],S=a.getModel(),L=new o.SnippetParser,D=new o.TextmateSnippet,T=new t.CompositeSnippetVariableResolver([a.invokeWithinContext(A=>new t.ModelBasedVariableResolver(A.get(p.ILabelService),S)),new t.ClipboardBasedVariableResolver(()=>f,0,a.getSelections().length,a.getOption(79)==="spread"),new t.SelectionBasedVariableResolver(S,a.getSelection(),0,h),new t.CommentBasedVariableResolver(S,a.getSelection(),v),new t.TimeBasedVariableResolver,new t.WorkspaceBasedVariableResolver(a.invokeWithinContext(A=>A.get(n.IWorkspaceContextService))),new t.RandomBasedVariableResolver]);r=r.sort((A,P)=>y.Range.compareRangesUsingStarts(A.range,P.range));let M=0;for(let A=0;A0){const V=r[A-1].range,q=y.Range.fromPositions(V.getEndPosition(),P.getStartPosition()),H=new o.Text(S.getValueInRange(q));D.appendChild(H),M+=H.value.length}const O=L.parseFragment(N,D);i.adjustWhitespace(S,P.getStartPosition(),!0,D,new Set(O)),D.resolveVariables(T);const F=D.toString(),x=F.slice(M);M=F.length;const W=E.EditOperation.replace(P,x);W.identifier={major:A,minor:0},W._isTracked=!0,w.push(W)}return L.ensureFinalTabstop(D,u,!0),{edits:w,snippets:[new s(a,D,"")]}}constructor(a,r,u=g,C){this._editor=a,this._template=r,this._options=u,this._languageConfigurationService=C,this._templateMerges=[],this._snippets=[]}dispose(){(0,k.dispose)(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:a,snippets:r}=typeof this._template=="string"?i.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):i.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=r,this._editor.executeEdits("snippet",a,u=>{const C=u.filter(f=>!!f.identifier);for(let f=0;fm.Selection.fromPositions(f.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(a,r=g){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,a]);const{edits:u,snippets:C}=i.createEditsAndSnippetsFromSelections(this._editor,a,r.overwriteBefore,r.overwriteAfter,!0,r.adjustWhitespace,r.clipboardText,r.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",u,f=>{const h=f.filter(w=>!!w.identifier);for(let w=0;wm.Selection.fromPositions(w.range.getEndPosition()))})}next(){const a=this._move(!0);this._editor.setSelections(a),this._editor.revealPositionInCenterIfOutsideViewport(a[0].getPosition())}prev(){const a=this._move(!1);this._editor.setSelections(a),this._editor.revealPositionInCenterIfOutsideViewport(a[0].getPosition())}_move(a){const r=[];for(const u of this._snippets){const C=u.move(a);r.push(...C)}return r}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const a=this._editor.getSelections();if(a.length{f.push(...C.get(h))})}a.sort(y.Range.compareRangesUsingStarts);for(const[u,C]of r){if(C.length!==a.length){r.delete(u);continue}C.sort(y.Range.compareRangesUsingStarts);for(let f=0;f0}};e.SnippetSession=c,e.SnippetSession=c=i=ke([ce(3,_.ILanguageConfigurationService)],c)}),define(ne[221],se([1,0,2,19,15,9,20,36,17,155,3,12,62,436]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetController2=void 0;const s={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let g=class{static{i=this}static{this.ID="snippetController2"}static get(a){return a.getContribution(i.ID)}static{this.InSnippetMode=new n.RawContextKey("inSnippetMode",!1,(0,p.localize)(1257,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new n.RawContextKey("hasNextTabstop",!1,(0,p.localize)(1258,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new n.RawContextKey("hasPrevTabstop",!1,(0,p.localize)(1259,"Whether there is a previous tab stop when in snippet mode"))}constructor(a,r,u,C,f){this._editor=a,this._logService=r,this._languageFeaturesService=u,this._languageConfigurationService=f,this._snippetListener=new d.DisposableStore,this._modelVersionId=-1,this._inSnippet=i.InSnippetMode.bindTo(C),this._hasNextTabstop=i.HasNextTabstop.bindTo(C),this._hasPrevTabstop=i.HasPrevTabstop.bindTo(C)}dispose(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(a,r){try{this._doInsert(a,typeof r>"u"?s:{...s,...r})}catch(u){this.cancel(),this._logService.error(u),this._logService.error("snippet_error"),this._logService.error("insert_template=",a),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(a,r){if(this._editor.hasModel()){if(this._snippetListener.clear(),r.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof a!="string"&&this.cancel(),this._session?((0,k.assertType)(typeof a=="string"),this._session.merge(a,r)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new t.SnippetSession(this._editor,a,r,this._languageConfigurationService),this._session.insert()),r.undoStopAfter&&this._editor.getModel().pushStackElement(),this._session?.hasChoice){const u={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(S,L)=>{if(!this._session||S!==this._editor.getModel()||!E.Position.equals(this._editor.getPosition(),L))return;const{activeChoice:D}=this._session;if(!D||D.choice.options.length===0)return;const T=S.getValueInRange(D.range),M=!!D.choice.options.find(P=>P.value===T),A=[];for(let P=0;P{f?.dispose(),h=!1},w=()=>{h||(f=this._languageFeaturesService.completionProvider.register({language:C.getLanguageId(),pattern:C.uri.fsPath,scheme:C.uri.scheme,exclusive:!0},u),this._snippetListener.add(f),h=!0)};this._choiceCompletions={provider:u,enable:w,disable:v}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(u=>u.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:a}=this._session;if(!a||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0;return}this._currentChoice!==a.choice&&(this._currentChoice=a.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{(0,b.showSimpleSuggestions)(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(a=!1){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,a&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};e.SnippetController2=g,e.SnippetController2=g=i=ke([ce(1,o.ILogService),ce(2,_.ILanguageFeaturesService),ce(3,n.IContextKeyService),ce(4,m.ILanguageConfigurationService)],g),(0,I.registerEditorContribution)(g.ID,g,4);const c=I.EditorCommand.bindToContribution(g.get);(0,I.registerEditorCommand)(new c({id:"jumpToNextSnippetPlaceholder",precondition:n.ContextKeyExpr.and(g.InSnippetMode,g.HasNextTabstop),handler:l=>l.next(),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:2}})),(0,I.registerEditorCommand)(new c({id:"jumpToPrevSnippetPlaceholder",precondition:n.ContextKeyExpr.and(g.InSnippetMode,g.HasPrevTabstop),handler:l=>l.prev(),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:1026}})),(0,I.registerEditorCommand)(new c({id:"leaveSnippet",precondition:g.InSnippetMode,handler:l=>l.cancel(!0),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),(0,I.registerEditorCommand)(new c({id:"acceptSnippet",precondition:g.InSnippetMode,handler:l=>l.finish()}))}),define(ne[860],se([1,0,13,67,102,8,2,21,11,19,75,9,4,23,104,113,27,36,204,715,246,205,221,24,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VersionIdChangeReason=e.InlineCompletionsModel=void 0,e.getSecondaryEdits=S;let v=class extends y.Disposable{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(M,A,P,N,O,F,x,W,V,q,H,z){super(),this.textModel=M,this.selectedSuggestItem=A,this._textModelVersionId=P,this._positions=N,this._debounceValue=O,this._suggestPreviewEnabled=F,this._suggestPreviewMode=x,this._inlineSuggestMode=W,this._enabled=V,this._instantiationService=q,this._commandService=H,this._languageConfigurationService=z,this._source=this._register(this._instantiationService.createInstance(a.InlineCompletionsSource,this.textModel,this._textModelVersionId,this._debounceValue)),this._isActive=(0,m.observableValue)(this,!1),this._forceUpdateExplicitlySignal=(0,m.observableSignal)(this),this._selectedInlineCompletionId=(0,m.observableValue)(this,void 0),this._primaryPosition=(0,m.derived)(this,j=>this._positions.read(j)[0]??new n.Position(1,1)),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([w.Redo,w.Undo,w.AcceptWord]),this._fetchInlineCompletionsPromise=(0,m.derivedHandleChanges)({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:g.InlineCompletionTriggerKind.Automatic}),handleChange:(j,Y)=>(j.didChange(this._textModelVersionId)&&this._preserveCurrentCompletionReasons.has(this._getReason(j.change))?Y.preserveCurrentCompletion=!0:j.didChange(this._forceUpdateExplicitlySignal)&&(Y.inlineCompletionTriggerKind=g.InlineCompletionTriggerKind.Explicit),!0)},(j,Y)=>{if(this._forceUpdateExplicitlySignal.read(j),!(this._enabled.read(j)&&this.selectedSuggestItem.read(j)||this._isActive.read(j))){this._source.cancelUpdate();return}this._textModelVersionId.read(j);const K=this._source.suggestWidgetInlineCompletions.get(),R=this.selectedSuggestItem.read(j);if(K&&!R){const pe=this._source.inlineCompletions.get();(0,m.transaction)(ae=>{(!pe||K.request.versionId>pe.request.versionId)&&this._source.inlineCompletions.set(K.clone(),ae),this._source.clearSuggestWidgetInlineCompletions(ae)})}const J=this._primaryPosition.read(j),ie={triggerKind:Y.inlineCompletionTriggerKind,selectedSuggestionInfo:R?.toSelectedSuggestionInfo()},ue=this.selectedInlineCompletion.get(),he=Y.preserveCurrentCompletion||ue?.forwardStable?ue:void 0;return this._source.fetch(J,ie,he)}),this._filteredInlineCompletionItems=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},j=>{const Y=this._source.inlineCompletions.read(j);if(!Y)return[];const G=this._primaryPosition.read(j);return Y.inlineCompletions.filter(R=>R.isVisible(this.textModel,G,j))}),this.selectedInlineCompletionIndex=(0,m.derived)(this,j=>{const Y=this._selectedInlineCompletionId.read(j),G=this._filteredInlineCompletionItems.read(j),K=this._selectedInlineCompletionId===void 0?-1:G.findIndex(R=>R.semanticId===Y);return K===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):K}),this.selectedInlineCompletion=(0,m.derived)(this,j=>{const Y=this._filteredInlineCompletionItems.read(j),G=this.selectedInlineCompletionIndex.read(j);return Y[G]}),this.activeCommands=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},j=>this.selectedInlineCompletion.read(j)?.inlineCompletion.source.inlineCompletions.commands??[]),this.lastTriggerKind=this._source.inlineCompletions.map(this,j=>j?.request.context.triggerKind),this.inlineCompletionsCount=(0,m.derived)(this,j=>{if(this.lastTriggerKind.read(j)===g.InlineCompletionTriggerKind.Explicit)return this._filteredInlineCompletionItems.read(j).length}),this.state=(0,m.derivedOpts)({owner:this,equalsFn:(j,Y)=>!j||!Y?j===Y:(0,l.ghostTextsOrReplacementsEqual)(j.ghostTexts,Y.ghostTexts)&&j.inlineCompletion===Y.inlineCompletion&&j.suggestItem===Y.suggestItem},j=>{const Y=this.textModel,G=this.selectedSuggestItem.read(j);if(G){const K=(0,r.singleTextRemoveCommonPrefix)(G.toSingleTextEdit(),Y),R=this._computeAugmentation(K,j);if(!this._suggestPreviewEnabled.read(j)&&!R)return;const ie=R?.edit??K,ue=R?R.edit.text.length-K.text.length:0,he=this._suggestPreviewMode.read(j),pe=this._positions.read(j),ae=[ie,...S(this.textModel,pe,ie)],ee=ae.map((ge,X)=>(0,r.computeGhostText)(ge,Y,he,pe[X],ue)).filter(b.isDefined),de=ee[0]??new l.GhostText(ie.range.endLineNumber,[]);return{edits:ae,primaryGhostText:de,ghostTexts:ee,inlineCompletion:R?.completion,suggestItem:G}}else{if(!this._isActive.read(j))return;const K=this.selectedInlineCompletion.read(j);if(!K)return;const R=K.toSingleTextEdit(j),J=this._inlineSuggestMode.read(j),ie=this._positions.read(j),ue=[R,...S(this.textModel,ie,R)],he=ue.map((pe,ae)=>(0,r.computeGhostText)(pe,Y,J,ie[ae],0)).filter(b.isDefined);return he[0]?{edits:ue,primaryGhostText:he[0],ghostTexts:he,inlineCompletion:K,suggestItem:void 0}:void 0}}),this.ghostTexts=(0,m.derivedOpts)({owner:this,equalsFn:l.ghostTextsOrReplacementsEqual},j=>{const Y=this.state.read(j);if(Y)return Y.ghostTexts}),this.primaryGhostText=(0,m.derivedOpts)({owner:this,equalsFn:l.ghostTextOrReplacementEquals},j=>{const Y=this.state.read(j);if(Y)return Y?.primaryGhostText}),this._register((0,m.recomputeInitiallyAndOnChange)(this._fetchInlineCompletionsPromise));let U;this._register((0,m.autorun)(j=>{const G=this.state.read(j)?.inlineCompletion;if(G?.semanticId!==U?.semanticId&&(U=G,G)){const K=G.inlineCompletion,R=K.source;R.provider.handleItemDidShow?.(R.inlineCompletions,K.sourceInlineCompletion,K.insertText)}}))}_getReason(M){return M?.isUndoing?w.Undo:M?.isRedoing?w.Redo:this.isAcceptingPartially?w.AcceptWord:w.Other}async trigger(M){this._isActive.set(!0,M),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(M){(0,m.subtransaction)(M,A=>{this._isActive.set(!0,A),this._forceUpdateExplicitlySignal.trigger(A)}),await this._fetchInlineCompletionsPromise.get()}stop(M){(0,m.subtransaction)(M,A=>{this._isActive.set(!1,A),this._source.clear(A)})}_computeAugmentation(M,A){const P=this.textModel,N=this._source.suggestWidgetInlineCompletions.read(A),O=N?N.inlineCompletions:[this.selectedInlineCompletion.read(A)].filter(b.isDefined);return(0,k.mapFindFirst)(O,x=>{let W=x.toSingleTextEdit(A);return W=(0,r.singleTextRemoveCommonPrefix)(W,P,o.Range.fromPositions(W.range.getStartPosition(),M.range.getEndPosition())),(0,r.singleTextEditAugments)(W,M)?{completion:x,edit:W}:void 0})}async _deltaSelectedInlineCompletionIndex(M){await this.triggerExplicitly();const A=this._filteredInlineCompletionItems.get()||[];if(A.length>0){const P=(this.selectedInlineCompletionIndex.get()+M+A.length)%A.length;this._selectedInlineCompletionId.set(A[P].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(M){if(M.getModel()!==this.textModel)throw new E.BugIndicatingError;const A=this.state.get();if(!A||A.primaryGhostText.isEmpty()||!A.inlineCompletion)return;const P=A.inlineCompletion.toInlineCompletion(void 0);if(P.command&&P.source.addRef(),M.pushUndoStop(),P.snippetInfo)M.executeEdits("inlineSuggestion.accept",[p.EditOperation.replace(P.range,""),...P.additionalTextEdits]),M.setPosition(P.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),C.SnippetController2.get(M)?.insert(P.snippetInfo.snippet,{undoStopBefore:!1});else{const N=A.edits,O=D(N).map(F=>t.Selection.fromPositions(F));M.executeEdits("inlineSuggestion.accept",[...N.map(F=>p.EditOperation.replace(F.range,F.text)),...P.additionalTextEdits]),M.setSelections(O,"inlineCompletionAccept")}this.stop(),P.command&&(await this._commandService.executeCommand(P.command.id,...P.command.arguments||[]).then(void 0,E.onUnexpectedExternalError),P.source.removeRef())}async acceptNextWord(M){await this._acceptNext(M,(A,P)=>{const N=this.textModel.getLanguageIdAtPosition(A.lineNumber,A.column),O=this._languageConfigurationService.getLanguageConfiguration(N),F=new RegExp(O.wordDefinition.source,O.wordDefinition.flags.replace("g","")),x=P.match(F);let W=0;x&&x.index!==void 0?x.index===0?W=x[0].length:W=x.index:W=P.length;const q=/\s+/g.exec(P);return q&&q.index!==void 0&&q.index+q[0].length{const N=P.match(/\n/);return N&&N.index!==void 0?N.index+1:P.length},1)}async _acceptNext(M,A,P){if(M.getModel()!==this.textModel)throw new E.BugIndicatingError;const N=this.state.get();if(!N||N.primaryGhostText.isEmpty()||!N.inlineCompletion)return;const O=N.primaryGhostText,F=N.inlineCompletion.toInlineCompletion(void 0);if(F.snippetInfo||F.filterText!==F.insertText){await this.accept(M);return}const x=O.parts[0],W=new n.Position(O.lineNumber,x.column),V=x.text,q=A(W,V);if(q===V.length&&O.parts.length===1){this.accept(M);return}const H=V.substring(0,q),z=this._positions.get(),U=z[0];F.source.addRef();try{this._isAcceptingPartially=!0;try{M.pushUndoStop();const j=o.Range.fromPositions(U,W),Y=M.getModel().getValueInRange(j)+H,G=new i.SingleTextEdit(j,Y),K=[G,...S(this.textModel,z,G)],R=D(K).map(J=>t.Selection.fromPositions(J));M.executeEdits("inlineSuggestion.accept",K.map(J=>p.EditOperation.replace(J.range,J.text))),M.setSelections(R,"inlineCompletionPartialAccept"),M.revealPositionInCenterIfOutsideViewport(M.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(F.source.provider.handlePartialAccept){const j=o.Range.fromPositions(F.range.getStartPosition(),s.TextLength.ofText(H).addToPosition(W)),Y=M.getModel().getValueInRange(j,1);F.source.provider.handlePartialAccept(F.source.inlineCompletions,F.sourceInlineCompletion,Y.length,{kind:P})}}finally{F.source.removeRef()}}handleSuggestAccepted(M){const A=(0,r.singleTextRemoveCommonPrefix)(M.toSingleTextEdit(),this.textModel),P=this._computeAugmentation(A,void 0);if(!P)return;const N=P.completion.inlineCompletion;N.source.provider.handlePartialAccept?.(N.source.inlineCompletions,N.sourceInlineCompletion,A.text.length,{kind:2})}};e.InlineCompletionsModel=v,e.InlineCompletionsModel=v=ke([ce(9,h.IInstantiationService),ce(10,f.ICommandService),ce(11,c.ILanguageConfigurationService)],v);var w;(function(T){T[T.Undo=0]="Undo",T[T.Redo=1]="Redo",T[T.AcceptWord=2]="AcceptWord",T[T.Other=3]="Other"})(w||(e.VersionIdChangeReason=w={}));function S(T,M,A){if(M.length===1)return[];const P=M[0],N=M.slice(1),O=A.range.getStartPosition(),F=A.range.getEndPosition(),x=T.getValueInRange(o.Range.fromPositions(P,F)),W=(0,u.subtractPositions)(P,O);if(W.lineNumber<1)return(0,E.onUnexpectedError)(new E.BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0. - Invalid subtraction between ${P.toString()} and ${O.toString()}`)),[];const V=L(A.text,W);return N.map(q=>{const H=(0,u.addPositions)((0,u.subtractPositions)(q,O),F),z=T.getValueInRange(o.Range.fromPositions(q,H)),U=(0,_.commonPrefixLength)(x,z),j=o.Range.fromPositions(q,q.delta(0,U));return new i.SingleTextEdit(j,V)})}function L(T,M){let A="";const P=(0,_.splitLinesIncludeSeparators)(T);for(let N=M.lineNumber-1;NO.range,o.Range.compareRangesUsingStarts)),P=new i.TextEdit(M.apply(T)).getNewRanges();return M.inverse().apply(P).map(O=>O.getEndPosition())}}),define(ne[437],se([1,0,14,18,8,6,2,11,23,100,343,117,28,12,62,63,342,155,17,82,19,269,221,271]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestModel=e.LineContext=void 0;class v{static shouldAutoTrigger(T){if(!T.hasModel())return!1;const M=T.getModel(),A=T.getPosition();M.tokenization.tokenizeIfCheap(A.lineNumber);const P=M.getWordAtPosition(A);return!(!P||P.endColumn!==A.column&&P.startColumn+1!==A.column||!isNaN(Number(P.word)))}constructor(T,M,A){this.leadingLineContent=T.getLineContent(M.lineNumber).substr(0,M.column-1),this.leadingWord=T.getWordUntilPosition(M),this.lineNumber=M.lineNumber,this.column=M.column,this.triggerOptions=A}}e.LineContext=v;function w(D,T,M){if(!T.getContextKeyValue(u.InlineCompletionContextKeys.inlineSuggestionVisible.key))return!0;const A=T.getContextKeyValue(u.InlineCompletionContextKeys.suppressSuggestions.key);return A!==void 0?!A:!D.getOption(62).suppressSuggestions}function S(D,T,M){if(!T.getContextKeyValue("inlineSuggestionVisible"))return!0;const A=T.getContextKeyValue(u.InlineCompletionContextKeys.suppressSuggestions.key);return A!==void 0?!A:!D.getOption(62).suppressSuggestions}let L=h=class{constructor(T,M,A,P,N,O,F,x,W){this._editor=T,this._editorWorkerService=M,this._clipboardService=A,this._telemetryService=P,this._logService=N,this._contextKeyService=O,this._configurationService=F,this._languageFeaturesService=x,this._envService=W,this._toDispose=new y.DisposableStore,this._triggerCharacterListener=new y.DisposableStore,this._triggerQuickSuggest=new d.TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new y.DisposableStore,this._onDidCancel=new E.Emitter,this._onDidTrigger=new E.Emitter,this._onDidSuggest=new E.Emitter,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new _.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let V=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{V=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{V=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(q=>{V||this._onCursorChange(q)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!V&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){(0,y.dispose)(this._triggerCharacterListener),(0,y.dispose)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(92)||!this._editor.hasModel()||!this._editor.getOption(122))return;const T=new Map;for(const A of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const P of A.triggerCharacters||[]){let N=T.get(P);if(!N){N=new Set;const O=(0,c.getSnippetSuggestSupport)();O&&N.add(O),T.set(P,N)}N.add(A)}const M=A=>{if(!S(this._editor,this._contextKeyService,this._configurationService)||v.shouldAutoTrigger(this._editor))return;if(!A){const O=this._editor.getPosition();A=this._editor.getModel().getLineContent(O.lineNumber).substr(0,O.column-1)}let P="";(0,m.isLowSurrogate)(A.charCodeAt(A.length-1))?(0,m.isHighSurrogate)(A.charCodeAt(A.length-2))&&(P=A.substr(A.length-2)):P=A.charAt(A.length-1);const N=T.get(P);if(N){const O=new Map;if(this._completionModel)for(const[F,x]of this._completionModel.getItemsByProvider())N.has(F)||O.set(F,x);this.trigger({auto:!0,triggerKind:1,triggerCharacter:P,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:N,providerItemsToReuse:O}})}};this._triggerCharacterListener.add(this._editor.onDidType(M)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>M()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(T=!1){this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:T}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(T){if(!this._editor.hasModel())return;const M=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!T.selection.isEmpty()||T.reason!==0&&T.reason!==3||T.source!=="keyboard"&&T.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&T.reason===0?(M.containsRange(this._currentSelection)||M.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&T.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){c.QuickSuggestionsOptions.isAllOff(this._editor.getOption(90))||this._editor.getOption(119).snippetsPreventQuickSuggestions&&C.SnippetController2.get(this._editor)?.isInSnippet()||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!v.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const T=this._editor.getModel(),M=this._editor.getPosition(),A=this._editor.getOption(90);if(!c.QuickSuggestionsOptions.isAllOff(A)){if(!c.QuickSuggestionsOptions.isAllOn(A)){T.tokenization.tokenizeIfCheap(M.lineNumber);const P=T.tokenization.getLineTokens(M.lineNumber),N=P.getStandardTokenType(P.findTokenIndexAtOffset(Math.max(M.column-1-1,0)));if(c.QuickSuggestionsOptions.valueFor(A,N)!=="on")return}w(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(T)&&this.trigger({auto:!0})}},this._editor.getOption(91)))}_refilterCompletionItems(){(0,r.assertType)(this._editor.hasModel()),(0,r.assertType)(this._triggerState!==void 0);const T=this._editor.getModel(),M=this._editor.getPosition(),A=new v(T,M,{...this._triggerState,refilter:!0});this._onNewContext(A)}trigger(T){if(!this._editor.hasModel())return;const M=this._editor.getModel(),A=new v(M,this._editor.getPosition(),T);this.cancel(T.retrigger),this._triggerState=T,this._onDidTrigger.fire({auto:T.auto,shy:T.shy??!1,position:this._editor.getPosition()}),this._context=A;let P={triggerKind:T.triggerKind??0};T.triggerCharacter&&(P={triggerKind:1,triggerCharacter:T.triggerCharacter}),this._requestToken=new k.CancellationTokenSource;const N=this._editor.getOption(113);let O=1;switch(N){case"top":O=0;break;case"bottom":O=2;break}const{itemKind:F,showDeprecated:x}=h.createSuggestFilter(this._editor),W=new c.CompletionOptions(O,T.completionOptions?.kindFilter??F,T.completionOptions?.providerFilter,T.completionOptions?.providerItemsToReuse,x),V=p.WordDistance.create(this._editorWorkerService,this._editor),q=(0,c.provideSuggestionItems)(this._languageFeaturesService.completionProvider,M,this._editor.getPosition(),W,P,this._requestToken.token);Promise.all([q,V]).then(async([H,z])=>{if(this._requestToken?.dispose(),!this._editor.hasModel())return;let U=T?.clipboardText;if(!U&&H.needsClipboard&&(U=await this._clipboardService.readText()),this._triggerState===void 0)return;const j=this._editor.getModel(),Y=new v(j,this._editor.getPosition(),T),G={...a.FuzzyScoreOptions.default,firstMatchCanBeWeak:!this._editor.getOption(119).matchOnWordStartOnly};if(this._completionModel=new g.CompletionModel(H.items,this._context.column,{leadingLineContent:Y.leadingLineContent,characterCountDelta:Y.column-this._context.column},z,this._editor.getOption(119),this._editor.getOption(113),G,U),this._completionDisposables.add(H.disposable),this._onNewContext(Y),this._reportDurationsTelemetry(H.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const K of H.items)K.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${K.provider._debugDisplayName}`,K.completion)}).catch(I.onUnexpectedError)}_reportDurationsTelemetry(T){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(T)}),this._logService.debug("suggest.durations.json",T)})}static createSuggestFilter(T){const M=new Set;T.getOption(113)==="none"&&M.add(27);const P=T.getOption(119);return P.showMethods||M.add(0),P.showFunctions||M.add(1),P.showConstructors||M.add(2),P.showFields||M.add(3),P.showVariables||M.add(4),P.showClasses||M.add(5),P.showStructs||M.add(6),P.showInterfaces||M.add(7),P.showModules||M.add(8),P.showProperties||M.add(9),P.showEvents||M.add(10),P.showOperators||M.add(11),P.showUnits||M.add(12),P.showValues||M.add(13),P.showConstants||M.add(14),P.showEnums||M.add(15),P.showEnumMembers||M.add(16),P.showKeywords||M.add(17),P.showWords||M.add(18),P.showColors||M.add(19),P.showFiles||M.add(20),P.showReferences||M.add(21),P.showColors||M.add(22),P.showFolders||M.add(23),P.showTypeParameters||M.add(24),P.showSnippets||M.add(27),P.showUsers||M.add(25),P.showIssues||M.add(26),{itemKind:M,showDeprecated:P.showDeprecated}}_onNewContext(T){if(this._context){if(T.lineNumber!==this._context.lineNumber){this.cancel();return}if((0,m.getLeadingWhitespace)(T.leadingLineContent)!==(0,m.getLeadingWhitespace)(this._context.leadingLineContent)){this.cancel();return}if(T.columnthis._context.leadingWord.startColumn){if(v.shouldAutoTrigger(this._editor)&&this._context){const A=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:A}})}return}if(T.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&T.leadingWord.word.length!==0){const M=new Map,A=new Set;for(const[P,N]of this._completionModel.getItemsByProvider())N.length>0&&N[0].container.incomplete?A.add(P):M.set(P,N);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:A,providerItemsToReuse:M}})}else{const M=this._completionModel.lineContext;let A=!1;if(this._completionModel.lineContext={leadingLineContent:T.leadingLineContent,characterCountDelta:T.column-this._context.column},this._completionModel.items.length===0){const P=v.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(P&&this._context.leadingWord.endColumn0,A&&T.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:T.triggerOptions,isFrozen:A})}}}}};e.SuggestModel=L,e.SuggestModel=L=h=ke([ce(1,b.IEditorWorkerService),ce(2,n.IClipboardService),ce(3,s.ITelemetryService),ce(4,i.ILogService),ce(5,t.IContextKeyService),ce(6,o.IConfigurationService),ce(7,l.ILanguageFeaturesService),ce(8,f.IEnvironmentService)],L)}),define(ne[294],se([1,0,46,13,18,8,6,140,2,16,54,19,143,15,75,9,4,20,221,135,405,685,3,24,12,7,62,155,684,622,437,623,839,63,48,129,5,35]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x){"use strict";var W;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerSuggestAction=e.SuggestController=void 0;const V=!1;class q{constructor(K,R){if(this._model=K,this._position=R,this._decorationOptions=x.ModelDecorationOptions.register({description:"suggest-line-suffix",stickiness:1}),K.getLineMaxColumn(R.lineNumber)!==R.column){const ie=K.getOffsetAt(R),ue=K.getPositionAt(ie+1);K.changeDecorations(he=>{this._marker&&he.removeDecoration(this._marker),this._marker=he.addDecoration(g.Range.fromPositions(R,ue),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(K=>{K.removeDecoration(this._marker),this._marker=void 0})}delta(K){if(this._model.isDisposed()||this._position.lineNumber!==K.lineNumber)return 0;if(this._marker){const R=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(R.getStartPosition())-this._model.getOffsetAt(K)}else return this._model.getLineMaxColumn(K.lineNumber)-K.column}}let H=class{static{W=this}static{this.ID="editor.contrib.suggestController"}static get(K){return K.getContribution(W.ID)}constructor(K,R,J,ie,ue,he,pe){this._memoryService=R,this._commandService=J,this._contextKeyService=ie,this._instantiationService=ue,this._logService=he,this._telemetryService=pe,this._lineSuffix=new _.MutableDisposable,this._toDispose=new _.DisposableStore,this._selectors=new z(ge=>ge.priority),this._onWillInsertSuggestItem=new y.Emitter,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=K,this.model=ue.createInstance(T.SuggestModel,this.editor),this._selectors.register({priority:0,select:(ge,X,B)=>this._memoryService.select(ge,X,B)});const ae=S.Context.InsertMode.bindTo(ie);ae.set(K.getOption(119).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>ae.set(K.getOption(119).insertMode))),this.widget=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>{const ge=this._instantiationService.createInstance(A.SuggestWidget,this.editor);this._toDispose.add(ge),this._toDispose.add(ge.onDidSelect(Z=>this._insertSuggestion(Z,0),this));const X=new D.CommitCharacterController(this.editor,ge,this.model,Z=>this._insertSuggestion(Z,2));this._toDispose.add(X);const B=S.Context.MakesTextEdit.bindTo(this._contextKeyService),$=S.Context.HasInsertAndReplaceRange.bindTo(this._contextKeyService),Q=S.Context.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,_.toDisposable)(()=>{B.reset(),$.reset(),Q.reset()})),this._toDispose.add(ge.onDidFocus(({item:Z})=>{const te=this.editor.getPosition(),re=Z.editStart.column,le=te.column;let me=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!Z.completion.additionalTextEdits&&!(Z.completion.insertTextRules&4)&&le-re===Z.completion.insertText.length&&(me=this.editor.getModel().getValueInRange({startLineNumber:te.lineNumber,startColumn:re,endLineNumber:te.lineNumber,endColumn:le})!==Z.completion.insertText),B.set(me),$.set(!s.Position.equals(Z.editInsertEnd,Z.editReplaceEnd)),Q.set(!!Z.provider.resolveCompletionItem||!!Z.completion.documentation||Z.completion.detail!==Z.completion.label)})),this._toDispose.add(ge.onDetailsKeyDown(Z=>{if(Z.toKeyCodeChord().equals(new m.KeyCodeChord(!0,!1,!1,!1,33))||b.isMacintosh&&Z.toKeyCodeChord().equals(new m.KeyCodeChord(!1,!1,!1,!0,33))){Z.stopPropagation();return}Z.toKeyCodeChord().isModifierKey()||this.editor.focus()})),ge})),this._overtypingCapturer=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>this._toDispose.add(new M.OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>this._toDispose.add(new L.SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(ue.createInstance(u.WordContextKey,K)),this._toDispose.add(this.model.onDidTrigger(ge=>{this.widget.value.showTriggered(ge.auto,ge.shy?250:50),this._lineSuffix.value=new q(this.editor.getModel(),ge.position)})),this._toDispose.add(this.model.onDidSuggest(ge=>{if(ge.triggerOptions.shy)return;let X=-1;for(const $ of this._selectors.itemsOrderedByPriorityDesc)if(X=$.select(this.editor.getModel(),this.editor.getPosition(),ge.completionModel.items),X!==-1)break;if(X===-1&&(X=0),this.model.state===0)return;let B=!1;if(ge.triggerOptions.auto){const $=this.editor.getOption(119);$.selectionMode==="never"||$.selectionMode==="always"?B=$.selectionMode==="never":$.selectionMode==="whenTriggerCharacter"?B=ge.triggerOptions.triggerKind!==1:$.selectionMode==="whenQuickSuggestion"&&(B=ge.triggerOptions.triggerKind===1&&!ge.triggerOptions.refilter)}this.widget.value.showSuggestions(ge.completionModel,X,ge.isFrozen,ge.triggerOptions.auto,B)})),this._toDispose.add(this.model.onDidCancel(ge=>{ge.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{V||(this.model.cancel(),this.model.clear())}));const ee=S.Context.AcceptSuggestionsOnEnter.bindTo(ie),de=()=>{const ge=this.editor.getOption(1);ee.set(ge==="on"||ge==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>de())),de()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(K,R){if(!K||!K.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const J=l.SnippetController2.get(this.editor);if(!J)return;this._onWillInsertSuggestItem.fire({item:K.item});const ie=this.editor.getModel(),ue=ie.getAlternativeVersionId(),{item:he}=K,pe=[],ae=new I.CancellationTokenSource;R&1||this.editor.pushUndoStop();const ee=this.getOverwriteInfo(he,!!(R&8));this._memoryService.memorize(ie,this.editor.getPosition(),he);const de=he.isResolved;let ge=-1,X=-1;if(Array.isArray(he.completion.additionalTextEdits)){this.model.cancel();const $=o.StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",he.completion.additionalTextEdits.map(Q=>{let Z=g.Range.lift(Q.range);if(Z.startLineNumber===he.position.lineNumber&&Z.startColumn>he.position.column){const te=this.editor.getPosition().column-he.position.column,re=te,le=g.Range.spansMultipleLines(Z)?0:te;Z=new g.Range(Z.startLineNumber,Z.startColumn+re,Z.endLineNumber,Z.endColumn+le)}return i.EditOperation.replaceMove(Z,Q.text)})),$.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!de){const $=new p.StopWatch;let Q;const Z=ie.onDidChangeContent(me=>{if(me.isFlush){ae.cancel(),Z.dispose();return}for(const Ce of me.changes){const ye=g.Range.getEndPosition(Ce.range);(!Q||s.Position.isBefore(ye,Q))&&(Q=ye)}}),te=R;R|=2;let re=!1;const le=this.editor.onWillType(()=>{le.dispose(),re=!0,te&2||this.editor.pushUndoStop()});pe.push(he.resolve(ae.token).then(()=>{if(!he.completion.additionalTextEdits||ae.token.isCancellationRequested)return;if(Q&&he.completion.additionalTextEdits.some(Ce=>s.Position.isBefore(Q,g.Range.getStartPosition(Ce.range))))return!1;re&&this.editor.pushUndoStop();const me=o.StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",he.completion.additionalTextEdits.map(Ce=>i.EditOperation.replaceMove(g.Range.lift(Ce.range),Ce.text))),me.restoreRelativeVerticalPositionOfCursor(this.editor),(re||!(te&2))&&this.editor.pushUndoStop(),!0}).then(me=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",$.elapsed(),me),X=me===!0?1:me===!1?0:-2}).finally(()=>{Z.dispose(),le.dispose()}))}let{insertText:B}=he.completion;if(he.completion.insertTextRules&4||(B=a.SnippetParser.escape(B)),this.model.cancel(),J.insert(B,{overwriteBefore:ee.overwriteBefore,overwriteAfter:ee.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(he.completion.insertTextRules&1),clipboardText:K.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),R&2||this.editor.pushUndoStop(),he.completion.command)if(he.completion.command.id===U.id)this.model.trigger({auto:!0,retrigger:!0});else{const $=new p.StopWatch;pe.push(this._commandService.executeCommand(he.completion.command.id,...he.completion.command.arguments?[...he.completion.command.arguments]:[]).catch(Q=>{he.completion.extensionId?(0,E.onUnexpectedExternalError)(Q):(0,E.onUnexpectedError)(Q)}).finally(()=>{ge=$.elapsed()}))}R&4&&this._alternatives.value.set(K,$=>{for(ae.cancel();ie.canUndo();){ue!==ie.getAlternativeVersionId()&&ie.undo(),this._insertSuggestion($,3|(R&8?8:0));break}}),this._alertCompletionItem(he),Promise.all(pe).finally(()=>{this._reportSuggestionAcceptedTelemetry(he,ie,de,ge,X,K.index,K.model.items),this.model.clear(),ae.dispose()})}_reportSuggestionAcceptedTelemetry(K,R,J,ie,ue,he,pe){if(Math.floor(Math.random()*100)===0)return;const ae=new Map;for(let X=0;X1?ee[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:K.extensionId?.value??"unknown",providerId:K.provider._debugDisplayName??"unknown",kind:K.completion.kind,basenameHash:(0,O.hash)((0,N.basename)(R.uri)).toString(16),languageId:R.getLanguageId(),fileExtension:(0,N.extname)(R.uri),resolveInfo:K.provider.resolveCompletionItem?J?1:0:-1,resolveDuration:K.resolveDuration,commandDuration:ie,additionalEditsAsync:ue,index:he,firstIndex:ge})}getOverwriteInfo(K,R){(0,n.assertType)(this.editor.hasModel());let J=this.editor.getOption(119).insertMode==="replace";R&&(J=!J);const ie=K.position.column-K.editStart.column,ue=(J?K.editReplaceEnd.column:K.editInsertEnd.column)-K.position.column,he=this.editor.getPosition().column-K.position.column,pe=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:ie+he,overwriteAfter:ue+pe}}_alertCompletionItem(K){if((0,k.isNonEmptyArray)(K.completion.additionalTextEdits)){const R=C.localize(1318,"Accepting '{0}' made {1} additional edits",K.textLabel,K.completion.additionalTextEdits.length);(0,d.alert)(R)}}triggerSuggest(K,R,J){this.editor.hasModel()&&(this.model.trigger({auto:R??!1,completionOptions:{providerFilter:K,kindFilter:J?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(K){if(!this.editor.hasModel())return;const R=this.editor.getPosition(),J=()=>{R.equals(this.editor.getPosition())&&this._commandService.executeCommand(K.fallback)},ie=ue=>{if(ue.completion.insertTextRules&4||ue.completion.additionalTextEdits)return!0;const he=this.editor.getPosition(),pe=ue.editStart.column,ae=he.column;return ae-pe!==ue.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:he.lineNumber,startColumn:pe,endLineNumber:he.lineNumber,endColumn:ae})!==ue.completion.insertText};y.Event.once(this.model.onDidTrigger)(ue=>{const he=[];y.Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{(0,_.dispose)(he),J()},void 0,he),this.model.onDidSuggest(({completionModel:pe})=>{if((0,_.dispose)(he),pe.items.length===0){J();return}const ae=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),pe.items),ee=pe.items[ae];if(!ie(ee)){J();return}this.editor.pushUndoStop(),this._insertSuggestion({index:ae,item:ee,model:pe},7)},void 0,he)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(R,0),this.editor.focus()}acceptSelectedSuggestion(K,R){const J=this.widget.value.getFocusedItem();let ie=0;K&&(ie|=4),R&&(ie|=8),this._insertSuggestion(J,ie)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(K){return this._selectors.register(K)}};e.SuggestController=H,e.SuggestController=H=W=ke([ce(1,r.ISuggestMemoryService),ce(2,f.ICommandService),ce(3,h.IContextKeyService),ce(4,v.IInstantiationService),ce(5,w.ILogService),ce(6,P.ITelemetryService)],H);class z{constructor(K){this.prioritySelector=K,this._items=new Array}register(K){if(this._items.indexOf(K)!==-1)throw new Error("Value is already registered");return this._items.push(K),this._items.sort((R,J)=>this.prioritySelector(J)-this.prioritySelector(R)),{dispose:()=>{const R=this._items.indexOf(K);R>=0&&this._items.splice(R,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class U extends t.EditorAction{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:U.id,label:C.localize(1319,"Trigger Suggest"),alias:"Trigger Suggest",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCompletionItemProvider,S.Context.Visible.toNegated()),kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(K,R,J){const ie=H.get(R);if(!ie)return;let ue;J&&typeof J=="object"&&J.auto===!0&&(ue=!0),ie.triggerSuggest(void 0,ue,void 0)}}e.TriggerSuggestAction=U,(0,t.registerEditorContribution)(H.ID,H,2),(0,t.registerEditorAction)(U);const j=190,Y=t.EditorCommand.bindToContribution(H.get);(0,t.registerEditorCommand)(new Y({id:"acceptSelectedSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion),handler(G){G.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus),weight:j},{primary:3,kbExpr:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus,S.Context.AcceptSuggestionsOnEnter,S.Context.MakesTextEdit),weight:j}],menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1320,"Insert"),group:"left",order:1,when:S.Context.HasInsertAndReplaceRange.toNegated()},{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1321,"Insert"),group:"left",order:1,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("insert"))},{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1322,"Replace"),group:"left",order:1,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("replace"))}]})),(0,t.registerEditorCommand)(new Y({id:"acceptAlternativeSelectedSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus,S.Context.HasFocusedSuggestion),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(G){G.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,group:"left",order:2,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("insert")),title:C.localize(1323,"Replace")},{menuId:S.suggestWidgetStatusbarMenu,group:"left",order:2,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("replace")),title:C.localize(1324,"Insert")}]})),f.CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,t.registerEditorCommand)(new Y({id:"hideSuggestWidget",precondition:S.Context.Visible,handler:G=>G.cancelSuggestWidget(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),(0,t.registerEditorCommand)(new Y({id:"selectNextSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectNextSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,t.registerEditorCommand)(new Y({id:"selectNextPageSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectNextPageSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),(0,t.registerEditorCommand)(new Y({id:"selectLastSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectLastSuggestion()})),(0,t.registerEditorCommand)(new Y({id:"selectPrevSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectPrevSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,t.registerEditorCommand)(new Y({id:"selectPrevPageSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectPrevPageSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),(0,t.registerEditorCommand)(new Y({id:"selectFirstSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectFirstSuggestion()})),(0,t.registerEditorCommand)(new Y({id:"focusSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion.negate()),handler:G=>G.focusSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),(0,t.registerEditorCommand)(new Y({id:"focusAndAcceptSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion.negate()),handler:G=>{G.focusSuggestion(),G.acceptSelectedSuggestion(!0,!1)}})),(0,t.registerEditorCommand)(new Y({id:"toggleSuggestionDetails",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion),handler:G=>G.toggleSuggestionDetails(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,group:"right",order:1,when:h.ContextKeyExpr.and(S.Context.DetailsVisible,S.Context.CanResolve),title:C.localize(1325,"Show Less")},{menuId:S.suggestWidgetStatusbarMenu,group:"right",order:1,when:h.ContextKeyExpr.and(S.Context.DetailsVisible.toNegated(),S.Context.CanResolve),title:C.localize(1326,"Show More")}]})),(0,t.registerEditorCommand)(new Y({id:"toggleExplainMode",precondition:S.Context.Visible,handler:G=>G.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),(0,t.registerEditorCommand)(new Y({id:"toggleSuggestionFocus",precondition:S.Context.Visible,handler:G=>G.toggleSuggestionFocus(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),(0,t.registerEditorCommand)(new Y({id:"insertBestCompletion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),u.WordContextKey.AtEnd,S.Context.Visible.toNegated(),L.SuggestAlternatives.OtherSuggestions.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:(G,K)=>{G.triggerSuggestAndAcceptBest((0,n.isObject)(K)?{fallback:"tab",...K}:{fallback:"tab"})},kbOpts:{weight:j,primary:2}})),(0,t.registerEditorCommand)(new Y({id:"insertNextSuggestion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),L.SuggestAlternatives.OtherSuggestions,S.Context.Visible.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:G=>G.acceptNextSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2}})),(0,t.registerEditorCommand)(new Y({id:"insertPrevSuggestion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),L.SuggestAlternatives.OtherSuggestions,S.Context.Visible.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:G=>G.acceptPrevSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:1026}})),(0,t.registerEditorAction)(class extends t.EditorAction{constructor(){super({id:"editor.action.resetSuggestSize",label:C.localize(1327,"Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(G,K){H.get(K)?.resetWidgetSize()}})}),define(ne[861],se([1,0,13,67,6,2,9,4,104,27,246,135,436,294]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestItemInfo=e.SuggestWidgetAdaptor=void 0;class i extends E.Disposable{get selectedItem(){return this._currentSuggestItemInfo}constructor(l,a,r){super(),this.editor=l,this.suggestControllerPreselector=a,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new I.Emitter),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(l.onKeyDown(C=>{C.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(l.onKeyUp(C=>{C.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const u=t.SuggestController.get(this.editor);if(u){this._register(u.registerSelector({priority:100,select:(h,v,w)=>{const S=this.editor.getModel();if(!S)return-1;const L=this.suggestControllerPreselector(),D=L?(0,p.singleTextRemoveCommonPrefix)(L,S):void 0;if(!D)return-1;const T=y.Position.lift(v),M=w.map((P,N)=>{const O=s.fromSuggestion(u,S,T,P,this.isShiftKeyPressed),F=(0,p.singleTextRemoveCommonPrefix)(O.toSingleTextEdit(),S),x=(0,p.singleTextEditAugments)(D,F);return{index:N,valid:x,prefixLength:F.text.length,suggestItem:P}}).filter(P=>P&&P.valid&&P.prefixLength>0),A=(0,k.findFirstMax)(M,(0,d.compareBy)(P=>P.prefixLength,d.numberComparator));return A?A.index:-1}}));let C=!1;const f=()=>{C||(C=!0,this._register(u.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(u.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(u.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(I.Event.once(u.model.onDidTrigger)(h=>{f()})),this._register(u.onWillInsertSuggestItem(h=>{const v=this.editor.getPosition(),w=this.editor.getModel();if(!v||!w)return;const S=s.fromSuggestion(u,w,v,h.item,this.isShiftKeyPressed);this.onWillAccept(S)}))}this.update(this._isActive)}update(l){const a=this.getSuggestItemInfo();(this._isActive!==l||!g(this._currentSuggestItemInfo,a))&&(this._isActive=l,this._currentSuggestItemInfo=a,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const l=t.SuggestController.get(this.editor);if(!l||!this.isSuggestWidgetVisible)return;const a=l.widget.value.getFocusedItem(),r=this.editor.getPosition(),u=this.editor.getModel();if(!(!a||!r||!u))return s.fromSuggestion(l,u,r,a.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){t.SuggestController.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){t.SuggestController.get(this.editor)?.forceRenderingAbove()}}e.SuggestWidgetAdaptor=i;class s{static fromSuggestion(l,a,r,u,C){let{insertText:f}=u.completion,h=!1;if(u.completion.insertTextRules&4){const w=new n.SnippetParser().parse(f);w.children.length<100&&o.SnippetSession.adjustWhitespace(a,r,!0,w),f=w.toString(),h=!0}const v=l.getOverwriteInfo(u,C);return new s(m.Range.fromPositions(r.delta(0,-v.overwriteBefore),r.delta(0,Math.max(v.overwriteAfter,0))),f,u.completion.kind,h)}constructor(l,a,r,u){this.range=l,this.insertText=a,this.completionItemKind=r,this.isSnippetText=u}equals(l){return this.range.equalsRange(l.range)&&this.insertText===l.insertText&&this.completionItemKind===l.completionItemKind&&this.isSnippetText===l.isSnippetText}toSelectedSuggestionInfo(){return new b.SelectedSuggestionInfo(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new _.SingleTextEdit(this.range,this.insertText)}}e.SuggestItemInfo=s;function g(c,l){return c===l?!0:!c||!l?!1:c.equals(l)}}),define(ne[295],se([1,0,630,46,14,18,2,21,65,189,19,214,112,9,79,17,245,679,269,283,860,861,3,61,137,24,28,12,7,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsController=void 0;let M=class extends y.Disposable{static{T=this}static{this.ID="editor.contrib.inlineCompletionsController"}static get(N){return N.getContribution(T.ID)}constructor(N,O,F,x,W,V,q,H,z,U){super(),this.editor=N,this._instantiationService=O,this._contextKeyService=F,this._configurationService=x,this._commandService=W,this._debounceService=V,this._languageFeaturesService=q,this._accessibilitySignalService=H,this._keybindingService=z,this._accessibilityService=U,this._editorObs=(0,o.observableCodeEditor)(this.editor),this._positions=(0,m.derived)(this,Y=>this._editorObs.selections.read(Y)?.map(G=>G.getEndPosition())??[new t.Position(1,1)]),this._suggestWidgetAdaptor=this._register(new u.SuggestWidgetAdaptor(this.editor,()=>(this._editorObs.forceUpdate(),this.model.get()?.selectedInlineCompletion.get()?.toSingleTextEdit(void 0)),Y=>this._editorObs.forceUpdate(G=>{this.model.get()?.handleSuggestAccepted(Y)}))),this._suggestWidgetSelectedItem=(0,m.observableFromEvent)(this,Y=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(G=>Y(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem),this._enabledInConfig=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=(0,m.observableFromEvent)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=(0,m.observableFromEvent)(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),this._enabled=(0,m.derived)(this,Y=>this._enabledInConfig.read(Y)&&(!this._isScreenReaderEnabled.read(Y)||!this._editorDictationInProgress.read(Y))),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model=(0,_.derivedDisposable)(this,Y=>{if(this._editorObs.isReadonly.read(Y))return;const G=this._editorObs.model.read(Y);return G?this._instantiationService.createInstance(r.InlineCompletionsModel,G,this._suggestWidgetSelectedItem,this._editorObs.versionId,this._positions,this._debounceValue,(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).preview),(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).previewMode),(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).mode),this._enabled):void 0}).recomputeInitiallyAndOnChange(this._store),this._ghostTexts=(0,m.derived)(this,Y=>this.model.read(Y)?.ghostTexts.read(Y)??[]),this._stablizedGhostTexts=A(this._ghostTexts,this._store),this._ghostTextWidgets=(0,b.mapObservableArrayCached)(this,this._stablizedGhostTexts,(Y,G)=>G.add(this._instantiationService.createInstance(c.GhostTextView,this.editor,{ghostText:Y,minReservedLineCount:(0,m.constObservable)(0),targetTextModel:this.model.map(K=>K?.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._playAccessibilitySignal=(0,m.observableSignal)(this),this._fontFamily=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._register(new l.InlineCompletionContextKeys(this._contextKeyService,this.model)),this._register((0,o.reactToChange)(this._editorObs.onDidType,(Y,G)=>{this._enabled.get()&&this.model.get()?.trigger()})),this._register(this._commandService.onDidExecuteCommand(Y=>{new Set([n.CoreEditingCommands.Tab.id,n.CoreEditingCommands.DeleteLeft.id,n.CoreEditingCommands.DeleteRight.id,g.inlineSuggestCommitId,"acceptSelectedSuggestion"]).has(Y.commandId)&&N.hasTextFocus()&&this._enabled.get()&&this._editorObs.forceUpdate(K=>{this.model.get()?.trigger(K)})})),this._register((0,o.reactToChange)(this._editorObs.selections,(Y,G)=>{G.some(K=>K.reason===3||K.source==="api")&&this.model.get()?.stop()})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||N.getOption(62).keepOnBlur||a.InlineSuggestionHintsContentWidget.dropDownVisible||(0,m.transaction)(Y=>{this.model.get()?.stop(Y)})})),this._register((0,m.autorun)(Y=>{const G=this.model.read(Y)?.state.read(Y);G?.suggestItem?G.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register((0,y.toDisposable)(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));const j=(0,b.derivedObservableWithCache)(this,(Y,G)=>{const R=this.model.read(Y)?.state.read(Y);return this._suggestWidgetSelectedItem.get()?G:R?.inlineCompletion?.semanticId});this._register((0,o.reactToChangeWithStore)((0,m.derived)(Y=>(this._playAccessibilitySignal.read(Y),j.read(Y),{})),async(Y,G,K)=>{const R=this.model.get(),J=R?.state.get();if(!J||!R)return;const ie=R.textModel.getLineContent(J.primaryGhostText.lineNumber);await(0,I.timeout)(50,(0,E.cancelOnDispose)(K)),await(0,m.waitForState)(this._suggestWidgetSelectedItem,p.isUndefined,()=>!1,(0,E.cancelOnDispose)(K)),await this._accessibilitySignalService.playSignal(h.AccessibilitySignal.inlineSuggestion),this.editor.getOption(8)&&this._provideScreenReaderUpdate(J.primaryGhostText.renderForScreenReader(ie))})),this._register(new a.InlineCompletionsHintsWidget(this.editor,this.model,this._instantiationService)),this._register((0,d.createStyleSheetFromObservable)((0,m.derived)(Y=>{const G=this._fontFamily.read(Y);return G===""||G==="default"?"":` -.monaco-editor .ghost-text-decoration, -.monaco-editor .ghost-text-decoration-preview, -.monaco-editor .ghost-text { - font-family: ${G}; -}`}))),this._register(this._configurationService.onDidChangeConfiguration(Y=>{Y.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(N){this._playAccessibilitySignal.trigger(N)}_provideScreenReaderUpdate(N){const O=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),F=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let x;!O&&F&&this.editor.getOption(150)&&(x=(0,C.localize)(1088,"Inspect this in the accessible view ({0})",F.getAriaLabel())),(0,k.alert)(x?N+", "+x:N)}shouldShowHoverAt(N){const O=this.model.get()?.primaryGhostText.get();return O?O.parts.some(F=>N.containsPosition(new t.Position(O.lineNumber,F.column))):!1}shouldShowHoverAtViewZone(N){return this._ghostTextWidgets.get()[0]?.ownsViewZone(N)??!1}};e.InlineCompletionsController=M,e.InlineCompletionsController=M=T=ke([ce(1,L.IInstantiationService),ce(2,S.IContextKeyService),ce(3,w.IConfigurationService),ce(4,v.ICommandService),ce(5,i.ILanguageFeatureDebounceService),ce(6,s.ILanguageFeaturesService),ce(7,h.IAccessibilitySignalService),ce(8,D.IKeybindingService),ce(9,f.IAccessibilityService)],M);function A(P,N){const O=(0,m.observableValue)("result",[]),F=[];return N.add((0,m.autorun)(x=>{const W=P.read(x);(0,m.transaction)(V=>{if(W.length!==F.length){F.length=W.length;for(let q=0;qq.set(W[H],V))})})),O}}),define(ne[862],se([1,0,21,92,15,20,245,269,295,155,3,29,28,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleAlwaysShowInlineSuggestionToolbar=e.HideInlineCompletion=e.AcceptInlineCompletion=e.AcceptNextLineOfInlineCompletion=e.AcceptNextWordOfInlineCompletion=e.TriggerInlineSuggestionAction=e.ShowPreviousInlineSuggestionAction=e.ShowNextInlineSuggestionAction=void 0;class i extends I.EditorAction{static{this.ID=y.showNextInlineSuggestionActionId}constructor(){super({id:i.ID,label:p.localize(1073,"Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(f,h){_.InlineCompletionsController.get(h)?.model.get()?.next()}}e.ShowNextInlineSuggestionAction=i;class s extends I.EditorAction{static{this.ID=y.showPreviousInlineSuggestionActionId}constructor(){super({id:s.ID,label:p.localize(1074,"Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(f,h){_.InlineCompletionsController.get(h)?.model.get()?.previous()}}e.ShowPreviousInlineSuggestionAction=s;class g extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:p.localize(1075,"Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:E.EditorContextKeys.writable})}async run(f,h){const v=_.InlineCompletionsController.get(h);await(0,k.asyncTransaction)(async w=>{await v?.model.get()?.triggerExplicitly(w),v?.playAccessibilitySignal(w)})}}e.TriggerInlineSuggestionAction=g;class c extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:p.localize(1076,"Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible)},menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1077,"Accept Word"),group:"primary",order:2}]})}async run(f,h){const v=_.InlineCompletionsController.get(h);await v?.model.get()?.acceptNextWord(v.editor)}}e.AcceptNextWordOfInlineCompletion=c;class l extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:p.localize(1078,"Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1079,"Accept Line"),group:"secondary",order:2}]})}async run(f,h){const v=_.InlineCompletionsController.get(h);await v?.model.get()?.acceptNextLine(v.editor)}}e.AcceptNextLineOfInlineCompletion=l;class a extends I.EditorAction{constructor(){super({id:y.inlineSuggestCommitId,label:p.localize(1080,"Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:m.InlineCompletionContextKeys.inlineSuggestionVisible,menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1081,"Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:t.ContextKeyExpr.and(m.InlineCompletionContextKeys.inlineSuggestionVisible,E.EditorContextKeys.tabMovesFocus.toNegated(),m.InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize,b.Context.Visible.toNegated(),E.EditorContextKeys.hoverFocused.toNegated())}})}async run(f,h){const v=_.InlineCompletionsController.get(h);v&&(v.model.get()?.accept(v.editor),v.editor.focus())}}e.AcceptInlineCompletion=a;class r extends I.EditorAction{static{this.ID="editor.action.inlineSuggest.hide"}constructor(){super({id:r.ID,label:p.localize(1082,"Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:m.InlineCompletionContextKeys.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(f,h){const v=_.InlineCompletionsController.get(h);(0,d.transaction)(w=>{v?.model.get()?.stop(w)})}}e.HideInlineCompletion=r;class u extends n.Action2{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:u.ID,title:p.localize(1083,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:n.MenuId.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:t.ContextKeyExpr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(f,h){const v=f.get(o.IConfigurationService),S=v.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";v.updateValue("editor.inlineSuggest.showToolbar",S)}}e.ToggleAlwaysShowInlineSuggestionToolbar=u}),define(ne[863],se([1,0,5,57,2,21,4,43,84,295,283,120,3,61,7,59,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsHoverParticipant=e.InlineCompletionsHover=void 0;class c{constructor(r,u,C){this.owner=r,this.range=u,this.controller=C}isValidForHoverAnchor(r){return r.type===1&&this.range.startColumn<=r.range.startColumn&&this.range.endColumn>=r.range.endColumn}}e.InlineCompletionsHover=c;let l=class{constructor(r,u,C,f,h,v){this._editor=r,this._languageService=u,this._openerService=C,this.accessibilityService=f,this._instantiationService=h,this._telemetryService=v,this.hoverOrdinal=4}suggestHoverAnchor(r){const u=b.InlineCompletionsController.get(this._editor);if(!u)return null;const C=r.target;if(C.type===8){const f=C.detail;if(u.shouldShowHoverAtViewZone(f.viewZoneId))return new _.HoverForeignElementAnchor(1e3,this,y.Range.fromPositions(this._editor.getModel().validatePosition(f.positionBefore||f.position)),r.event.posx,r.event.posy,!1)}return C.type===7&&u.shouldShowHoverAt(C.range)?new _.HoverForeignElementAnchor(1e3,this,C.range,r.event.posx,r.event.posy,!1):C.type===6&&C.detail.mightBeForeignElement&&u.shouldShowHoverAt(C.range)?new _.HoverForeignElementAnchor(1e3,this,C.range,r.event.posx,r.event.posy,!1):null}computeSync(r,u){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const C=b.InlineCompletionsController.get(this._editor);return C&&C.shouldShowHoverAt(r.range)?[new c(this,r.range,C)]:[]}renderHoverParts(r,u){const C=new I.DisposableStore,f=u[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&C.add(this.renderScreenReaderText(r,f));const h=f.controller.model.get(),v=this._instantiationService.createInstance(p.InlineSuggestionHintsContentWidget,this._editor,!1,(0,E.constObservable)(null),h.selectedInlineCompletionIndex,h.inlineCompletionsCount,h.activeCommands),w=v.getDomNode();r.fragment.appendChild(w),h.triggerExplicitly(),C.add(v);const S={hoverPart:f,hoverElement:w,dispose(){C.dispose()}};return new _.RenderedHoverParts([S])}renderScreenReaderText(r,u){const C=new I.DisposableStore,f=d.$,h=f("div.hover-row.markdown-hover"),v=d.append(h,f("div.hover-contents",{"aria-live":"assertive"})),w=C.add(new n.MarkdownRenderer({editor:this._editor},this._languageService,this._openerService)),S=L=>{C.add(w.onDidRenderAsync(()=>{v.className="hover-contents code-hover-contents",r.onContentsChanged()}));const D=o.localize(1089,"Suggestion:"),T=C.add(w.render(new k.MarkdownString().appendText(D).appendCodeblock("text",L)));v.replaceChildren(T.element)};return C.add((0,E.autorun)(L=>{const D=u.controller.model.read(L)?.primaryGhostText.read(L);if(D){const T=this._editor.getModel().getLineContent(D.lineNumber);S(D.renderForScreenReader(T))}else d.reset(v)})),r.fragment.appendChild(h),C}};e.InlineCompletionsHoverParticipant=l,e.InlineCompletionsHoverParticipant=l=ke([ce(1,m.ILanguageService),ce(2,s.IOpenerService),ce(3,t.IAccessibilityService),ce(4,i.IInstantiationService),ce(5,g.ITelemetryService)],l)}),define(ne[864],se([1,0,15,84,862,863,617,295,380,29]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(m.InlineCompletionsController.ID,m.InlineCompletionsController,3),(0,d.registerEditorAction)(I.TriggerInlineSuggestionAction),(0,d.registerEditorAction)(I.ShowNextInlineSuggestionAction),(0,d.registerEditorAction)(I.ShowPreviousInlineSuggestionAction),(0,d.registerEditorAction)(I.AcceptNextWordOfInlineCompletion),(0,d.registerEditorAction)(I.AcceptNextLineOfInlineCompletion),(0,d.registerEditorAction)(I.AcceptInlineCompletion),(0,d.registerEditorAction)(I.HideInlineCompletion),(0,b.registerAction2)(I.ToggleAlwaysShowInlineSuggestionToolbar),k.HoverParticipantRegistry.register(E.InlineCompletionsHoverParticipant),_.AccessibleViewRegistry.register(new y.InlineCompletionsAccessibleView)}),define(ne[438],se([1,0,5,347,2,21,65,15,112,125,139,88,70,35,434,379,294,7,521]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsWidget=e.InlineEdit=void 0;class l{constructor(v,w,S){this.range=v,this.newLines=w,this.changes=S}}e.InlineEdit=l;let a=class extends I.Disposable{constructor(v,w,S,L){super(),this._editor=v,this._edit=w,this._userPrompt=S,this._instantiationService=L,this._editorObs=(0,_.observableCodeEditor)(this._editor),this._elements=(0,d.h)("div.inline-edits-widget",{style:{position:"absolute",overflow:"visible",top:"0px",left:"0px"}},[(0,d.h)("div@editorContainer",{style:{position:"absolute",top:"0px",left:"0px",width:"500px",height:"500px"}},[(0,d.h)("div.toolbar@toolbar",{style:{position:"absolute",top:"-25px",left:"0px"}}),(0,d.h)("div.promptEditor@promptEditor",{style:{position:"absolute",top:"-25px",left:"80px",width:"300px",height:"22px"}}),(0,d.h)("div.preview@editor",{style:{position:"absolute",top:"0px",left:"0px"}})]),(0,d.svgElem)("svg",{style:{overflow:"visible",pointerEvents:"none"}},[(0,d.svgElem)("defs",[(0,d.svgElem)("linearGradient",{id:"Gradient2",x1:"0",y1:"0",x2:"1",y2:"0"},[(0,d.svgElem)("stop",{offset:"0%",class:"gradient-stop"}),(0,d.svgElem)("stop",{offset:"100%",class:"gradient-stop"})])]),(0,d.svgElem)("path@path",{d:"",fill:"url(#Gradient2)"})])]),this._previewTextModel=this._register(this._instantiationService.createInstance(t.TextModel,"",o.PLAINTEXT_LANGUAGE_ID,t.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=(0,E.derived)(T=>{const M=this._edit.read(T);M&&this._previewTextModel.setValue(M.newLines.join(` -`))}).recomputeInitiallyAndOnChange(this._store),this._promptTextModel=this._register(this._instantiationService.createInstance(t.TextModel,"",o.PLAINTEXT_LANGUAGE_ID,t.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._promptEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._elements.promptEditor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,placeholder:"Describe the change you want...",fontFamily:k.DEFAULT_FONT_FAMILY},{contributions:m.EditorExtensionsRegistry.getSomeEditorContributions([g.SuggestController.ID,s.PlaceholderTextContribution.ID,i.ContextMenuController.ID]),isSimpleWidget:!0},this._editor)),this._previewEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._elements.editor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0},{contributions:[]},this._editor)),this._previewEditorObs=(0,_.observableCodeEditor)(this._previewEditor),this._decorations=(0,E.derived)(this,T=>{this._setText.read(T);const M=this._edit.read(T)?.changes;if(!M)return[];const A=[],P=[];if(M.length===1&&M[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return[];for(const N of M)if(N.original.isEmpty||A.push({range:N.original.toInclusiveRange(),options:p.diffLineDeleteDecorationBackgroundWithIndicator}),N.modified.isEmpty||P.push({range:N.modified.toInclusiveRange(),options:p.diffLineAddDecorationBackgroundWithIndicator}),N.modified.isEmpty||N.original.isEmpty)N.original.isEmpty||A.push({range:N.original.toInclusiveRange(),options:p.diffWholeLineDeleteDecoration}),N.modified.isEmpty||P.push({range:N.modified.toInclusiveRange(),options:p.diffWholeLineAddDecoration});else for(const O of N.innerChanges||[])N.original.contains(O.originalRange.startLineNumber)&&A.push({range:O.originalRange,options:O.originalRange.isEmpty()?p.diffDeleteDecorationEmpty:p.diffDeleteDecoration}),N.modified.contains(O.modifiedRange.startLineNumber)&&P.push({range:O.modifiedRange,options:O.modifiedRange.isEmpty()?p.diffAddDecorationEmpty:p.diffAddDecoration});return P}),this._layout1=(0,E.derived)(this,T=>{const M=this._editor.getModel(),A=this._edit.read(T);if(!A)return null;const P=A.range;let N=0;for(let x=P.startLineNumber;x{const M=this._edit.read(T);if(!M)return null;const A=M.range,P=this._editorObs.scrollLeft.read(T),N=this._layout1.read(T).left+20-P,O=this._editor.getTopForLineNumber(A.startLineNumber)-this._editorObs.scrollTop.read(T),F=this._editor.getTopForLineNumber(A.endLineNumberExclusive)-this._editorObs.scrollTop.read(T),x=new u(N,O),W=new u(N,F),V=F-O,q=50,H=this._editor.getOption(67)*M.newLines.length,z=V-H,U=new u(N+q,O+z/2),j=new u(N+q,F-z/2);return{topCode:x,bottomCode:W,codeHeight:V,topEdit:U,bottomEdit:j,editHeight:H}});const D=(0,E.derived)(this,T=>this._edit.read(T)!==void 0||this._userPrompt.read(T)!==void 0);this._register((0,n.applyStyle)(this._elements.root,{display:(0,E.derived)(this,T=>D.read(T)?"block":"none")})),this._register((0,n.appendRemoveOnDispose)(this._editor.getDomNode(),this._elements.root)),this._register((0,_.observableCodeEditor)(v).createOverlayWidget({domNode:this._elements.root,position:(0,E.constObservable)(null),allowEditorOverflow:!1,minContentWidthInPx:(0,E.derived)(T=>{const M=this._layout1.read(T)?.left;if(M===void 0)return 0;const A=this._previewEditorObs.contentWidth.read(T);return M+A})})),this._previewEditor.setModel(this._previewTextModel),this._register(this._previewEditorObs.setDecorations(this._decorations)),this._register((0,E.autorun)(T=>{const M=this._layout.read(T);if(!M)return;const{topCode:A,bottomCode:P,topEdit:N,bottomEdit:O,editHeight:F}=M,x=10,W=0,V=40,q=new C().moveTo(A).lineTo(A.deltaX(x)).curveTo(A.deltaX(x+V),N.deltaX(-V-W),N.deltaX(-W)).lineTo(N).lineTo(O).lineTo(O.deltaX(-W)).curveTo(O.deltaX(-V-W),P.deltaX(x+V),P.deltaX(x)).lineTo(P).build();this._elements.path.setAttribute("d",q),this._elements.editorContainer.style.top=`${N.y}px`,this._elements.editorContainer.style.left=`${N.x}px`,this._elements.editorContainer.style.height=`${F}px`;const H=this._previewEditorObs.contentWidth.read(T);this._previewEditor.layout({height:F,width:H})})),this._promptEditor.setModel(this._promptTextModel),this._promptEditor.layout(),this._register(f(r(this._userPrompt,T=>T??"",T=>T),(0,_.observableCodeEditor)(this._promptEditor).value)),this._register((0,E.autorun)(T=>{const M=(0,_.observableCodeEditor)(this._promptEditor).isFocused.read(T);this._elements.root.classList.toggle("focused",M)}))}};e.InlineEditsWidget=a,e.InlineEditsWidget=a=ke([ce(3,c.IInstantiationService)],a);function r(h,v,w){return(0,y.derivedWithSetter)(void 0,S=>v(h.read(S)),(S,L)=>h.set(w(S),L))}class u{constructor(v,w){this.x=v,this.y=w}deltaX(v){return new u(this.x+v,this.y)}}class C{constructor(){this._data=""}moveTo(v){return this._data+=`M ${v.x} ${v.y} `,this}lineTo(v){return this._data+=`L ${v.x} ${v.y} `,this}curveTo(v,w,S){return this._data+=`C ${v.x} ${v.y} ${w.x} ${w.y} ${S.x} ${S.y} `,this}build(){return this._data}}function f(h,v){const w=new I.DisposableStore;return w.add((0,E.autorun)(S=>{const L=h.read(S);v.set(L,void 0)})),w.add((0,E.autorun)(S=>{const L=v.read(S);h.set(L,void 0)})),w}}),define(ne[865],se([1,0,14,18,102,8,2,21,65,22,215,55,27,17,51,378,438]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsModel=void 0;let l=class extends y.Disposable{static{c=this}static{this._modelId=0}static _createUniqueUri(){return b.URI.from({scheme:"inline-edits",path:new Date().toString()+String(c._modelId++)})}constructor(C,f,h,v,w,S,L){super(),this.textModel=C,this._textModelVersionId=f,this._selection=h,this._debounceValue=v,this.languageFeaturesService=w,this._diffProviderFactoryService=S,this._modelService=L,this._forceUpdateExplicitlySignal=(0,m.observableSignal)(this),this._selectedInlineCompletionId=(0,m.observableValue)(this,void 0),this._isActive=(0,m.observableValue)(this,!1),this._originalModel=(0,_.derivedDisposable)(()=>this._modelService.createModel("",null,c._createUniqueUri())).keepObserved(this._store),this._modifiedModel=(0,_.derivedDisposable)(()=>this._modelService.createModel("",null,c._createUniqueUri())).keepObserved(this._store),this._pinnedRange=new r(this.textModel,this._textModelVersionId),this.isPinned=this._pinnedRange.range.map(D=>!!D),this.userPrompt=(0,m.observableValue)(this,void 0),this.inlineEdit=(0,m.derived)(this,D=>this._inlineEdit.read(D)?.promiseResult.read(D)?.data),this._inlineEdit=(0,m.derived)(this,D=>{const T=this.selectedInlineEdit.read(D);if(!T)return;const M=T.inlineCompletion.range;if(T.inlineCompletion.insertText.trim()==="")return;let A=T.inlineCompletion.insertText.split(/\r\n|\r|\n/);function P(x){const W=x[0].match(/^\s*/)?.[0]??"";return x.map(V=>V.replace(new RegExp("^"+W),""))}A=P(A);let O=this.textModel.getValueInRange(M).split(/\r\n|\r|\n/);O=P(O),this._originalModel.get().setValue(O.join(` -`)),this._modifiedModel.get().setValue(A.join(` -`));const F=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return m.ObservablePromise.fromFn(async()=>{const x=await F.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},k.CancellationToken.None);if(!x.identical)return new g.InlineEdit(n.LineRange.fromRangeInclusive(M),P(A),x.changes)})}),this._fetchStore=this._register(new y.DisposableStore),this._inlineEditsFetchResult=(0,m.disposableObservableValue)(this,void 0),this._inlineEdits=(0,m.derivedOpts)({owner:this,equalsFn:I.structuralEquals},D=>this._inlineEditsFetchResult.read(D)?.completions.map(T=>new a(T))??[]),this._fetchInlineEditsPromise=(0,m.derivedHandleChanges)({owner:this,createEmptyChangeSummary:()=>({inlineCompletionTriggerKind:o.InlineCompletionTriggerKind.Automatic}),handleChange:(D,T)=>(D.didChange(this._forceUpdateExplicitlySignal)&&(T.inlineCompletionTriggerKind=o.InlineCompletionTriggerKind.Explicit),!0)},async(D,T)=>{this._fetchStore.clear(),this._forceUpdateExplicitlySignal.read(D),this._textModelVersionId.read(D);function M(F,x){return x(F)}const A=this._pinnedRange.range.read(D)??M(this._selection.read(D),F=>F.isEmpty()?void 0:F);if(!A){this._inlineEditsFetchResult.set(void 0,void 0),this.userPrompt.set(void 0,void 0);return}const P={triggerKind:T.inlineCompletionTriggerKind,selectedSuggestionInfo:void 0,userPrompt:this.userPrompt.read(D)},N=(0,k.cancelOnDispose)(this._fetchStore);await(0,d.timeout)(200,N);const O=await(0,s.provideInlineCompletions)(this.languageFeaturesService.inlineCompletionsProvider,A,this.textModel,P,N);N.isCancellationRequested||this._inlineEditsFetchResult.set(O,void 0)}),this._filteredInlineEditItems=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},D=>this._inlineEdits.read(D)),this.selectedInlineCompletionIndex=(0,m.derived)(this,D=>{const T=this._selectedInlineCompletionId.read(D),M=this._filteredInlineEditItems.read(D),A=this._selectedInlineCompletionId===void 0?-1:M.findIndex(P=>P.semanticId===T);return A===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):A}),this.selectedInlineEdit=(0,m.derived)(this,D=>{const T=this._filteredInlineEditItems.read(D),M=this.selectedInlineCompletionIndex.read(D);return T[M]}),this._register((0,m.recomputeInitiallyAndOnChange)(this._fetchInlineEditsPromise))}async triggerExplicitly(C){(0,m.subtransaction)(C,f=>{this._isActive.set(!0,f),this._forceUpdateExplicitlySignal.trigger(f)}),await this._fetchInlineEditsPromise.get()}stop(C){(0,m.subtransaction)(C,f=>{this.userPrompt.set(void 0,f),this._isActive.set(!1,f),this._inlineEditsFetchResult.set(void 0,f),this._pinnedRange.setRange(void 0,f)})}async _deltaSelectedInlineCompletionIndex(C){await this.triggerExplicitly();const f=this._filteredInlineEditItems.get()||[];if(f.length>0){const h=(this.selectedInlineCompletionIndex.get()+C+f.length)%f.length;this._selectedInlineCompletionId.set(f[h].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(C){if(C.getModel()!==this.textModel)throw new E.BugIndicatingError;const f=this.selectedInlineEdit.get();f&&(C.pushUndoStop(),C.executeEdits("inlineSuggestion.accept",[f.inlineCompletion.toSingleTextEdit().toSingleEditOperation()]),this.stop())}};e.InlineEditsModel=l,e.InlineEditsModel=l=c=ke([ce(4,t.ILanguageFeaturesService),ce(5,p.IDiffProviderFactoryService),ce(6,i.IModelService)],l);class a{constructor(C){this.inlineCompletion=C,this.semanticId=this.inlineCompletion.hash()}}class r extends y.Disposable{constructor(C,f){super(),this._textModel=C,this._versionId=f,this._decorations=(0,m.observableValue)(this,[]),this.range=(0,m.derived)(this,h=>{this._versionId.read(h);const v=this._decorations.read(h)[0];return v?this._textModel.getDecorationRange(v)??null:null}),this._register((0,y.toDisposable)(()=>{this._textModel.deltaDecorations(this._decorations.get(),[])}))}setRange(C,f){this._decorations.set(this._textModel.deltaDecorations(this._decorations.get(),C?[{range:C,options:{description:"trackedRange"}}]:[]),f)}}}),define(ne[439],se([1,0,2,21,65,112,171,23,79,17,390,865,438,28,12,7,397]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsController=void 0;let l=class extends d.Disposable{static{c=this}static{this.ID="editor.contrib.inlineEditsController"}static get(u){return u.getContribution(c.ID)}constructor(u,C,f,h,v,w){super(),this.editor=u,this._instantiationService=C,this._contextKeyService=f,this._debounceService=h,this._languageFeaturesService=v,this._configurationService=w,this._enabled=(0,g.observableConfigValue)("editor.inlineEdits.enabled",!1,this._configurationService),this._editorObs=(0,E.observableCodeEditor)(this.editor),this._selection=(0,k.derived)(this,S=>this._editorObs.cursorSelection.read(S)??new m.Selection(1,1,1,1)),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineEditsDebounce",{min:50,max:50}),this.model=(0,I.derivedDisposable)(this,S=>{if(!this._enabled.read(S)||this._editorObs.isReadonly.read(S))return;const L=this._editorObs.model.read(S);return L?this._instantiationService.createInstance((0,y.readHotReloadableExport)(n.InlineEditsModel,S),L,this._editorObs.versionId,this._selection,this._debounceValue):void 0}),this._hadInlineEdit=(0,k.derivedObservableWithCache)(this,(S,L)=>L||this.model.read(S)?.inlineEdit.read(S)!==void 0),this._widget=(0,I.derivedDisposable)(this,S=>{if(this._hadInlineEdit.read(S))return this._instantiationService.createInstance((0,y.readHotReloadableExport)(o.InlineEditsWidget,S),this.editor,this.model.map((L,D)=>L?.inlineEdit.read(D)),a(L=>this.model.read(L)?.userPrompt??(0,k.observableValue)("empty","")))}),this._register((0,g.bindContextKey)(p.inlineEditVisible,this._contextKeyService,S=>!!this.model.read(S)?.inlineEdit.read(S))),this._register((0,g.bindContextKey)(p.isPinnedContextKey,this._contextKeyService,S=>!!this.model.read(S)?.isPinned.read(S))),this.model.recomputeInitiallyAndOnChange(this._store),this._widget.recomputeInitiallyAndOnChange(this._store)}};e.InlineEditsController=l,e.InlineEditsController=l=c=ke([ce(1,s.IInstantiationService),ce(2,i.IContextKeyService),ce(3,_.ILanguageFeatureDebounceService),ce(4,b.ILanguageFeaturesService),ce(5,t.IConfigurationService)],l);function a(r){return(0,I.derivedWithSetter)(void 0,u=>r(u).read(u),(u,C)=>{r(void 0).set(u,C)})}}),define(ne[866],se([1,0,26,21,92,15,125,20,390,439,3,29,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HideInlineEdit=e.AcceptInlineEdit=e.TriggerInlineEditAction=e.ShowPreviousInlineEditAction=e.ShowNextInlineEditAction=void 0;function t(a){return{label:a.value,alias:a.original}}class i extends E.EditorAction{static{this.ID=_.showNextInlineEditActionId}constructor(){super({id:i.ID,...t(p.localize2(1096,"Show Next Inline Edit")),precondition:o.ContextKeyExpr.and(m.EditorContextKeys.writable,_.inlineEditVisible),kbOpts:{weight:100,primary:606}})}async run(r,u){b.InlineEditsController.get(u)?.model.get()?.next()}}e.ShowNextInlineEditAction=i;class s extends E.EditorAction{static{this.ID=_.showPreviousInlineEditActionId}constructor(){super({id:s.ID,...t(p.localize2(1097,"Show Previous Inline Edit")),precondition:o.ContextKeyExpr.and(m.EditorContextKeys.writable,_.inlineEditVisible),kbOpts:{weight:100,primary:604}})}async run(r,u){b.InlineEditsController.get(u)?.model.get()?.previous()}}e.ShowPreviousInlineEditAction=s;class g extends E.EditorAction{constructor(){super({id:"editor.action.inlineEdits.trigger",...t(p.localize2(1098,"Trigger Inline Edit")),precondition:m.EditorContextKeys.writable})}async run(r,u){const C=b.InlineEditsController.get(u);await(0,I.asyncTransaction)(async f=>{await C?.model.get()?.triggerExplicitly(f)})}}e.TriggerInlineEditAction=g;class c extends E.EditorAction{constructor(){super({id:_.inlineEditAcceptId,...t(p.localize2(1099,"Accept Inline Edit")),precondition:_.inlineEditVisible,menuOpts:{menuId:n.MenuId.InlineEditsActions,title:p.localize(1095,"Accept Inline Edit"),group:"primary",order:1,icon:d.Codicon.check},kbOpts:{primary:2058,weight:2e4,kbExpr:_.inlineEditVisible}})}async run(r,u){u instanceof y.EmbeddedCodeEditorWidget&&(u=u.getParentEditor());const C=b.InlineEditsController.get(u);C&&(C.model.get()?.accept(C.editor),C.editor.focus())}}e.AcceptInlineEdit=c;class l extends E.EditorAction{static{this.ID="editor.action.inlineEdits.hide"}constructor(){super({id:l.ID,...t(p.localize2(1100,"Hide Inline Edit")),precondition:_.inlineEditVisible,kbOpts:{weight:100,primary:9}})}async run(r,u){const C=b.InlineEditsController.get(u);(0,k.transaction)(f=>{C?.model.get()?.stop(f)})}}e.HideInlineEdit=l}),define(ne[867],se([1,0,15,866,439]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.InlineEditsController.ID,I.InlineEditsController,3),(0,d.registerEditorAction)(k.TriggerInlineEditAction),(0,d.registerEditorAction)(k.ShowNextInlineEditAction),(0,d.registerEditorAction)(k.ShowPreviousInlineEditAction),(0,d.registerEditorAction)(k.AcceptInlineEdit),(0,d.registerEditorAction)(k.HideInlineEdit)}),define(ne[868],se([1,0,18,82,53,2,34,4,130,17,342,155,405,437,343,117]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestInlineCompletions=void 0;class g{constructor(r,u,C,f,h,v){this.range=r,this.insertText=u,this.filterText=C,this.additionalTextEdits=f,this.command=h,this.completion=v}}let c=class extends E.RefCountedDisposable{constructor(r,u,C,f,h,v){super(h.disposable),this.model=r,this.line=u,this.word=C,this.completionModel=f,this._suggestMemoryService=v}canBeReused(r,u,C){return this.model===r&&this.line===u&&this.word.word.length>0&&this.word.startColumn===C.startColumn&&this.word.endColumn=0&&w.resolve(d.CancellationToken.None)}return r}};c=ke([ce(5,o.ISuggestMemoryService)],c);let l=class extends E.Disposable{constructor(r,u,C,f){super(),this._languageFeatureService=r,this._clipboardService=u,this._suggestMemoryService=C,this._editorService=f,this._store.add(r.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(r,u,C,f){if(C.selectedSuggestionInfo)return;let h;for(const A of this._editorService.listCodeEditors())if(A.getModel()===r){h=A;break}if(!h)return;const v=h.getOption(90);if(n.QuickSuggestionsOptions.isAllOff(v))return;r.tokenization.tokenizeIfCheap(u.lineNumber);const w=r.tokenization.getLineTokens(u.lineNumber),S=w.getStandardTokenType(w.findTokenIndexAtOffset(Math.max(u.column-1-1,0)));if(n.QuickSuggestionsOptions.valueFor(v,S)!=="inline")return;let L=r.getWordAtPosition(u),D;if(L?.word||(D=this._getTriggerCharacterInfo(r,u)),!L?.word&&!D||(L||(L=r.getWordUntilPosition(u)),L.endColumn!==u.column))return;let T;const M=r.getValueInRange(new m.Range(u.lineNumber,1,u.lineNumber,u.column));if(!D&&this._lastResult?.canBeReused(r,u.lineNumber,L)){const A=new p.LineContext(M,u.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=A,this._lastResult.acquire(),T=this._lastResult}else{const A=await(0,n.provideSuggestionItems)(this._languageFeatureService.completionProvider,r,u,new n.CompletionOptions(void 0,t.SuggestModel.createSuggestFilter(h).itemKind,D?.providers),D&&{triggerKind:1,triggerCharacter:D.ch},f);let P;A.needsClipboard&&(P=await this._clipboardService.readText());const N=new p.CompletionModel(A.items,u.column,new p.LineContext(M,0),i.WordDistance.None,h.getOption(119),h.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},P);T=new c(r,u.lineNumber,L,N,A,this._suggestMemoryService)}return this._lastResult=T,T}handleItemDidShow(r,u){u.completion.resolve(d.CancellationToken.None)}freeInlineCompletions(r){r.release()}_getTriggerCharacterInfo(r,u){const C=r.getValueInRange(m.Range.fromPositions({lineNumber:u.lineNumber,column:u.column-1},u)),f=new Set;for(const h of this._languageFeatureService.completionProvider.all(r))h.triggerCharacters?.includes(C)&&f.add(h);if(f.size!==0)return{providers:f,ch:C}}};e.SuggestInlineCompletions=l,e.SuggestInlineCompletions=l=ke([ce(0,b.ILanguageFeaturesService),ce(1,s.IClipboardService),ce(2,o.ISuggestMemoryService),ce(3,y.ICodeEditorService)],l),(0,_.registerEditorFeature)(l)}),define(ne[440],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IWorkspaceTrustManagementService=void 0,e.IWorkspaceTrustManagementService=(0,d.createDecorator)("workspaceTrustManagementService")}),define(ne[869],se([1,0,14,26,57,2,16,11,15,37,35,328,100,43,375,84,217,766,3,28,7,59,66,71,440,535]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowExcludeOptions=e.DisableHighlightingOfNonBasicAsciiCharactersAction=e.DisableHighlightingOfInvisibleCharactersAction=e.DisableHighlightingOfAmbiguousCharactersAction=e.DisableHighlightingInStringsAction=e.DisableHighlightingInCommentsAction=e.UnicodeHighlighterHoverParticipant=e.UnicodeHighlighter=e.warningIcon=void 0,e.warningIcon=(0,f.registerIcon)("extensions-warning-message",k.Codicon.warning,l.localize(1386,"Icon shown with a warning message in the extensions editor."));let v=class extends E.Disposable{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(G,K,R,J){super(),this._editor=G,this._editorWorkerService=K,this._workspaceTrustService=R,this._highlighter=null,this._bannerClosed=!1,this._updateState=ie=>{if(ie&&ie.hasMore){if(this._bannerClosed)return;const ue=Math.max(ie.ambiguousCharacterCount,ie.nonBasicAsciiCharacterCount,ie.invisibleCharacterCount);let he;if(ie.nonBasicAsciiCharacterCount>=ue)he={message:l.localize(1387,"This document contains many non-basic ASCII unicode characters"),command:new q};else if(ie.ambiguousCharacterCount>=ue)he={message:l.localize(1388,"This document contains many ambiguous unicode characters"),command:new W};else if(ie.invisibleCharacterCount>=ue)he={message:l.localize(1389,"This document contains many invisible unicode characters"),command:new V};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:he.message,icon:e.warningIcon,actions:[{label:he.command.shortLabel,href:`command:${he.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(J.createInstance(c.BannerController,G)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=G.getOption(126),this._register(R.onDidChangeTrust(ie=>{this._updateHighlighter()})),this._register(G.onDidChangeConfiguration(ie=>{ie.hasChanged(126)&&(this._options=G.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const G=w(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([G.nonBasicASCII,G.ambiguousCharacters,G.invisibleCharacters].every(R=>R===!1))return;const K={nonBasicASCII:G.nonBasicASCII,ambiguousCharacters:G.ambiguousCharacters,invisibleCharacters:G.invisibleCharacters,includeComments:G.includeComments,includeStrings:G.includeStrings,allowedCodePoints:Object.keys(G.allowedCharacters).map(R=>R.codePointAt(0)),allowedLocales:Object.keys(G.allowedLocales).map(R=>R==="_os"?new Intl.NumberFormat().resolvedOptions().locale:R==="_vscode"?y.language:R)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new S(this._editor,K,this._updateState,this._editorWorkerService):this._highlighter=new L(this._editor,K,this._updateState)}getDecorationInfo(G){return this._highlighter?this._highlighter.getDecorationInfo(G):null}};e.UnicodeHighlighter=v,e.UnicodeHighlighter=v=ke([ce(1,o.IEditorWorkerService),ce(2,h.IWorkspaceTrustManagementService),ce(3,r.IInstantiationService)],v);function w(Y,G){return{nonBasicASCII:G.nonBasicASCII===b.inUntrustedWorkspace?!Y:G.nonBasicASCII,ambiguousCharacters:G.ambiguousCharacters,invisibleCharacters:G.invisibleCharacters,includeComments:G.includeComments===b.inUntrustedWorkspace?!Y:G.includeComments,includeStrings:G.includeStrings===b.inUntrustedWorkspace?!Y:G.includeStrings,allowedCharacters:G.allowedCharacters,allowedLocales:G.allowedLocales}}let S=class extends E.Disposable{constructor(G,K,R,J){super(),this._editor=G,this._options=K,this._updateState=R,this._editorWorkerService=J,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new d.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const G=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(K=>{if(this._model.isDisposed()||this._model.getVersionId()!==G)return;this._updateState(K);const R=[];if(!K.hasMore)for(const J of K.ranges)R.push({range:J,options:O.instance.getDecorationFromOptions(this._options)});this._decorations.set(R)})}getDecorationInfo(G){if(!this._decorations.has(G))return null;const K=this._editor.getModel();if(!(0,i.isModelDecorationVisible)(K,G))return null;const R=K.getValueInRange(G.range);return{reason:N(R,this._options),inComment:(0,i.isModelDecorationInComment)(K,G),inString:(0,i.isModelDecorationInString)(K,G)}}};S=ke([ce(3,o.IEditorWorkerService)],S);class L extends E.Disposable{constructor(G,K,R){super(),this._editor=G,this._options=K,this._updateState=R,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new d.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const G=this._editor.getVisibleRanges(),K=[],R={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const J of G){const ie=n.UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,J);for(const ue of ie.ranges)R.ranges.push(ue);R.ambiguousCharacterCount+=R.ambiguousCharacterCount,R.invisibleCharacterCount+=R.invisibleCharacterCount,R.nonBasicAsciiCharacterCount+=R.nonBasicAsciiCharacterCount,R.hasMore=R.hasMore||ie.hasMore}if(!R.hasMore)for(const J of R.ranges)K.push({range:J,options:O.instance.getDecorationFromOptions(this._options)});this._updateState(R),this._decorations.set(K)}getDecorationInfo(G){if(!this._decorations.has(G))return null;const K=this._editor.getModel(),R=K.getValueInRange(G.range);return(0,i.isModelDecorationVisible)(K,G)?{reason:N(R,this._options),inComment:(0,i.isModelDecorationInComment)(K,G),inString:(0,i.isModelDecorationInString)(K,G)}:null}}const D=l.localize(1390,"Configure Unicode Highlight Options");let T=class{constructor(G,K,R){this._editor=G,this._languageService=K,this._openerService=R,this.hoverOrdinal=5}computeSync(G,K){if(!this._editor.hasModel()||G.type!==1)return[];const R=this._editor.getModel(),J=this._editor.getContribution(v.ID);if(!J)return[];const ie=[],ue=new Set;let he=300;for(const pe of K){const ae=J.getDecorationInfo(pe);if(!ae)continue;const de=R.getValueInRange(pe.range).codePointAt(0),ge=A(de);let X;switch(ae.reason.kind){case 0:{(0,m.isBasicASCII)(ae.reason.confusableWith)?X=l.localize(1391,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",ge,A(ae.reason.confusableWith.codePointAt(0))):X=l.localize(1392,"The character {0} could be confused with the character {1}, which is more common in source code.",ge,A(ae.reason.confusableWith.codePointAt(0)));break}case 1:X=l.localize(1393,"The character {0} is invisible.",ge);break;case 2:X=l.localize(1394,"The character {0} is not a basic ASCII character.",ge);break}if(ue.has(X))continue;ue.add(X);const B={codePoint:de,reason:ae.reason,inComment:ae.inComment,inString:ae.inString},$=l.localize(1395,"Adjust settings"),Q=`command:${H.ID}?${encodeURIComponent(JSON.stringify(B))}`,Z=new I.MarkdownString("",!0).appendMarkdown(X).appendText(" ").appendLink(Q,$,D);ie.push(new g.MarkdownHover(this,pe.range,[Z],!1,he++))}return ie}renderHoverParts(G,K){return(0,g.renderMarkdownHovers)(G,K,this._editor,this._languageService,this._openerService)}};e.UnicodeHighlighterHoverParticipant=T,e.UnicodeHighlighterHoverParticipant=T=ke([ce(1,t.ILanguageService),ce(2,u.IOpenerService)],T);function M(Y){return`U+${Y.toString(16).padStart(4,"0")}`}function A(Y){let G=`\`${M(Y)}\``;return m.InvisibleCharacters.isInvisibleCharacter(Y)||(G+=` "${`${P(Y)}`}"`),G}function P(Y){return Y===96?"`` ` ``":"`"+String.fromCodePoint(Y)+"`"}function N(Y,G){return n.UnicodeTextModelHighlighter.computeUnicodeHighlightReason(Y,G)}class O{constructor(){this.map=new Map}static{this.instance=new O}getDecorationFromOptions(G){return this.getDecoration(!G.includeComments,!G.includeStrings)}getDecoration(G,K){const R=`${G}${K}`;let J=this.map.get(R);return J||(J=p.ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:G,hideInStringTokens:K}),this.map.set(R,J)),J}}class F extends _.EditorAction{constructor(){super({id:W.ID,label:l.localize(1397,"Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=l.localize(1396,"Disable Highlight In Comments")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.includeComments,!1,2)}}e.DisableHighlightingInCommentsAction=F;class x extends _.EditorAction{constructor(){super({id:W.ID,label:l.localize(1399,"Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=l.localize(1398,"Disable Highlight In Strings")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.includeStrings,!1,2)}}e.DisableHighlightingInStringsAction=x;class W extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:W.ID,label:l.localize(1401,"Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=l.localize(1400,"Disable Ambiguous Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}}e.DisableHighlightingOfAmbiguousCharactersAction=W;class V extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:V.ID,label:l.localize(1403,"Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=l.localize(1402,"Disable Invisible Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}}e.DisableHighlightingOfInvisibleCharactersAction=V;class q extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:q.ID,label:l.localize(1405,"Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=l.localize(1404,"Disable Non ASCII Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}}e.DisableHighlightingOfNonBasicAsciiCharactersAction=q;class H extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:H.ID,label:l.localize(1406,"Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(G,K,R){const{codePoint:J,reason:ie,inString:ue,inComment:he}=R,pe=String.fromCodePoint(J),ae=G.get(C.IQuickInputService),ee=G.get(a.IConfigurationService);function de(B){return m.InvisibleCharacters.isInvisibleCharacter(B)?l.localize(1407,"Exclude {0} (invisible character) from being highlighted",M(B)):l.localize(1408,"Exclude {0} from being highlighted",`${M(B)} "${pe}"`)}const ge=[];if(ie.kind===0)for(const B of ie.notAmbiguousInLocales)ge.push({label:l.localize(1409,'Allow unicode characters that are more common in the language "{0}".',B),run:async()=>{U(ee,[B])}});if(ge.push({label:de(J),run:()=>z(ee,[J])}),he){const B=new F;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ue){const B=new x;ge.push({label:B.label,run:async()=>B.runAction(ee)})}if(ie.kind===0){const B=new W;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ie.kind===1){const B=new V;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ie.kind===2){const B=new q;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else j(ie);const X=await ae.pick(ge,{title:D});X&&await X.run()}}e.ShowExcludeOptions=H;async function z(Y,G){const K=Y.getValue(b.unicodeHighlightConfigKeys.allowedCharacters);let R;typeof K=="object"&&K?R=K:R={};for(const J of G)R[String.fromCodePoint(J)]=!0;await Y.updateValue(b.unicodeHighlightConfigKeys.allowedCharacters,R,2)}async function U(Y,G){const K=Y.inspect(b.unicodeHighlightConfigKeys.allowedLocales).user?.value;let R;typeof K=="object"&&K?R=Object.assign({},K):R={};for(const J of G)R[J]=!0;await Y.updateValue(b.unicodeHighlightConfigKeys.allowedLocales,R,2)}function j(Y){throw new Error(`Unexpected value: ${Y}`)}(0,_.registerEditorAction)(W),(0,_.registerEditorAction)(V),(0,_.registerEditorAction)(q),(0,_.registerEditorAction)(H),(0,_.registerEditorContribution)(v.ID,v,1),s.HoverParticipantRegistry.register(T)}),define(ne[870],se([1,0,214,219,812,727,815,728,729,856,817,819,848,821,730,434,731,822,857,858,423,289,734,735,695,864,290,291,429,427,850,737,851,827,738,739,833,834,740,840,831,867,765,786,790,835,791,792,742,221,853,294,868,743,718,869,744,841,411,745,741,694,107,195]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[222],se([1,0,11,5,47,6,140,2,16,111,22,152,274,75,9,4,51,78,211,24,28,403,12,180,7,691,31,392,121,393,692,181,50,96,63,186,119,107,48,34,62,440,58,395,711,801,49,701,100,401,43,784,266,808,805,419,153,693,61,29,406,696,117,687,265,688,154,216,108,699,59,66,101,717,137,17,36,697,130,8,271,52,45,384,624,418,394,855,79,785,677,772]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee,de,ge,X,B,$,Q,Z,te,re,le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke,ze,Ge,it,Oe,Fe,fe,_e,xe,be,ve){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServices=e.standaloneEditorWorkerDescriptor=e.StandaloneConfigurationService=e.StandaloneKeybindingService=e.StandaloneCommandService=e.StandaloneNotificationService=void 0,e.updateConfigurationService=Re;class we{constructor(Ve){this.disposed=!1,this.model=Ve,this._onWillDispose=new E.Emitter}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let Te=class{constructor(Ve){this.modelService=Ve}createModelReference(Ve){const Ye=this.modelService.getModel(Ve);return Ye?Promise.resolve(new m.ImmortalReference(new we(Ye))):Promise.reject(new Error("Model not found"))}};Te=ke([ce(0,g.IModelService)],Te);class Pe{static{this.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}}}show(){return Pe.NULL_PROGRESS_RUNNER}async showWhile(Ve,Ye){await Ve}}class Be{withProgress(Ve,Ye,Ze){return Ye({report:()=>{}})}}class He{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class $e{async confirm(Ve){return{confirmed:this.doConfirm(Ve.message,Ve.detail),checkboxChecked:!1}}doConfirm(Ve,Ye){let Ze=Ve;return Ye&&(Ze=Ze+` - -`+Ye),_e.mainWindow.confirm(Ze)}async prompt(Ve){let Ye;if(this.doConfirm(Ve.message,Ve.detail)){const nt=[...Ve.buttons??[]];Ve.cancelButton&&typeof Ve.cancelButton!="string"&&typeof Ve.cancelButton!="boolean"&&nt.push(Ve.cancelButton),Ye=await nt[0]?.run({checkboxChecked:!1})}return{result:Ye}}async error(Ve,Ye){await this.prompt({type:b.default.Error,message:Ve,detail:Ye})}}class je{static{this.NO_OP=new A.NoOpNotification}info(Ve){return this.notify({severity:b.default.Info,message:Ve})}warn(Ve){return this.notify({severity:b.default.Warning,message:Ve})}error(Ve){return this.notify({severity:b.default.Error,message:Ve})}notify(Ve){switch(Ve.severity){case b.default.Error:console.error(Ve.message);break;case b.default.Warning:console.warn(Ve.message);break;default:console.log(Ve.message);break}return je.NO_OP}prompt(Ve,Ye,Ze,nt){return je.NO_OP}status(Ve,Ye){return m.Disposable.None}}e.StandaloneNotificationService=je;let Xe=class{constructor(Ve){this._onWillExecuteCommand=new E.Emitter,this._onDidExecuteCommand=new E.Emitter,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=Ve}executeCommand(Ve,...Ye){const Ze=a.CommandsRegistry.getCommand(Ve);if(!Ze)return Promise.reject(new Error(`command '${Ve}' not found`));try{this._onWillExecuteCommand.fire({commandId:Ve,args:Ye});const nt=this._instantiationService.invokeFunction.apply(this._instantiationService,[Ze.handler,...Ye]);return this._onDidExecuteCommand.fire({commandId:Ve,args:Ye}),Promise.resolve(nt)}catch(nt){return Promise.reject(nt)}}};e.StandaloneCommandService=Xe,e.StandaloneCommandService=Xe=ke([ce(0,h.IInstantiationService)],Xe);let et=class extends v.AbstractKeybindingService{constructor(Ve,Ye,Ze,nt,ct,ht){super(Ve,Ye,Ze,nt,ct),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const ft=wt=>{const kt=new m.DisposableStore;kt.add(k.addDisposableListener(wt,k.EventType.KEY_DOWN,Mt=>{const Tt=new I.StandardKeyboardEvent(Mt);this._dispatch(Tt,Tt.target)&&(Tt.preventDefault(),Tt.stopPropagation())})),kt.add(k.addDisposableListener(wt,k.EventType.KEY_UP,Mt=>{const Tt=new I.StandardKeyboardEvent(Mt);this._singleModifierDispatch(Tt,Tt.target)&&Tt.preventDefault()})),this._domNodeListeners.push(new dt(wt,kt))},gt=wt=>{for(let kt=0;kt{wt.getOption(61)||ft(wt.getContainerDomNode())},vt=wt=>{wt.getOption(61)||gt(wt.getContainerDomNode())};this._register(ht.onCodeEditorAdd(mt)),this._register(ht.onCodeEditorRemove(vt)),ht.listCodeEditors().forEach(mt);const Dt=wt=>{ft(wt.getContainerDomNode())},ui=wt=>{gt(wt.getContainerDomNode())};this._register(ht.onDiffEditorAdd(Dt)),this._register(ht.onDiffEditorRemove(ui)),ht.listDiffEditors().forEach(Dt)}addDynamicKeybinding(Ve,Ye,Ze,nt){return(0,m.combinedDisposable)(a.CommandsRegistry.registerCommand(Ve,Ze),this.addDynamicKeybindings([{keybinding:Ye,command:Ve,when:nt}]))}addDynamicKeybindings(Ve){const Ye=Ve.map(Ze=>({keybinding:(0,y.decodeKeybinding)(Ze.keybinding,_.OS),command:Ze.command??null,commandArgs:Ze.commandArgs,when:Ze.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(Ye),this.updateResolver(),(0,m.toDisposable)(()=>{for(let Ze=0;Zethis._log(Ze))}return this._cachedResolver}_documentHasFocus(){return _e.mainWindow.document.hasFocus()}_toNormalizedKeybindingItems(Ve,Ye){const Ze=[];let nt=0;for(const ct of Ve){const ht=ct.when||void 0,ft=ct.keybinding;if(!ft)Ze[nt++]=new D.ResolvedKeybindingItem(void 0,ct.command,ct.commandArgs,ht,Ye,null,!1);else{const gt=T.USLayoutResolvedKeybinding.resolveKeybinding(ft,_.OS);for(const mt of gt)Ze[nt++]=new D.ResolvedKeybindingItem(mt,ct.command,ct.commandArgs,ht,Ye,null,!1)}}return Ze}resolveKeyboardEvent(Ve){const Ye=new y.KeyCodeChord(Ve.ctrlKey,Ve.shiftKey,Ve.altKey,Ve.metaKey,Ve.keyCode);return new T.USLayoutResolvedKeybinding([Ye],_.OS)}};e.StandaloneKeybindingService=et,e.StandaloneKeybindingService=et=ke([ce(0,C.IContextKeyService),ce(1,a.ICommandService),ce(2,N.ITelemetryService),ce(3,A.INotificationService),ce(4,q.ILogService),ce(5,V.ICodeEditorService)],et);class dt extends m.Disposable{constructor(Ve,Ye){super(),this.domNode=Ve,this._register(Ye)}}function at(ot){return ot&&typeof ot=="object"&&(!ot.overrideIdentifier||typeof ot.overrideIdentifier=="string")&&(!ot.resource||ot.resource instanceof p.URI)}let st=class{constructor(Ve){this.logService=Ve,this._onDidChangeConfiguration=new E.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const Ye=new Ne.DefaultConfiguration(Ve);this._configuration=new u.Configuration(Ye.reload(),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),new xe.ResourceMap,u.ConfigurationModel.createEmptyModel(Ve),new xe.ResourceMap,Ve),Ye.dispose()}getValue(Ve,Ye){const Ze=typeof Ve=="string"?Ve:void 0,nt=at(Ve)?Ve:at(Ye)?Ye:{};return this._configuration.getValue(Ze,nt,void 0)}updateValues(Ve){const Ye={data:this._configuration.toData()},Ze=[];for(const nt of Ve){const[ct,ht]=nt;this.getValue(ct)!==ht&&(this._configuration.updateValue(ct,ht),Ze.push(ct))}if(Ze.length>0){const nt=new u.ConfigurationChangeEvent({keys:Ze,overrides:[]},Ye,this._configuration,void 0,this.logService);nt.source=8,this._onDidChangeConfiguration.fire(nt)}return Promise.resolve()}updateValue(Ve,Ye,Ze,nt){return this.updateValues([[Ve,Ye]])}inspect(Ve,Ye={}){return this._configuration.inspect(Ve,Ye,void 0)}};e.StandaloneConfigurationService=st,e.StandaloneConfigurationService=st=ke([ce(0,q.ILogService)],st);let pt=class{constructor(Ve,Ye,Ze){this.configurationService=Ve,this.modelService=Ye,this.languageService=Ze,this._onDidChangeConfiguration=new E.Emitter,this.configurationService.onDidChangeConfiguration(nt=>{this._onDidChangeConfiguration.fire({affectedKeys:nt.affectedKeys,affectsConfiguration:(ct,ht)=>nt.affectsConfiguration(ht)})})}getValue(Ve,Ye,Ze){const nt=i.Position.isIPosition(Ye)?Ye:null,ct=nt?typeof Ze=="string"?Ze:void 0:typeof Ye=="string"?Ye:void 0,ht=Ve?this.getLanguage(Ve,nt):void 0;return typeof ct>"u"?this.configurationService.getValue({resource:Ve,overrideIdentifier:ht}):this.configurationService.getValue(ct,{resource:Ve,overrideIdentifier:ht})}getLanguage(Ve,Ye){const Ze=this.modelService.getModel(Ve);return Ze?Ye?Ze.getLanguageIdAtPosition(Ye.lineNumber,Ye.column):Ze.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(Ve)}};pt=ke([ce(0,r.IConfigurationService),ce(1,g.IModelService),ce(2,ie.ILanguageService)],pt);let bt=class{constructor(Ve){this.configurationService=Ve}getEOL(Ve,Ye){const Ze=this.configurationService.getValue("files.eol",{overrideIdentifier:Ye,resource:Ve});return Ze&&typeof Ze=="string"&&Ze!=="auto"?Ze:_.isLinux||_.isMacintosh?` -`:`\r -`}};bt=ke([ce(0,r.IConfigurationService)],bt);class De{publicLog2(){}}class Ie{static{this.SCHEME="inmemory"}constructor(){const Ve=p.URI.from({scheme:Ie.SCHEME,authority:"model",path:"/"});this.workspace={id:O.STANDALONE_EDITOR_WORKSPACE_ID,folders:[new O.WorkspaceFolder({uri:Ve,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(Ve){return Ve&&Ve.scheme===Ie.SCHEME?this.workspace.folders[0]:null}}function Re(ot,Ve,Ye){if(!Ve||!(ot instanceof st))return;const Ze=[];Object.keys(Ve).forEach(nt=>{(0,o.isEditorConfigurationKey)(nt)&&Ze.push([`editor.${nt}`,Ve[nt]]),Ye&&(0,o.isDiffEditorConfigurationKey)(nt)&&Ze.push([`diffEditor.${nt}`,Ve[nt]])}),Ze.length>0&&ot.updateValues(Ze)}let Se=class{constructor(Ve){this._modelService=Ve}hasPreviewHandler(){return!1}async apply(Ve,Ye){const Ze=Array.isArray(Ve)?Ve:n.ResourceEdit.convert(Ve),nt=new Map;for(const ft of Ze){if(!(ft instanceof n.ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const gt=this._modelService.getModel(ft.resource);if(!gt)throw new Error("bad edit - model not found");if(typeof ft.versionId=="number"&>.getVersionId()!==ft.versionId)throw new Error("bad state - model changed in the meantime");let mt=nt.get(gt);mt||(mt=[],nt.set(gt,mt)),mt.push(t.EditOperation.replaceMove(s.Range.lift(ft.textEdit.range),ft.textEdit.text))}let ct=0,ht=0;for(const[ft,gt]of nt)ft.pushStackElement(),ft.pushEditOperations([],gt,()=>[]),ft.pushStackElement(),ht+=1,ct+=gt.length;return{ariaSummary:d.format(x.StandaloneServicesNLS.bulkEditServiceSummary,ct,ht),isApplied:ct>0}}};Se=ke([ce(0,g.IModelService)],Se);class We{getUriLabel(Ve,Ye){return Ve.scheme==="file"?Ve.fsPath:Ve.path}getUriBasenameLabel(Ve){return(0,W.basename)(Ve)}}let qe=class extends U.ContextViewService{constructor(Ve,Ye){super(Ve),this._codeEditorService=Ye}showContextView(Ve,Ye,Ze){if(!Ye){const nt=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();nt&&(Ye=nt.getContainerDomNode())}return super.showContextView(Ve,Ye,Ze)}};qe=ke([ce(0,F.ILayoutService),ce(1,V.ICodeEditorService)],qe);class Ue{constructor(){this._neverEmitter=new E.Emitter,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class Je extends j.LanguageService{constructor(){super()}}class tt extends it.LogService{constructor(){super(new q.ConsoleLogger)}}let Qe=class extends Y.ContextMenuService{constructor(Ve,Ye,Ze,nt,ct,ht){super(Ve,Ye,Ze,nt,ct,ht),this.configure({blockMouse:!1})}};Qe=ke([ce(0,N.ITelemetryService),ce(1,A.INotificationService),ce(2,z.IContextViewService),ce(3,w.IKeybindingService),ce(4,B.IMenuService),ce(5,C.IContextKeyService)],Qe),e.standaloneEditorWorkerDescriptor={amdModuleId:"vs/editor/common/services/editorSimpleWorker",esmModuleLocation:void 0,label:"editorWorkerService"};let rt=class extends J.EditorWorkerService{constructor(Ve,Ye,Ze,nt,ct){super(e.standaloneEditorWorkerDescriptor,Ve,Ye,Ze,nt,ct)}};rt=ke([ce(0,g.IModelService),ce(1,l.ITextResourceConfigurationService),ce(2,q.ILogService),ce(3,Ge.ILanguageConfigurationService),ce(4,ze.ILanguageFeaturesService)],rt);class Ct{async playSignal(Ve,Ye){}}(0,G.registerSingleton)(q.ILogService,tt,0),(0,G.registerSingleton)(r.IConfigurationService,st,0),(0,G.registerSingleton)(l.ITextResourceConfigurationService,pt,0),(0,G.registerSingleton)(l.ITextResourcePropertiesService,bt,0),(0,G.registerSingleton)(O.IWorkspaceContextService,Ie,0),(0,G.registerSingleton)(M.ILabelService,We,0),(0,G.registerSingleton)(N.ITelemetryService,De,0),(0,G.registerSingleton)(f.IDialogService,$e,0),(0,G.registerSingleton)(fe.IEnvironmentService,He,0),(0,G.registerSingleton)(A.INotificationService,je,0),(0,G.registerSingleton)(ye.IMarkerService,Le.MarkerService,0),(0,G.registerSingleton)(ie.ILanguageService,Je,0),(0,G.registerSingleton)(de.IStandaloneThemeService,ee.StandaloneThemeService,0),(0,G.registerSingleton)(g.IModelService,pe.ModelService,0),(0,G.registerSingleton)(he.IMarkerDecorationsService,ue.MarkerDecorationsService,0),(0,G.registerSingleton)(C.IContextKeyService,te.ContextKeyService,0),(0,G.registerSingleton)(P.IProgressService,Be,0),(0,G.registerSingleton)(P.IEditorProgressService,Pe,0),(0,G.registerSingleton)(Ae.IStorageService,Ae.InMemoryStorageService,0),(0,G.registerSingleton)(R.IEditorWorkerService,rt,0),(0,G.registerSingleton)(n.IBulkEditService,Se,0),(0,G.registerSingleton)(H.IWorkspaceTrustManagementService,Ue,0),(0,G.registerSingleton)(c.ITextModelService,Te,0),(0,G.registerSingleton)(X.IAccessibilityService,ge.AccessibilityService,0),(0,G.registerSingleton)(Ce.IListService,Ce.ListService,0),(0,G.registerSingleton)(a.ICommandService,Xe,0),(0,G.registerSingleton)(w.IKeybindingService,et,0),(0,G.registerSingleton)(Me.IQuickInputService,ae.StandaloneQuickInputService,0),(0,G.registerSingleton)(z.IContextViewService,qe,0),(0,G.registerSingleton)(Ee.IOpenerService,K.OpenerService,0),(0,G.registerSingleton)(Z.IClipboardService,Q.BrowserClipboardService,0),(0,G.registerSingleton)(z.IContextMenuService,Qe,0),(0,G.registerSingleton)(B.IMenuService,$.MenuService,0),(0,G.registerSingleton)(Ke.IAccessibilitySignalService,Ct,0),(0,G.registerSingleton)(be.ITreeSitterParserService,ve.StandaloneTreeSitterParserService,0);var ut;(function(ot){const Ve=new me.ServiceCollection;for(const[gt,mt]of(0,G.getSingletonServiceDescriptors)())Ve.set(gt,mt);const Ye=new le.InstantiationService(Ve,!0);Ve.set(h.IInstantiationService,Ye);function Ze(gt){nt||ht({});const mt=Ve.get(gt);if(!mt)throw new Error("Missing service "+gt);return mt instanceof re.SyncDescriptor?Ye.invokeFunction(vt=>vt.get(gt)):mt}ot.get=Ze;let nt=!1;const ct=new E.Emitter;function ht(gt){if(nt)return Ye;nt=!0;for(const[vt,Dt]of(0,G.getSingletonServiceDescriptors)())Ve.get(vt)||Ve.set(vt,Dt);for(const vt in gt)if(gt.hasOwnProperty(vt)){const Dt=(0,h.createDecorator)(vt);Ve.get(Dt)instanceof re.SyncDescriptor&&Ve.set(Dt,gt[vt])}const mt=(0,Oe.getEditorFeatures)();for(const vt of mt)try{Ye.createInstance(vt)}catch(Dt){(0,Fe.onUnexpectedError)(Dt)}return ct.fire(),Ye}ot.initialize=ht;function ft(gt){if(nt)return gt();const mt=new m.DisposableStore,vt=mt.add(ct.event(()=>{vt.dispose(),mt.add(gt())}));return mt}ot.withServices=ft})(ut||(e.StandaloneServices=ut={}))}),define(ne[871],se([1,0,46,2,34,219,318,222,153,29,24,28,12,58,7,31,50,25,61,107,117,96,51,43,418,70,36,17,286,137,52,44,118,81]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneDiffEditor2=e.StandaloneEditor=e.StandaloneCodeEditor=void 0,e.createTextModel=q;let N=0,O=!1;function F(z){if(!z){if(O)return;O=!0}d.setARIAContainer(z||T.mainWindow.document.body)}let x=class extends E.CodeEditorWidget{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee){const de={...j};de.ariaLabel=de.ariaLabel||a.StandaloneCodeEditorNLS.editorViewAccessibleLabel,super(U,de,{},Y,G,K,R,ue,he,pe,ae,ee),ie instanceof m.StandaloneKeybindingService?this._standaloneKeybindingService=ie:this._standaloneKeybindingService=null,F(de.ariaContainerElement),(0,M.setHoverDelegateFactory)((ge,X)=>Y.createInstance(A.WorkbenchHoverDelegate,ge,X,{})),(0,P.setBaseLayerHoverDelegate)(J)}addCommand(U,j,Y){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const G="DYNAMIC_"+ ++N,K=o.ContextKeyExpr.deserialize(Y);return this._standaloneKeybindingService.addDynamicKeybinding(G,U,j,K),G}createContextKey(U,j){return this._contextKeyService.createKey(U,j)}addAction(U){if(typeof U.id!="string"||typeof U.label!="string"||typeof U.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None;const j=U.id,Y=U.label,G=o.ContextKeyExpr.and(o.ContextKeyExpr.equals("editorId",this.getId()),o.ContextKeyExpr.deserialize(U.precondition)),K=U.keybindings,R=o.ContextKeyExpr.and(G,o.ContextKeyExpr.deserialize(U.keybindingContext)),J=U.contextMenuGroupId||null,ie=U.contextMenuOrder||0,ue=(ee,...de)=>Promise.resolve(U.run(this,...de)),he=new k.DisposableStore,pe=this.getId()+":"+j;if(he.add(p.CommandsRegistry.registerCommand(pe,ue)),J){const ee={command:{id:pe,title:Y},when:G,group:J,order:ie};he.add(b.MenuRegistry.appendMenuItem(b.MenuId.EditorContext,ee))}if(Array.isArray(K))for(const ee of K)he.add(this._standaloneKeybindingService.addDynamicKeybinding(pe,ee,ue,R));const ae=new y.InternalEditorAction(pe,Y,Y,void 0,G,(...ee)=>Promise.resolve(U.run(this,...ee)),this._contextKeyService);return this._actions.set(j,ae),he.add((0,k.toDisposable)(()=>{this._actions.delete(j)})),he}_triggerCommand(U,j){if(this._codeEditorService instanceof h.StandaloneCodeEditorService)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(U,j)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(U,j)}};e.StandaloneCodeEditor=x,e.StandaloneCodeEditor=x=ke([ce(2,i.IInstantiationService),ce(3,I.ICodeEditorService),ce(4,p.ICommandService),ce(5,o.IContextKeyService),ce(6,A.IHoverService),ce(7,s.IKeybindingService),ce(8,c.IThemeService),ce(9,g.INotificationService),ce(10,l.IAccessibilityService),ce(11,w.ILanguageConfigurationService),ce(12,S.ILanguageFeaturesService)],x);let W=class extends x{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee,de,ge,X){const B={...j};(0,m.updateConfigurationService)(pe,B,!1);const $=ue.registerEditorContainer(U);typeof B.theme=="string"&&ue.setTheme(B.theme),typeof B.autoDetectHighContrast<"u"&&ue.setAutoDetectHighContrast(!!B.autoDetectHighContrast);const Q=B.model;delete B.model,super(U,B,Y,G,K,R,J,ie,ue,he,ae,ge,X),this._configurationService=pe,this._standaloneThemeService=ue,this._register($);let Z;if(typeof Q>"u"){const te=de.getLanguageIdByMimeType(B.language)||B.language||v.PLAINTEXT_LANGUAGE_ID;Z=q(ee,de,B.value||"",te,void 0),this._ownsModel=!0}else Z=Q,this._ownsModel=!1;if(this._attachModel(Z),Z){const te={oldModelUrl:null,newModelUrl:Z.uri};this._onDidChangeModel.fire(te)}}dispose(){super.dispose()}updateOptions(U){(0,m.updateConfigurationService)(this._configurationService,U,!1),typeof U.theme=="string"&&this._standaloneThemeService.setTheme(U.theme),typeof U.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!U.autoDetectHighContrast),super.updateOptions(U)}_postDetachModelCleanup(U){super._postDetachModelCleanup(U),U&&this._ownsModel&&(U.dispose(),this._ownsModel=!1)}};e.StandaloneEditor=W,e.StandaloneEditor=W=ke([ce(2,i.IInstantiationService),ce(3,I.ICodeEditorService),ce(4,p.ICommandService),ce(5,o.IContextKeyService),ce(6,A.IHoverService),ce(7,s.IKeybindingService),ce(8,_.IStandaloneThemeService),ce(9,g.INotificationService),ce(10,n.IConfigurationService),ce(11,l.IAccessibilityService),ce(12,C.IModelService),ce(13,f.ILanguageService),ce(14,w.ILanguageConfigurationService),ce(15,S.ILanguageFeaturesService)],W);let V=class extends L.DiffEditorWidget{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae){const ee={...j};(0,m.updateConfigurationService)(ie,ee,!0);const de=R.registerEditorContainer(U);typeof ee.theme=="string"&&R.setTheme(ee.theme),typeof ee.autoDetectHighContrast<"u"&&R.setAutoDetectHighContrast(!!ee.autoDetectHighContrast),super(U,ee,{},G,Y,K,ae,he),this._configurationService=ie,this._standaloneThemeService=R,this._register(de)}dispose(){super.dispose()}updateOptions(U){(0,m.updateConfigurationService)(this._configurationService,U,!0),typeof U.theme=="string"&&this._standaloneThemeService.setTheme(U.theme),typeof U.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!U.autoDetectHighContrast),super.updateOptions(U)}_createInnerEditor(U,j,Y){return U.createInstance(x,j,Y)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(U,j,Y){return this.getModifiedEditor().addCommand(U,j,Y)}createContextKey(U,j){return this.getModifiedEditor().createContextKey(U,j)}addAction(U){return this.getModifiedEditor().addAction(U)}};e.StandaloneDiffEditor2=V,e.StandaloneDiffEditor2=V=ke([ce(2,i.IInstantiationService),ce(3,o.IContextKeyService),ce(4,I.ICodeEditorService),ce(5,_.IStandaloneThemeService),ce(6,g.INotificationService),ce(7,n.IConfigurationService),ce(8,t.IContextMenuService),ce(9,u.IEditorProgressService),ce(10,r.IClipboardService),ce(11,D.IAccessibilitySignalService)],V);function q(z,U,j,Y,G){if(j=j||"",!Y){const K=j.indexOf(` -`);let R=j;return K!==-1&&(R=j.substring(0,K)),H(z,j,U.createByFilepathOrFirstLine(G||null,R),G)}return H(z,j,U.createById(Y),G)}function H(z,U,j,Y){return z.createModel(U,j,Y)}}),define(ne[872],se([1,0,33,4,27,43,36,70,17,238,222,625,389,153,28,108]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenizationSupportAdapter=e.EncodedTokenizationSupportAdapter=void 0,e.register=g,e.getLanguages=c,e.getEncodedLanguageId=l,e.onLanguage=a,e.onLanguageEncountered=r,e.setLanguageConfiguration=u,e.setColorMap=S,e.registerTokensProviderFactory=D,e.setTokensProvider=T,e.setMonarchTokensProvider=M,e.registerReferenceProvider=A,e.registerRenameProvider=P,e.registerNewSymbolNameProvider=N,e.registerSignatureHelpProvider=O,e.registerHoverProvider=F,e.registerDocumentSymbolProvider=x,e.registerDocumentHighlightProvider=W,e.registerLinkedEditingRangeProvider=V,e.registerDefinitionProvider=q,e.registerImplementationProvider=H,e.registerTypeDefinitionProvider=z,e.registerCodeLensProvider=U,e.registerCodeActionProvider=j,e.registerDocumentFormattingEditProvider=Y,e.registerDocumentRangeFormattingEditProvider=G,e.registerOnTypeFormattingEditProvider=K,e.registerLinkProvider=R,e.registerCompletionItemProvider=J,e.registerColorProvider=ie,e.registerFoldingRangeProvider=ue,e.registerDeclarationProvider=he,e.registerSelectionRangeProvider=pe,e.registerDocumentSemanticTokensProvider=ae,e.registerDocumentRangeSemanticTokensProvider=ee,e.registerInlineCompletionsProvider=de,e.registerInlineEditProvider=ge,e.registerInlayHintsProvider=X,e.createMonacoLanguagesAPI=B;function g($){m.ModesRegistry.registerLanguage($)}function c(){let $=[];return $=$.concat(m.ModesRegistry.getLanguages()),$}function l($){return p.StandaloneServices.get(E.ILanguageService).languageIdCodec.encodeLanguageId($)}function a($,Q){return p.StandaloneServices.withServices(()=>{const te=p.StandaloneServices.get(E.ILanguageService).onDidRequestRichLanguageFeatures(re=>{re===$&&(te.dispose(),Q())});return te})}function r($,Q){return p.StandaloneServices.withServices(()=>{const te=p.StandaloneServices.get(E.ILanguageService).onDidRequestBasicLanguageFeatures(re=>{re===$&&(te.dispose(),Q())});return te})}function u($,Q){if(!p.StandaloneServices.get(E.ILanguageService).isRegisteredLanguageId($))throw new Error(`Cannot set configuration for unknown language ${$}`);return p.StandaloneServices.get(y.ILanguageConfigurationService).register($,Q,100)}class C{constructor(Q,Z){this._languageId=Q,this._actual=Z}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(Q,Z,te){if(typeof this._actual.tokenize=="function")return f.adaptTokenize(this._languageId,this._actual,Q,te);throw new Error("Not supported!")}tokenizeEncoded(Q,Z,te){const re=this._actual.tokenizeEncoded(Q,te);return new I.EncodedTokenizationResult(re.tokens,re.endState)}}e.EncodedTokenizationSupportAdapter=C;class f{constructor(Q,Z,te,re){this._languageId=Q,this._actual=Z,this._languageService=te,this._standaloneThemeService=re}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(Q,Z){const te=[];let re=0;for(let le=0,me=Q.length;le0&&le[me-1]===Ae)continue;let Ne=Me.startIndex;Le===0?Ne=0:Ne{const te=await Promise.resolve(Q.create());return te?h(te)?L($,te):new o.MonarchTokenizer(p.StandaloneServices.get(E.ILanguageService),p.StandaloneServices.get(t.IStandaloneThemeService),$,(0,n.compile)($,te),p.StandaloneServices.get(i.IConfigurationService)):null});return I.TokenizationRegistry.registerFactory($,Z)}function T($,Q){if(!p.StandaloneServices.get(E.ILanguageService).isRegisteredLanguageId($))throw new Error(`Cannot set tokens provider for unknown language ${$}`);return w(Q)?D($,{create:()=>Q}):I.TokenizationRegistry.register($,L($,Q))}function M($,Q){const Z=te=>new o.MonarchTokenizer(p.StandaloneServices.get(E.ILanguageService),p.StandaloneServices.get(t.IStandaloneThemeService),$,(0,n.compile)($,te),p.StandaloneServices.get(i.IConfigurationService));return w(Q)?D($,{create:()=>Q}):I.TokenizationRegistry.register($,Z(Q))}function A($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).referenceProvider.register($,Q)}function P($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).renameProvider.register($,Q)}function N($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).newSymbolNamesProvider.register($,Q)}function O($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).signatureHelpProvider.register($,Q)}function F($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).hoverProvider.register($,{provideHover:async(te,re,le,me)=>{const Ce=te.getWordAtPosition(re);return Promise.resolve(Q.provideHover(te,re,le,me)).then(ye=>{if(ye)return!ye.range&&Ce&&(ye.range=new k.Range(re.lineNumber,Ce.startColumn,re.lineNumber,Ce.endColumn)),ye.range||(ye.range=new k.Range(re.lineNumber,re.column,re.lineNumber,re.column)),ye})}})}function x($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentSymbolProvider.register($,Q)}function W($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentHighlightProvider.register($,Q)}function V($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).linkedEditingRangeProvider.register($,Q)}function q($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).definitionProvider.register($,Q)}function H($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).implementationProvider.register($,Q)}function z($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).typeDefinitionProvider.register($,Q)}function U($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).codeLensProvider.register($,Q)}function j($,Q,Z){return p.StandaloneServices.get(_.ILanguageFeaturesService).codeActionProvider.register($,{providedCodeActionKinds:Z?.providedCodeActionKinds,documentation:Z?.documentation,provideCodeActions:(re,le,me,Ce)=>{const Le=p.StandaloneServices.get(s.IMarkerService).read({resource:re.uri}).filter(Ee=>k.Range.areIntersectingOrTouching(Ee,le));return Q.provideCodeActions(re,le,{markers:Le,only:me.only,trigger:me.trigger},Ce)},resolveCodeAction:Q.resolveCodeAction})}function Y($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentFormattingEditProvider.register($,Q)}function G($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentRangeFormattingEditProvider.register($,Q)}function K($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).onTypeFormattingEditProvider.register($,Q)}function R($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).linkProvider.register($,Q)}function J($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).completionProvider.register($,Q)}function ie($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).colorProvider.register($,Q)}function ue($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).foldingRangeProvider.register($,Q)}function he($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).declarationProvider.register($,Q)}function pe($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).selectionRangeProvider.register($,Q)}function ae($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentSemanticTokensProvider.register($,Q)}function ee($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register($,Q)}function de($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlineCompletionsProvider.register($,Q)}function ge($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlineEditProvider.register($,Q)}function X($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlayHintsProvider.register($,Q)}function B(){return{register:g,getLanguages:c,onLanguage:a,onLanguageEncountered:r,getEncodedLanguageId:l,setLanguageConfiguration:u,setColorMap:S,registerTokensProviderFactory:D,setTokensProvider:T,setMonarchTokensProvider:M,registerReferenceProvider:A,registerRenameProvider:P,registerNewSymbolNameProvider:N,registerCompletionItemProvider:J,registerSignatureHelpProvider:O,registerHoverProvider:F,registerDocumentSymbolProvider:x,registerDocumentHighlightProvider:W,registerLinkedEditingRangeProvider:V,registerDefinitionProvider:q,registerImplementationProvider:H,registerTypeDefinitionProvider:z,registerCodeLensProvider:U,registerCodeActionProvider:j,registerDocumentFormattingEditProvider:Y,registerDocumentRangeFormattingEditProvider:G,registerOnTypeFormattingEditProvider:K,registerLinkProvider:R,registerColorProvider:ie,registerFoldingRangeProvider:ue,registerDeclarationProvider:he,registerSelectionRangeProvider:pe,registerDocumentSemanticTokensProvider:ae,registerDocumentRangeSemanticTokensProvider:ee,registerInlineCompletionsProvider:de,registerInlineEditProvider:ge,registerInlayHintsProvider:X,DocumentHighlightKind:b.DocumentHighlightKind,CompletionItemKind:b.CompletionItemKind,CompletionItemTag:b.CompletionItemTag,CompletionItemInsertTextRule:b.CompletionItemInsertTextRule,SymbolKind:b.SymbolKind,SymbolTag:b.SymbolTag,IndentAction:b.IndentAction,CompletionTriggerKind:b.CompletionTriggerKind,SignatureHelpTriggerKind:b.SignatureHelpTriggerKind,InlayHintKind:b.InlayHintKind,InlineCompletionTriggerKind:b.InlineCompletionTriggerKind,InlineEditTriggerKind:b.InlineEditTriggerKind,CodeActionTriggerType:b.CodeActionTriggerType,NewSymbolNameTag:b.NewSymbolNameTag,NewSymbolNameTriggerKind:b.NewSymbolNameTriggerKind,PartialAcceptTriggerKind:b.PartialAcceptTriggerKind,HoverVerbosityAction:b.HoverVerbosityAction,FoldingRangeKind:I.FoldingRangeKind,SelectedSuggestionInfo:I.SelectedSuggestionInfo}}}),define(ne[873],se([1,0,60,401,222]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createWebWorker=E;function E(m,_){return new y(m,_)}class y extends k.EditorWorkerClient{constructor(_,b){const p={amdModuleId:I.standaloneEditorWorkerDescriptor.amdModuleId,esmModuleLocation:I.standaloneEditorWorkerDescriptor.esmModuleLocation,label:b.label};super(p,b.keepIdleModels||!1,_),this._foreignModuleId=b.moduleId,this._foreignModuleCreateData=b.createData||null,this._foreignModuleHost=b.host||null,this._foreignProxy=null}fhr(_,b){if(!this._foreignModuleHost||typeof this._foreignModuleHost[_]!="function")return Promise.reject(new Error("Missing method "+_+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[_].apply(this._foreignModuleHost,b))}catch(p){return Promise.reject(p)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(_=>{const b=this._foreignModuleHost?(0,d.getAllMethodNames)(this._foreignModuleHost):[];return _.$loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,b).then(p=>{this._foreignModuleCreateData=null;const n=(i,s)=>_.$fmr(i,s),o=(i,s)=>function(){const g=Array.prototype.slice.call(arguments,0);return s(i,g)},t={};for(const i of p)t[i]=o(i,n);return t})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(_){return this.workerWithSyncedResources(_).then(b=>this.getProxy())}}}),define(ne[874],se([1,0,52,2,11,22,366,15,34,873,37,165,261,198,27,43,70,177,40,51,238,682,871,222,153,29,24,12,31,108,59,814,541]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=A,e.onDidCreateEditor=P,e.onDidCreateDiffEditor=N,e.getEditors=O,e.getDiffEditors=F,e.createDiffEditor=x,e.createMultiFileDiffEditor=W,e.addCommand=V,e.addEditorAction=q,e.addKeybindingRule=H,e.addKeybindingRules=z,e.createModel=U,e.setModelLanguage=j,e.setModelMarkers=Y,e.removeAllMarkers=G,e.getModelMarkers=K,e.onDidChangeMarkers=R,e.getModel=J,e.getModels=ie,e.onDidCreateModel=ue,e.onWillDisposeModel=he,e.onDidChangeModelLanguage=pe,e.createWebWorker=ae,e.colorizeElement=ee,e.colorize=de,e.colorizeModelLine=ge,e.tokenize=B,e.defineTheme=$,e.setTheme=Q,e.remeasureFonts=Z,e.registerCommand=te,e.registerLinkOpener=re,e.registerEditorOpener=le,e.createMonacoEditorAPI=me;function A(Ce,ye,Le){return f.StandaloneServices.initialize(Le||{}).createInstance(C.StandaloneEditor,Ce,ye)}function P(Ce){return f.StandaloneServices.get(_.ICodeEditorService).onCodeEditorAdd(Le=>{Ce(Le)})}function N(Ce){return f.StandaloneServices.get(_.ICodeEditorService).onDiffEditorAdd(Le=>{Ce(Le)})}function O(){return f.StandaloneServices.get(_.ICodeEditorService).listCodeEditors()}function F(){return f.StandaloneServices.get(_.ICodeEditorService).listDiffEditors()}function x(Ce,ye,Le){return f.StandaloneServices.initialize(Le||{}).createInstance(C.StandaloneDiffEditor2,Ce,ye)}function W(Ce,ye){const Le=f.StandaloneServices.initialize(ye||{});return new M.MultiDiffEditorWidget(Ce,{},Le)}function V(Ce){if(typeof Ce.id!="string"||typeof Ce.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return w.CommandsRegistry.registerCommand(Ce.id,Ce.run)}function q(Ce){if(typeof Ce.id!="string"||typeof Ce.label!="string"||typeof Ce.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const ye=S.ContextKeyExpr.deserialize(Ce.precondition),Le=(Me,...Ae)=>m.EditorCommand.runEditorCommand(Me,Ae,ye,(Ne,Ke,ze)=>Promise.resolve(Ce.run(Ke,...ze))),Ee=new k.DisposableStore;if(Ee.add(w.CommandsRegistry.registerCommand(Ce.id,Le)),Ce.contextMenuGroupId){const Me={command:{id:Ce.id,title:Ce.label},when:ye,group:Ce.contextMenuGroupId,order:Ce.contextMenuOrder||0};Ee.add(v.MenuRegistry.appendMenuItem(v.MenuId.EditorContext,Me))}if(Array.isArray(Ce.keybindings)){const Me=f.StandaloneServices.get(L.IKeybindingService);if(!(Me instanceof f.StandaloneKeybindingService))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const Ae=S.ContextKeyExpr.and(ye,S.ContextKeyExpr.deserialize(Ce.keybindingContext));Ee.add(Me.addDynamicKeybindings(Ce.keybindings.map(Ne=>({keybinding:Ne,command:Ce.id,when:Ae}))))}}return Ee}function H(Ce){return z([Ce])}function z(Ce){const ye=f.StandaloneServices.get(L.IKeybindingService);return ye instanceof f.StandaloneKeybindingService?ye.addDynamicKeybindings(Ce.map(Le=>({keybinding:Le.keybinding,command:Le.command,commandArgs:Le.commandArgs,when:S.ContextKeyExpr.deserialize(Le.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None)}function U(Ce,ye,Le){const Ee=f.StandaloneServices.get(s.ILanguageService),Me=Ee.getLanguageIdByMimeType(ye)||ye;return(0,C.createTextModel)(f.StandaloneServices.get(a.IModelService),Ee,Ce,Me,Le)}function j(Ce,ye){const Le=f.StandaloneServices.get(s.ILanguageService),Ee=Le.getLanguageIdByMimeType(ye)||ye||g.PLAINTEXT_LANGUAGE_ID;Ce.setLanguage(Le.createById(Ee))}function Y(Ce,ye,Le){Ce&&f.StandaloneServices.get(D.IMarkerService).changeOne(ye,Ce.uri,Le)}function G(Ce){f.StandaloneServices.get(D.IMarkerService).changeAll(Ce,[])}function K(Ce){return f.StandaloneServices.get(D.IMarkerService).read(Ce)}function R(Ce){return f.StandaloneServices.get(D.IMarkerService).onMarkerChanged(Ce)}function J(Ce){return f.StandaloneServices.get(a.IModelService).getModel(Ce)}function ie(){return f.StandaloneServices.get(a.IModelService).getModels()}function ue(Ce){return f.StandaloneServices.get(a.IModelService).onModelAdded(Ce)}function he(Ce){return f.StandaloneServices.get(a.IModelService).onModelRemoved(Ce)}function pe(Ce){return f.StandaloneServices.get(a.IModelService).onModelLanguageChanged(Le=>{Ce({model:Le.model,oldLanguage:Le.oldLanguageId})})}function ae(Ce){return(0,b.createWebWorker)(f.StandaloneServices.get(a.IModelService),Ce)}function ee(Ce,ye){const Le=f.StandaloneServices.get(s.ILanguageService),Ee=f.StandaloneServices.get(h.IStandaloneThemeService);return u.Colorizer.colorizeElement(Ee,Le,Ce,ye).then(()=>{Ee.registerEditorContainer(Ce)})}function de(Ce,ye,Le){const Ee=f.StandaloneServices.get(s.ILanguageService);return f.StandaloneServices.get(h.IStandaloneThemeService).registerEditorContainer(d.mainWindow.document.body),u.Colorizer.colorize(Ee,Ce,ye,Le)}function ge(Ce,ye,Le=4){return f.StandaloneServices.get(h.IStandaloneThemeService).registerEditorContainer(d.mainWindow.document.body),u.Colorizer.colorizeModelLine(Ce,ye,Le)}function X(Ce){const ye=i.TokenizationRegistry.get(Ce);return ye||{getInitialState:()=>c.NullState,tokenize:(Le,Ee,Me)=>(0,c.nullTokenize)(Ce,Me)}}function B(Ce,ye){i.TokenizationRegistry.getOrCreate(ye);const Le=X(ye),Ee=(0,I.splitLines)(Ce),Me=[];let Ae=Le.getInitialState();for(let Ne=0,Ke=Ee.length;Ne{if(!Ee)return null;const Ae=Le.options?.selection;let Ne;return Ae&&typeof Ae.endLineNumber=="number"&&typeof Ae.endColumn=="number"?Ne=Ae:Ae&&(Ne={lineNumber:Ae.startLineNumber,column:Ae.startColumn}),await Ce.openCodeEditor(Ee,Le.resource,Ne)?Ee:null})}function me(){return{create:A,getEditors:O,getDiffEditors:F,onDidCreateEditor:P,onDidCreateDiffEditor:N,createDiffEditor:x,addCommand:V,addEditorAction:q,addKeybindingRule:H,addKeybindingRules:z,createModel:U,setModelLanguage:j,setModelMarkers:Y,getModelMarkers:K,removeAllMarkers:G,onDidChangeMarkers:R,getModels:ie,getModel:J,onDidCreateModel:ue,onWillDisposeModel:he,onDidChangeModelLanguage:pe,createWebWorker:ae,colorizeElement:ee,colorize:de,colorizeModelLine:ge,tokenize:B,defineTheme:$,setTheme:Q,remeasureFonts:Z,registerCommand:te,registerLinkOpener:re,registerEditorOpener:le,AccessibilitySupport:r.AccessibilitySupport,ContentWidgetPositionPreference:r.ContentWidgetPositionPreference,CursorChangeReason:r.CursorChangeReason,DefaultEndOfLine:r.DefaultEndOfLine,EditorAutoIndentStrategy:r.EditorAutoIndentStrategy,EditorOption:r.EditorOption,EndOfLinePreference:r.EndOfLinePreference,EndOfLineSequence:r.EndOfLineSequence,MinimapPosition:r.MinimapPosition,MinimapSectionHeaderStyle:r.MinimapSectionHeaderStyle,MouseTargetType:r.MouseTargetType,OverlayWidgetPositionPreference:r.OverlayWidgetPositionPreference,OverviewRulerLane:r.OverviewRulerLane,GlyphMarginLane:r.GlyphMarginLane,RenderLineNumbersType:r.RenderLineNumbersType,RenderMinimap:r.RenderMinimap,ScrollbarVisibility:r.ScrollbarVisibility,ScrollType:r.ScrollType,TextEditorCursorBlinkingStyle:r.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:r.TextEditorCursorStyle,TrackedRangeStickiness:r.TrackedRangeStickiness,WrappingIndent:r.WrappingIndent,InjectedTextCursorStops:r.InjectedTextCursorStops,PositionAffinity:r.PositionAffinity,ShowLightbulbIconMode:r.ShowLightbulbIconMode,ConfigurationChangedEvent:p.ConfigurationChangedEvent,BareFontInfo:o.BareFontInfo,FontInfo:o.FontInfo,TextModelResolvedOptions:l.TextModelResolvedOptions,FindMatch:l.FindMatch,ApplyUpdateResult:p.ApplyUpdateResult,EditorZoom:n.EditorZoom,createMultiFileDiffEditor:W,EditorType:t.EditorType,EditorOptions:p.EditorOptions}}}),define(ne[875],se([1,0,37,372,874,872,409]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.languages=e.editor=e.Token=e.Uri=e.MarkerTag=e.MarkerSeverity=e.SelectionDirection=e.Selection=e.Range=e.Position=e.KeyMod=e.KeyCode=e.Emitter=e.CancellationTokenSource=void 0,d.EditorOptions.wrappingIndent.defaultValue=0,d.EditorOptions.glyphMargin.defaultValue=!1,d.EditorOptions.autoIndent.defaultValue=3,d.EditorOptions.overviewRulerLanes.defaultValue=2,y.FormattingConflicts.setFormatterSelector((b,p,n)=>Promise.resolve(b[0]));const m=(0,k.createMonacoBaseAPI)();m.editor=(0,I.createMonacoEditorAPI)(),m.languages=(0,E.createMonacoLanguagesAPI)(),e.CancellationTokenSource=m.CancellationTokenSource,e.Emitter=m.Emitter,e.KeyCode=m.KeyCode,e.KeyMod=m.KeyMod,e.Position=m.Position,e.Range=m.Range,e.Selection=m.Selection,e.SelectionDirection=m.SelectionDirection,e.MarkerSeverity=m.MarkerSeverity,e.MarkerTag=m.MarkerTag,e.Uri=m.Uri,e.Token=m.Token,e.editor=m.editor,e.languages=m.languages,(globalThis.MonacoEnvironment?.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=m),typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})});var Lt=this&&this.__exportStar||function(oe,e){for(var d in oe)d!=="default"&&!Object.prototype.hasOwnProperty.call(e,d)&&ci(e,oe,d)};define(ne[877],se([1,0,875,870,746,747,721,794,795,750,854,797]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Lt(d,e)})}).call(this); - - -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/basic-languages/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ -"use strict";var moduleExports=(()=>{var y=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var a=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var D=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var l=(e,r,s,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of q(r))!M.call(e,o)&&o!==s&&g(e,o,{get:()=>r[o],enumerable:!(n=x(r,o))||n.enumerable});return e},p=(e,r,s)=>(l(e,r,"default"),s&&l(s,r,"default")),c=(e,r,s)=>(s=e!=null?y(A(e)):{},l(r||!e||!e.__esModule?g(s,"default",{value:e,enumerable:!0}):s,e));var v=D((w,d)=>{var b=c(a("vs/editor/editor.api"));d.exports=b});var t={};p(t,c(v()));var f={},m={},u=class e{static getOrCreate(r){return m[r]||(m[r]=new e(r)),m[r]}constructor(r){this._languageId=r,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((s,n)=>{this._lazyLoadPromiseResolve=s,this._lazyLoadPromiseReject=n})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,f[this._languageId].loader().then(r=>this._lazyLoadPromiseResolve(r),r=>this._lazyLoadPromiseReject(r))),this._lazyLoadPromise}};function i(e){let r=e.id;f[r]=e,t.languages.register(e);let s=u.getOrCreate(r);t.languages.registerTokensProviderFactory(r,{create:async()=>(await s.load()).language}),t.languages.onLanguageEncountered(r,async()=>{let n=await s.load();t.languages.setLanguageConfiguration(r,n.conf)})}i({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/abap/abap"],e,r)})});i({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/apex/apex"],e,r)})});i({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/azcli/azcli"],e,r)})});i({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bat/bat"],e,r)})});i({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bicep/bicep"],e,r)})});i({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cameligo/cameligo"],e,r)})});i({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/clojure/clojure"],e,r)})});i({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/coffee/coffee"],e,r)})});i({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csharp/csharp"],e,r)})});i({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csp/csp"],e,r)})});i({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/css/css"],e,r)})});i({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cypher/cypher"],e,r)})});i({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dart/dart"],e,r)})});i({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dockerfile/dockerfile"],e,r)})});i({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ecl/ecl"],e,r)})});i({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/elixir/elixir"],e,r)})});i({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/flow9/flow9"],e,r)})});i({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/fsharp/fsharp"],e,r)})});i({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationBracket)});i({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationBracket)});i({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationDollar)});i({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationBracket)});i({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/go/go"],e,r)})});i({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/graphql/graphql"],e,r)})});i({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/handlebars/handlebars"],e,r)})});i({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/hcl/hcl"],e,r)})});i({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/html/html"],e,r)})});i({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ini/ini"],e,r)})});i({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/java/java"],e,r)})});i({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/javascript/javascript"],e,r)})});i({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/julia/julia"],e,r)})});i({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/kotlin/kotlin"],e,r)})});i({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/less/less"],e,r)})});i({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lexon/lexon"],e,r)})});i({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lua/lua"],e,r)})});i({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/liquid/liquid"],e,r)})});i({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/m3/m3"],e,r)})});i({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/markdown/markdown"],e,r)})});i({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mdx/mdx"],e,r)})});i({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mips/mips"],e,r)})});i({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/msdax/msdax"],e,r)})});i({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mysql/mysql"],e,r)})});i({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/objective-c/objective-c"],e,r)})});i({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascal/pascal"],e,r)})});i({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascaligo/pascaligo"],e,r)})});i({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/perl/perl"],e,r)})});i({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pgsql/pgsql"],e,r)})});i({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/php/php"],e,r)})});i({id:"pla",extensions:[".pla"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pla/pla"],e,r)})});i({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/postiats/postiats"],e,r)})});i({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powerquery/powerquery"],e,r)})});i({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powershell/powershell"],e,r)})});i({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/protobuf/protobuf"],e,r)})});i({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pug/pug"],e,r)})});i({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/python/python"],e,r)})});i({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/qsharp/qsharp"],e,r)})});i({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/r/r"],e,r)})});i({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/razor/razor"],e,r)})});i({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redis/redis"],e,r)})});i({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redshift/redshift"],e,r)})});i({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/restructuredtext/restructuredtext"],e,r)})});i({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ruby/ruby"],e,r)})});i({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/rust/rust"],e,r)})});i({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sb/sb"],e,r)})});i({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scala/scala"],e,r)})});i({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scheme/scheme"],e,r)})});i({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scss/scss"],e,r)})});i({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/shell/shell"],e,r)})});i({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/solidity/solidity"],e,r)})});i({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sophia/sophia"],e,r)})});i({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sparql/sparql"],e,r)})});i({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sql/sql"],e,r)})});i({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/st/st"],e,r)})});i({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/swift/swift"],e,r)})});i({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/tcl/tcl"],e,r)})});i({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/twig/twig"],e,r)})});i({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/typescript/typescript"],e,r)})});i({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/typespec/typespec"],e,r)})});i({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/vb/vb"],e,r)})});i({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/wgsl/wgsl"],e,r)})});i({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\new Promise((e,r)=>{a(["vs/basic-languages/xml/xml"],e,r)})});i({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/yaml/yaml"],e,r)})});})(); -return moduleExports; -}); - -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/css/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ -"use strict";var moduleExports=(()=>{var C=Object.create;var g=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var l=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,r)=>(typeof require<"u"?require:n)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),M=(e,n)=>{for(var r in n)g(e,r,{get:n[r],enumerable:!0})},s=(e,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of b(n))!h.call(e,t)&&t!==r&&g(e,t,{get:()=>n[t],enumerable:!(a=S(n,t))||a.enumerable});return e},y=(e,n,r)=>(s(e,n,"default"),r&&s(r,n,"default")),w=(e,n,r)=>(r=e!=null?C(x(e)):{},s(n||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),P=e=>s(g({},"__esModule",{value:!0}),e);var v=I((k,D)=>{var O=w(l("vs/editor/editor.api"));D.exports=O});var R={};M(R,{cssDefaults:()=>p,lessDefaults:()=>f,scssDefaults:()=>c});var o={};y(o,w(v()));var i=class{constructor(n,r,a){this._onDidChange=new o.Emitter;this._languageId=n,this.setOptions(r),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(n){this.setOptions(n)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},d={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},u={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},p=new i("css",d,u),c=new i("scss",d,u),f=new i("less",d,u);o.languages.css={cssDefaults:p,lessDefaults:f,scssDefaults:c};function m(){return new Promise((e,n)=>{l(["vs/language/css/cssMode"],e,n)})}o.languages.onLanguage("less",()=>{m().then(e=>e.setupMode(f))});o.languages.onLanguage("scss",()=>{m().then(e=>e.setupMode(c))});o.languages.onLanguage("css",()=>{m().then(e=>e.setupMode(p))});return P(R);})(); -return moduleExports; -}); - -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/html/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ -"use strict";var moduleExports=(()=>{var w=Object.create;var l=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),T=(e,n)=>{for(var t in n)l(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of H(n))!_.call(e,o)&&o!==t&&l(e,o,{get:()=>n[o],enumerable:!(r=R(n,o))||r.enumerable});return e},b=(e,n,t)=>(d(e,n,"default"),t&&d(t,n,"default")),v=(e,n,t)=>(t=e!=null?w(O(e)):{},d(n||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),A=e=>d(l({},"__esModule",{value:!0}),e);var C=k((z,h)=>{var E=v(f("vs/editor/editor.api"));h.exports=E});var V={};T(V,{handlebarDefaults:()=>M,handlebarLanguageService:()=>m,htmlDefaults:()=>x,htmlLanguageService:()=>c,razorDefaults:()=>I,razorLanguageService:()=>y,registerHTMLLanguageService:()=>s});var a={};b(a,v(C()));var p=class{constructor(n,t,r){this._onDidChange=new a.Emitter;this._languageId=n,this.setOptions(t),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},F={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},u={format:F,suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===i,documentFormattingEdits:e===i,documentRangeFormattingEdits:e===i}}var i="html",D="handlebars",L="razor",c=s(i,u,g(i)),x=c.defaults,m=s(D,u,g(D)),M=m.defaults,y=s(L,u,g(L)),I=y.defaults;a.languages.html={htmlDefaults:x,razorDefaults:I,handlebarDefaults:M,htmlLanguageService:c,handlebarLanguageService:m,razorLanguageService:y,registerHTMLLanguageService:s};function P(){return new Promise((e,n)=>{f(["vs/language/html/htmlMode"],e,n)})}function s(e,n=u,t=g(e)){let r=new p(e,n,t),o,S=a.languages.onLanguage(e,async()=>{o=(await P()).setupMode(r)});return{defaults:r,dispose(){S.dispose(),o?.dispose(),o=void 0}}}return A(V);})(); -return moduleExports; -}); - -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/json/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ -"use strict";var moduleExports=(()=>{var f=Object.create;var s=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),x=(e,n)=>{for(var o in n)s(e,o,{get:n[o],enumerable:!0})},i=(e,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of N(n))!O.call(e,r)&&r!==o&&s(e,r,{get:()=>n[r],enumerable:!(a=h(n,r))||a.enumerable});return e},g=(e,n,o)=>(i(e,n,"default"),o&&i(o,n,"default")),c=(e,n,o)=>(o=e!=null?f(b(e)):{},i(n||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),A=e=>i(s({},"__esModule",{value:!0}),e);var S=v((R,u)=>{var T=c(d("vs/editor/editor.api"));u.exports=T});var M={};x(M,{getWorker:()=>p,jsonDefaults:()=>m});var t={};g(t,c(S()));var l=class{constructor(n,o,a){this._onDidChange=new t.Emitter;this._languageId=n,this.setDiagnosticsOptions(o),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},D={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},C={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},m=new l("json",D,C),p=()=>y().then(e=>e.getWorker());t.languages.json={jsonDefaults:m,getWorker:p};function y(){return new Promise((e,n)=>{d(["vs/language/json/jsonMode"],e,n)})}t.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});t.languages.onLanguage("json",()=>{y().then(e=>e.setupMode(m))});return A(M);})(); -return moduleExports; -}); - -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/typescript/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ -"use strict";var moduleExports=(()=>{var N=Object.create;var m=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var c=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var w=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),A=(n,e)=>{for(var t in e)m(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of M(e))!F.call(n,r)&&r!==t&&m(n,r,{get:()=>e[r],enumerable:!(i=H(e,r))||i.enumerable});return n},v=(n,e,t)=>(g(n,e,"default"),t&&g(t,e,"default")),C=(n,e,t)=>(t=n!=null?N(R(n)):{},g(e||!n||!n.__esModule?m(t,"default",{value:n,enumerable:!0}):t,n)),W=n=>g(m({},"__esModule",{value:!0}),n);var _=w((B,L)=>{var V=C(c("vs/editor/editor.api"));L.exports=V});var T={};A(T,{JsxEmit:()=>f,ModuleKind:()=>b,ModuleResolutionKind:()=>O,NewLineKind:()=>y,ScriptTarget:()=>h,getJavaScriptWorker:()=>k,getTypeScriptWorker:()=>P,javascriptDefaults:()=>D,typescriptDefaults:()=>x,typescriptVersion:()=>I});var E="5.4.5";var l={};v(l,C(_()));var b=(s=>(s[s.None=0]="None",s[s.CommonJS=1]="CommonJS",s[s.AMD=2]="AMD",s[s.UMD=3]="UMD",s[s.System=4]="System",s[s.ES2015=5]="ES2015",s[s.ESNext=99]="ESNext",s))(b||{}),f=(a=>(a[a.None=0]="None",a[a.Preserve=1]="Preserve",a[a.React=2]="React",a[a.ReactNative=3]="ReactNative",a[a.ReactJSX=4]="ReactJSX",a[a.ReactJSXDev=5]="ReactJSXDev",a))(f||{}),y=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(y||{}),h=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(h||{}),O=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(O||{}),d=class{constructor(e,t,i,r,p){this._onDidChange=new l.Emitter;this._onDidExtraLibsChange=new l.Emitter;this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(r),this.setModeConfiguration(p),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let r=1;return this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(r=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let p=this._extraLibs[i];p&&p.version===r&&(delete this._extraLibs[i],this._removedExtraLibs[i]=r,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(let t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(let t of e){let i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,r=t.content,p=1;this._removedExtraLibs[i]&&(p=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:r,version:p}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}},I=E,S={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},x=new d({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),D=new d({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),P=()=>u().then(n=>n.getTypeScriptWorker()),k=()=>u().then(n=>n.getJavaScriptWorker());l.languages.typescript={ModuleKind:b,JsxEmit:f,NewLineKind:y,ScriptTarget:h,ModuleResolutionKind:O,typescriptVersion:I,typescriptDefaults:x,javascriptDefaults:D,getTypeScriptWorker:P,getJavaScriptWorker:k};function u(){return new Promise((n,e)=>{c(["vs/language/typescript/tsMode"],n,e)})}l.languages.onLanguage("typescript",()=>u().then(n=>n.setupTypeScript(x)));l.languages.onLanguage("javascript",()=>u().then(n=>n.setupJavaScript(D)));return W(T);})(); -return moduleExports; -}); - -define("vs/editor/editor.main", ["vs/editor/edcore.main","vs/basic-languages/monaco.contribution","vs/language/css/monaco.contribution","vs/language/html/monaco.contribution","vs/language/json/monaco.contribution","vs/language/typescript/monaco.contribution"], function(api) { return api; }); -//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map \ No newline at end of file diff --git a/public/js/monaco-editor-0.52.2/min/vs/language/css/cssMode.js b/public/js/monaco-editor-0.52.2/min/vs/language/css/cssMode.js deleted file mode 100644 index 8e46120c7..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/language/css/cssMode.js +++ /dev/null @@ -1,13 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/css/cssMode", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var Tt=Object.create;var X=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var bt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Et=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Rt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),Pt=(e,n)=>{for(var i in n)X(e,i,{get:n[i],enumerable:!0})},z=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Ct(n))!wt.call(e,t)&&t!==i&&X(e,t,{get:()=>n[t],enumerable:!(r=_t(n,t))||r.enumerable});return e},he=(e,n,i)=>(z(e,n,"default"),i&&z(i,n,"default")),me=(e,n,i)=>(i=e!=null?Tt(bt(e)):{},z(n||!e||!e.__esModule?X(i,"default",{value:e,enumerable:!0}):i,e)),Lt=e=>z(X({},"__esModule",{value:!0}),e);var ye=Rt((Qt,xe)=>{var Wt=me(Et("vs/editor/editor.api"));xe.exports=Wt});var Bt={};Pt(Bt,{CompletionAdapter:()=>D,DefinitionAdapter:()=>A,DiagnosticsAdapter:()=>W,DocumentColorAdapter:()=>N,DocumentFormattingEditProvider:()=>U,DocumentHighlightAdapter:()=>F,DocumentLinkAdapter:()=>fe,DocumentRangeFormattingEditProvider:()=>H,DocumentSymbolAdapter:()=>j,FoldingRangeAdapter:()=>O,HoverAdapter:()=>S,ReferenceAdapter:()=>M,RenameAdapter:()=>K,SelectionRangeAdapter:()=>V,WorkerManager:()=>_,fromPosition:()=>k,fromRange:()=>pe,setupMode:()=>$t,toRange:()=>y,toTextEdit:()=>P});var d={};he(d,me(ye()));var Dt=2*60*1e3,_=class{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>Dt&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let i;return this._getClient().then(r=>{i=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(r=>i)}};var ve;(function(e){function n(i){return typeof i=="string"}e.is=n})(ve||(ve={}));var Z;(function(e){function n(i){return typeof i=="string"}e.is=n})(Z||(Z={}));var Ie;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Ie||(Ie={}));var $;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})($||($={}));var I;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=$.MAX_VALUE),t===Number.MAX_VALUE&&(t=$.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(I||(I={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:I.create(r,t),end:I.create(o,s)};if(I.is(r)&&I.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&I.is(t.start)&&I.is(t.end)}e.is=i})(h||(h={}));var B;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(B||(B={}));var ke;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(ke||(ke={}));var ee;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(ee||(ee={}));var Te;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&ee.is(t.color)}e.is=i})(Te||(Te={}));var _e;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||w.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,w.is))}e.is=i})(_e||(_e={}));var C;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(C||(C={}));var Ce;(function(e){function n(r,t,o,s,u,g){let f={startLine:r,endLine:t};return a.defined(o)&&(f.startCharacter=o),a.defined(s)&&(f.endCharacter=s),a.defined(u)&&(f.kind=u),a.defined(g)&&(f.collapsedText=g),f}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(Ce||(Ce={}));var te;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.location)&&a.string(t.message)}e.is=i})(te||(te={}));var T;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(T||(T={}));var be;(function(e){e.Unnecessary=1,e.Deprecated=2})(be||(be={}));var we;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(we||(we={}));var q;(function(e){function n(r,t,o,s,u,g){let f={range:r,message:t};return a.defined(o)&&(f.severity=o),a.defined(s)&&(f.code=s),a.defined(u)&&(f.source=u),a.defined(g)&&(f.relatedInformation=g),f}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,te.is))}e.is=i})(q||(q={}));var b;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(b||(b={}));var w;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:""}}e.del=r;function t(o){let s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(w||(w={}));var ne;(function(e){function n(r,t,o){let s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(ne||(ne={}));var E;(function(e){function n(i){let r=i;return a.string(r)}e.is=n})(E||(E={}));var Ee;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function t(o){let s=o;return w.is(s)&&(ne.is(s.annotationId)||E.is(s.annotationId))}e.is=t})(Ee||(Ee={}));var re;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&ue.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(re||(re={}));var ie;(function(e){function n(r,t,o){let s={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(ie||(ie={}));var oe;(function(e){function n(r,t,o,s){let u={kind:"rename",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(oe||(oe={}));var se;(function(e){function n(r,t,o){let s={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(se||(se={}));var ae;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?ie.is(t)||oe.is(t)||se.is(t):re.is(t)))}e.is=n})(ae||(ae={}));var Re;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(Pe||(Pe={}));var ue;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(ue||(ue={}));var Le;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(Le||(Le={}));var de;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){let r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(de||(de={}));var L;(function(e){function n(i){let r=i;return a.objectLiteral(i)&&de.is(r.kind)&&a.string(r.value)}e.is=n})(L||(L={}));var m;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(m||(m={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var We;(function(e){e.Deprecated=1})(We||(We={}));var De;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){let t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(De||(De={}));var Se;(function(e){e.asIs=1,e.adjustIndentation=2})(Se||(Se={}));var Fe;(function(e){function n(i){let r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(Fe||(Fe={}));var Ae;(function(e){function n(i){return{label:i}}e.create=n})(Ae||(Ae={}));var Me;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(Me||(Me={}));var G;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){let t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(G||(G={}));var Ke;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(L.is(r.contents)||G.is(r.contents)||a.typedArray(r.contents,G.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(Ke||(Ke={}));var je;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(je||(je={}));var Ue;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(Ue||(Ue={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var He;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(He||(He={}));var x;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(x||(x={}));var Ne;(function(e){e.Deprecated=1})(Ne||(Ne={}));var Oe;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(Oe||(Oe={}));var Ve;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(Ve||(Ve={}));var ze;(function(e){function n(r,t,o,s,u,g){let f={name:r,detail:t,kind:o,range:s,selectionRange:u};return g!==void 0&&(f.children=g),f}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ze||(ze={}));var Xe;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(Xe||(Xe={}));var J;(function(e){e.Invoked=1,e.Automatic=2})(J||(J={}));var $e;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,q.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===J.Invoked||t.triggerKind===J.Automatic)}e.is=i})($e||($e={}));var Be;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t=="string"?(u=!1,s.kind=t):b.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,q.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||b.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||ae.is(t.edit))}e.is=i})(Be||(Be={}));var qe;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||b.is(t.command))}e.is=i})(qe||(qe={}));var Qe;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Qe||(Qe={}));var Ge;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Ge||(Ge={}));var Je;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Je||(Je={}));var Ye;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(Ye||(Ye={}));var Ze;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Ze||(Ze={}));var et;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(et||(et={}));var tt;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(tt||(tt={}));var nt;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(nt||(nt={}));var rt;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(rt||(rt={}));var it;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(it||(it={}));var ce;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(ce||(ce={}));var le;(function(e){function n(r){return{value:r}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||L.is(t.tooltip))&&(t.location===void 0||B.is(t.location))&&(t.command===void 0||b.is(t.command))}e.is=i})(le||(le={}));var ot;(function(e){function n(r,t,o){let s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&I.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,le.is))&&(t.kind===void 0||ce.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,w.is)&&(t.tooltip===void 0||a.string(t.tooltip)||L.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(ot||(ot={}));var st;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(st||(st={}));var at;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(at||(at={}));var ut;(function(e){function n(i){return{items:i}}e.create=n})(ut||(ut={}));var dt;(function(e){e.Invoked=0,e.Automatic=1})(dt||(dt={}));var ct;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(ct||(ct={}));var lt;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(lt||(lt={}));var gt;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&Z.is(r.uri)&&a.string(r.name)}e.is=n})(gt||(gt={}));var ft;(function(e){function n(o,s,u,g){return new ge(o,s,u,g)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),g=t(s,(l,p)=>{let v=l.range.start.line-p.range.start.line;return v===0?l.range.start.character-p.range.start.character:v}),f=u.length;for(let l=g.length-1;l>=0;l--){let p=g[l],v=o.offsetAt(p.range.start),c=o.offsetAt(p.range.end);if(c<=f)u=u.substring(0,v)+p.newText+u.substring(c,u.length);else throw new Error("Overlapping edit");f=v}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;let u=o.length/2|0,g=o.slice(0,u),f=o.slice(u);t(g,s),t(f,s);let l=0,p=0,v=0;for(;l0&&n.push(i.length),this._lineOffsets=n}return this._lineOffsets}positionAt(n){n=Math.max(Math.min(n,this._content.length),0);let i=this.getLineOffsets(),r=0,t=i.length;if(t===0)return I.create(0,n);for(;rn?t=s:r=s+1}let o=r-1;return I.create(o,n-i[o])}offsetAt(n){let i=this.getLineOffsets();if(n.line>=i.length)return this._content.length;if(n.line<0)return 0;let r=i[n.line],t=n.line+1"u"}e.undefined=r;function t(c){return c===!0||c===!1}e.boolean=t;function o(c){return n.call(c)==="[object String]"}e.string=o;function s(c){return n.call(c)==="[object Number]"}e.number=s;function u(c,Y,kt){return n.call(c)==="[object Number]"&&Y<=c&&c<=kt}e.numberRange=u;function g(c){return n.call(c)==="[object Number]"&&-2147483648<=c&&c<=2147483647}e.integer=g;function f(c){return n.call(c)==="[object Number]"&&0<=c&&c<=2147483647}e.uinteger=f;function l(c){return n.call(c)==="[object Function]"}e.func=l;function p(c){return c!==null&&typeof c=="object"}e.objectLiteral=p;function v(c,Y){return Array.isArray(c)&&c.every(Y)}e.typedArray=v})(a||(a={}));var W=class{constructor(n,i,r){this._languageId=n;this._worker=i;this._disposables=[];this._listener=Object.create(null);let t=s=>{let u=s.getLanguageId();if(u!==this._languageId)return;let g;this._listener[s.uri.toString()]=s.onDidChangeContent(()=>{window.clearTimeout(g),g=window.setTimeout(()=>this._doValidate(s.uri,u),500)}),this._doValidate(s.uri,u)},o=s=>{d.editor.setModelMarkers(s,this._languageId,[]);let u=s.uri.toString(),g=this._listener[u];g&&(g.dispose(),delete this._listener[u])};this._disposables.push(d.editor.onDidCreateModel(t)),this._disposables.push(d.editor.onWillDisposeModel(o)),this._disposables.push(d.editor.onDidChangeModelLanguage(s=>{o(s.model),t(s.model)})),this._disposables.push(r(s=>{d.editor.getModels().forEach(u=>{u.getLanguageId()===this._languageId&&(o(u),t(u))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(o);for(let s in this._listener)this._listener[s].dispose()}}),d.editor.getModels().forEach(t)}dispose(){this._disposables.forEach(n=>n&&n.dispose()),this._disposables.length=0}_doValidate(n,i){this._worker(n).then(r=>r.doValidation(n.toString())).then(r=>{let t=r.map(s=>At(n,s)),o=d.editor.getModel(n);o&&o.getLanguageId()===i&&d.editor.setModelMarkers(o,i,t)}).then(void 0,r=>{console.error(r)})}};function Ft(e){switch(e){case T.Error:return d.MarkerSeverity.Error;case T.Warning:return d.MarkerSeverity.Warning;case T.Information:return d.MarkerSeverity.Info;case T.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function At(e,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:Ft(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var D=class{constructor(n,i){this._worker=n;this._triggerCharacters=i}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.doComplete(o.toString(),k(i))).then(s=>{if(!s)return;let u=n.getWordUntilPosition(i),g=new d.Range(i.lineNumber,u.startColumn,i.lineNumber,u.endColumn),f=s.items.map(l=>{let p={label:l.label,insertText:l.insertText||l.label,sortText:l.sortText,filterText:l.filterText,documentation:l.documentation,detail:l.detail,command:jt(l.command),range:g,kind:Kt(l.kind)};return l.textEdit&&(Mt(l.textEdit)?p.range={insert:y(l.textEdit.insert),replace:y(l.textEdit.replace)}:p.range=y(l.textEdit.range),p.insertText=l.textEdit.newText),l.additionalTextEdits&&(p.additionalTextEdits=l.additionalTextEdits.map(P)),l.insertTextFormat===Q.Snippet&&(p.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),p});return{isIncomplete:s.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function y(e){if(e)return new d.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Mt(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function Kt(e){let n=d.languages.CompletionItemKind;switch(e){case m.Text:return n.Text;case m.Method:return n.Method;case m.Function:return n.Function;case m.Constructor:return n.Constructor;case m.Field:return n.Field;case m.Variable:return n.Variable;case m.Class:return n.Class;case m.Interface:return n.Interface;case m.Module:return n.Module;case m.Property:return n.Property;case m.Unit:return n.Unit;case m.Value:return n.Value;case m.Enum:return n.Enum;case m.Keyword:return n.Keyword;case m.Snippet:return n.Snippet;case m.Color:return n.Color;case m.File:return n.File;case m.Reference:return n.Reference}return n.Property}function P(e){if(e)return{range:y(e.range),text:e.newText}}function jt(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var S=class{constructor(n){this._worker=n}provideHover(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.doHover(t.toString(),k(i))).then(o=>{if(o)return{range:y(o.range),contents:Ht(o.contents)}})}};function Ut(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function pt(e){return typeof e=="string"?{value:e}:Ut(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` -`+e.value+"\n```\n"}}function Ht(e){if(e)return Array.isArray(e)?e.map(pt):[pt(e)]}var F=class{constructor(n){this._worker=n}provideDocumentHighlights(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.findDocumentHighlights(t.toString(),k(i))).then(o=>{if(o)return o.map(s=>({range:y(s.range),kind:Nt(s.kind)}))})}};function Nt(e){switch(e){case R.Read:return d.languages.DocumentHighlightKind.Read;case R.Write:return d.languages.DocumentHighlightKind.Write;case R.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var A=class{constructor(n){this._worker=n}provideDefinition(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.findDefinition(t.toString(),k(i))).then(o=>{if(o)return[ht(o)]})}};function ht(e){return{uri:d.Uri.parse(e.uri),range:y(e.range)}}var M=class{constructor(n){this._worker=n}provideReferences(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.findReferences(o.toString(),k(i))).then(s=>{if(s)return s.map(ht)})}},K=class{constructor(n){this._worker=n}provideRenameEdits(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.doRename(o.toString(),k(i),r)).then(s=>Ot(s))}};function Ot(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){let r=d.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:y(t.range),text:t.newText}})}return{edits:n}}var j=class{constructor(n){this._worker=n}provideDocumentSymbols(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentSymbols(r.toString())).then(t=>{if(t)return t.map(o=>Vt(o)?mt(o):{name:o.name,detail:"",containerName:o.containerName,kind:xt(o.kind),range:y(o.location.range),selectionRange:y(o.location.range),tags:[]})})}};function Vt(e){return"children"in e}function mt(e){return{name:e.name,detail:e.detail??"",kind:xt(e.kind),range:y(e.range),selectionRange:y(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>mt(n))}}function xt(e){let n=d.languages.SymbolKind;switch(e){case x.File:return n.File;case x.Module:return n.Module;case x.Namespace:return n.Namespace;case x.Package:return n.Package;case x.Class:return n.Class;case x.Method:return n.Method;case x.Property:return n.Property;case x.Field:return n.Field;case x.Constructor:return n.Constructor;case x.Enum:return n.Enum;case x.Interface:return n.Interface;case x.Function:return n.Function;case x.Variable:return n.Variable;case x.Constant:return n.Constant;case x.String:return n.String;case x.Number:return n.Number;case x.Boolean:return n.Boolean;case x.Array:return n.Array}return n.Function}var fe=class{constructor(n){this._worker=n}provideLinks(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentLinks(r.toString())).then(t=>{if(t)return{links:t.map(o=>({range:y(o.range),url:o.target}))}})}},U=class{constructor(n){this._worker=n}provideDocumentFormattingEdits(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.format(t.toString(),null,yt(i)).then(s=>{if(!(!s||s.length===0))return s.map(P)}))}},H=class{constructor(n){this._worker=n;this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.format(o.toString(),pe(i),yt(r)).then(u=>{if(!(!u||u.length===0))return u.map(P)}))}};function yt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var N=class{constructor(n){this._worker=n}provideDocumentColors(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentColors(r.toString())).then(t=>{if(t)return t.map(o=>({color:o.color,range:y(o.range)}))})}provideColorPresentations(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getColorPresentations(t.toString(),i.color,pe(i.range))).then(o=>{if(o)return o.map(s=>{let u={label:s.label};return s.textEdit&&(u.textEdit=P(s.textEdit)),s.additionalTextEdits&&(u.additionalTextEdits=s.additionalTextEdits.map(P)),u})})}},O=class{constructor(n){this._worker=n}provideFoldingRanges(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getFoldingRanges(t.toString(),i)).then(o=>{if(o)return o.map(s=>{let u={start:s.startLine+1,end:s.endLine+1};return typeof s.kind<"u"&&(u.kind=zt(s.kind)),u})})}};function zt(e){switch(e){case C.Comment:return d.languages.FoldingRangeKind.Comment;case C.Imports:return d.languages.FoldingRangeKind.Imports;case C.Region:return d.languages.FoldingRangeKind.Region}}var V=class{constructor(n){this._worker=n}provideSelectionRanges(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getSelectionRanges(t.toString(),i.map(k))).then(o=>{if(o)return o.map(s=>{let u=[];for(;s;)u.push({range:y(s.range)}),s=s.parent;return u})})}};function $t(e){let n=[],i=[],r=new _(e);n.push(r);let t=(...s)=>r.getLanguageServiceWorker(...s);function o(){let{languageId:s,modeConfiguration:u}=e;It(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new D(t,["/","-",":"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new S(t))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new F(t))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new A(t))),u.references&&i.push(d.languages.registerReferenceProvider(s,new M(t))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new j(t))),u.rename&&i.push(d.languages.registerRenameProvider(s,new K(t))),u.colors&&i.push(d.languages.registerColorProvider(s,new N(t))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new O(t))),u.diagnostics&&i.push(new W(s,t,e.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new V(t))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new U(t))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new H(t)))}return o(),n.push(vt(i)),vt(n)}function vt(e){return{dispose:()=>It(e)}}function It(e){for(;e.length;)e.pop().dispose()}return Lt(Bt);})(); -return moduleExports; -}); diff --git a/public/js/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js b/public/js/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js deleted file mode 100644 index 920ea7263..000000000 --- a/public/js/monaco-editor-0.52.2/min/vs/language/css/cssWorker.js +++ /dev/null @@ -1,77 +0,0 @@ -/*!----------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) - * Released under the MIT license - * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/ -define("vs/language/css/cssWorker", ["require","require"],(require)=>{ -"use strict";var moduleExports=(()=>{var Er=Object.defineProperty;var Fo=Object.getOwnPropertyDescriptor;var Eo=Object.getOwnPropertyNames;var _o=Object.prototype.hasOwnProperty;var Io=(n,e)=>{for(var t in e)Er(n,t,{get:e[t],enumerable:!0})},Do=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Eo(e))!_o.call(n,i)&&i!==t&&Er(n,i,{get:()=>e[i],enumerable:!(r=Fo(e,i))||r.enumerable});return n};var Ro=n=>Do(Er({},"__esModule",{value:!0}),n);var nl={};Io(nl,{CSSWorker:()=>Fr,create:()=>tl});var c;(function(n){n[n.Ident=0]="Ident",n[n.AtKeyword=1]="AtKeyword",n[n.String=2]="String",n[n.BadString=3]="BadString",n[n.UnquotedString=4]="UnquotedString",n[n.Hash=5]="Hash",n[n.Num=6]="Num",n[n.Percentage=7]="Percentage",n[n.Dimension=8]="Dimension",n[n.UnicodeRange=9]="UnicodeRange",n[n.CDO=10]="CDO",n[n.CDC=11]="CDC",n[n.Colon=12]="Colon",n[n.SemiColon=13]="SemiColon",n[n.CurlyL=14]="CurlyL",n[n.CurlyR=15]="CurlyR",n[n.ParenthesisL=16]="ParenthesisL",n[n.ParenthesisR=17]="ParenthesisR",n[n.BracketL=18]="BracketL",n[n.BracketR=19]="BracketR",n[n.Whitespace=20]="Whitespace",n[n.Includes=21]="Includes",n[n.Dashmatch=22]="Dashmatch",n[n.SubstringOperator=23]="SubstringOperator",n[n.PrefixOperator=24]="PrefixOperator",n[n.SuffixOperator=25]="SuffixOperator",n[n.Delim=26]="Delim",n[n.EMS=27]="EMS",n[n.EXS=28]="EXS",n[n.Length=29]="Length",n[n.Angle=30]="Angle",n[n.Time=31]="Time",n[n.Freq=32]="Freq",n[n.Exclamation=33]="Exclamation",n[n.Resolution=34]="Resolution",n[n.Comma=35]="Comma",n[n.Charset=36]="Charset",n[n.EscapedJavaScript=37]="EscapedJavaScript",n[n.BadEscapedJavaScript=38]="BadEscapedJavaScript",n[n.Comment=39]="Comment",n[n.SingleLineComment=40]="SingleLineComment",n[n.EOF=41]="EOF",n[n.ContainerQueryLength=42]="ContainerQueryLength",n[n.CustomToken=43]="CustomToken"})(c||(c={}));var un=class{constructor(e){this.source=e,this.len=e.length,this.position=0}substring(e,t=this.position){return this.source.substring(e,t)}eos(){return this.len<=this.position}pos(){return this.position}goBackTo(e){this.position=e}goBack(e){this.position-=e}advance(e){this.position+=e}nextChar(){return this.source.charCodeAt(this.position++)||0}peekChar(e=0){return this.source.charCodeAt(this.position+e)||0}lookbackChar(e=0){return this.source.charCodeAt(this.position-e)||0}advanceIfChar(e){return e===this.source.charCodeAt(this.position)?(this.position++,!0):!1}advanceIfChars(e){if(this.position+e.length>this.source.length)return!1;let t=0;for(;tt&&r===Ui?(e=!0,!1):(t=r===_r,!0)),e&&this.stream.advance(1),!0}return!1}_number(){let e=0,t;return this.stream.peekChar()===Bi&&(e=1),t=this.stream.peekChar(e),t>=At&&t<=Wt?(this.stream.advance(e+1),this.stream.advanceWhileChar(r=>r>=At&&r<=Wt||e===0&&r===Bi),!0):!1}_newline(e){let t=this.stream.peekChar();switch(t){case dt:case $t:case ct:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===dt&&this.stream.advanceIfChar(ct)&&e.push(` -`),!0}return!1}_escape(e,t){let r=this.stream.peekChar();if(r===Ir){this.stream.advance(1),r=this.stream.peekChar();let i=0;for(;i<6&&(r>=At&&r<=Wt||r>=pn&&r<=Pi||r>=mn&&r<=Wi);)this.stream.advance(1),r=this.stream.peekChar(),i++;if(i>0){try{let s=parseInt(this.stream.substring(this.stream.pos()-i),16);s&&e.push(String.fromCharCode(s))}catch{}return r===Dr||r===Rr?this.stream.advance(1):this._newline([]),!0}if(r!==dt&&r!==$t&&r!==ct)return this.stream.advance(1),e.push(String.fromCharCode(r)),!0;if(t)return this._newline(e)}return!1}_stringChar(e,t){let r=this.stream.peekChar();return r!==0&&r!==e&&r!==Ir&&r!==dt&&r!==$t&&r!==ct?(this.stream.advance(1),t.push(String.fromCharCode(r)),!0):!1}_string(e){if(this.stream.peekChar()===ji||this.stream.peekChar()===Vi){let t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),c.String):c.BadString}return null}_unquotedChar(e){let t=this.stream.peekChar();return t!==0&&t!==Ir&&t!==ji&&t!==Vi&&t!==Ki&&t!==Gi&&t!==Dr&&t!==Rr&&t!==ct&&t!==$t&&t!==dt?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unquotedString(e){let t=!1;for(;this._unquotedChar(e)||this._escape(e);)t=!0;return t}_whitespace(){return this.stream.advanceWhileChar(t=>t===Dr||t===Rr||t===ct||t===$t||t===dt)>0}_name(e){let t=!1;for(;this._identChar(e)||this._escape(e);)t=!0;return t}ident(e){let t=this.stream.pos();if(this._minus(e)){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1}_identFirstChar(e){let t=this.stream.peekChar();return t===$i||t>=pn&&t<=Ai||t>=mn&&t<=Li||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_minus(e){let t=this.stream.peekChar();return t===Qe?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_identChar(e){let t=this.stream.peekChar();return t===$i||t===Qe||t>=pn&&t<=Ai||t>=mn&&t<=Li||t>=At&&t<=Wt||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unicodeRange(){if(this.stream.advanceIfChar(Ho)){let e=r=>r>=At&&r<=Wt||r>=pn&&r<=Pi||r>=mn&&r<=Wi,t=this.stream.advanceWhileChar(e)+this.stream.advanceWhileChar(r=>r===Go);if(t>=1&&t<=6)if(this.stream.advanceIfChar(Qe)){let r=this.stream.advanceWhileChar(e);if(r>=1&&r<=6)return!0}else return!0}return!1}};function V(n,e){if(n.length0?n.lastIndexOf(e)===t:t===0?n===e:!1}function Hi(n,e,t=4){let r=Math.abs(n.length-e.length);if(r>t)return 0;let i=[],s=[],a,l;for(a=0;a0;)(e&1)===1&&(t+=n),n+=n,e=e>>>1;return t}var m;(function(n){n[n.Undefined=0]="Undefined",n[n.Identifier=1]="Identifier",n[n.Stylesheet=2]="Stylesheet",n[n.Ruleset=3]="Ruleset",n[n.Selector=4]="Selector",n[n.SimpleSelector=5]="SimpleSelector",n[n.SelectorInterpolation=6]="SelectorInterpolation",n[n.SelectorCombinator=7]="SelectorCombinator",n[n.SelectorCombinatorParent=8]="SelectorCombinatorParent",n[n.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",n[n.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",n[n.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",n[n.Page=12]="Page",n[n.PageBoxMarginBox=13]="PageBoxMarginBox",n[n.ClassSelector=14]="ClassSelector",n[n.IdentifierSelector=15]="IdentifierSelector",n[n.ElementNameSelector=16]="ElementNameSelector",n[n.PseudoSelector=17]="PseudoSelector",n[n.AttributeSelector=18]="AttributeSelector",n[n.Declaration=19]="Declaration",n[n.Declarations=20]="Declarations",n[n.Property=21]="Property",n[n.Expression=22]="Expression",n[n.BinaryExpression=23]="BinaryExpression",n[n.Term=24]="Term",n[n.Operator=25]="Operator",n[n.Value=26]="Value",n[n.StringLiteral=27]="StringLiteral",n[n.URILiteral=28]="URILiteral",n[n.EscapedValue=29]="EscapedValue",n[n.Function=30]="Function",n[n.NumericValue=31]="NumericValue",n[n.HexColorValue=32]="HexColorValue",n[n.RatioValue=33]="RatioValue",n[n.MixinDeclaration=34]="MixinDeclaration",n[n.MixinReference=35]="MixinReference",n[n.VariableName=36]="VariableName",n[n.VariableDeclaration=37]="VariableDeclaration",n[n.Prio=38]="Prio",n[n.Interpolation=39]="Interpolation",n[n.NestedProperties=40]="NestedProperties",n[n.ExtendsReference=41]="ExtendsReference",n[n.SelectorPlaceholder=42]="SelectorPlaceholder",n[n.Debug=43]="Debug",n[n.If=44]="If",n[n.Else=45]="Else",n[n.For=46]="For",n[n.Each=47]="Each",n[n.While=48]="While",n[n.MixinContentReference=49]="MixinContentReference",n[n.MixinContentDeclaration=50]="MixinContentDeclaration",n[n.Media=51]="Media",n[n.Keyframe=52]="Keyframe",n[n.FontFace=53]="FontFace",n[n.Import=54]="Import",n[n.Namespace=55]="Namespace",n[n.Invocation=56]="Invocation",n[n.FunctionDeclaration=57]="FunctionDeclaration",n[n.ReturnStatement=58]="ReturnStatement",n[n.MediaQuery=59]="MediaQuery",n[n.MediaCondition=60]="MediaCondition",n[n.MediaFeature=61]="MediaFeature",n[n.FunctionParameter=62]="FunctionParameter",n[n.FunctionArgument=63]="FunctionArgument",n[n.KeyframeSelector=64]="KeyframeSelector",n[n.ViewPort=65]="ViewPort",n[n.Document=66]="Document",n[n.AtApplyRule=67]="AtApplyRule",n[n.CustomPropertyDeclaration=68]="CustomPropertyDeclaration",n[n.CustomPropertySet=69]="CustomPropertySet",n[n.ListEntry=70]="ListEntry",n[n.Supports=71]="Supports",n[n.SupportsCondition=72]="SupportsCondition",n[n.NamespacePrefix=73]="NamespacePrefix",n[n.GridLine=74]="GridLine",n[n.Plugin=75]="Plugin",n[n.UnknownAtRule=76]="UnknownAtRule",n[n.Use=77]="Use",n[n.ModuleConfiguration=78]="ModuleConfiguration",n[n.Forward=79]="Forward",n[n.ForwardVisibility=80]="ForwardVisibility",n[n.Module=81]="Module",n[n.UnicodeRange=82]="UnicodeRange",n[n.Layer=83]="Layer",n[n.LayerNameList=84]="LayerNameList",n[n.LayerName=85]="LayerName",n[n.PropertyAtRule=86]="PropertyAtRule",n[n.Container=87]="Container"})(m||(m={}));var z;(function(n){n[n.Mixin=0]="Mixin",n[n.Rule=1]="Rule",n[n.Variable=2]="Variable",n[n.Function=3]="Function",n[n.Keyframe=4]="Keyframe",n[n.Unknown=5]="Unknown",n[n.Module=6]="Module",n[n.Forward=7]="Forward",n[n.ForwardVisibility=8]="ForwardVisibility",n[n.Property=9]="Property"})(z||(z={}));function Hn(n,e){let t=null;return!n||en.end?null:(n.accept(r=>r.offset===-1&&r.length===-1?!0:r.offset<=e&&r.end>=e?(t?r.length<=t.length&&(t=r):t=r,!0):!1),t)}function vt(n,e){let t=Hn(n,e),r=[];for(;t;)r.unshift(t),t=t.parent;return r}function Xi(n){let e=n.findParent(m.Declaration),t=e&&e.getValue();return t&&t.encloses(n)?e:null}var x=class{get end(){return this.offset+this.length}constructor(e=-1,t=-1,r){this.parent=null,this.offset=e,this.length=t,r&&(this.nodeType=r)}set type(e){this.nodeType=e}get type(){return this.nodeType||m.Undefined}getTextProvider(){let e=this;for(;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:()=>"unknown"}getText(){return this.getTextProvider()(this.offset,this.length)}matches(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e}startsWith(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e}endsWith(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e}accept(e){if(e(this)&&this.children)for(let t of this.children)t.accept(e)}acceptVisitor(e){this.accept(e.visitNode.bind(e))}adoptChild(e,t=-1){if(e.parent&&e.parent.children){let i=e.parent.children.indexOf(e);i>=0&&e.parent.children.splice(i,1)}e.parent=this;let r=this.children;return r||(r=this.children=[]),t!==-1?r.splice(t,0,e):r.push(e),e}attachTo(e,t=-1){return e&&e.adoptChild(this,t),this}collectIssues(e){this.issues&&e.push.apply(e,this.issues)}addIssue(e){this.issues||(this.issues=[]),this.issues.push(e)}hasIssue(e){return Array.isArray(this.issues)&&this.issues.some(t=>t.getRule()===e)}isErroneous(e=!1){return this.issues&&this.issues.length>0?!0:e&&Array.isArray(this.children)&&this.children.some(t=>t.isErroneous(!0))}setNode(e,t,r=-1){return t?(t.attachTo(this,r),this[e]=t,!0):!1}addChild(e){return e?(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0):!1}updateOffsetAndLength(e){(e.offsetthis.end||this.length===-1)&&(this.length=t-this.offset)}hasChildren(){return!!this.children&&this.children.length>0}getChildren(){return this.children?this.children.slice(0):[]}getChild(e){return this.children&&e=0;r--)if(t=this.children[r],t.offset<=e)return t}return null}findChildAtOffset(e,t){let r=this.findFirstChildBeforeOffset(e);return r&&r.end>=e?t&&r.findChildAtOffset(e,!0)||r:null}encloses(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length}getParent(){let e=this.parent;for(;e instanceof J;)e=e.parent;return e}findParent(e){let t=this;for(;t&&t.type!==e;)t=t.parent;return t}findAParent(...e){let t=this;for(;t&&!e.some(r=>t.type===r);)t=t.parent;return t}setData(e,t){this.options||(this.options={}),this.options[e]=t}getData(e){return!this.options||!this.options.hasOwnProperty(e)?null:this.options[e]}},J=class extends x{constructor(e,t=-1){super(-1,-1),this.attachTo(e,t),this.offset=-1,this.length=-1}},gn=class extends x{constructor(e,t){super(e,t)}get type(){return m.UnicodeRange}setRangeStart(e){return this.setNode("rangeStart",e)}getRangeStart(){return this.rangeStart}setRangeEnd(e){return this.setNode("rangeEnd",e)}getRangeEnd(){return this.rangeEnd}},G=class extends x{constructor(e,t){super(e,t),this.isCustomProperty=!1}get type(){return m.Identifier}containsInterpolation(){return this.hasChildren()}},bn=class extends x{constructor(e,t){super(e,t)}get type(){return m.Stylesheet}},Ze=class extends x{constructor(e,t){super(e,t)}get type(){return m.Declarations}},L=class extends x{constructor(e,t){super(e,t)}getDeclarations(){return this.declarations}setDeclarations(e){return this.setNode("declarations",e)}},ae=class extends L{constructor(e,t){super(e,t)}get type(){return m.Ruleset}getSelectors(){return this.selectors||(this.selectors=new J(this)),this.selectors}isNested(){return!!this.parent&&this.parent.findParent(m.Declarations)!==null}},de=class extends x{constructor(e,t){super(e,t)}get type(){return m.Selector}},he=class extends x{constructor(e,t){super(e,t)}get type(){return m.SimpleSelector}};var ht=class extends x{constructor(e,t){super(e,t)}},wn=class extends L{constructor(e,t){super(e,t)}get type(){return m.CustomPropertySet}},Q=class n extends ht{constructor(e,t){super(e,t),this.property=null}get type(){return m.Declaration}setProperty(e){return this.setNode("property",e)}getProperty(){return this.property}getFullPropertyName(){let e=this.property?this.property.getName():"unknown";if(this.parent instanceof Ze&&this.parent.getParent()instanceof Ut){let t=this.parent.getParent().getParent();if(t instanceof n)return t.getFullPropertyName()+e}return e}getNonPrefixedPropertyName(){let e=this.getFullPropertyName();if(e&&e.charAt(0)==="-"){let t=e.indexOf("-",1);if(t!==-1)return e.substring(t+1)}return e}setValue(e){return this.setNode("value",e)}getValue(){return this.value}setNestedProperties(e){return this.setNode("nestedProperties",e)}getNestedProperties(){return this.nestedProperties}},vn=class extends Q{constructor(e,t){super(e,t)}get type(){return m.CustomPropertyDeclaration}setPropertySet(e){return this.setNode("propertySet",e)}getPropertySet(){return this.propertySet}},Ve=class extends x{constructor(e,t){super(e,t)}get type(){return m.Property}setIdentifier(e){return this.setNode("identifier",e)}getIdentifier(){return this.identifier}getName(){return Ji(this.getText(),/[_\+]+$/)}isCustomProperty(){return!!this.identifier&&this.identifier.isCustomProperty}},Tr=class extends x{constructor(e,t){super(e,t)}get type(){return m.Invocation}getArguments(){return this.arguments||(this.arguments=new J(this)),this.arguments}},me=class extends Tr{constructor(e,t){super(e,t)}get type(){return m.Function}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}},ye=class extends x{constructor(e,t){super(e,t)}get type(){return m.FunctionParameter}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setDefaultValue(e){return this.setNode("defaultValue",e,0)}getDefaultValue(){return this.defaultValue}},le=class extends x{constructor(e,t){super(e,t)}get type(){return m.FunctionArgument}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setValue(e){return this.setNode("value",e,0)}getValue(){return this.value}},yn=class extends L{constructor(e,t){super(e,t)}get type(){return m.If}setExpression(e){return this.setNode("expression",e,0)}setElseClause(e){return this.setNode("elseClause",e)}},xn=class extends L{constructor(e,t){super(e,t)}get type(){return m.For}setVariable(e){return this.setNode("variable",e,0)}},Sn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Each}getVariables(){return this.variables||(this.variables=new J(this)),this.variables}},Cn=class extends L{constructor(e,t){super(e,t)}get type(){return m.While}},kn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Else}},De=class extends L{constructor(e,t){super(e,t)}get type(){return m.FunctionDeclaration}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}},Fn=class extends L{constructor(e,t){super(e,t)}get type(){return m.ViewPort}},pt=class extends L{constructor(e,t){super(e,t)}get type(){return m.FontFace}},Ut=class extends L{constructor(e,t){super(e,t)}get type(){return m.NestedProperties}},mt=class extends L{constructor(e,t){super(e,t)}get type(){return m.Keyframe}setKeyword(e){return this.setNode("keyword",e,0)}getKeyword(){return this.keyword}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}},Vt=class extends L{constructor(e,t){super(e,t)}get type(){return m.KeyframeSelector}},je=class extends x{constructor(e,t){super(e,t)}get type(){return m.Import}setMedialist(e){return e?(e.attachTo(this),!0):!1}},En=class extends x{get type(){return m.Use}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}},_n=class extends x{get type(){return m.ModuleConfiguration}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setValue(e){return this.setNode("value",e,0)}getValue(){return this.value}},In=class extends x{get type(){return m.Forward}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getMembers(){return this.members||(this.members=new J(this)),this.members}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}},Dn=class extends x{get type(){return m.ForwardVisibility}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}},Rn=class extends x{constructor(e,t){super(e,t)}get type(){return m.Namespace}},Be=class extends L{constructor(e,t){super(e,t)}get type(){return m.Media}},et=class extends L{constructor(e,t){super(e,t)}get type(){return m.Supports}},zn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Layer}setNames(e){return this.setNode("names",e)}getNames(){return this.names}},Mn=class extends L{constructor(e,t){super(e,t)}get type(){return m.PropertyAtRule}setName(e){return e?(e.attachTo(this),this.name=e,!0):!1}getName(){return this.name}},Tn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Document}},Nn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Container}},ut=class extends x{constructor(e,t){super(e,t)}},ft=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaQuery}},On=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaCondition}},Pn=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaFeature}},Re=class extends x{constructor(e,t){super(e,t)}get type(){return m.SupportsCondition}},An=class extends L{constructor(e,t){super(e,t)}get type(){return m.Page}},Wn=class extends L{constructor(e,t){super(e,t)}get type(){return m.PageBoxMarginBox}},gt=class extends x{constructor(e,t){super(e,t)}get type(){return m.Expression}},qe=class extends x{constructor(e,t){super(e,t)}get type(){return m.BinaryExpression}setLeft(e){return this.setNode("left",e)}getLeft(){return this.left}setRight(e){return this.setNode("right",e)}getRight(){return this.right}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}},Ln=class extends x{constructor(e,t){super(e,t)}get type(){return m.Term}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}setExpression(e){return this.setNode("expression",e)}getExpression(){return this.expression}},$n=class extends x{constructor(e,t){super(e,t)}get type(){return m.AttributeSelector}setNamespacePrefix(e){return this.setNode("namespacePrefix",e)}getNamespacePrefix(){return this.namespacePrefix}setIdentifier(e){return this.setNode("identifier",e)}getIdentifier(){return this.identifier}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}setValue(e){return this.setNode("value",e)}getValue(){return this.value}};var tt=class extends x{constructor(e,t){super(e,t)}get type(){return m.HexColorValue}},Un=class extends x{constructor(e,t){super(e,t)}get type(){return m.RatioValue}},Yo=46,Qo=48,Zo=57,nt=class extends x{constructor(e,t){super(e,t)}get type(){return m.NumericValue}getValue(){let e=this.getText(),t=0,r;for(let i=0,s=e.length;i0&&(t+=`/${Array.isArray(e.comment)?e.comment.join(""):e.comment}`),i=e.args??{};let s=ea?.[t];return s?typeof s=="string"?Jn(s,i):s.comment?Jn(s.message,i):Jn(r,i):Jn(r,i)}var ta=/{([^}]+)}/g;function Jn(n,e){return Object.keys(e).length===0?n:n.replace(ta,(t,r)=>e[r]??t)}var O=class{constructor(e,t){this.id=e,this.message=t}},f={NumberExpected:new O("css-numberexpected",p("number expected")),ConditionExpected:new O("css-conditionexpected",p("condition expected")),RuleOrSelectorExpected:new O("css-ruleorselectorexpected",p("at-rule or selector expected")),DotExpected:new O("css-dotexpected",p("dot expected")),ColonExpected:new O("css-colonexpected",p("colon expected")),SemiColonExpected:new O("css-semicolonexpected",p("semi-colon expected")),TermExpected:new O("css-termexpected",p("term expected")),ExpressionExpected:new O("css-expressionexpected",p("expression expected")),OperatorExpected:new O("css-operatorexpected",p("operator expected")),IdentifierExpected:new O("css-identifierexpected",p("identifier expected")),PercentageExpected:new O("css-percentageexpected",p("percentage expected")),URIOrStringExpected:new O("css-uriorstringexpected",p("uri or string expected")),URIExpected:new O("css-uriexpected",p("URI expected")),VariableNameExpected:new O("css-varnameexpected",p("variable name expected")),VariableValueExpected:new O("css-varvalueexpected",p("variable value expected")),PropertyValueExpected:new O("css-propertyvalueexpected",p("property value expected")),LeftCurlyExpected:new O("css-lcurlyexpected",p("{ expected")),RightCurlyExpected:new O("css-rcurlyexpected",p("} expected")),LeftSquareBracketExpected:new O("css-rbracketexpected",p("[ expected")),RightSquareBracketExpected:new O("css-lbracketexpected",p("] expected")),LeftParenthesisExpected:new O("css-lparentexpected",p("( expected")),RightParenthesisExpected:new O("css-rparentexpected",p(") expected")),CommaExpected:new O("css-commaexpected",p("comma expected")),PageDirectiveOrDeclarationExpected:new O("css-pagedirordeclexpected",p("page directive or declaraton expected")),UnknownAtRule:new O("css-unknownatrule",p("at-rule unknown")),UnknownKeyword:new O("css-unknownkeyword",p("unknown keyword")),SelectorExpected:new O("css-selectorexpected",p("selector expected")),StringLiteralExpected:new O("css-stringliteralexpected",p("string literal expected")),WhitespaceExpected:new O("css-whitespaceexpected",p("whitespace expected")),MediaQueryExpected:new O("css-mediaqueryexpected",p("media query expected")),IdentifierOrWildcardExpected:new O("css-idorwildcardexpected",p("identifier or wildcard expected")),WildcardExpected:new O("css-wildcardexpected",p("wildcard expected")),IdentifierOrVariableExpected:new O("css-idorvarexpected",p("identifier or variable expected"))};var Nr;(function(n){function e(t){return typeof t=="string"}n.is=e})(Nr||(Nr={}));var Or;(function(n){function e(t){return typeof t=="string"}n.is=e})(Or||(Or={}));var Yi;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Yi||(Yi={}));var Xn;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Xn||(Xn={}));var H;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Xn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Xn.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.uinteger(i.line)&&g.uinteger(i.character)}n.is=t})(H||(H={}));var R;(function(n){function e(r,i,s,a){if(g.uinteger(r)&&g.uinteger(i)&&g.uinteger(s)&&g.uinteger(a))return{start:H.create(r,i),end:H.create(s,a)};if(H.is(r)&&H.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&H.is(i.start)&&H.is(i.end)}n.is=t})(R||(R={}));var it;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&(g.string(i.uri)||g.undefined(i.uri))}n.is=t})(it||(it={}));var Qi;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.targetRange)&&g.string(i.targetUri)&&R.is(i.targetSelectionRange)&&(R.is(i.originSelectionRange)||g.undefined(i.originSelectionRange))}n.is=t})(Qi||(Qi={}));var Yn;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.numberRange(i.red,0,1)&&g.numberRange(i.green,0,1)&&g.numberRange(i.blue,0,1)&&g.numberRange(i.alpha,0,1)}n.is=t})(Yn||(Yn={}));var Pr;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&Yn.is(i.color)}n.is=t})(Pr||(Pr={}));var Ar;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.undefined(i.textEdit)||_.is(i))&&(g.undefined(i.additionalTextEdits)||g.typedArray(i.additionalTextEdits,_.is))}n.is=t})(Ar||(Ar={}));var Wr;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Wr||(Wr={}));var Lr;(function(n){function e(r,i,s,a,l,o){let d={startLine:r,endLine:i};return g.defined(s)&&(d.startCharacter=s),g.defined(a)&&(d.endCharacter=a),g.defined(l)&&(d.kind=l),g.defined(o)&&(d.collapsedText=o),d}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.uinteger(i.startLine)&&g.uinteger(i.startLine)&&(g.undefined(i.startCharacter)||g.uinteger(i.startCharacter))&&(g.undefined(i.endCharacter)||g.uinteger(i.endCharacter))&&(g.undefined(i.kind)||g.string(i.kind))}n.is=t})(Lr||(Lr={}));var $r;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&it.is(i.location)&&g.string(i.message)}n.is=t})($r||($r={}));var yt;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(yt||(yt={}));var Zi;(function(n){n.Unnecessary=1,n.Deprecated=2})(Zi||(Zi={}));var es;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&g.string(r.href)}n.is=e})(es||(es={}));var Bt;(function(n){function e(r,i,s,a,l,o){let d={range:r,message:i};return g.defined(s)&&(d.severity=s),g.defined(a)&&(d.code=a),g.defined(l)&&(d.source=l),g.defined(o)&&(d.relatedInformation=o),d}n.create=e;function t(r){var i;let s=r;return g.defined(s)&&R.is(s.range)&&g.string(s.message)&&(g.number(s.severity)||g.undefined(s.severity))&&(g.integer(s.code)||g.string(s.code)||g.undefined(s.code))&&(g.undefined(s.codeDescription)||g.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(g.string(s.source)||g.undefined(s.source))&&(g.undefined(s.relatedInformation)||g.typedArray(s.relatedInformation,$r.is))}n.is=t})(Bt||(Bt={}));var Me;(function(n){function e(r,i,...s){let a={title:r,command:i};return g.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.title)&&g.string(i.command)}n.is=t})(Me||(Me={}));var _;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){let a=s;return g.objectLiteral(a)&&g.string(a.newText)&&R.is(a.range)}n.is=i})(_||(_={}));var Ur;(function(n){function e(r,i,s){let a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(g.string(i.description)||i.description===void 0)}n.is=t})(Ur||(Ur={}));var xt;(function(n){function e(t){let r=t;return g.string(r)}n.is=e})(xt||(xt={}));var ts;(function(n){function e(s,a,l){return{range:s,newText:a,annotationId:l}}n.replace=e;function t(s,a,l){return{range:{start:s,end:s},newText:a,annotationId:l}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){let a=s;return _.is(a)&&(Ur.is(a.annotationId)||xt.is(a.annotationId))}n.is=i})(ts||(ts={}));var St;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&qr.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(St||(St={}));var Vr;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&g.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(Vr||(Vr={}));var jr;(function(n){function e(r,i,s,a){let l={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),a!==void 0&&(l.annotationId=a),l}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&g.string(i.oldUri)&&g.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(jr||(jr={}));var Br;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&g.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||g.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||g.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(Br||(Br={}));var Qn;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>g.string(i.kind)?Vr.is(i)||jr.is(i)||Br.is(i):St.is(i)))}n.is=e})(Qn||(Qn={}));var ns;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)}n.is=t})(ns||(ns={}));var qt;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.integer(i.version)}n.is=t})(qt||(qt={}));var qr;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&(i.version===null||g.integer(i.version))}n.is=t})(qr||(qr={}));var rs;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.string(i.languageId)&&g.integer(i.version)&&g.string(i.text)}n.is=t})(rs||(rs={}));var se;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){let r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(se||(se={}));var Ct;(function(n){function e(t){let r=t;return g.objectLiteral(t)&&se.is(r.kind)&&g.string(r.value)}n.is=e})(Ct||(Ct={}));var k;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(k||(k={}));var te;(function(n){n.PlainText=1,n.Snippet=2})(te||(te={}));var Te;(function(n){n.Deprecated=1})(Te||(Te={}));var is;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){let i=r;return i&&g.string(i.newText)&&R.is(i.insert)&&R.is(i.replace)}n.is=t})(is||(is={}));var ss;(function(n){n.asIs=1,n.adjustIndentation=2})(ss||(ss={}));var os;(function(n){function e(t){let r=t;return r&&(g.string(r.detail)||r.detail===void 0)&&(g.string(r.description)||r.description===void 0)}n.is=e})(os||(os={}));var Kr;(function(n){function e(t){return{label:t}}n.create=e})(Kr||(Kr={}));var Gr;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(Gr||(Gr={}));var Kt;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){let i=r;return g.string(i)||g.objectLiteral(i)&&g.string(i.language)&&g.string(i.value)}n.is=t})(Kt||(Kt={}));var Hr;(function(n){function e(t){let r=t;return!!r&&g.objectLiteral(r)&&(Ct.is(r.contents)||Kt.is(r.contents)||g.typedArray(r.contents,Kt.is))&&(t.range===void 0||R.is(t.range))}n.is=e})(Hr||(Hr={}));var as;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(as||(as={}));var ls;(function(n){function e(t,r,...i){let s={label:t};return g.defined(r)&&(s.documentation=r),g.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(ls||(ls={}));var Ge;(function(n){n.Text=1,n.Read=2,n.Write=3})(Ge||(Ge={}));var Jr;(function(n){function e(t,r){let i={range:t};return g.number(r)&&(i.kind=r),i}n.create=e})(Jr||(Jr={}));var ge;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(ge||(ge={}));var cs;(function(n){n.Deprecated=1})(cs||(cs={}));var Xr;(function(n){function e(t,r,i,s,a){let l={name:t,kind:r,location:{uri:s,range:i}};return a&&(l.containerName=a),l}n.create=e})(Xr||(Xr={}));var ds;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(ds||(ds={}));var Yr;(function(n){function e(r,i,s,a,l,o){let d={name:r,detail:i,kind:s,range:a,selectionRange:l};return o!==void 0&&(d.children=o),d}n.create=e;function t(r){let i=r;return i&&g.string(i.name)&&g.number(i.kind)&&R.is(i.range)&&R.is(i.selectionRange)&&(i.detail===void 0||g.string(i.detail))&&(i.deprecated===void 0||g.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(Yr||(Yr={}));var Gt;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(Gt||(Gt={}));var Zn;(function(n){n.Invoked=1,n.Automatic=2})(Zn||(Zn={}));var Qr;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.typedArray(i.diagnostics,Bt.is)&&(i.only===void 0||g.typedArray(i.only,g.string))&&(i.triggerKind===void 0||i.triggerKind===Zn.Invoked||i.triggerKind===Zn.Automatic)}n.is=t})(Qr||(Qr={}));var Ht;(function(n){function e(r,i,s){let a={title:r},l=!0;return typeof i=="string"?(l=!1,a.kind=i):Me.is(i)?a.command=i:a.edit=i,l&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&g.string(i.title)&&(i.diagnostics===void 0||g.typedArray(i.diagnostics,Bt.is))&&(i.kind===void 0||g.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Me.is(i.command))&&(i.isPreferred===void 0||g.boolean(i.isPreferred))&&(i.edit===void 0||Qn.is(i.edit))}n.is=t})(Ht||(Ht={}));var hs;(function(n){function e(r,i){let s={range:r};return g.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(i.range)&&(g.undefined(i.command)||Me.is(i.command))}n.is=t})(hs||(hs={}));var ps;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.uinteger(i.tabSize)&&g.boolean(i.insertSpaces)}n.is=t})(ps||(ps={}));var Zr;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(i.range)&&(g.undefined(i.target)||g.string(i.target))}n.is=t})(Zr||(Zr={}));var kt;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(kt||(kt={}));var ms;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(ms||(ms={}));var us;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(us||(us={}));var fs;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(fs||(fs={}));var gs;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&g.string(i.text)}n.is=t})(gs||(gs={}));var bs;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&g.boolean(i.caseSensitiveLookup)&&(g.string(i.variableName)||i.variableName===void 0)}n.is=t})(bs||(bs={}));var ws;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&(g.string(i.expression)||i.expression===void 0)}n.is=t})(ws||(ws={}));var vs;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(r.stoppedLocation)}n.is=t})(vs||(vs={}));var ei;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(ei||(ei={}));var ti;(function(n){function e(r){return{value:r}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&(i.tooltip===void 0||g.string(i.tooltip)||Ct.is(i.tooltip))&&(i.location===void 0||it.is(i.location))&&(i.command===void 0||Me.is(i.command))}n.is=t})(ti||(ti={}));var ys;(function(n){function e(r,i,s){let a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&H.is(i.position)&&(g.string(i.label)||g.typedArray(i.label,ti.is))&&(i.kind===void 0||ei.is(i.kind))&&i.textEdits===void 0||g.typedArray(i.textEdits,_.is)&&(i.tooltip===void 0||g.string(i.tooltip)||Ct.is(i.tooltip))&&(i.paddingLeft===void 0||g.boolean(i.paddingLeft))&&(i.paddingRight===void 0||g.boolean(i.paddingRight))}n.is=t})(ys||(ys={}));var xs;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(xs||(xs={}));var Ss;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(Ss||(Ss={}));var Cs;(function(n){function e(t){return{items:t}}n.create=e})(Cs||(Cs={}));var ks;(function(n){n.Invoked=0,n.Automatic=1})(ks||(ks={}));var Fs;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(Fs||(Fs={}));var Es;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(Es||(Es={}));var _s;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&Or.is(r.uri)&&g.string(r.name)}n.is=e})(_s||(_s={}));var Is;(function(n){function e(s,a,l,o){return new ni(s,a,l,o)}n.create=e;function t(s){let a=s;return!!(g.defined(a)&&g.string(a.uri)&&(g.undefined(a.languageId)||g.string(a.languageId))&&g.uinteger(a.lineCount)&&g.func(a.getText)&&g.func(a.positionAt)&&g.func(a.offsetAt))}n.is=t;function r(s,a){let l=s.getText(),o=i(a,(h,u)=>{let w=h.range.start.line-u.range.start.line;return w===0?h.range.start.character-u.range.start.character:w}),d=l.length;for(let h=o.length-1;h>=0;h--){let u=o[h],w=s.offsetAt(u.range.start),b=s.offsetAt(u.range.end);if(b<=d)l=l.substring(0,w)+u.newText+l.substring(b,l.length);else throw new Error("Overlapping edit");d=w}return l}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;let l=s.length/2|0,o=s.slice(0,l),d=s.slice(l);i(o,a),i(d,a);let h=0,u=0,w=0;for(;h0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return H.create(0,e);for(;re?i=a:r=a+1}let s=r-1;return H.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1"u"}n.undefined=r;function i(b){return b===!0||b===!1}n.boolean=i;function s(b){return e.call(b)==="[object String]"}n.string=s;function a(b){return e.call(b)==="[object Number]"}n.number=a;function l(b,y,E){return e.call(b)==="[object Number]"&&y<=b&&b<=E}n.numberRange=l;function o(b){return e.call(b)==="[object Number]"&&-2147483648<=b&&b<=2147483647}n.integer=o;function d(b){return e.call(b)==="[object Number]"&&0<=b&&b<=2147483647}n.uinteger=d;function h(b){return e.call(b)==="[object Function]"}n.func=h;function u(b){return b!==null&&typeof b=="object"}n.objectLiteral=u;function w(b,y){return Array.isArray(b)&&b.every(y)}n.typedArray=w})(g||(g={}));var er=class n{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(let r of e)if(n.isIncremental(r)){let i=Rs(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);let l=Math.max(i.start.line,0),o=Math.max(i.end.line,0),d=this._lineOffsets,h=Ds(r.text,!1,s);if(o-l===h.length)for(let w=0,b=h.length;we?i=a:r=a+1}let s=r-1;return{line:s,character:e-t[s]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1{let w=h.range.start.line-u.range.start.line;return w===0?h.range.start.character-u.range.start.character:w}),o=0,d=[];for(let h of l){let u=i.offsetAt(h.range.start);if(uo&&d.push(a.substring(o,u)),h.newText.length&&d.push(h.newText),o=i.offsetAt(h.range.end)}return d.push(a.substr(o)),d.join("")}n.applyEdits=r})(Jt||(Jt={}));function ri(n,e){if(n.length<=1)return n;let t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);ri(r,e),ri(i,e);let s=0,a=0,l=0;for(;st.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function na(n){let e=Rs(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var zs;(function(n){n.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[se.Markdown,se.PlainText]}},hover:{contentFormat:[se.Markdown,se.PlainText]}}}})(zs||(zs={}));var st;(function(n){n[n.Unknown=0]="Unknown",n[n.File=1]="File",n[n.Directory=2]="Directory",n[n.SymbolicLink=64]="SymbolicLink"})(st||(st={}));var Ms={E:"Edge",FF:"Firefox",S:"Safari",C:"Chrome",IE:"IE",O:"Opera"};function Ts(n){switch(n){case"experimental":return`\u26A0\uFE0F Property is experimental. Be cautious when using it.\uFE0F - -`;case"nonstandard":return`\u{1F6A8}\uFE0F Property is nonstandard. Avoid using it. - -`;case"obsolete":return`\u{1F6A8}\uFE0F\uFE0F\uFE0F Property is obsolete. Avoid using it. - -`;default:return""}}function Ce(n,e,t){let r;if(e?r={kind:"markdown",value:ia(n,t)}:r={kind:"plaintext",value:ra(n,t)},r.value!=="")return r}function tr(n){return n=n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&"),n.replace(//g,">")}function ra(n,e){if(!n.description||n.description==="")return"";if(typeof n.description!="string")return n.description.value;let t="";if(e?.documentation!==!1){n.status&&(t+=Ts(n.status)),t+=n.description;let r=Ns(n.browsers);r&&(t+=` -(`+r+")"),"syntax"in n&&(t+=` - -Syntax: ${n.syntax}`)}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` - -`),t+=n.references.map(r=>`${r.name}: ${r.url}`).join(" | ")),t}function ia(n,e){if(!n.description||n.description==="")return"";let t="";if(e?.documentation!==!1){n.status&&(t+=Ts(n.status)),typeof n.description=="string"?t+=tr(n.description):t+=n.description.kind===se.Markdown?n.description.value:tr(n.description.value);let r=Ns(n.browsers);r&&(t+=` - -(`+tr(r)+")"),"syntax"in n&&n.syntax&&(t+=` - -Syntax: ${tr(n.syntax)}`)}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` - -`),t+=n.references.map(r=>`[${r.name}](${r.url})`).join(" | ")),t}function Ns(n=[]){return n.length===0?null:n.map(e=>{let t="",r=e.match(/([A-Z]+)(\d+)?/),i=r[1],s=r[2];return i in Ms&&(t+=Ms[i]),s&&(t+=" "+s),t}).join(", ")}var sa=/(^#([0-9A-F]{3}){1,2}$)|(^#([0-9A-F]{4}){1,2}$)/i,Ws=[{label:"rgb",func:"rgb($red, $green, $blue)",insertText:"rgb(${1:red}, ${2:green}, ${3:blue})",desc:p("Creates a Color from red, green, and blue values.")},{label:"rgba",func:"rgba($red, $green, $blue, $alpha)",insertText:"rgba(${1:red}, ${2:green}, ${3:blue}, ${4:alpha})",desc:p("Creates a Color from red, green, blue, and alpha values.")},{label:"rgb relative",func:"rgb(from $color $red $green $blue)",insertText:"rgb(from ${1:color} ${2:r} ${3:g} ${4:b})",desc:p("Creates a Color from the red, green, and blue values of another Color.")},{label:"hsl",func:"hsl($hue, $saturation, $lightness)",insertText:"hsl(${1:hue}, ${2:saturation}, ${3:lightness})",desc:p("Creates a Color from hue, saturation, and lightness values.")},{label:"hsla",func:"hsla($hue, $saturation, $lightness, $alpha)",insertText:"hsla(${1:hue}, ${2:saturation}, ${3:lightness}, ${4:alpha})",desc:p("Creates a Color from hue, saturation, lightness, and alpha values.")},{label:"hsl relative",func:"hsl(from $color $hue $saturation $lightness)",insertText:"hsl(from ${1:color} ${2:h} ${3:s} ${4:l})",desc:p("Creates a Color from the hue, saturation, and lightness values of another Color.")},{label:"hwb",func:"hwb($hue $white $black)",insertText:"hwb(${1:hue} ${2:white} ${3:black})",desc:p("Creates a Color from hue, white, and black values.")},{label:"hwb relative",func:"hwb(from $color $hue $white $black)",insertText:"hwb(from ${1:color} ${2:h} ${3:w} ${4:b})",desc:p("Creates a Color from the hue, white, and black values of another Color.")},{label:"lab",func:"lab($lightness $a $b)",insertText:"lab(${1:lightness} ${2:a} ${3:b})",desc:p("Creates a Color from lightness, a, and b values.")},{label:"lab relative",func:"lab(from $color $lightness $a $b)",insertText:"lab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:p("Creates a Color from the lightness, a, and b values of another Color.")},{label:"oklab",func:"oklab($lightness $a $b)",insertText:"oklab(${1:lightness} ${2:a} ${3:b})",desc:p("Creates a Color from lightness, a, and b values.")},{label:"oklab relative",func:"oklab(from $color $lightness $a $b)",insertText:"oklab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:p("Creates a Color from the lightness, a, and b values of another Color.")},{label:"lch",func:"lch($lightness $chroma $hue)",insertText:"lch(${1:lightness} ${2:chroma} ${3:hue})",desc:p("Creates a Color from lightness, chroma, and hue values.")},{label:"lch relative",func:"lch(from $color $lightness $chroma $hue)",insertText:"lch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:p("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"oklch",func:"oklch($lightness $chroma $hue)",insertText:"oklch(${1:lightness} ${2:chroma} ${3:hue})",desc:p("Creates a Color from lightness, chroma, and hue values.")},{label:"oklch relative",func:"oklch(from $color $lightness $chroma $hue)",insertText:"oklch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:p("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"color",func:"color($color-space $red $green $blue)",insertText:"color(${1|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${2:red} ${3:green} ${4:blue})",desc:p("Creates a Color in a specific color space from red, green, and blue values.")},{label:"color relative",func:"color(from $color $color-space $red $green $blue)",insertText:"color(from ${1:color} ${2|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${3:r} ${4:g} ${5:b})",desc:p("Creates a Color in a specific color space from the red, green, and blue values of another Color.")},{label:"color-mix",func:"color-mix(in $color-space, $color $percentage, $color $percentage)",insertText:"color-mix(in ${1|srgb,srgb-linear,lab,oklab,xyz,xyz-d50,xyz-d65|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})",desc:p("Mix two colors together in a rectangular color space.")},{label:"color-mix hue",func:"color-mix(in $color-space $interpolation-method hue, $color $percentage, $color $percentage)",insertText:"color-mix(in ${1|hsl,hwb,lch,oklch|} ${2|shorter hue,longer hue,increasing hue,decreasing hue|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})",desc:p("Mix two colors together in a polar color space.")}],oa=/^(rgb|rgba|hsl|hsla|hwb)$/i,Xt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},aa=new RegExp(`^(${Object.keys(Xt).join("|")})$`,"i"),rr={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."},la=new RegExp(`^(${Object.keys(rr).join("|")})$`,"i");function He(n,e){let r=n.getText().match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(r){r[2]&&(e=100);let i=parseFloat(r[1])/e;if(i>=0&&i<=1)return i}throw new Error}function Os(n){let e=n.getText(),t=e.match(/^([-+]?[0-9]*\.?[0-9]+)(deg|rad|grad|turn)?$/);if(t)switch(t[2]){case"deg":return parseFloat(e)%360;case"rad":return parseFloat(e)*180/Math.PI%360;case"grad":return parseFloat(e)*.9%360;case"turn":return parseFloat(e)*360%360;default:if(typeof t[2]>"u")return parseFloat(e)%360}throw new Error}function Ls(n){let e=n.getName();return e?oa.test(e):!1}function ii(n){return sa.test(n)||aa.test(n)||la.test(n)}var Ps=48,ca=57,da=65;var nr=97,ha=102;function B(n){return n=nr&&n<=ha?n-nr+10:0)}function As(n){if(n[0]!=="#")return null;switch(n.length){case 4:return{red:B(n.charCodeAt(1))*17/255,green:B(n.charCodeAt(2))*17/255,blue:B(n.charCodeAt(3))*17/255,alpha:1};case 5:return{red:B(n.charCodeAt(1))*17/255,green:B(n.charCodeAt(2))*17/255,blue:B(n.charCodeAt(3))*17/255,alpha:B(n.charCodeAt(4))*17/255};case 7:return{red:(B(n.charCodeAt(1))*16+B(n.charCodeAt(2)))/255,green:(B(n.charCodeAt(3))*16+B(n.charCodeAt(4)))/255,blue:(B(n.charCodeAt(5))*16+B(n.charCodeAt(6)))/255,alpha:1};case 9:return{red:(B(n.charCodeAt(1))*16+B(n.charCodeAt(2)))/255,green:(B(n.charCodeAt(3))*16+B(n.charCodeAt(4)))/255,blue:(B(n.charCodeAt(5))*16+B(n.charCodeAt(6)))/255,alpha:(B(n.charCodeAt(7))*16+B(n.charCodeAt(8)))/255}}return null}function $s(n,e,t,r=1){if(n=n/60,e===0)return{red:t,green:t,blue:t,alpha:r};{let i=(l,o,d)=>{for(;d<0;)d+=6;for(;d>=6;)d-=6;return d<1?(o-l)*d+l:d<3?o:d<4?(o-l)*(4-d)+l:l},s=t<=.5?t*(e+1):t+e-t*e,a=t*2-s;return{red:i(a,s,n+2),green:i(a,s,n),blue:i(a,s,n-2),alpha:r}}}function si(n){let e=n.red,t=n.green,r=n.blue,i=n.alpha,s=Math.max(e,t,r),a=Math.min(e,t,r),l=0,o=0,d=(a+s)/2,h=s-a;if(h>0){switch(o=Math.min(d<=.5?h/(2*d):h/(2-2*d),1),s){case e:l=(t-r)/h+(t=1){let o=e/(e+t);return{red:o,green:o,blue:o,alpha:r}}let i=$s(n,1,.5,r),s=i.red;s*=1-e-t,s+=e;let a=i.green;a*=1-e-t,a+=e;let l=i.blue;return l*=1-e-t,l+=e,{red:s,green:a,blue:l,alpha:r}}function Us(n){let e=si(n),t=Math.min(n.red,n.green,n.blue),r=1-Math.max(n.red,n.green,n.blue);return{h:e.h,w:t,b:r,a:e.a}}function Vs(n){if(n.type===m.HexColorValue){let e=n.getText();return As(e)}else if(n.type===m.Function){let e=n,t=e.getName(),r=e.getArguments().getChildren();if(r.length===1){let i=r[0].getChildren();if(i.length===1&&i[0].type===m.Expression&&(r=i[0].getChildren(),r.length===3)){let s=r[2];if(s instanceof qe){let a=s.getLeft(),l=s.getRight(),o=s.getOperator();a&&l&&o&&o.matches("/")&&(r=[r[0],r[1],a,l])}}}if(!t||r.length<3||r.length>4)return null;try{let i=r.length===4?He(r[3],1):1;if(t==="rgb"||t==="rgba")return{red:He(r[0],255),green:He(r[1],255),blue:He(r[2],255),alpha:i};if(t==="hsl"||t==="hsla"){let s=Os(r[0]),a=He(r[1],100),l=He(r[2],100);return $s(s,a,l,i)}else if(t==="hwb"){let s=Os(r[0]),a=He(r[1],100),l=He(r[2],100);return pa(s,a,l,i)}}catch{return null}}else if(n.type===m.Identifier){if(n.parent&&n.parent.type!==m.Term)return null;let e=n.parent;if(e&&e.parent&&e.parent.type===m.BinaryExpression){let i=e.parent;if(i.parent&&i.parent.type===m.ListEntry&&i.parent.key===i)return null}let t=n.getText().toLowerCase();if(t==="none")return null;let r=Xt[t];if(r)return As(r)}return null}var oi={bottom:"Computes to \u2018100%\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to \u201850%\u2019 (\u2018left 50%\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \u201850%\u2019 (\u2018top 50%\u2019) for the vertical position if it is.",left:"Computes to \u20180%\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to \u2018100%\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to \u20180%\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},ai={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to \u2018repeat no-repeat\u2019.","repeat-y":"Computes to \u2018no-repeat repeat\u2019.",round:"Repeated as often as will fit within the background positioning area. If it doesn\u2019t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},li={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as \u2018none\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},js=["medium","thick","thin"],ci={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},di={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},hi={initial:"Represents the value specified as the property\u2019s initial value.",inherit:"Represents the computed value of the property on the element\u2019s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},pi={"var()":"Evaluates the value of a custom variable.","calc()":"Evaluates an mathematical expression. The following operators can be used: + - * /."},mi={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position."},ui={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \u201Cstart\u201D or \u201Cend\u201D.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},fi={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},ir={length:["cap","ch","cm","cqb","cqh","cqi","cqmax","cqmin","cqw","dvb","dvh","dvi","dvw","em","ex","ic","in","lh","lvb","lvh","lvi","lvw","mm","pc","pt","px","q","rcap","rch","rem","rex","ric","rlh","svb","svh","svi","svw","vb","vh","vi","vmax","vmin","vw"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},Bs=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],qs=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],Ks=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"];function Yt(n){return Object.keys(n).map(e=>n[e])}function ie(n){return typeof n<"u"}var ke=class{constructor(e=new ce){this.keyframeRegex=/^@(\-(webkit|ms|moz|o)\-)?keyframes$/i,this.scanner=e,this.token={type:c.EOF,offset:-1,len:0,text:""},this.prevToken=void 0}peekIdent(e){return c.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()}peekKeyword(e){return c.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()}peekDelim(e){return c.Delim===this.token.type&&e===this.token.text}peek(e){return e===this.token.type}peekOne(...e){return e.indexOf(this.token.type)!==-1}peekRegExp(e,t){return e!==this.token.type?!1:t.test(this.token.text)}hasWhitespace(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset}consumeToken(){this.prevToken=this.token,this.token=this.scanner.scan()}acceptUnicodeRange(){let e=this.scanner.tryScanUnicode();return e?(this.prevToken=e,this.token=this.scanner.scan(),!0):!1}mark(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}}restoreAtMark(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)}try(e){let t=this.mark(),r=e();return r||(this.restoreAtMark(t),null)}acceptOneKeyword(e){if(c.AtKeyword===this.token.type){for(let t of e)if(t.length===this.token.text.length&&t===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1}accept(e){return e===this.token.type?(this.consumeToken(),!0):!1}acceptIdent(e){return this.peekIdent(e)?(this.consumeToken(),!0):!1}acceptKeyword(e){return this.peekKeyword(e)?(this.consumeToken(),!0):!1}acceptDelim(e){return this.peekDelim(e)?(this.consumeToken(),!0):!1}acceptRegexp(e){return e.test(this.token.text)?(this.consumeToken(),!0):!1}_parseRegexp(e){let t=this.createNode(m.Identifier);do;while(this.acceptRegexp(e));return this.finish(t)}acceptUnquotedString(){let e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);let t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)}resync(e,t){for(;;){if(e&&e.indexOf(this.token.type)!==-1)return this.consumeToken(),!0;if(t&&t.indexOf(this.token.type)!==-1)return!0;if(this.token.type===c.EOF)return!1;this.token=this.scanner.scan()}}createNode(e){return new x(this.token.offset,this.token.len,e)}create(e){return new e(this.token.offset,this.token.len)}finish(e,t,r,i){if(!(e instanceof J)&&(t&&this.markError(e,t,r,i),this.prevToken)){let s=this.prevToken.offset+this.prevToken.len;e.length=s>e.offset?s-e.offset:0}return e}markError(e,t,r,i){this.token!==this.lastErrorToken&&(e.addIssue(new wt(e,t,ee.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(r||i)&&this.resync(r,i)}parseStylesheet(e){let t=e.version,r=e.getText(),i=(s,a)=>{if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return r.substr(s,a)};return this.internalParse(r,this._parseStylesheet,i)}internalParse(e,t,r){this.scanner.setSource(e),this.token=this.scanner.scan();let i=t.bind(this)();return i&&(r?i.textProvider=r:i.textProvider=(s,a)=>e.substr(s,a)),i}_parseStylesheet(){let e=this.create(bn);for(;e.addChild(this._parseStylesheetStart()););let t=!1;do{let r=!1;do{r=!1;let i=this._parseStylesheetStatement();for(i&&(e.addChild(i),r=!0,t=!1,!this.peek(c.EOF)&&this._needsSemicolonAfter(i)&&!this.accept(c.SemiColon)&&this.markError(e,f.SemiColonExpected));this.accept(c.SemiColon)||this.accept(c.CDO)||this.accept(c.CDC);)r=!0,t=!1}while(r);if(this.peek(c.EOF))break;t||(this.peek(c.AtKeyword)?this.markError(e,f.UnknownAtRule):this.markError(e,f.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(c.EOF));return this.finish(e)}_parseStylesheetStart(){return this._parseCharset()}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)}_parseStylesheetAtStatement(e=!1){return this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseLayer(e)||this._parsePropertyAtRule()||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseContainer(e)||this._parseUnknownAtRule()}_tryParseRuleset(e){let t=this.mark();if(this._parseSelector(e)){for(;this.accept(c.Comma)&&this._parseSelector(e););if(this.accept(c.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null}_parseRuleset(e=!1){let t=this.create(ae),r=t.getSelectors();if(!r.addChild(this._parseSelector(e)))return null;for(;this.accept(c.Comma);)if(!r.addChild(this._parseSelector(e)))return this.finish(t,f.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))}_parseRuleSetDeclarationAtStatement(){return this._parseMedia(!0)||this._parseSupports(!0)||this._parseLayer(!0)||this._parseContainer(!0)||this._parseUnknownAtRule()}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this.peek(c.Ident)?this._tryParseRuleset(!0)||this._parseDeclaration():this._parseRuleset(!0)}_needsSemicolonAfter(e){switch(e.type){case m.Keyframe:case m.ViewPort:case m.Media:case m.Ruleset:case m.Namespace:case m.If:case m.For:case m.Each:case m.While:case m.MixinDeclaration:case m.FunctionDeclaration:case m.MixinContentDeclaration:return!1;case m.ExtendsReference:case m.MixinContentReference:case m.ReturnStatement:case m.MediaQuery:case m.Debug:case m.Import:case m.AtApplyRule:case m.CustomPropertyDeclaration:return!0;case m.VariableDeclaration:return e.needsSemicolon;case m.MixinReference:return!e.getContent();case m.Declaration:return!e.getNestedProperties()}return!1}_parseDeclarations(e){let t=this.create(Ze);if(!this.accept(c.CurlyL))return null;let r=e();for(;t.addChild(r)&&!this.peek(c.CurlyR);){if(this._needsSemicolonAfter(r)&&!this.accept(c.SemiColon))return this.finish(t,f.SemiColonExpected,[c.SemiColon,c.CurlyR]);for(r&&this.prevToken&&this.prevToken.type===c.SemiColon&&(r.semicolonPosition=this.prevToken.offset);this.accept(c.SemiColon););r=e()}return this.accept(c.CurlyR)?this.finish(t):this.finish(t,f.RightCurlyExpected,[c.CurlyR,c.SemiColon])}_parseBody(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,f.LeftCurlyExpected,[c.CurlyR,c.SemiColon])}_parseSelector(e){let t=this.create(de),r=!1;for(e&&(r=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)r=!0,t.addChild(this._parseCombinator());return r?this.finish(t):null}_parseDeclaration(e){let t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;let r=this.create(Q);return r.setProperty(this._parseProperty())?this.accept(c.Colon)?(this.prevToken&&(r.colonPosition=this.prevToken.offset),r.setValue(this._parseExpr())?(r.addChild(this._parsePrio()),this.peek(c.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)):this.finish(r,f.PropertyValueExpected)):this.finish(r,f.ColonExpected,[c.Colon],e||[c.SemiColon]):null}_tryParseCustomPropertyDeclaration(e){if(!this.peekRegExp(c.Ident,/^--/))return null;let t=this.create(vn);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(c.Colon))return this.finish(t,f.ColonExpected,[c.Colon]);this.prevToken&&(t.colonPosition=this.prevToken.offset);let r=this.mark();if(this.peek(c.CurlyL)){let s=this.create(wn),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(s.setDeclarations(a)&&!a.isErroneous(!0)&&(s.addChild(this._parsePrio()),this.peek(c.SemiColon)))return this.finish(s),t.setPropertySet(s),t.semicolonPosition=this.token.offset,this.finish(t);this.restoreAtMark(r)}let i=this._parseExpr();return i&&!i.isErroneous(!0)&&(this._parsePrio(),this.peekOne(...e||[],c.SemiColon,c.EOF))?(t.setValue(i),this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):(this.restoreAtMark(r),t.addChild(this._parseCustomPropertyValue(e)),t.addChild(this._parsePrio()),ie(t.colonPosition)&&this.token.offset===t.colonPosition+1?this.finish(t,f.PropertyValueExpected):this.finish(t))}_parseCustomPropertyValue(e=[c.CurlyR]){let t=this.create(x),r=()=>s===0&&a===0&&l===0,i=()=>e.indexOf(this.token.type)!==-1,s=0,a=0,l=0;e:for(;;){switch(this.token.type){case c.SemiColon:if(r())break e;break;case c.Exclamation:if(r())break e;break;case c.CurlyL:s++;break;case c.CurlyR:if(s--,s<0){if(i()&&a===0&&l===0)break e;return this.finish(t,f.LeftCurlyExpected)}break;case c.ParenthesisL:a++;break;case c.ParenthesisR:if(a--,a<0){if(i()&&l===0&&s===0)break e;return this.finish(t,f.LeftParenthesisExpected)}break;case c.BracketL:l++;break;case c.BracketR:if(l--,l<0)return this.finish(t,f.LeftSquareBracketExpected);break;case c.BadString:break e;case c.EOF:let o=f.RightCurlyExpected;return l>0?o=f.RightSquareBracketExpected:a>0&&(o=f.RightParenthesisExpected),this.finish(t,o)}this.consumeToken()}return this.finish(t)}_tryToParseDeclaration(e){let t=this.mark();return this._parseProperty()&&this.accept(c.Colon)?(this.restoreAtMark(t),this._parseDeclaration(e)):(this.restoreAtMark(t),null)}_parseProperty(){let e=this.create(Ve),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null}_parsePropertyIdentifier(){return this._parseIdent()}_parseCharset(){if(!this.peek(c.Charset))return null;let e=this.create(x);return this.consumeToken(),this.accept(c.String)?this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected):this.finish(e,f.IdentifierExpected)}_parseImport(){if(!this.peekKeyword("@import"))return null;let e=this.create(je);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,f.URIOrStringExpected):this._completeParseImport(e)}_completeParseImport(e){if(this.acceptIdent("layer")&&this.accept(c.ParenthesisL)){if(!e.addChild(this._parseLayerName()))return this.finish(e,f.IdentifierExpected,[c.SemiColon]);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[])}return this.acceptIdent("supports")&&this.accept(c.ParenthesisL)&&(e.addChild(this._tryToParseDeclaration()||this._parseSupportsCondition()),!this.accept(c.ParenthesisR))?this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[]):(!this.peek(c.SemiColon)&&!this.peek(c.EOF)&&e.setMedialist(this._parseMediaQueryList()),this.finish(e))}_parseNamespace(){if(!this.peekKeyword("@namespace"))return null;let e=this.create(Rn);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&(e.addChild(this._parseIdent()),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))?this.finish(e,f.URIExpected,[c.SemiColon]):this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected)}_parseFontFace(){if(!this.peekKeyword("@font-face"))return null;let e=this.create(pt);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseViewPort(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;let e=this.create(Fn);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseKeyframe(){if(!this.peekRegExp(c.AtKeyword,this.keyframeRegex))return null;let e=this.create(mt),t=this.create(x);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,f.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,f.IdentifierExpected,[c.CurlyR])}_parseKeyframeIdent(){return this._parseIdent([z.Keyframe])}_parseKeyframeSelector(){let e=this.create(Vt),t=!1;if(e.addChild(this._parseIdent())&&(t=!0),this.accept(c.Percentage)&&(t=!0),!t)return null;for(;this.accept(c.Comma);)if(t=!1,e.addChild(this._parseIdent())&&(t=!0),this.accept(c.Percentage)&&(t=!0),!t)return this.finish(e,f.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_tryParseKeyframeSelector(){let e=this.create(Vt),t=this.mark(),r=!1;if(e.addChild(this._parseIdent())&&(r=!0),this.accept(c.Percentage)&&(r=!0),!r)return null;for(;this.accept(c.Comma);)if(r=!1,e.addChild(this._parseIdent())&&(r=!0),this.accept(c.Percentage)&&(r=!0),!r)return this.restoreAtMark(t),null;return this.peek(c.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)}_parsePropertyAtRule(){if(!this.peekKeyword("@property"))return null;let e=this.create(Mn);return this.consumeToken(),!this.peekRegExp(c.Ident,/^--/)||!e.setName(this._parseIdent([z.Property]))?this.finish(e,f.IdentifierExpected):this._parseBody(e,this._parseDeclaration.bind(this))}_parseLayer(e=!1){if(!this.peekKeyword("@layer"))return null;let t=this.create(zn);this.consumeToken();let r=this._parseLayerNameList();return r&&t.setNames(r),(!r||r.getChildren().length===1)&&this.peek(c.CurlyL)?this._parseBody(t,this._parseLayerDeclaration.bind(this,e)):this.accept(c.SemiColon)?this.finish(t):this.finish(t,f.SemiColonExpected)}_parseLayerDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseLayerNameList(){let e=this.createNode(m.LayerNameList);if(!e.addChild(this._parseLayerName()))return null;for(;this.accept(c.Comma);)if(!e.addChild(this._parseLayerName()))return this.finish(e,f.IdentifierExpected);return this.finish(e)}_parseLayerName(){let e=this.createNode(m.LayerName);if(!e.addChild(this._parseIdent()))return null;for(;!this.hasWhitespace()&&this.acceptDelim(".");)if(this.hasWhitespace()||!e.addChild(this._parseIdent()))return this.finish(e,f.IdentifierExpected);return this.finish(e)}_parseSupports(e=!1){if(!this.peekKeyword("@supports"))return null;let t=this.create(et);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))}_parseSupportsDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseSupportsCondition(){let e=this.create(Re);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(c.Ident,/^(and|or)$/i)){let t=this.token.text.toLowerCase();for(;this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens())}return this.finish(e)}_parseSupportsConditionInParens(){let e=this.create(Re);if(this.accept(c.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),!e.addChild(this._tryToParseDeclaration([c.ParenthesisR]))&&!this._parseSupportsCondition()?this.finish(e,f.ConditionExpected):this.accept(c.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[]);if(this.peek(c.Ident)){let t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let r=1;for(;this.token.type!==c.EOF&&r!==0;)this.token.type===c.ParenthesisL?r++:this.token.type===c.ParenthesisR&&r--,this.consumeToken();return this.finish(e)}else this.restoreAtMark(t)}return this.finish(e,f.LeftParenthesisExpected,[],[c.ParenthesisL])}_parseMediaDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseMedia(e=!1){if(!this.peekKeyword("@media"))return null;let t=this.create(Be);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,f.MediaQueryExpected)}_parseMediaQueryList(){let e=this.create(ut);if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);for(;this.accept(c.Comma);)if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);return this.finish(e)}_parseMediaQuery(){let e=this.create(ft),t=this.mark();if(this.acceptIdent("not"),this.peek(c.ParenthesisL))this.restoreAtMark(t),e.addChild(this._parseMediaCondition());else{if(this.acceptIdent("only"),!e.addChild(this._parseIdent()))return null;this.acceptIdent("and")&&e.addChild(this._parseMediaCondition())}return this.finish(e)}_parseRatio(){let e=this.mark(),t=this.create(Un);return this._parseNumeric()?this.acceptDelim("/")?this._parseNumeric()?this.finish(t):this.finish(t,f.NumberExpected):(this.restoreAtMark(e),null):null}_parseMediaCondition(){let e=this.create(On);this.acceptIdent("not");let t=!0;for(;t;){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);if(this.peek(c.ParenthesisL)||this.peekIdent("not")?e.addChild(this._parseMediaCondition()):e.addChild(this._parseMediaFeature()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL]);t=this.acceptIdent("and")||this.acceptIdent("or")}return this.finish(e)}_parseMediaFeature(){let e=[c.ParenthesisR],t=this.create(Pn);if(t.addChild(this._parseMediaFeatureName())){if(this.accept(c.Colon)){if(!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}else if(this._parseMediaFeatureRangeOperator()){if(!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e);if(this._parseMediaFeatureRangeOperator()&&!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}}else if(t.addChild(this._parseMediaFeatureValue())){if(!this._parseMediaFeatureRangeOperator())return this.finish(t,f.OperatorExpected,[],e);if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,f.IdentifierExpected,[],e);if(this._parseMediaFeatureRangeOperator()&&!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}else return this.finish(t,f.IdentifierExpected,[],e);return this.finish(t)}_parseMediaFeatureRangeOperator(){return this.acceptDelim("<")||this.acceptDelim(">")?(this.hasWhitespace()||this.acceptDelim("="),!0):!!this.acceptDelim("=")}_parseMediaFeatureName(){return this._parseIdent()}_parseMediaFeatureValue(){return this._parseRatio()||this._parseTermExpression()}_parseMedium(){let e=this.create(x);return e.addChild(this._parseIdent())?this.finish(e):null}_parsePageDeclaration(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()}_parsePage(){if(!this.peekKeyword("@page"))return null;let e=this.create(An);if(this.consumeToken(),e.addChild(this._parsePageSelector())){for(;this.accept(c.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,f.IdentifierExpected)}return this._parseBody(e,this._parsePageDeclaration.bind(this))}_parsePageMarginBox(){if(!this.peek(c.AtKeyword))return null;let e=this.create(Wn);return this.acceptOneKeyword(Ks)||this.markError(e,f.UnknownAtRule,[],[c.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parsePageSelector(){if(!this.peek(c.Ident)&&!this.peek(c.Colon))return null;let e=this.create(x);return e.addChild(this._parseIdent()),this.accept(c.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)}_parseDocument(){if(!this.peekKeyword("@-moz-document"))return null;let e=this.create(Tn);return this.consumeToken(),this.resync([],[c.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))}_parseContainerDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseContainer(e=!1){if(!this.peekKeyword("@container"))return null;let t=this.create(Nn);return this.consumeToken(),t.addChild(this._parseIdent()),t.addChild(this._parseContainerQuery()),this._parseBody(t,this._parseContainerDeclaration.bind(this,e))}_parseContainerQuery(){let e=this.create(x);if(this.acceptIdent("not"))e.addChild(this._parseContainerQueryInParens());else if(e.addChild(this._parseContainerQueryInParens()),this.peekIdent("and"))for(;this.acceptIdent("and");)e.addChild(this._parseContainerQueryInParens());else if(this.peekIdent("or"))for(;this.acceptIdent("or");)e.addChild(this._parseContainerQueryInParens());return this.finish(e)}_parseContainerQueryInParens(){let e=this.create(x);if(this.accept(c.ParenthesisL)){if(this.peekIdent("not")||this.peek(c.ParenthesisL)?e.addChild(this._parseContainerQuery()):e.addChild(this._parseMediaFeature()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else if(this.acceptIdent("style")){if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);if(e.addChild(this._parseStyleQuery()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);return this.finish(e)}_parseStyleQuery(){let e=this.create(x);if(this.acceptIdent("not"))e.addChild(this._parseStyleInParens());else if(this.peek(c.ParenthesisL)){if(e.addChild(this._parseStyleInParens()),this.peekIdent("and"))for(;this.acceptIdent("and");)e.addChild(this._parseStyleInParens());else if(this.peekIdent("or"))for(;this.acceptIdent("or");)e.addChild(this._parseStyleInParens())}else e.addChild(this._parseDeclaration([c.ParenthesisR]));return this.finish(e)}_parseStyleInParens(){let e=this.create(x);if(this.accept(c.ParenthesisL)){if(e.addChild(this._parseStyleQuery()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);return this.finish(e)}_parseUnknownAtRule(){if(!this.peek(c.AtKeyword))return null;let e=this.create(bt);e.addChild(this._parseUnknownAtRuleName());let t=()=>i===0&&s===0&&a===0,r=0,i=0,s=0,a=0;e:for(;;){switch(this.token.type){case c.SemiColon:if(t())break e;break;case c.EOF:return i>0?this.finish(e,f.RightCurlyExpected):a>0?this.finish(e,f.RightSquareBracketExpected):s>0?this.finish(e,f.RightParenthesisExpected):this.finish(e);case c.CurlyL:r++,i++;break;case c.CurlyR:if(i--,r>0&&i===0){if(this.consumeToken(),a>0)return this.finish(e,f.RightSquareBracketExpected);if(s>0)return this.finish(e,f.RightParenthesisExpected);break e}if(i<0){if(s===0&&a===0)break e;return this.finish(e,f.LeftCurlyExpected)}break;case c.ParenthesisL:s++;break;case c.ParenthesisR:if(s--,s<0)return this.finish(e,f.LeftParenthesisExpected);break;case c.BracketL:a++;break;case c.BracketR:if(a--,a<0)return this.finish(e,f.LeftSquareBracketExpected);break}this.consumeToken()}return e}_parseUnknownAtRuleName(){let e=this.create(x);return this.accept(c.AtKeyword)?this.finish(e):e}_parseOperator(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(c.Dashmatch)||this.peek(c.Includes)||this.peek(c.SubstringOperator)||this.peek(c.PrefixOperator)||this.peek(c.SuffixOperator)||this.peekDelim("=")){let e=this.createNode(m.Operator);return this.consumeToken(),this.finish(e)}else return null}_parseUnaryOperator(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;let e=this.create(x);return this.consumeToken(),this.finish(e)}_parseCombinator(){if(this.peekDelim(">")){let e=this.create(x);this.consumeToken();let t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=m.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=m.SelectorCombinatorParent,this.finish(e)}else if(this.peekDelim("+")){let e=this.create(x);return this.consumeToken(),e.type=m.SelectorCombinatorSibling,this.finish(e)}else if(this.peekDelim("~")){let e=this.create(x);return this.consumeToken(),e.type=m.SelectorCombinatorAllSiblings,this.finish(e)}else if(this.peekDelim("/")){let e=this.create(x);this.consumeToken();let t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=m.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null}_parseSimpleSelector(){let e=this.create(he),t=0;for(e.addChild(this._parseElementName()||this._parseNestingSelector())&&t++;(t===0||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);return this.consumeToken(),this.finish(e)}return null}_parseSimpleSelectorBody(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()}_parseSelectorIdent(){return this._parseIdent()}_parseHash(){if(!this.peek(c.Hash)&&!this.peekDelim("#"))return null;let e=this.createNode(m.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,f.IdentifierExpected)}else this.consumeToken();return this.finish(e)}_parseClass(){if(!this.peekDelim("."))return null;let e=this.createNode(m.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)}_parseElementName(){let e=this.mark(),t=this.createNode(m.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),!t.addChild(this._parseSelectorIdent())&&!this.acceptDelim("*")?(this.restoreAtMark(e),null):this.finish(t)}_parseNamespacePrefix(){let e=this.mark(),t=this.createNode(m.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)}_parseAttrib(){if(!this.peek(c.BracketL))return null;let e=this.create($n);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i"),this.acceptIdent("s")),this.accept(c.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)):this.finish(e,f.IdentifierExpected)}_parsePseudo(){let e=this._tryParsePseudoIdentifier();if(e){if(!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let t=()=>{let i=this.create(x);if(!i.addChild(this._parseSelector(!0)))return null;for(;this.accept(c.Comma)&&i.addChild(this._parseSelector(!0)););return this.peek(c.ParenthesisR)?this.finish(i):null};if(!e.addChild(this.try(t))&&e.addChild(this._parseBinaryExpr())&&this.acceptIdent("of")&&!e.addChild(this.try(t)))return this.finish(e,f.SelectorExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return this.finish(e)}return null}_tryParsePseudoIdentifier(){if(!this.peek(c.Colon))return null;let e=this.mark(),t=this.createNode(m.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(c.Colon),this.hasWhitespace()||!t.addChild(this._parseIdent())?this.finish(t,f.IdentifierExpected):this.finish(t))}_tryParsePrio(){let e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)}_parsePrio(){if(!this.peek(c.Exclamation))return null;let e=this.createNode(m.Prio);return this.accept(c.Exclamation)&&this.acceptIdent("important")?this.finish(e):null}_parseExpr(e=!1){let t=this.create(gt);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(c.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)}_parseUnicodeRange(){if(!this.peekIdent("u"))return null;let e=this.create(gn);return this.acceptUnicodeRange()?this.finish(e):null}_parseNamedLine(){if(!this.peek(c.BracketL))return null;let e=this.createNode(m.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(c.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)}_parseBinaryExpr(e,t){let r=this.create(qe);if(!r.setLeft(e||this._parseTerm()))return null;if(!r.setOperator(t||this._parseOperator()))return this.finish(r);if(!r.setRight(this._parseTerm()))return this.finish(r,f.TermExpected);r=this.finish(r);let i=this._parseOperator();return i&&(r=this._parseBinaryExpr(r,i)),this.finish(r)}_parseTerm(){let e=this.create(Ln);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null}_parseTermExpression(){return this._parseURILiteral()||this._parseUnicodeRange()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()}_parseOperation(){if(!this.peek(c.ParenthesisL))return null;let e=this.create(x);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseNumeric(){if(this.peek(c.Num)||this.peek(c.Percentage)||this.peek(c.Resolution)||this.peek(c.Length)||this.peek(c.EMS)||this.peek(c.EXS)||this.peek(c.Angle)||this.peek(c.Time)||this.peek(c.Dimension)||this.peek(c.ContainerQueryLength)||this.peek(c.Freq)){let e=this.create(nt);return this.consumeToken(),this.finish(e)}return null}_parseStringLiteral(){if(!this.peek(c.String)&&!this.peek(c.BadString))return null;let e=this.createNode(m.StringLiteral);return this.consumeToken(),this.finish(e)}_parseURILiteral(){if(!this.peekRegExp(c.Ident,/^url(-prefix)?$/i))return null;let e=this.mark(),t=this.createNode(m.URILiteral);return this.accept(c.Ident),this.hasWhitespace()||!this.peek(c.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected))}_parseURLArgument(){let e=this.create(x);return!this.accept(c.String)&&!this.accept(c.BadString)&&!this.acceptUnquotedString()?null:this.finish(e)}_parseIdent(e){if(!this.peek(c.Ident))return null;let t=this.create(G);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(c.Ident,/^--/),this.consumeToken(),this.finish(t)}_parseFunction(){let e=this.mark(),t=this.create(me);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,f.ExpressionExpected);return this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_parseFunctionIdentifier(){if(!this.peek(c.Ident))return null;let e=this.create(G);if(e.referenceTypes=[z.Function],this.acceptIdent("progid")){if(this.accept(c.Colon))for(;this.accept(c.Ident)&&this.acceptDelim("."););return this.finish(e)}return this.consumeToken(),this.finish(e)}_parseFunctionArgument(){let e=this.create(le);return e.setValue(this._parseExpr(!0))?this.finish(e):null}_parseHexColor(){if(this.peekRegExp(c.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){let e=this.create(tt);return this.consumeToken(),this.finish(e)}else return null}};function Hs(n,e){let t=0,r=n.length;if(r===0)return 0;for(;te+t||this.offset===e&&this.length===t?this.findInScope(e,t):null}findInScope(e,t=0){let r=e+t,i=Hs(this.children,a=>a.offset>r);if(i===0)return this;let s=this.children[i-1];return s.offset<=e&&s.offset+s.length>=e+t?s.findInScope(e,t):this}addSymbol(e){this.symbols.push(e)}getSymbol(e,t){for(let r=0;r{"use strict";var n={470:i=>{function s(o){if(typeof o!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(o))}function a(o,d){for(var h,u="",w=0,b=-1,y=0,E=0;E<=o.length;++E){if(E2){var A=u.lastIndexOf("/");if(A!==u.length-1){A===-1?(u="",w=0):w=(u=u.slice(0,A)).length-1-u.lastIndexOf("/"),b=E,y=0;continue}}else if(u.length===2||u.length===1){u="",w=0,b=E,y=0;continue}}d&&(u.length>0?u+="/..":u="..",w=2)}else u.length>0?u+="/"+o.slice(b+1,E):u=o.slice(b+1,E),w=E-b-1;b=E,y=0}else h===46&&y!==-1?++y:y=-1}return u}var l={resolve:function(){for(var o,d="",h=!1,u=arguments.length-1;u>=-1&&!h;u--){var w;u>=0?w=arguments[u]:(o===void 0&&(o=process.cwd()),w=o),s(w),w.length!==0&&(d=w+"/"+d,h=w.charCodeAt(0)===47)}return d=a(d,!h),h?d.length>0?"/"+d:"/":d.length>0?d:"."},normalize:function(o){if(s(o),o.length===0)return".";var d=o.charCodeAt(0)===47,h=o.charCodeAt(o.length-1)===47;return(o=a(o,!d)).length!==0||d||(o="."),o.length>0&&h&&(o+="/"),d?"/"+o:o},isAbsolute:function(o){return s(o),o.length>0&&o.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var o,d=0;d0&&(o===void 0?o=h:o+="/"+h)}return o===void 0?".":l.normalize(o)},relative:function(o,d){if(s(o),s(d),o===d||(o=l.resolve(o))===(d=l.resolve(d)))return"";for(var h=1;hE){if(d.charCodeAt(b+I)===47)return d.slice(b+I+1);if(I===0)return d.slice(b+I)}else w>E&&(o.charCodeAt(h+I)===47?A=I:I===0&&(A=0));break}var P=o.charCodeAt(h+I);if(P!==d.charCodeAt(b+I))break;P===47&&(A=I)}var T="";for(I=h+A+1;I<=u;++I)I!==u&&o.charCodeAt(I)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+d.slice(b+A):(b+=A,d.charCodeAt(b)===47&&++b,d.slice(b))},_makeLong:function(o){return o},dirname:function(o){if(s(o),o.length===0)return".";for(var d=o.charCodeAt(0),h=d===47,u=-1,w=!0,b=o.length-1;b>=1;--b)if((d=o.charCodeAt(b))===47){if(!w){u=b;break}}else w=!1;return u===-1?h?"/":".":h&&u===1?"//":o.slice(0,u)},basename:function(o,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');s(o);var h,u=0,w=-1,b=!0;if(d!==void 0&&d.length>0&&d.length<=o.length){if(d.length===o.length&&d===o)return"";var y=d.length-1,E=-1;for(h=o.length-1;h>=0;--h){var A=o.charCodeAt(h);if(A===47){if(!b){u=h+1;break}}else E===-1&&(b=!1,E=h+1),y>=0&&(A===d.charCodeAt(y)?--y==-1&&(w=h):(y=-1,w=E))}return u===w?w=E:w===-1&&(w=o.length),o.slice(u,w)}for(h=o.length-1;h>=0;--h)if(o.charCodeAt(h)===47){if(!b){u=h+1;break}}else w===-1&&(b=!1,w=h+1);return w===-1?"":o.slice(u,w)},extname:function(o){s(o);for(var d=-1,h=0,u=-1,w=!0,b=0,y=o.length-1;y>=0;--y){var E=o.charCodeAt(y);if(E!==47)u===-1&&(w=!1,u=y+1),E===46?d===-1?d=y:b!==1&&(b=1):d!==-1&&(b=-1);else if(!w){h=y+1;break}}return d===-1||u===-1||b===0||b===1&&d===u-1&&d===h+1?"":o.slice(d,u)},format:function(o){if(o===null||typeof o!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof o);return function(d,h){var u=h.dir||h.root,w=h.base||(h.name||"")+(h.ext||"");return u?u===h.root?u+w:u+"/"+w:w}(0,o)},parse:function(o){s(o);var d={root:"",dir:"",base:"",ext:"",name:""};if(o.length===0)return d;var h,u=o.charCodeAt(0),w=u===47;w?(d.root="/",h=1):h=0;for(var b=-1,y=0,E=-1,A=!0,I=o.length-1,P=0;I>=h;--I)if((u=o.charCodeAt(I))!==47)E===-1&&(A=!1,E=I+1),u===46?b===-1?b=I:P!==1&&(P=1):b!==-1&&(P=-1);else if(!A){y=I+1;break}return b===-1||E===-1||P===0||P===1&&b===E-1&&b===y+1?E!==-1&&(d.base=d.name=y===0&&w?o.slice(1,E):o.slice(y,E)):(y===0&&w?(d.name=o.slice(1,b),d.base=o.slice(1,E)):(d.name=o.slice(y,b),d.base=o.slice(y,E)),d.ext=o.slice(b,E)),y>0?d.dir=o.slice(0,y-1):w&&(d.dir="/"),d},sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return n[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>w,Utils:()=>Ie}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,a=/^\//,l=/^\/\//;function o(S,v){if(!S.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${S.authority}", path: "${S.path}", query: "${S.query}", fragment: "${S.fragment}"}`);if(S.scheme&&!s.test(S.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(S.path){if(S.authority){if(!a.test(S.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(S.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let d="",h="/",u=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class w{static isUri(v){return v instanceof w||!!v&&typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function"}scheme;authority;path;query;fragment;constructor(v,F,C,N,D,M=!1){typeof v=="object"?(this.scheme=v.scheme||d,this.authority=v.authority||d,this.path=v.path||d,this.query=v.query||d,this.fragment=v.fragment||d):(this.scheme=function(oe,Z){return oe||Z?oe:"file"}(v,M),this.authority=F||d,this.path=function(oe,Z){switch(oe){case"https":case"http":case"file":Z?Z[0]!==h&&(Z=h+Z):Z=h}return Z}(this.scheme,C||d),this.query=N||d,this.fragment=D||d,o(this,M))}get fsPath(){return P(this,!1)}with(v){if(!v)return this;let{scheme:F,authority:C,path:N,query:D,fragment:M}=v;return F===void 0?F=this.scheme:F===null&&(F=d),C===void 0?C=this.authority:C===null&&(C=d),N===void 0?N=this.path:N===null&&(N=d),D===void 0?D=this.query:D===null&&(D=d),M===void 0?M=this.fragment:M===null&&(M=d),F===this.scheme&&C===this.authority&&N===this.path&&D===this.query&&M===this.fragment?this:new y(F,C,N,D,M)}static parse(v,F=!1){let C=u.exec(v);return C?new y(C[2]||d,Y(C[4]||d),Y(C[5]||d),Y(C[7]||d),Y(C[9]||d),F):new y(d,d,d,d,d)}static file(v){let F=d;if(i&&(v=v.replace(/\\/g,h)),v[0]===h&&v[1]===h){let C=v.indexOf(h,2);C===-1?(F=v.substring(2),v=h):(F=v.substring(2,C),v=v.substring(C)||h)}return new y("file",F,v,d,d)}static from(v){let F=new y(v.scheme,v.authority,v.path,v.query,v.fragment);return o(F,!0),F}toString(v=!1){return T(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof w)return v;{let F=new y(v);return F._formatted=v.external,F._fsPath=v._sep===b?v.fsPath:null,F}}return v}}let b=i?1:void 0;class y extends w{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=P(this,!1)),this._fsPath}toString(v=!1){return v?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let v={$mid:1};return this._fsPath&&(v.fsPath=this._fsPath,v._sep=b),this._formatted&&(v.external=this._formatted),this.path&&(v.path=this.path),this.scheme&&(v.scheme=this.scheme),this.authority&&(v.authority=this.authority),this.query&&(v.query=this.query),this.fragment&&(v.fragment=this.fragment),v}}let E={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(S,v,F){let C,N=-1;for(let D=0;D=97&&M<=122||M>=65&&M<=90||M>=48&&M<=57||M===45||M===46||M===95||M===126||v&&M===47||F&&M===91||F&&M===93||F&&M===58)N!==-1&&(C+=encodeURIComponent(S.substring(N,D)),N=-1),C!==void 0&&(C+=S.charAt(D));else{C===void 0&&(C=S.substr(0,D));let oe=E[M];oe!==void 0?(N!==-1&&(C+=encodeURIComponent(S.substring(N,D)),N=-1),C+=oe):N===-1&&(N=D)}}return N!==-1&&(C+=encodeURIComponent(S.substring(N))),C!==void 0?C:S}function I(S){let v;for(let F=0;F1&&S.scheme==="file"?`//${S.authority}${S.path}`:S.path.charCodeAt(0)===47&&(S.path.charCodeAt(1)>=65&&S.path.charCodeAt(1)<=90||S.path.charCodeAt(1)>=97&&S.path.charCodeAt(1)<=122)&&S.path.charCodeAt(2)===58?v?S.path.substr(1):S.path[1].toLowerCase()+S.path.substr(2):S.path,i&&(F=F.replace(/\//g,"\\")),F}function T(S,v){let F=v?I:A,C="",{scheme:N,authority:D,path:M,query:oe,fragment:Z}=S;if(N&&(C+=N,C+=":"),(D||N==="file")&&(C+=h,C+=h),D){let $=D.indexOf("@");if($!==-1){let Ue=D.substr(0,$);D=D.substr($+1),$=Ue.lastIndexOf(":"),$===-1?C+=F(Ue,!1,!1):(C+=F(Ue.substr(0,$),!1,!1),C+=":",C+=F(Ue.substr($+1),!1,!0)),C+="@"}D=D.toLowerCase(),$=D.lastIndexOf(":"),$===-1?C+=F(D,!1,!0):(C+=F(D.substr(0,$),!1,!0),C+=D.substr($))}if(M){if(M.length>=3&&M.charCodeAt(0)===47&&M.charCodeAt(2)===58){let $=M.charCodeAt(1);$>=65&&$<=90&&(M=`/${String.fromCharCode($+32)}:${M.substr(3)}`)}else if(M.length>=2&&M.charCodeAt(1)===58){let $=M.charCodeAt(0);$>=65&&$<=90&&(M=`${String.fromCharCode($+32)}:${M.substr(2)}`)}C+=F(M,!0,!1)}return oe&&(C+="?",C+=F(oe,!1,!1)),Z&&(C+="#",C+=v?Z:A(Z,!1,!1)),C}function j(S){try{return decodeURIComponent(S)}catch{return S.length>3?S.substr(0,3)+j(S.substr(3)):S}}let X=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Y(S){return S.match(X)?S.replace(X,v=>j(v)):S}var $e=t(470);let K=$e.posix||$e,_e="/";var Ie;(function(S){S.joinPath=function(v,...F){return v.with({path:K.join(v.path,...F)})},S.resolvePath=function(v,...F){let C=v.path,N=!1;C[0]!==_e&&(C=_e+C,N=!0);let D=K.resolve(C,...F);return N&&D[0]===_e&&!v.authority&&(D=D.substring(1)),v.with({path:D})},S.dirname=function(v){if(v.path.length===0||v.path===_e)return v;let F=K.dirname(v.path);return F.length===1&&F.charCodeAt(0)===46&&(F=""),v.with({path:F})},S.basename=function(v){return K.basename(v.path)},S.extname=function(v){return K.extname(v.path)}})(Ie||(Ie={}))})(),Js=r})();var{URI:Zt,Utils:Fe}=Js;function ar(n){return Fe.dirname(Zt.parse(n)).toString(!0)}function Je(n,...e){return Fe.joinPath(Zt.parse(n),...e).toString(!0)}var cr=class{constructor(e){this.readDirectory=e,this.literalCompletions=[],this.importCompletions=[]}onCssURILiteralValue(e){this.literalCompletions.push(e)}onCssImportPath(e){this.importCompletions.push(e)}async computeCompletions(e,t){let r={items:[],isIncomplete:!1};for(let i of this.literalCompletions){let s=i.uriValue,a=vi(s);if(a==="."||a==="..")r.isIncomplete=!0;else{let l=await this.providePathSuggestions(s,i.position,i.range,e,t);for(let o of l)r.items.push(o)}}for(let i of this.importCompletions){let s=i.pathValue,a=vi(s);if(a==="."||a==="..")r.isIncomplete=!0;else{let l=await this.providePathSuggestions(s,i.position,i.range,e,t);e.languageId==="scss"&&l.forEach(o=>{V(o.label,"_")&&fn(o.label,".scss")&&(o.textEdit?o.textEdit.newText=o.label.slice(1,-5):o.label=o.label.slice(1,-5))});for(let o of l)r.items.push(o)}}return r}async providePathSuggestions(e,t,r,i,s){let a=vi(e),l=V(e,"'")||V(e,'"'),o=l?a.slice(0,t.character-(r.start.character+1)):a.slice(0,t.character-r.start.character),d=i.uri,h=l?ba(r,1,-1):r,u=fa(o,a,h),w=o.substring(0,o.lastIndexOf("/")+1),b=s.resolveReference(w||".",d);if(b)try{let y=[],E=await this.readDirectory(b);for(let[A,I]of E)A.charCodeAt(0)!==ua&&(I===st.Directory||Je(b,A)!==d)&&y.push(ga(A,I===st.Directory,u));return y}catch{}return[]}},ua=46;function vi(n){return V(n,"'")||V(n,'"')?n.slice(1,-1):n}function fa(n,e,t){let r,i=n.lastIndexOf("/");if(i===-1)r=t;else{let s=e.slice(i+1),a=dr(t.end,-s.length),l=s.indexOf(" "),o;l!==-1?o=dr(a,l):o=t.end,r=R.create(a,o)}return r}function ga(n,e,t){return e?(n=n+"/",{label:lr(n),kind:k.Folder,textEdit:_.replace(t,lr(n)),command:{title:"Suggest",command:"editor.action.triggerSuggest"}}):{label:lr(n),kind:k.File,textEdit:_.replace(t,lr(n))}}function lr(n){return n.replace(/(\s|\(|\)|,|"|')/g,"\\$1")}function dr(n,e){return H.create(n.line,n.character+e)}function ba(n,e,t){let r=dr(n.start,e),i=dr(n.end,t);return R.create(r,i)}var Ne=te.Snippet,Xs={title:"Suggest",command:"editor.action.triggerSuggest"},Ee;(function(n){n.Enums=" ",n.Normal="d",n.VendorPrefixed="x",n.Term="y",n.Variable="z"})(Ee||(Ee={}));var Xe=class{constructor(e=null,t,r){this.variablePrefix=e,this.lsOptions=t,this.cssDataManager=r,this.completionParticipants=[]}configure(e){this.defaultSettings=e}getSymbolContext(){return this.symbolContext||(this.symbolContext=new ot(this.styleSheet)),this.symbolContext}setCompletionParticipants(e){this.completionParticipants=e||[]}async doComplete2(e,t,r,i,s=this.defaultSettings){if(!this.lsOptions.fileSystemProvider||!this.lsOptions.fileSystemProvider.readDirectory)return this.doComplete(e,t,r,s);let a=new cr(this.lsOptions.fileSystemProvider.readDirectory),l=this.completionParticipants;this.completionParticipants=[a].concat(l);let o=this.doComplete(e,t,r,s);try{let d=await a.computeCompletions(e,i);return{isIncomplete:o.isIncomplete||d.isIncomplete,itemDefaults:o.itemDefaults,items:d.items.concat(o.items)}}finally{this.completionParticipants=l}}doComplete(e,t,r,i){this.offset=e.offsetAt(t),this.position=t,this.currentWord=va(e,this.offset),this.defaultReplaceRange=R.create(H.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=r,this.documentSettings=i;try{let s={isIncomplete:!1,itemDefaults:{editRange:{start:{line:t.line,character:t.character-this.currentWord.length},end:t}},items:[]};this.nodePath=vt(this.styleSheet,this.offset);for(let a=this.nodePath.length-1;a>=0;a--){let l=this.nodePath[a];if(l instanceof Ve)this.getCompletionsForDeclarationProperty(l.getParent(),s);else if(l instanceof gt)l.parent instanceof rt?this.getVariableProposals(null,s):this.getCompletionsForExpression(l,s);else if(l instanceof he){let o=l.findAParent(m.ExtendsReference,m.Ruleset);if(o)if(o.type===m.ExtendsReference)this.getCompletionsForExtendsReference(o,l,s);else{let d=o;this.getCompletionsForSelector(d,d&&d.isNested(),s)}}else if(l instanceof le)this.getCompletionsForFunctionArgument(l,l.getParent(),s);else if(l instanceof Ze)this.getCompletionsForDeclarations(l,s);else if(l instanceof xe)this.getCompletionsForVariableDeclaration(l,s);else if(l instanceof ae)this.getCompletionsForRuleSet(l,s);else if(l instanceof rt)this.getCompletionsForInterpolation(l,s);else if(l instanceof De)this.getCompletionsForFunctionDeclaration(l,s);else if(l instanceof ze)this.getCompletionsForMixinReference(l,s);else if(l instanceof me)this.getCompletionsForFunctionArgument(null,l,s);else if(l instanceof et)this.getCompletionsForSupports(l,s);else if(l instanceof Re)this.getCompletionsForSupportsCondition(l,s);else if(l instanceof Se)this.getCompletionsForExtendsReference(l,null,s);else if(l.type===m.URILiteral)this.getCompletionForUriLiteralValue(l,s);else if(l.parent===null)this.getCompletionForTopLevel(s);else if(l.type===m.StringLiteral&&this.isImportPathParent(l.parent.type))this.getCompletionForImportPath(l,s);else continue;if(s.items.length>0||this.offset>l.offset)return this.finalize(s)}return this.getCompletionsForStylesheet(s),s.items.length===0&&this.variablePrefix&&this.currentWord.indexOf(this.variablePrefix)===0&&this.getVariableProposals(null,s),this.finalize(s)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}}isImportPathParent(e){return e===m.Import}finalize(e){return e}findInNodePath(...e){for(let t=this.nodePath.length-1;t>=0;t--){let r=this.nodePath[t];if(e.indexOf(r.type)!==-1)return r}return null}getCompletionsForDeclarationProperty(e,t){return this.getPropertyProposals(e,t)}getPropertyProposals(e,t){let r=this.isTriggerPropertyValueCompletionEnabled,i=this.isCompletePropertyWithSemicolonEnabled;return this.cssDataManager.getProperties().forEach(a=>{let l,o,d=!1;e?(l=this.getCompletionRange(e.getProperty()),o=a.name,ie(e.colonPosition)||(o+=": ",d=!0)):(l=this.getCompletionRange(null),o=a.name+": ",d=!0),!e&&i&&(o+="$0;"),e&&!e.semicolonPosition&&i&&this.offset>=this.textDocument.offsetAt(l.end)&&(o+="$0;");let h={label:a.name,documentation:Ce(a,this.doesSupportMarkdown()),tags:en(a)?[Te.Deprecated]:[],textEdit:_.replace(l,o),insertTextFormat:te.Snippet,kind:k.Property};a.restrictions||(d=!1),r&&d&&(h.command=Xs);let w=(255-(typeof a.relevance=="number"?Math.min(Math.max(a.relevance,0),99):50)).toString(16),b=V(a.name,"-")?Ee.VendorPrefixed:Ee.Normal;h.sortText=b+"_"+w,t.items.push(h)}),this.completionParticipants.forEach(a=>{a.onCssProperty&&a.onCssProperty({propertyName:this.currentWord,range:this.defaultReplaceRange})}),t}get isTriggerPropertyValueCompletionEnabled(){return this.documentSettings?.triggerPropertyValueCompletion??!0}get isCompletePropertyWithSemicolonEnabled(){return this.documentSettings?.completePropertyWithSemicolon??!0}getCompletionsForDeclarationValue(e,t){let r=e.getFullPropertyName(),i=this.cssDataManager.getProperty(r),s=e.getValue()||null;for(;s&&s.hasChildren();)s=s.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach(a=>{a.onCssPropertyValue&&a.onCssPropertyValue({propertyName:r,propertyValue:this.currentWord,range:this.getCompletionRange(s)})}),i){if(i.restrictions)for(let a of i.restrictions)switch(a){case"color":this.getColorProposals(i,s,t);break;case"position":this.getPositionProposals(i,s,t);break;case"repeat":this.getRepeatStyleProposals(i,s,t);break;case"line-style":this.getLineStyleProposals(i,s,t);break;case"line-width":this.getLineWidthProposals(i,s,t);break;case"geometry-box":this.getGeometryBoxProposals(i,s,t);break;case"box":this.getBoxProposals(i,s,t);break;case"image":this.getImageProposals(i,s,t);break;case"timing-function":this.getTimingFunctionProposals(i,s,t);break;case"shape":this.getBasicShapeProposals(i,s,t);break}this.getValueEnumProposals(i,s,t),this.getCSSWideKeywordProposals(i,s,t),this.getUnitProposals(i,s,t)}else{let a=wa(this.styleSheet,e);for(let l of a.getEntries())t.items.push({label:l,textEdit:_.replace(this.getCompletionRange(s),l),kind:k.Value})}return this.getVariableProposals(s,t),this.getTermProposals(i,s,t),t}getValueEnumProposals(e,t,r){if(e.values)for(let i of e.values){let s=i.name,a;if(fn(s,")")){let d=s.lastIndexOf("(");d!==-1&&(s=s.substring(0,d+1)+"$1"+s.substring(d+1),a=Ne)}let l=Ee.Enums;V(i.name,"-")&&(l+=Ee.VendorPrefixed);let o={label:i.name,documentation:Ce(i,this.doesSupportMarkdown()),tags:en(e)?[Te.Deprecated]:[],textEdit:_.replace(this.getCompletionRange(t),s),sortText:l,kind:k.Value,insertTextFormat:a};r.items.push(o)}return r}getCSSWideKeywordProposals(e,t,r){for(let i in hi)r.items.push({label:i,documentation:hi[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});for(let i in pi){let s=Et(i);r.items.push({label:i,documentation:pi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:Ne,command:V(i,"var")?Xs:void 0})}return r}getCompletionsForInterpolation(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t}getVariableProposals(e,t){let r=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Variable);for(let i of r){let s=V(i.name,"--")?`var(${i.name})`:i.name,a={label:i.name,documentation:i.value?zr(i.value):i.value,textEdit:_.replace(this.getCompletionRange(e),s),kind:k.Variable,sortText:Ee.Variable};if(typeof a.documentation=="string"&&ii(a.documentation)&&(a.kind=k.Color),i.node.type===m.FunctionParameter){let l=i.node.getParent();l.type===m.MixinDeclaration&&(a.detail=p("argument from '{0}'",l.getName()))}t.items.push(a)}return t}getVariableProposalsForCSSVarFunction(e){let t=new tn;this.styleSheet.acceptVisitor(new xi(t,this.offset));let r=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Variable);for(let i of r){if(V(i.name,"--")){let s={label:i.name,documentation:i.value?zr(i.value):i.value,textEdit:_.replace(this.getCompletionRange(null),i.name),kind:k.Variable};typeof s.documentation=="string"&&ii(s.documentation)&&(s.kind=k.Color),e.items.push(s)}t.remove(i.name)}for(let i of t.getEntries())if(V(i,"--")){let s={label:i,textEdit:_.replace(this.getCompletionRange(null),i),kind:k.Variable};e.items.push(s)}return e}getUnitProposals(e,t,r){let i="0";if(this.currentWord.length>0){let s=this.currentWord.match(/^-?\d[\.\d+]*/);s&&(i=s[0],r.isIncomplete=i.length===this.currentWord.length)}else this.currentWord.length===0&&(r.isIncomplete=!0);if(t&&t.parent&&t.parent.type===m.Term&&(t=t.getParent()),e.restrictions)for(let s of e.restrictions){let a=ir[s];if(a)for(let l of a){let o=i+l;r.items.push({label:o,textEdit:_.replace(this.getCompletionRange(t),o),kind:k.Unit})}}return r}getCompletionRange(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){let t=e.end!==-1?this.textDocument.positionAt(e.end):this.position,r=this.textDocument.positionAt(e.offset);if(r.line===t.line)return R.create(r,t)}return this.defaultReplaceRange}getColorProposals(e,t,r){for(let s in Xt)r.items.push({label:s,documentation:Xt[s],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Color});for(let s in rr)r.items.push({label:s,documentation:rr[s],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Value});let i=new tn;this.styleSheet.acceptVisitor(new yi(i,this.offset));for(let s of i.getEntries())r.items.push({label:s,textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Color});for(let s of Ws)r.items.push({label:s.label,detail:s.func,documentation:s.desc,textEdit:_.replace(this.getCompletionRange(t),s.insertText),insertTextFormat:Ne,kind:k.Function});return r}getPositionProposals(e,t,r){for(let i in oi)r.items.push({label:i,documentation:oi[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getRepeatStyleProposals(e,t,r){for(let i in ai)r.items.push({label:i,documentation:ai[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getLineStyleProposals(e,t,r){for(let i in li)r.items.push({label:i,documentation:li[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getLineWidthProposals(e,t,r){for(let i of js)r.items.push({label:i,textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getGeometryBoxProposals(e,t,r){for(let i in di)r.items.push({label:i,documentation:di[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getBoxProposals(e,t,r){for(let i in ci)r.items.push({label:i,documentation:ci[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getImageProposals(e,t,r){for(let i in mi){let s=Et(i);r.items.push({label:i,documentation:mi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getTimingFunctionProposals(e,t,r){for(let i in ui){let s=Et(i);r.items.push({label:i,documentation:ui[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getBasicShapeProposals(e,t,r){for(let i in fi){let s=Et(i);r.items.push({label:i,documentation:fi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getCompletionsForStylesheet(e){let t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof ae?this.getCompletionsForRuleSet(t,e):t instanceof et?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)}getCompletionForTopLevel(e){return this.cssDataManager.getAtDirectives().forEach(t=>{e.items.push({label:t.name,textEdit:_.replace(this.getCompletionRange(null),t.name),documentation:Ce(t,this.doesSupportMarkdown()),tags:en(t)?[Te.Deprecated]:[],kind:k.Keyword})}),this.getCompletionsForSelector(null,!1,e),e}getCompletionsForRuleSet(e,t){let r=e.getDeclarations();return r&&r.endsWith("}")&&this.offset>=r.end?this.getCompletionForTopLevel(t):!r||this.offset<=r.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)}getCompletionsForSelector(e,t,r){let i=this.findInNodePath(m.PseudoSelector,m.IdentifierSelector,m.ClassSelector,m.ElementNameSelector);if(!i&&this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord,this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord),this.defaultReplaceRange=R.create(H.create(this.position.line,this.position.character-this.currentWord.length),this.position)),this.cssDataManager.getPseudoClasses().forEach(d=>{let h=Et(d.name),u={label:d.name,textEdit:_.replace(this.getCompletionRange(i),h),documentation:Ce(d,this.doesSupportMarkdown()),tags:en(d)?[Te.Deprecated]:[],kind:k.Function,insertTextFormat:d.name!==h?Ne:void 0};V(d.name,":-")&&(u.sortText=Ee.VendorPrefixed),r.items.push(u)}),this.cssDataManager.getPseudoElements().forEach(d=>{let h=Et(d.name),u={label:d.name,textEdit:_.replace(this.getCompletionRange(i),h),documentation:Ce(d,this.doesSupportMarkdown()),tags:en(d)?[Te.Deprecated]:[],kind:k.Function,insertTextFormat:d.name!==h?Ne:void 0};V(d.name,"::-")&&(u.sortText=Ee.VendorPrefixed),r.items.push(u)}),!t){for(let d of Bs)r.items.push({label:d,textEdit:_.replace(this.getCompletionRange(i),d),kind:k.Keyword});for(let d of qs)r.items.push({label:d,textEdit:_.replace(this.getCompletionRange(i),d),kind:k.Keyword})}let l={};l[this.currentWord]=!0;let o=this.textDocument.getText();if(this.styleSheet.accept(d=>{if(d.type===m.SimpleSelector&&d.length>0){let h=o.substr(d.offset,d.length);return h.charAt(0)==="."&&!l[h]&&(l[h]=!0,r.items.push({label:h,textEdit:_.replace(this.getCompletionRange(i),h),kind:k.Keyword})),!1}return!0}),e&&e.isNested()){let d=e.getSelectors().findFirstChildBeforeOffset(this.offset);d&&e.getSelectors().getChildren().indexOf(d)===0&&this.getPropertyProposals(null,r)}return r}getCompletionsForDeclarations(e,t){if(!e||this.offset===e.offset)return t;let r=e.findFirstChildBeforeOffset(this.offset);if(!r)return this.getCompletionsForDeclarationProperty(null,t);if(r instanceof ht){let i=r;if(!ie(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(ie(i.semicolonPosition)&&i.semicolonPositione.colonPosition&&this.getVariableProposals(e.getValue()||null,t),t}getCompletionsForExpression(e,t){let r=e.getParent();if(r instanceof le)return this.getCompletionsForFunctionArgument(r,r.getParent(),t),t;let i=e.findParent(m.Declaration);if(!i)return this.getTermProposals(void 0,null,t),t;let s=e.findChildAtOffset(this.offset,!0);return s?s instanceof nt||s instanceof G?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)}getCompletionsForFunctionArgument(e,t,r){let i=t.getIdentifier();return i&&i.matches("var")&&(!t.getArguments().hasChildren()||t.getArguments().getChild(0)===e)&&this.getVariableProposalsForCSSVarFunction(r),r}getCompletionsForFunctionDeclaration(e,t){let r=e.getDeclarations();return r&&this.offset>r.offset&&this.offset{s.onCssMixinReference&&s.onCssMixinReference({mixinName:this.currentWord,range:this.getCompletionRange(i)})}),t}getTermProposals(e,t,r){let i=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Function);for(let s of i)s.node instanceof De&&r.items.push(this.makeTermProposal(s,s.node.getParameters(),t));return r}makeTermProposal(e,t,r){let i=e.node,s=t.getChildren().map(l=>l instanceof ye?l.getName():l.getText()),a=e.name+"("+s.map((l,o)=>"${"+(o+1)+":"+l+"}").join(", ")+")";return{label:e.name,detail:e.name+"("+s.join(", ")+")",textEdit:_.replace(this.getCompletionRange(r),a),insertTextFormat:Ne,kind:k.Function,sortText:Ee.Term}}getCompletionsForSupportsCondition(e,t){let r=e.findFirstChildBeforeOffset(this.offset);if(r){if(r instanceof Q)return!ie(r.colonPosition)||this.offset<=r.colonPosition?this.getCompletionsForDeclarationProperty(r,t):this.getCompletionsForDeclarationValue(r,t);if(r instanceof Re)return this.getCompletionsForSupportsCondition(r,t)}return ie(e.lParent)&&this.offset>e.lParent&&(!ie(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t}getCompletionsForSupports(e,t){let r=e.getDeclarations();if(!r||this.offset<=r.offset){let s=e.findFirstChildBeforeOffset(this.offset);return s instanceof Re?this.getCompletionsForSupportsCondition(s,t):t}return this.getCompletionForTopLevel(t)}getCompletionsForExtendsReference(e,t,r){return r}getCompletionForUriLiteralValue(e,t){let r,i,s;if(e.hasChildren()){let a=e.getChild(0);r=a.getText(),i=this.position,s=this.getCompletionRange(a)}else{r="",i=this.position;let a=this.textDocument.positionAt(e.offset+4);s=R.create(a,a)}return this.completionParticipants.forEach(a=>{a.onCssURILiteralValue&&a.onCssURILiteralValue({uriValue:r,position:i,range:s})}),t}getCompletionForImportPath(e,t){return this.completionParticipants.forEach(r=>{r.onCssImportPath&&r.onCssImportPath({pathValue:e.getText(),position:this.position,range:this.getCompletionRange(e)})}),t}hasCharacterAtPosition(e,t){let r=this.textDocument.getText();return e>=0&&e=0&&` -\r":{[()]},*>+`.indexOf(r.charAt(t))===-1;)t--;return r.substring(t+1,e)}var rn=class n{constructor(){this.parent=null,this.children=null,this.attributes=null}findAttribute(e){if(this.attributes){for(let t of this.attributes)if(t.name===e)return t.value}return null}addChild(e){e instanceof n&&(e.parent=this),this.children||(this.children=[]),this.children.push(e)}append(e){if(this.attributes){let t=this.attributes[this.attributes.length-1];t.value=t.value+e}}prepend(e){if(this.attributes){let t=this.attributes[0];t.value=e+t.value}}findRoot(){let e=this;for(;e.parent&&!(e.parent instanceof Ye);)e=e.parent;return e}removeChild(e){if(this.children){let t=this.children.indexOf(e);if(t!==-1)return this.children.splice(t,1),!0}return!1}addAttr(e,t){this.attributes||(this.attributes=[]);for(let r of this.attributes)if(r.name===e){r.value+=" "+t;return}this.attributes.push({name:e,value:t})}clone(e=!0){let t=new n;if(this.attributes){t.attributes=[];for(let r of this.attributes)t.addAttr(r.name,r.value)}if(e&&this.children){t.children=[];for(let r=0;r"),this.writeLine(t,i.join(""))}},Oe;(function(n){function e(r,i){return i+t(r)+i}n.ensure=e;function t(r){let i=r.match(/^['"](.*)["']$/);return i?i[1]:r}n.remove=t})(Oe||(Oe={}));var nn=class{constructor(){this.id=0,this.attr=0,this.tag=0}};function Ys(n,e){let t=new rn;for(let r of n.getChildren())switch(r.type){case m.SelectorCombinator:if(e){let l=r.getText().split("&");if(l.length===1){t.addAttr("name",l[0]);break}t=e.cloneWithParent(),l[0]&&t.findRoot().prepend(l[0]);for(let o=1;o1){let d=e.cloneWithParent();t.addChild(d.findRoot()),t=d}t.append(l[o])}}break;case m.SelectorPlaceholder:if(r.matches("@at-root"))return t;case m.ElementNameSelector:let i=r.getText();t.addAttr("name",i==="*"?"element":pe(i));break;case m.ClassSelector:t.addAttr("class",pe(r.getText().substring(1)));break;case m.IdentifierSelector:t.addAttr("id",pe(r.getText().substring(1)));break;case m.MixinDeclaration:t.addAttr("class",r.getName());break;case m.PseudoSelector:t.addAttr(pe(r.getText()),"");break;case m.AttributeSelector:let s=r,a=s.getIdentifier();if(a){let l=s.getValue(),o=s.getOperator(),d;if(l&&o)switch(pe(o.getText())){case"|=":d=`${Oe.remove(pe(l.getText()))}-\u2026`;break;case"^=":d=`${Oe.remove(pe(l.getText()))}\u2026`;break;case"$=":d=`\u2026${Oe.remove(pe(l.getText()))}`;break;case"~=":d=` \u2026 ${Oe.remove(pe(l.getText()))} \u2026 `;break;case"*=":d=`\u2026${Oe.remove(pe(l.getText()))}\u2026`;break;default:d=Oe.remove(pe(l.getText()));break}t.addAttr(pe(a.getText()),d)}break}return t}function pe(n){let e=new ce;e.setSource(n);let t=e.scanUnquotedString();return t?t.text:n}var pr=class{constructor(e){this.cssDataManager=e}selectorToMarkedString(e,t){let r=xa(e);if(r){let i=new hr('"').print(r,t);return i.push(this.selectorToSpecificityMarkedString(e)),i}else return[]}simpleSelectorToMarkedString(e){let t=Ys(e),r=new hr('"').print(t);return r.push(this.selectorToSpecificityMarkedString(e)),r}isPseudoElementIdentifier(e){let t=e.match(/^::?([\w-]+)/);return t?!!this.cssDataManager.getPseudoElement("::"+t[1]):!1}selectorToSpecificityMarkedString(e){let t=s=>{let a=new nn,l=new nn;for(let o of s)for(let d of o.getChildren()){let h=r(d);if(h.id>l.id){l=h;continue}else if(h.idl.attr){l=h;continue}else if(h.attrl.tag){l=h;continue}}return a.id+=l.id,a.attr+=l.attr,a.tag+=l.tag,a},r=s=>{let a=new nn;e:for(let l of s.getChildren()){switch(l.type){case m.IdentifierSelector:a.id++;break;case m.ClassSelector:case m.AttributeSelector:a.attr++;break;case m.ElementNameSelector:if(l.matches("*"))break;a.tag++;break;case m.PseudoSelector:let o=l.getText(),d=l.getChildren();if(this.isPseudoElementIdentifier(o)){if(o.match(/^::slotted/i)&&d.length>0){a.tag++;let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}a.tag++;continue e}if(o.match(/^:where/i))continue e;if(o.match(/^:(?:not|has|is)/i)&&d.length>0){let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}if(o.match(/^:(?:host|host-context)/i)&&d.length>0){a.attr++;let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}if(o.match(/^:(?:nth-child|nth-last-child)/i)&&d.length>0){if(a.attr++,d.length===3&&d[1].type===23){let y=t(d[2].getChildren());a.id+=y.id,a.attr+=y.attr,a.tag+=y.tag;continue e}let h=new ke,u=d[1].getText();h.scanner.setSource(u);let w=h.scanner.scan(),b=h.scanner.scan();if(w.text==="n"||w.text==="-n"&&b.text==="of"){let y=[],A=u.slice(b.offset+2).split(",");for(let P of A){let T=h.internalParse(P,h._parseSelector);T&&y.push(T)}let I=t(y);a.id+=I.id,a.attr+=I.attr,a.tag+=I.tag;continue e}continue e}a.attr++;continue e}if(l.getChildren().length>0){let o=r(l);a.id+=o.id,a.attr+=o.attr,a.tag+=o.tag}}return a},i=r(e);return`[${p("Selector Specificity")}](https://developer.mozilla.org/docs/Web/CSS/Specificity): (${i.id}, ${i.attr}, ${i.tag})`}},Si=class{constructor(e){this.prev=null,this.element=e}processSelector(e){let t=null;if(!(this.element instanceof Ye)&&e.getChildren().some(r=>r.hasChildren()&&r.getChild(0).type===m.SelectorCombinator)){let r=this.element.findRoot();r.parent instanceof Ye&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(let r of e.getChildren()){if(r instanceof he){if(this.prev instanceof he){let a=new sn("\u2026");this.element.addChild(a),this.element=a}else this.prev&&(this.prev.matches("+")||this.prev.matches("~"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches("~")&&this.element.addChild(new sn("\u22EE"));let i=Ys(r,t),s=i.findRoot();this.element.addChild(s),this.element=i}(r instanceof he||r.type===m.SelectorCombinatorParent||r.type===m.SelectorCombinatorShadowPiercingDescendant||r.type===m.SelectorCombinatorSibling||r.type===m.SelectorCombinatorAllSiblings)&&(this.prev=r)}}};function ya(n){switch(n.type){case m.MixinDeclaration:case m.Stylesheet:return!0}return!1}function xa(n){if(n.matches("@at-root"))return null;let e=new Ye,t=[],r=n.getParent();if(r instanceof ae){let s=r.getParent();for(;s&&!ya(s);){if(s instanceof ae){if(s.getSelectors().matches("@at-root"))break;t.push(s)}s=s.getParent()}}let i=new Si(e);for(let s=t.length-1;s>=0;s--){let a=t[s].getSelectors().getChild(0);a&&i.processSelector(a)}return i.processSelector(n),e}var _t=class{constructor(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new pr(t)}configure(e){this.defaultSettings=e}doHover(e,t,r,i=this.defaultSettings){function s(h){return R.create(e.positionAt(h.offset),e.positionAt(h.end))}let a=e.offsetAt(t),l=vt(r,a),o=null,d;for(let h=0;htypeof t=="string"?t:t.value):e.value}doesSupportMarkdown(){if(!ie(this.supportsMarkdown)){if(!ie(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;let e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&e.contentFormat.indexOf(se.Markdown)!==-1}return this.supportsMarkdown}};var Qs=/^\w+:\/\//,Zs=/^data:/,lt=class{constructor(e,t){this.fileSystemProvider=e,this.resolveModuleReferences=t}configure(e){this.defaultSettings=e}findDefinition(e,t,r){let i=new ot(r),s=e.offsetAt(t),a=Hn(r,s);if(!a)return null;let l=i.findSymbolFromNode(a);return l?{uri:e.uri,range:Pe(l.node,e)}:null}findReferences(e,t,r){return this.findDocumentHighlights(e,t,r).map(s=>({uri:e.uri,range:s.range}))}getHighlightNode(e,t,r){let i=e.offsetAt(t),s=Hn(r,i);if(!(!s||s.type===m.Stylesheet||s.type===m.Declarations))return s.type===m.Identifier&&s.parent&&s.parent.type===m.ClassSelector&&(s=s.parent),s}findDocumentHighlights(e,t,r){let i=[],s=this.getHighlightNode(e,t,r);if(!s)return i;let a=new ot(r),l=a.findSymbolFromNode(s),o=s.getText();return r.accept(d=>{if(l){if(a.matchesSymbol(d,l))return i.push({kind:to(d),range:Pe(d,e)}),!1}else s&&s.type===d.type&&d.matches(o)&&i.push({kind:to(d),range:Pe(d,e)});return!0}),i}isRawStringDocumentLinkNode(e){return e.type===m.Import}findDocumentLinks(e,t,r){let i=this.findUnresolvedLinks(e,t),s=[];for(let a of i){let l=a.link,o=l.target;if(!(!o||Zs.test(o)))if(Qs.test(o))s.push(l);else{let d=r.resolveReference(o,e.uri);d&&(l.target=d),s.push(l)}}return s}async findDocumentLinks2(e,t,r){let i=this.findUnresolvedLinks(e,t),s=[];for(let a of i){let l=a.link,o=l.target;if(!(!o||Zs.test(o)))if(Qs.test(o))s.push(l);else{let d=await this.resolveReference(o,e.uri,r,a.isRawLink);d!==void 0&&(l.target=d,s.push(l))}}return s}findUnresolvedLinks(e,t){let r=[],i=s=>{let a=s.getText(),l=Pe(s,e);if(l.start.line===l.end.line&&l.start.character===l.end.character)return;(V(a,"'")||V(a,'"'))&&(a=a.slice(1,-1));let o=s.parent?this.isRawStringDocumentLinkNode(s.parent):!1;r.push({link:{target:a,range:l},isRawLink:o})};return t.accept(s=>{if(s.type===m.URILiteral){let a=s.getChild(0);return a&&i(a),!1}if(s.parent&&this.isRawStringDocumentLinkNode(s.parent)){let a=s.getText();return(V(a,"'")||V(a,'"'))&&i(s),!1}return!0}),r}findSymbolInformations(e,t){let r=[],i=(s,a,l)=>{let o=l instanceof x?Pe(l,e):l,d={name:s||p(""),kind:a,location:it.create(e.uri,o)};r.push(d)};return this.collectDocumentSymbols(e,t,i),r}findDocumentSymbols(e,t){let r=[],i=[],s=(a,l,o,d,h)=>{let u=o instanceof x?Pe(o,e):o,w=d instanceof x?Pe(d,e):d;(!w||!eo(u,w))&&(w=R.create(u.start,u.start));let b={name:a||p(""),kind:l,range:u,selectionRange:w},y=i.pop();for(;y&&!eo(y[1],u);)y=i.pop();if(y){let E=y[0];E.children||(E.children=[]),E.children.push(b),i.push(y)}else r.push(b);h&&i.push([b,Pe(h,e)])};return this.collectDocumentSymbols(e,t,s),r}collectDocumentSymbols(e,t,r){t.accept(i=>{if(i instanceof ae){for(let s of i.getSelectors().getChildren())if(s instanceof de){let a=R.create(e.positionAt(s.offset),e.positionAt(i.end));r(s.getText(),ge.Class,a,s,i.getDeclarations())}}else if(i instanceof xe)r(i.getName(),ge.Variable,i,i.getVariable(),void 0);else if(i instanceof ue)r(i.getName(),ge.Method,i,i.getIdentifier(),i.getDeclarations());else if(i instanceof De)r(i.getName(),ge.Function,i,i.getIdentifier(),i.getDeclarations());else if(i instanceof mt){let s=p("@keyframes {0}",i.getName());r(s,ge.Class,i,i.getIdentifier(),i.getDeclarations())}else if(i instanceof pt){let s=p("@font-face");r(s,ge.Class,i,void 0,i.getDeclarations())}else if(i instanceof Be){let s=i.getChild(0);if(s instanceof ut){let a="@media "+s.getText();r(a,ge.Module,i,s,i.getDeclarations())}}return!0})}findDocumentColors(e,t){let r=[];return t.accept(i=>{let s=Sa(i,e);return s&&r.push(s),!0}),r}getColorPresentations(e,t,r,i){let s=[],a=Math.round(r.red*255),l=Math.round(r.green*255),o=Math.round(r.blue*255),d;r.alpha===1?d=`rgb(${a}, ${l}, ${o})`:d=`rgba(${a}, ${l}, ${o}, ${r.alpha})`,s.push({label:d,textEdit:_.replace(i,d)}),r.alpha===1?d=`#${at(a)}${at(l)}${at(o)}`:d=`#${at(a)}${at(l)}${at(o)}${at(Math.round(r.alpha*255))}`,s.push({label:d,textEdit:_.replace(i,d)});let h=si(r);h.a===1?d=`hsl(${h.h}, ${Math.round(h.s*100)}%, ${Math.round(h.l*100)}%)`:d=`hsla(${h.h}, ${Math.round(h.s*100)}%, ${Math.round(h.l*100)}%, ${h.a})`,s.push({label:d,textEdit:_.replace(i,d)});let u=Us(r);return u.a===1?d=`hwb(${u.h} ${Math.round(u.w*100)}% ${Math.round(u.b*100)}%)`:d=`hwb(${u.h} ${Math.round(u.w*100)}% ${Math.round(u.b*100)}% / ${u.a})`,s.push({label:d,textEdit:_.replace(i,d)}),s}prepareRename(e,t,r){let i=this.getHighlightNode(e,t,r);if(i)return R.create(e.positionAt(i.offset),e.positionAt(i.end))}doRename(e,t,r,i){let a=this.findDocumentHighlights(e,t,i).map(l=>_.replace(l.range,r));return{changes:{[e.uri]:a}}}async resolveModuleReference(e,t,r){if(V(t,"file://")){let i=Ca(e);if(i&&i!=="."&&i!==".."){let s=r.resolveReference("/",t),a=ar(t),l=await this.resolvePathToModule(i,a,s);if(l){let o=e.substring(i.length+1);return Je(l,o)}}}}async mapReference(e,t){return e}async resolveReference(e,t,r,i=!1,s=this.defaultSettings){if(e[0]==="~"&&e[1]!=="/"&&this.fileSystemProvider)return e=e.substring(1),this.mapReference(await this.resolveModuleReference(e,t,r),i);let a=await this.mapReference(r.resolveReference(e,t),i);if(this.resolveModuleReferences){if(a&&await this.fileExists(a))return a;let l=await this.mapReference(await this.resolveModuleReference(e,t,r),i);if(l)return l}if(a&&!await this.fileExists(a)){let l=r.resolveReference("/",t);if(s&&l){if(e in s)return this.mapReference(Je(l,s[e]),i);let o=e.indexOf("/"),d=`${e.substring(0,o)}/`;if(d in s){let h=s[d].slice(0,-1),u=Je(l,h);return this.mapReference(u=Je(u,e.substring(d.length-1)),i)}}}return a}async resolvePathToModule(e,t,r){let i=Je(t,"node_modules",e,"package.json");if(await this.fileExists(i))return ar(i);if(r&&t.startsWith(r)&&t.length!==r.length)return this.resolvePathToModule(e,ar(t),r)}async fileExists(e){if(!this.fileSystemProvider)return!1;try{let t=await this.fileSystemProvider.stat(e);return!(t.type===st.Unknown&&t.size===-1)}catch{return!1}}};function Sa(n,e){let t=Vs(n);if(t){let r=Pe(n,e);return{color:t,range:r}}return null}function Pe(n,e){return R.create(e.positionAt(n.offset),e.positionAt(n.end))}function eo(n,e){let t=e.start.line,r=e.end.line,i=n.start.line,s=n.end.line;return!(ts||r>s||t===i&&e.start.charactern.end.character)}function to(n){if(n.type===m.Selector)return Ge.Write;if(n instanceof G&&n.parent&&n.parent instanceof Ve&&n.isCustomProperty)return Ge.Write;if(n.parent)switch(n.parent.type){case m.FunctionDeclaration:case m.MixinDeclaration:case m.Keyframe:case m.VariableDeclaration:case m.FunctionParameter:return Ge.Write}return Ge.Read}function at(n){let e=n.toString(16);return e.length!==2?"0"+e:e}function Ca(n){let e=n.indexOf("/");if(e===-1)return"";if(n[0]==="@"){let t=n.indexOf("/",e+1);return t===-1?n:n.substring(0,t)}return n.substring(0,e)}var It=ee.Warning,no=ee.Error,be=ee.Ignore,q=class{constructor(e,t,r){this.id=e,this.message=t,this.defaultValue=r}},Ci=class{constructor(e,t,r){this.id=e,this.message=t,this.defaultValue=r}},W={AllVendorPrefixes:new q("compatibleVendorPrefixes",p("When using a vendor-specific prefix make sure to also include all other vendor-specific properties"),be),IncludeStandardPropertyWhenUsingVendorPrefix:new q("vendorPrefix",p("When using a vendor-specific prefix also include the standard property"),It),DuplicateDeclarations:new q("duplicateProperties",p("Do not use duplicate style definitions"),be),EmptyRuleSet:new q("emptyRules",p("Do not use empty rulesets"),It),ImportStatemement:new q("importStatement",p("Import statements do not load in parallel"),be),BewareOfBoxModelSize:new q("boxModel",p("Do not use width or height when using padding or border"),be),UniversalSelector:new q("universalSelector",p("The universal selector (*) is known to be slow"),be),ZeroWithUnit:new q("zeroUnits",p("No unit for zero needed"),be),RequiredPropertiesForFontFace:new q("fontFaceProperties",p("@font-face rule must define 'src' and 'font-family' properties"),It),HexColorLength:new q("hexColorLength",p("Hex colors must consist of three, four, six or eight hex numbers"),no),ArgsInColorFunction:new q("argumentsInColorFunction",p("Invalid number of parameters"),no),UnknownProperty:new q("unknownProperties",p("Unknown property."),It),UnknownAtRules:new q("unknownAtRules",p("Unknown at-rule."),It),IEStarHack:new q("ieHack",p("IE hacks are only necessary when supporting IE7 and older"),be),UnknownVendorSpecificProperty:new q("unknownVendorSpecificProperties",p("Unknown vendor specific property."),be),PropertyIgnoredDueToDisplay:new q("propertyIgnoredDueToDisplay",p("Property is ignored due to the display."),It),AvoidImportant:new q("important",p("Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."),be),AvoidFloat:new q("float",p("Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."),be),AvoidIdSelector:new q("idSelector",p("Selectors should not contain IDs because these rules are too tightly coupled with the HTML."),be)},ro={ValidProperties:new Ci("validProperties",p("A list of properties that are not validated against the `unknownProperties` rule."),[])},mr=class{constructor(e={}){this.conf=e}getRule(e){if(this.conf.hasOwnProperty(e.id)){let t=ka(this.conf[e.id]);if(t)return t}return e.defaultValue}getSetting(e){return this.conf[e.id]}};function ka(n){switch(n){case"ignore":return ee.Ignore;case"warning":return ee.Warning;case"error":return ee.Error}return null}var Dt=class{constructor(e){this.cssDataManager=e}doCodeActions(e,t,r,i){return this.doCodeActions2(e,t,r,i).map(s=>{let a=s.edit&&s.edit.documentChanges&&s.edit.documentChanges[0];return Me.create(s.title,"_css.applyCodeAction",e.uri,e.version,a&&a.edits)})}doCodeActions2(e,t,r,i){let s=[];if(r.diagnostics)for(let a of r.diagnostics)this.appendFixesForMarker(e,i,a,s);return s}getFixesForUnknownProperty(e,t,r,i){let s=t.getName(),a=[];this.cssDataManager.getProperties().forEach(o=>{let d=Hi(s,o.name);d>=s.length/2&&a.push({property:o.name,score:d})}),a.sort((o,d)=>d.score-o.score||o.property.localeCompare(d.property));let l=3;for(let o of a){let d=o.property,h=p("Rename to '{0}'",d),u=_.replace(r.range,d),w=qt.create(e.uri,e.version),b={documentChanges:[St.create(w,[u])]},y=Ht.create(h,b,Gt.QuickFix);if(y.diagnostics=[r],i.push(y),--l<=0)return}}appendFixesForMarker(e,t,r,i){if(r.code!==W.UnknownProperty.id)return;let s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=vt(t,s);for(let o=l.length-1;o>=0;o--){let d=l[o];if(d instanceof Q){let h=d.getProperty();if(h&&h.offset===s&&h.end===a){this.getFixesForUnknownProperty(e,h,r,i);return}}}}};var ur=class{constructor(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e}};function on(n,e,t,r){let i=n[e];i.value=t,t&&(gi(i.properties,r)||i.properties.push(r))}function Fa(n,e,t){on(n,"top",e,t),on(n,"right",e,t),on(n,"bottom",e,t),on(n,"left",e,t)}function ne(n,e,t,r){e==="top"||e==="right"||e==="bottom"||e==="left"?on(n,e,t,r):Fa(n,t,r)}function ki(n,e,t){switch(e.length){case 1:ne(n,void 0,e[0],t);break;case 2:ne(n,"top",e[0],t),ne(n,"bottom",e[0],t),ne(n,"right",e[1],t),ne(n,"left",e[1],t);break;case 3:ne(n,"top",e[0],t),ne(n,"right",e[1],t),ne(n,"left",e[1],t),ne(n,"bottom",e[2],t);break;case 4:ne(n,"top",e[0],t),ne(n,"right",e[1],t),ne(n,"bottom",e[2],t),ne(n,"left",e[3],t);break}}function Fi(n,e){for(let t of e)if(n.matches(t))return!0;return!1}function an(n,e=!0){return e&&Fi(n,["initial","unset"])?!1:parseFloat(n.getText())!==0}function io(n,e=!0){return n.map(t=>an(t,e))}function fr(n,e=!0){return!(Fi(n,["none","hidden"])||e&&Fi(n,["initial","unset"]))}function Ea(n,e=!0){return n.map(t=>fr(t,e))}function _a(n){let e=n.getChildren();if(e.length===1){let t=e[0];return an(t)&&fr(t)}for(let t of e){let r=t;if(!an(r,!1)||!fr(r,!1))return!1}return!0}function Ei(n){let e={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};for(let t of n){let r=t.node.value;if(!(typeof r>"u"))switch(t.fullPropertyName){case"box-sizing":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case"width":e.width=t;break;case"height":e.height=t;break;default:let i=t.fullPropertyName.split("-");switch(i[0]){case"border":switch(i[1]){case void 0:case"top":case"right":case"bottom":case"left":switch(i[2]){case void 0:ne(e,i[1],_a(r),t);break;case"width":ne(e,i[1],an(r,!1),t);break;case"style":ne(e,i[1],fr(r,!0),t);break}break;case"width":ki(e,io(r.getChildren(),!1),t);break;case"style":ki(e,Ea(r.getChildren(),!0),t);break}break;case"padding":i.length===1?ki(e,io(r.getChildren(),!0),t):ne(e,i[1],an(r,!0),t);break}break}}return e}var gr=class{constructor(){this.data={}}add(e,t,r){let i=this.data[e];i||(i={nodes:[],names:[]},this.data[e]=i),i.names.push(t),r&&i.nodes.push(r)}},ln=class n{static entries(e,t,r,i,s){let a=new n(t,r,i);return e.acceptVisitor(a),a.completeValidations(),a.getEntries(s)}constructor(e,t,r){this.cssDataManager=r,this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new gr,this.validProperties={};let i=t.getSetting(ro.ValidProperties);Array.isArray(i)&&i.forEach(s=>{if(typeof s=="string"){let a=s.trim().toLowerCase();a.length&&(this.validProperties[a]=!0)}})}isValidPropertyDeclaration(e){let t=e.fullPropertyName;return this.validProperties[t]}fetch(e,t){let r=[];for(let i of e)i.fullPropertyName===t&&r.push(i);return r}fetchWithValue(e,t,r){let i=[];for(let s of e)if(s.fullPropertyName===t){let a=s.node.getValue();a&&this.findValueInExpression(a,r)&&i.push(s)}return i}findValueInExpression(e,t){let r=!1;return e.accept(i=>(i.type===m.Identifier&&i.matches(t)&&(r=!0),!r)),r}getEntries(e=ee.Warning|ee.Error){return this.warnings.filter(t=>(t.getLevel()&e)!==0)}addEntry(e,t,r){let i=new wt(e,t,this.settings.getRule(t),r);this.warnings.push(i)}getMissingNames(e,t){let r=e.slice(0);for(let s=0;s0){let o=this.fetch(r,"float");for(let d=0;d0){let o=this.fetch(r,"vertical-align");for(let d=0;d1)for(let w=0;wX.startsWith(j))&&y.delete(P)}}let E=[];for(let I=0,P=n.prefixes.length;Is instanceof qe?(i+=1,!1):!0),i!==r&&this.addEntry(e,W.ArgsInColorFunction)),!0}};ln.prefixes=["-ms-","-moz-","-o-","-webkit-"];var Rt=class{constructor(e){this.cssDataManager=e}configure(e){this.settings=e}doValidation(e,t,r=this.settings){if(r&&r.validate===!1)return[];let i=[];i.push.apply(i,Gn.entries(t)),i.push.apply(i,ln.entries(t,e,new mr(r&&r.lint),this.cssDataManager));let s=[];for(let l in W)s.push(W[l].id);function a(l){let o=R.create(e.positionAt(l.getOffset()),e.positionAt(l.getOffset()+l.getLength())),d=e.languageId;return{code:l.getRule().id,source:d,message:l.getMessage(),severity:l.getLevel()===ee.Warning?yt.Warning:yt.Error,range:o}}return i.filter(l=>l.getLevel()!==ee.Ignore).map(a)}};var so=47,Ia=10,Da=13,Ra=12,za=36,Ma=35,Ta=123,cn=61,Na=33,Oa=60,Pa=62,_i=46;var Ae=c.CustomToken,br=Ae++,Mt=Ae++,pc=Ae++,Ii=Ae++,Di=Ae++,wr=Ae++,vr=Ae++,dn=Ae++,mc=Ae++,zt=class extends ce{scanNext(e){if(this.stream.advanceIfChar(za)){let t=["$"];if(this.ident(t))return this.finishToken(e,br,t.join(""));this.stream.goBackTo(e)}return this.stream.advanceIfChars([Ma,Ta])?this.finishToken(e,Mt):this.stream.advanceIfChars([cn,cn])?this.finishToken(e,Ii):this.stream.advanceIfChars([Na,cn])?this.finishToken(e,Di):this.stream.advanceIfChar(Oa)?this.stream.advanceIfChar(cn)?this.finishToken(e,vr):this.finishToken(e,c.Delim):this.stream.advanceIfChar(Pa)?this.stream.advanceIfChar(cn)?this.finishToken(e,wr):this.finishToken(e,c.Delim):this.stream.advanceIfChars([_i,_i,_i])?this.finishToken(e,dn):super.scanNext(e)}comment(){return super.comment()?!0:!this.inURL&&this.stream.advanceIfChars([so,so])?(this.stream.advanceWhileChar(e=>{switch(e){case Ia:case Da:case Ra:return!1;default:return!0}}),!0):!1}};var hn=class{constructor(e,t){this.id=e,this.message=t}},yr={FromExpected:new hn("scss-fromexpected",p("'from' expected")),ThroughOrToExpected:new hn("scss-throughexpected",p("'through' or 'to' expected")),InExpected:new hn("scss-fromexpected",p("'in' expected"))};var xr=class extends ke{constructor(){super(new zt)}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseForward()||this._parseUse()||this._parseRuleset(e)||super._parseStylesheetAtStatement(e):this._parseRuleset(!0)||this._parseVariableDeclaration()}_parseImport(){if(!this.peekKeyword("@import"))return null;let e=this.create(je);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,f.URIOrStringExpected);for(;this.accept(c.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,f.URIOrStringExpected);return this._completeParseImport(e)}_parseVariableDeclaration(e=[]){if(!this.peek(br))return null;let t=this.create(xe);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(c.Colon))return this.finish(t,f.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,f.VariableValueExpected,[],e);for(;this.peek(c.Exclamation);)if(!t.addChild(this._tryParsePrio())){if(this.consumeToken(),!this.peekRegExp(c.Ident,/^(default|global)$/))return this.finish(t,f.UnknownKeyword);this.consumeToken()}return this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)}_parseMediaCondition(){return this._parseInterpolation()||super._parseMediaCondition()}_parseMediaFeatureRangeOperator(){return this.accept(vr)||this.accept(wr)||super._parseMediaFeatureRangeOperator()}_parseMediaFeatureName(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()}_parseKeyframeSelector(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseWarnAndDebug()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseVariableDeclaration()||this._parseMixinContent()}_parseVariable(){if(!this.peek(br))return null;let e=this.create(Ke);return this.consumeToken(),e}_parseModuleMember(){let e=this.mark(),t=this.create(jt);return t.setIdentifier(this._parseIdent([z.Module]))?this.hasWhitespace()||!this.acceptDelim(".")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,f.IdentifierOrVariableExpected):null}_parseIdent(e){if(!this.peek(c.Ident)&&!this.peek(Mt)&&!this.peekDelim("-"))return null;let t=this.create(G);t.referenceTypes=e,t.isCustomProperty=this.peekRegExp(c.Ident,/^--/);let r=!1,i=()=>{let s=this.mark();return this.acceptDelim("-")&&(this.hasWhitespace()||this.acceptDelim("-"),this.hasWhitespace())?(this.restoreAtMark(s),null):this._parseInterpolation()};for(;(this.accept(c.Ident)||t.addChild(i())||r&&this.acceptRegexp(/^[\w-]/))&&(r=!0,!this.hasWhitespace()););return r?this.finish(t):null}_parseTermExpression(){return this._parseModuleMember()||this._parseVariable()||this._parseNestingSelector()||super._parseTermExpression()}_parseInterpolation(){if(this.peek(Mt)){let e=this.create(rt);return this.consumeToken(),!e.addChild(this._parseExpr())&&!this._parseNestingSelector()?this.accept(c.CurlyR)?this.finish(e):this.finish(e,f.ExpressionExpected):this.accept(c.CurlyR)?this.finish(e):this.finish(e,f.RightCurlyExpected)}return null}_parseOperator(){if(this.peek(Ii)||this.peek(Di)||this.peek(wr)||this.peek(vr)||this.peekDelim(">")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){let e=this.createNode(m.Operator);return this.consumeToken(),this.finish(e)}return super._parseOperator()}_parseUnaryOperator(){if(this.peekIdent("not")){let e=this.create(x);return this.consumeToken(),this.finish(e)}return super._parseUnaryOperator()}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||this._parseLayer()||this._parsePropertyAtRule()||this._parseContainer(!0)||this._parseRuleSetDeclarationAtStatement():this._parseVariableDeclaration()||this._tryParseRuleset(!0)||this._parseDeclaration()}_parseDeclaration(e){let t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;let r=this.create(Q);if(!r.setProperty(this._parseProperty()))return null;if(!this.accept(c.Colon))return this.finish(r,f.ColonExpected,[c.Colon],e||[c.SemiColon]);this.prevToken&&(r.colonPosition=this.prevToken.offset);let i=!1;if(r.setValue(this._parseExpr())&&(i=!0,r.addChild(this._parsePrio())),this.peek(c.CurlyL))r.setNestedProperties(this._parseNestedProperties());else if(!i)return this.finish(r,f.PropertyValueExpected);return this.peek(c.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)}_parseNestedProperties(){let e=this.create(Ut);return this._parseBody(e,this._parseDeclaration.bind(this))}_parseExtends(){if(this.peekKeyword("@extend")){let e=this.create(Se);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,f.SelectorExpected);for(;this.accept(c.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(c.Exclamation)&&!this.acceptIdent("optional")?this.finish(e,f.UnknownKeyword):this.finish(e)}return null}_parseSimpleSelectorBody(){return this._parseSelectorPlaceholder()||super._parseSimpleSelectorBody()}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(c.Num)||this.accept(c.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null}_parseSelectorPlaceholder(){if(this.peekDelim("%")){let e=this.createNode(m.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}else if(this.peekKeyword("@at-root")){let e=this.createNode(m.SelectorPlaceholder);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(!this.acceptIdent("with")&&!this.acceptIdent("without"))return this.finish(e,f.IdentifierExpected);if(!this.accept(c.Colon))return this.finish(e,f.ColonExpected);if(!e.addChild(this._parseIdent()))return this.finish(e,f.IdentifierExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}return this.finish(e)}return null}_parseElementName(){let e=this.mark(),t=super._parseElementName();return t&&!this.hasWhitespace()&&this.peek(c.ParenthesisL)?(this.restoreAtMark(e),null):t}_tryParsePseudoIdentifier(){return this._parseInterpolation()||super._tryParsePseudoIdentifier()}_parseWarnAndDebug(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;let e=this.createNode(m.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)}_parseControlStatement(e=this._parseRuleSetDeclaration.bind(this)){return this.peek(c.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null}_parseIfStatement(e){return this.peekKeyword("@if")?this._internalParseIfStatement(e):null}_internalParseIfStatement(e){let t=this.create(yn);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,f.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword("@else")){if(this.peekIdent("if"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(c.CurlyL)){let r=this.create(kn);this._parseBody(r,e),t.setElseClause(r)}}return this.finish(t)}_parseForStatement(e){if(!this.peekKeyword("@for"))return null;let t=this.create(xn);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent("from")?t.addChild(this._parseBinaryExpr())?!this.acceptIdent("to")&&!this.acceptIdent("through")?this.finish(t,yr.ThroughOrToExpected,[c.CurlyR]):t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,yr.FromExpected,[c.CurlyR]):this.finish(t,f.VariableNameExpected,[c.CurlyR])}_parseEachStatement(e){if(!this.peekKeyword("@each"))return null;let t=this.create(Sn);this.consumeToken();let r=t.getVariables();if(!r.addChild(this._parseVariable()))return this.finish(t,f.VariableNameExpected,[c.CurlyR]);for(;this.accept(c.Comma);)if(!r.addChild(this._parseVariable()))return this.finish(t,f.VariableNameExpected,[c.CurlyR]);return this.finish(r),this.acceptIdent("in")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,yr.InExpected,[c.CurlyR])}_parseWhileStatement(e){if(!this.peekKeyword("@while"))return null;let t=this.create(Cn);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR])}_parseFunctionBodyDeclaration(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))}_parseFunctionDeclaration(){if(!this.peekKeyword("@function"))return null;let e=this.create(De);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([z.Function])))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}return this.accept(c.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}_parseReturnStatement(){if(!this.peekKeyword("@return"))return null;let e=this.createNode(m.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,f.ExpressionExpected)}_parseMixinDeclaration(){if(!this.peekKeyword("@mixin"))return null;let e=this.create(ue);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([z.Mixin])))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(this.accept(c.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseParameterDeclaration(){let e=this.create(ye);return e.setIdentifier(this._parseVariable())?(this.accept(dn),this.accept(c.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,f.VariableValueExpected,[],[c.Comma,c.ParenthesisR]):this.finish(e)):null}_parseMixinContent(){if(!this.peekKeyword("@content"))return null;let e=this.create(Vn);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return this.finish(e)}_parseMixinReference(){if(!this.peekKeyword("@include"))return null;let e=this.create(ze);this.consumeToken();let t=this._parseIdent([z.Mixin]);if(!e.setIdentifier(t))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){let r=this._parseIdent([z.Mixin]);if(!r)return this.finish(e,f.IdentifierExpected,[c.CurlyR]);let i=this.create(jt);t.referenceTypes=[z.Module],i.setIdentifier(t),e.setIdentifier(r),e.addChild(i)}if(this.accept(c.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(c.CurlyL))&&e.setContent(this._parseMixinContentDeclaration()),this.finish(e)}_parseMixinContentDeclaration(){let e=this.create(jn);if(this.acceptIdent("using")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.CurlyL]);if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyL])}return this.peek(c.CurlyL)&&this._parseBody(e,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(e)}_parseMixinReferenceBodyStatement(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()}_parseFunctionArgument(){let e=this.create(le),t=this.mark(),r=this._parseVariable();if(r)if(this.accept(c.Colon))e.setIdentifier(r);else{if(this.accept(dn))return e.setValue(r),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(dn),e.addChild(this._parsePrio()),this.finish(e)):e.setValue(this._tryParsePrio())?this.finish(e):null}_parseURLArgument(){let e=this.mark(),t=super._parseURLArgument();if(!t||!this.peek(c.ParenthesisR)){this.restoreAtMark(e);let r=this.create(x);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return t}_parseOperation(){if(!this.peek(c.ParenthesisL))return null;let e=this.create(x);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(c.Comma);return this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseListElement(){let e=this.create(Bn),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(c.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,f.ExpressionExpected)}else e.setValue(t);return this.finish(e)}_parseUse(){if(!this.peekKeyword("@use"))return null;let e=this.create(En);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,f.StringLiteralExpected);if(!this.peek(c.SemiColon)&&!this.peek(c.EOF)){if(!this.peekRegExp(c.Ident,/as|with/))return this.finish(e,f.UnknownKeyword);if(this.acceptIdent("as")&&!e.setIdentifier(this._parseIdent([z.Module]))&&!this.acceptDelim("*"))return this.finish(e,f.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}}return!this.accept(c.SemiColon)&&!this.accept(c.EOF)?this.finish(e,f.SemiColonExpected):this.finish(e)}_parseModuleConfigDeclaration(){let e=this.create(_n);return e.setIdentifier(this._parseVariable())?!this.accept(c.Colon)||!e.setValue(this._parseExpr(!0))?this.finish(e,f.VariableValueExpected,[],[c.Comma,c.ParenthesisR]):this.accept(c.Exclamation)&&(this.hasWhitespace()||!this.acceptIdent("default"))?this.finish(e,f.UnknownKeyword):this.finish(e):null}_parseForward(){if(!this.peekKeyword("@forward"))return null;let e=this.create(In);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,f.StringLiteralExpected);if(this.acceptIdent("as")){let t=this._parseIdent([z.Forward]);if(!e.setIdentifier(t))return this.finish(e,f.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(e,f.WildcardExpected)}if(this.acceptIdent("with")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}else if((this.peekIdent("hide")||this.peekIdent("show"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,f.IdentifierOrVariableExpected);return!this.accept(c.SemiColon)&&!this.accept(c.EOF)?this.finish(e,f.SemiColonExpected):this.finish(e)}_parseForwardVisibility(){let e=this.create(Dn);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent());)this.accept(c.Comma);return e.getChildren().length>1?e:null}_parseSupportsCondition(){return this._parseInterpolation()||super._parseSupportsCondition()}};var We=p("Sass documentation"),we=class n extends Xe{constructor(e,t){super("$",e,t),oo(n.scssModuleLoaders),oo(n.scssModuleBuiltIns)}isImportPathParent(e){return e===m.Forward||e===m.Use||super.isImportPathParent(e)}getCompletionForImportPath(e,t){let r=e.getParent().type;if(r===m.Forward||r===m.Use)for(let i of n.scssModuleBuiltIns){let s={label:i.label,documentation:i.documentation,textEdit:_.replace(this.getCompletionRange(e),`'${i.label}'`),kind:k.Module};t.items.push(s)}return super.getCompletionForImportPath(e,t)}createReplaceFunction(){let e=1;return(t,r)=>"\\"+r+": ${"+e+++":"+(n.variableDefaults[r]||"")+"}"}createFunctionProposals(e,t,r,i){for(let s of e){let a=s.func.replace(/\[?(\$\w+)\]?/g,this.createReplaceFunction()),o={label:s.func.substr(0,s.func.indexOf("(")),detail:s.func,documentation:s.desc,textEdit:_.replace(this.getCompletionRange(t),a),insertTextFormat:te.Snippet,kind:k.Function};r&&(o.sortText="z"),i.items.push(o)}return i}getCompletionsForSelector(e,t,r){return this.createFunctionProposals(n.selectorFuncs,null,!0,r),super.getCompletionsForSelector(e,t,r)}getTermProposals(e,t,r){let i=n.builtInFuncs;return e&&(i=i.filter(s=>!s.type||!e.restrictions||e.restrictions.indexOf(s.type)!==-1)),this.createFunctionProposals(i,t,!0,r),super.getTermProposals(e,t,r)}getColorProposals(e,t,r){return this.createFunctionProposals(n.colorProposals,t,!1,r),super.getColorProposals(e,t,r)}getCompletionsForDeclarationProperty(e,t){return this.getCompletionForAtDirectives(t),this.getCompletionsForSelector(null,!0,t),super.getCompletionsForDeclarationProperty(e,t)}getCompletionsForExtendsReference(e,t,r){let i=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Rule);for(let s of i){let a={label:s.name,textEdit:_.replace(this.getCompletionRange(t),s.name),kind:k.Function};r.items.push(a)}return r}getCompletionForAtDirectives(e){return e.items.push(...n.scssAtDirectives),e}getCompletionForTopLevel(e){return this.getCompletionForAtDirectives(e),this.getCompletionForModuleLoaders(e),super.getCompletionForTopLevel(e),e}getCompletionForModuleLoaders(e){return e.items.push(...n.scssModuleLoaders),e}};we.variableDefaults={$red:"1",$green:"2",$blue:"3",$alpha:"1.0",$color:"#000000",$weight:"0.5",$hue:"0",$saturation:"0%",$lightness:"0%",$degrees:"0",$amount:"0",$string:'""',$substring:'"s"',$number:"0",$limit:"1"};we.colorProposals=[{func:"red($color)",desc:p("Gets the red component of a color.")},{func:"green($color)",desc:p("Gets the green component of a color.")},{func:"blue($color)",desc:p("Gets the blue component of a color.")},{func:"mix($color, $color, [$weight])",desc:p("Mixes two colors together.")},{func:"hue($color)",desc:p("Gets the hue component of a color.")},{func:"saturation($color)",desc:p("Gets the saturation component of a color.")},{func:"lightness($color)",desc:p("Gets the lightness component of a color.")},{func:"adjust-hue($color, $degrees)",desc:p("Changes the hue of a color.")},{func:"lighten($color, $amount)",desc:p("Makes a color lighter.")},{func:"darken($color, $amount)",desc:p("Makes a color darker.")},{func:"saturate($color, $amount)",desc:p("Makes a color more saturated.")},{func:"desaturate($color, $amount)",desc:p("Makes a color less saturated.")},{func:"grayscale($color)",desc:p("Converts a color to grayscale.")},{func:"complement($color)",desc:p("Returns the complement of a color.")},{func:"invert($color)",desc:p("Returns the inverse of a color.")},{func:"alpha($color)",desc:p("Gets the opacity component of a color.")},{func:"opacity($color)",desc:"Gets the alpha component (opacity) of a color."},{func:"rgba($color, $alpha)",desc:p("Changes the alpha component for a color.")},{func:"opacify($color, $amount)",desc:p("Makes a color more opaque.")},{func:"fade-in($color, $amount)",desc:p("Makes a color more opaque.")},{func:"transparentize($color, $amount)",desc:p("Makes a color more transparent.")},{func:"fade-out($color, $amount)",desc:p("Makes a color more transparent.")},{func:"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:p("Increases or decreases one or more components of a color.")},{func:"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])",desc:p("Fluidly scales one or more properties of a color.")},{func:"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:p("Changes one or more properties of a color.")},{func:"ie-hex-str($color)",desc:p("Converts a color into the format understood by IE filters.")}];we.selectorFuncs=[{func:"selector-nest($selectors\u2026)",desc:p("Nests selector beneath one another like they would be nested in the stylesheet.")},{func:"selector-append($selectors\u2026)",desc:p("Appends selectors to one another without spaces in between.")},{func:"selector-extend($selector, $extendee, $extender)",desc:p("Extends $extendee with $extender within $selector.")},{func:"selector-replace($selector, $original, $replacement)",desc:p("Replaces $original with $replacement within $selector.")},{func:"selector-unify($selector1, $selector2)",desc:p("Unifies two selectors to produce a selector that matches elements matched by both.")},{func:"is-superselector($super, $sub)",desc:p("Returns whether $super matches all the elements $sub does, and possibly more.")},{func:"simple-selectors($selector)",desc:p("Returns the simple selectors that comprise a compound selector.")},{func:"selector-parse($selector)",desc:p("Parses a selector into the format returned by &.")}];we.builtInFuncs=[{func:"unquote($string)",desc:p("Removes quotes from a string.")},{func:"quote($string)",desc:p("Adds quotes to a string.")},{func:"str-length($string)",desc:p("Returns the number of characters in a string.")},{func:"str-insert($string, $insert, $index)",desc:p("Inserts $insert into $string at $index.")},{func:"str-index($string, $substring)",desc:p("Returns the index of the first occurance of $substring in $string.")},{func:"str-slice($string, $start-at, [$end-at])",desc:p("Extracts a substring from $string.")},{func:"to-upper-case($string)",desc:p("Converts a string to upper case.")},{func:"to-lower-case($string)",desc:p("Converts a string to lower case.")},{func:"percentage($number)",desc:p("Converts a unitless number to a percentage."),type:"percentage"},{func:"round($number)",desc:p("Rounds a number to the nearest whole number.")},{func:"ceil($number)",desc:p("Rounds a number up to the next whole number.")},{func:"floor($number)",desc:p("Rounds a number down to the previous whole number.")},{func:"abs($number)",desc:p("Returns the absolute value of a number.")},{func:"min($numbers)",desc:p("Finds the minimum of several numbers.")},{func:"max($numbers)",desc:p("Finds the maximum of several numbers.")},{func:"random([$limit])",desc:p("Returns a random number.")},{func:"length($list)",desc:p("Returns the length of a list.")},{func:"nth($list, $n)",desc:p("Returns a specific item in a list.")},{func:"set-nth($list, $n, $value)",desc:p("Replaces the nth item in a list.")},{func:"join($list1, $list2, [$separator])",desc:p("Joins together two lists into one.")},{func:"append($list1, $val, [$separator])",desc:p("Appends a single value onto the end of a list.")},{func:"zip($lists)",desc:p("Combines several lists into a single multidimensional list.")},{func:"index($list, $value)",desc:p("Returns the position of a value within a list.")},{func:"list-separator(#list)",desc:p("Returns the separator of a list.")},{func:"map-get($map, $key)",desc:p("Returns the value in a map associated with a given key.")},{func:"map-merge($map1, $map2)",desc:p("Merges two maps together into a new map.")},{func:"map-remove($map, $keys)",desc:p("Returns a new map with keys removed.")},{func:"map-keys($map)",desc:p("Returns a list of all keys in a map.")},{func:"map-values($map)",desc:p("Returns a list of all values in a map.")},{func:"map-has-key($map, $key)",desc:p("Returns whether a map has a value associated with a given key.")},{func:"keywords($args)",desc:p("Returns the keywords passed to a function that takes variable arguments.")},{func:"feature-exists($feature)",desc:p("Returns whether a feature exists in the current Sass runtime.")},{func:"variable-exists($name)",desc:p("Returns whether a variable with the given name exists in the current scope.")},{func:"global-variable-exists($name)",desc:p("Returns whether a variable with the given name exists in the global scope.")},{func:"function-exists($name)",desc:p("Returns whether a function with the given name exists.")},{func:"mixin-exists($name)",desc:p("Returns whether a mixin with the given name exists.")},{func:"inspect($value)",desc:p("Returns the string representation of a value as it would be represented in Sass.")},{func:"type-of($value)",desc:p("Returns the type of a value.")},{func:"unit($number)",desc:p("Returns the unit(s) associated with a number.")},{func:"unitless($number)",desc:p("Returns whether a number has units.")},{func:"comparable($number1, $number2)",desc:p("Returns whether two numbers can be added, subtracted, or compared.")},{func:"call($name, $args\u2026)",desc:p("Dynamically calls a Sass function.")}];we.scssAtDirectives=[{label:"@extend",documentation:p("Inherits the styles of another selector."),kind:k.Keyword},{label:"@at-root",documentation:p("Causes one or more rules to be emitted at the root of the document."),kind:k.Keyword},{label:"@debug",documentation:p("Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files."),kind:k.Keyword},{label:"@warn",documentation:p("Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option."),kind:k.Keyword},{label:"@error",documentation:p("Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions."),kind:k.Keyword},{label:"@if",documentation:p("Includes the body if the expression does not evaluate to `false` or `null`."),insertText:`@if \${1:expr} { - $0 -}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@for",documentation:p("For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."),insertText:"@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n $0\n}",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@each",documentation:p("Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."),insertText:"@each \\$${1:var} in ${2:list} {\n $0\n}",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@while",documentation:p("While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."),insertText:`@while \${1:condition} { - $0 -}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@mixin",documentation:p("Defines styles that can be re-used throughout the stylesheet with `@include`."),insertText:`@mixin \${1:name} { - $0 -}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@include",documentation:p("Includes the styles defined by another mixin into the current rule."),kind:k.Keyword},{label:"@function",documentation:p("Defines complex operations that can be re-used throughout stylesheets."),kind:k.Keyword}];we.scssModuleLoaders=[{label:"@use",documentation:p("Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."),references:[{name:We,url:"https://sass-lang.com/documentation/at-rules/use"}],insertText:"@use $0;",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@forward",documentation:p("Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."),references:[{name:We,url:"https://sass-lang.com/documentation/at-rules/forward"}],insertText:"@forward $0;",insertTextFormat:te.Snippet,kind:k.Keyword}];we.scssModuleBuiltIns=[{label:"sass:math",documentation:p("Provides functions that operate on numbers."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/math"}]},{label:"sass:string",documentation:p("Makes it easy to combine, search, or split apart strings."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/string"}]},{label:"sass:color",documentation:p("Generates new colors based on existing ones, making it easy to build color themes."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/color"}]},{label:"sass:list",documentation:p("Lets you access and modify values in lists."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/list"}]},{label:"sass:map",documentation:p("Makes it possible to look up the value associated with a key in a map, and much more."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/map"}]},{label:"sass:selector",documentation:p("Provides access to Sass\u2019s powerful selector engine."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/selector"}]},{label:"sass:meta",documentation:p("Exposes the details of Sass\u2019s inner workings."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/meta"}]}];function oo(n){n.forEach(e=>{if(e.documentation&&e.references&&e.references.length>0){let t=typeof e.documentation=="string"?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+=` - -`,t.value+=e.references.map(r=>`[${r.name}](${r.url})`).join(" | "),e.documentation=t}})}var ao=47,Wa=10,La=13,$a=12,Ri=96,zi=46,Ua=c.CustomToken,Sr=Ua++,Tt=class extends ce{scanNext(e){let t=this.escapedJavaScript();return t!==null?this.finishToken(e,t):this.stream.advanceIfChars([zi,zi,zi])?this.finishToken(e,Sr):super.scanNext(e)}comment(){return super.comment()?!0:!this.inURL&&this.stream.advanceIfChars([ao,ao])?(this.stream.advanceWhileChar(e=>{switch(e){case Wa:case La:case $a:return!1;default:return!0}}),!0):!1}escapedJavaScript(){return this.stream.peekChar()===Ri?(this.stream.advance(1),this.stream.advanceWhileChar(t=>t!==Ri),this.stream.advanceIfChar(Ri)?c.EscapedJavaScript:c.BadEscapedJavaScript):null}};var Cr=class extends ke{constructor(){super(new Tt)}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||super._parseStylesheetAtStatement(e):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)}_parseImport(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;let e=this.create(je);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(!this.accept(c.Ident))return this.finish(e,f.IdentifierExpected,[c.SemiColon]);do if(!this.accept(c.Comma))break;while(this.accept(c.Ident));if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.SemiColon])}return!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,f.URIOrStringExpected,[c.SemiColon]):(!this.peek(c.SemiColon)&&!this.peek(c.EOF)&&e.setMedialist(this._parseMediaQueryList()),this._completeParseImport(e))}_parsePlugin(){if(!this.peekKeyword("@plugin"))return null;let e=this.createNode(m.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected):this.finish(e,f.StringLiteralExpected)}_parseMediaQuery(){let e=super._parseMediaQuery();if(!e){let t=this.create(ft);return t.addChild(this._parseVariable())?this.finish(t):null}return e}_parseMediaDeclaration(e=!1){return this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)}_parseMediaFeatureName(){return this._parseIdent()||this._parseVariable()}_parseVariableDeclaration(e=[]){let t=this.create(xe),r=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(this.accept(c.Colon)){if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,f.VariableValueExpected,[],e);t.addChild(this._parsePrio())}else return this.restoreAtMark(r),null;return this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)}_parseDetachedRuleSet(){let e=this.mark();if(this.peekDelim("#")||this.peekDelim("."))if(this.consumeToken(),!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let r=this.create(ue);if(r.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)r.getParameters().addChild(this._parseMixinParameter())||this.markError(r,f.IdentifierExpected,[],[c.ParenthesisR]);if(!this.accept(c.ParenthesisR))return this.restoreAtMark(e),null}else return this.restoreAtMark(e),null;if(!this.peek(c.CurlyL))return null;let t=this.create(L);return this._parseBody(t,this._parseDetachedRuleSetBody.bind(this)),this.finish(t)}_parseDetachedRuleSetBody(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()}_addLookupChildren(e){if(!e.addChild(this._parseLookupValue()))return!1;let t=!1;for(;this.peek(c.BracketL)&&(t=!0),!!e.addChild(this._parseLookupValue());)t=!1;return!t}_parseLookupValue(){let e=this.create(x),t=this.mark();return this.accept(c.BracketL)?(e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(c.BracketR)||this.accept(c.BracketR)?e:(this.restoreAtMark(t),null):(this.restoreAtMark(t),null)}_parseVariable(e=!1,t=!1){let r=!e&&this.peekDelim("$");if(!this.peekDelim("@")&&!r&&!this.peek(c.AtKeyword))return null;let i=this.create(Ke),s=this.mark();for(;this.acceptDelim("@")||!e&&this.acceptDelim("$");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return!this.accept(c.AtKeyword)&&!this.accept(c.Ident)?(this.restoreAtMark(s),null):!t&&this.peek(c.BracketL)&&!this._addLookupChildren(i)?(this.restoreAtMark(s),null):i}_parseTermExpression(){return this._parseVariable()||this._parseEscaped()||super._parseTermExpression()||this._tryParseMixinReference(!1)}_parseEscaped(){if(this.peek(c.EscapedJavaScript)||this.peek(c.BadEscapedJavaScript)){let e=this.createNode(m.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim("~")){let e=this.createNode(m.EscapedValue);return this.consumeToken(),this.accept(c.String)||this.accept(c.EscapedJavaScript)?this.finish(e):this.finish(e,f.TermExpected)}return null}_parseOperator(){let e=this._parseGuardOperator();return e||super._parseOperator()}_parseGuardOperator(){if(this.peekDelim(">")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("="),e}else if(this.peekDelim("=")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("<"),e}else if(this.peekDelim("<")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("="),e}return null}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseLayer()||this._parsePropertyAtRule()||this._parseContainer(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseRuleSetDeclarationAtStatement():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||this._parseDeclaration()}_parseKeyframeIdent(){return this._parseIdent([z.Keyframe])||this._parseVariable()}_parseKeyframeSelector(){return this._parseDetachedRuleSetMixin()||super._parseKeyframeSelector()}_parseSelector(e){let t=this.create(de),r=!1;for(e&&(r=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){r=!0;let i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(c.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return r?this.finish(t):null}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(c.Num)||this.accept(c.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null}_parseSelectorIdent(){if(!this.peekInterpolatedIdent())return null;let e=this.createNode(m.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null}_parsePropertyIdentifier(e=!1){let t=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;let r=this.mark(),i=this.create(G);i.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");let s=!1;return e?i.isCustomProperty?s=i.addChild(this._parseIdent()):s=i.addChild(this._parseRegexp(t)):i.isCustomProperty?s=this._acceptInterpolatedIdent(i):s=this._acceptInterpolatedIdent(i,t),s?(!e&&!this.hasWhitespace()&&(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(i)):(this.restoreAtMark(r),null)}peekInterpolatedIdent(){return this.peek(c.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")}_acceptInterpolatedIdent(e,t){let r=!1,i=()=>{let a=this.mark();return this.acceptDelim("-")&&(this.hasWhitespace()||this.acceptDelim("-"),this.hasWhitespace())?(this.restoreAtMark(a),null):this._parseInterpolation()},s=t?()=>this.acceptRegexp(t):()=>this.accept(c.Ident);for(;(s()||e.addChild(this._parseInterpolation()||this.try(i)))&&(r=!0,!this.hasWhitespace()););return r}_parseInterpolation(){let e=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){let t=this.createNode(m.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(c.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(c.CurlyR)?this.finish(t):this.finish(t,f.RightCurlyExpected):this.finish(t,f.IdentifierExpected)}return null}_tryParseMixinDeclaration(){let e=this.mark(),t=this.create(ue);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,f.IdentifierExpected,[],[c.ParenthesisR]);return this.accept(c.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(c.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)}_parseMixInBodyDeclaration(){return this._parseFontFace()||this._parseRuleSetDeclaration()}_parseMixinDeclarationIdentifier(){let e;if(this.peekDelim("#")||this.peekDelim(".")){if(e=this.create(G),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else if(this.peek(c.Hash))e=this.create(G),this.consumeToken();else return null;return e.referenceTypes=[z.Mixin],this.finish(e)}_parsePseudo(){if(!this.peek(c.Colon))return null;let e=this.mark(),t=this.create(Se);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(t):(this.restoreAtMark(e),super._parsePseudo())}_parseExtend(){if(!this.peekDelim("&"))return null;let e=this.mark(),t=this.create(Se);return this.consumeToken(),this.hasWhitespace()||!this.accept(c.Colon)||!this.acceptIdent("extend")?(this.restoreAtMark(e),null):this._completeExtends(t)}_completeExtends(e){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected);let t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,f.SelectorExpected);for(;this.accept(c.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,f.SelectorExpected);return this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseDetachedRuleSetMixin(){if(!this.peek(c.AtKeyword))return null;let e=this.mark(),t=this.create(ze);return t.addChild(this._parseVariable(!0))&&(this.hasWhitespace()||!this.accept(c.ParenthesisL))?(this.restoreAtMark(e),null):this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_tryParseMixinReference(e=!0){let t=this.mark(),r=this.create(ze),i=this._parseMixinDeclarationIdentifier();for(;i;){this.acceptDelim(">");let a=this._parseMixinDeclarationIdentifier();if(a)r.getNamespaces().addChild(i),i=a;else break}if(!r.setIdentifier(i))return this.restoreAtMark(t),null;let s=!1;if(this.accept(c.ParenthesisL)){if(s=!0,r.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)if(!r.getArguments().addChild(this._parseMixinArgument()))return this.finish(r,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(r,f.RightParenthesisExpected);i.referenceTypes=[z.Mixin]}else i.referenceTypes=[z.Mixin,z.Rule];return this.peek(c.BracketL)?e||this._addLookupChildren(r):r.addChild(this._parsePrio()),!s&&!this.peek(c.SemiColon)&&!this.peek(c.CurlyR)&&!this.peek(c.EOF)?(this.restoreAtMark(t),null):this.finish(r)}_parseMixinArgument(){let e=this.create(le),t=this.mark(),r=this._parseVariable();return r&&(this.accept(c.Colon)?e.setIdentifier(r):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)}_parseMixinParameter(){let e=this.create(ye);if(this.peekKeyword("@rest")){let r=this.create(x);return this.consumeToken(),this.accept(Sr)?(e.setIdentifier(this.finish(r)),this.finish(e)):this.finish(e,f.DotExpected,[],[c.Comma,c.ParenthesisR])}if(this.peek(Sr)){let r=this.create(x);return this.consumeToken(),e.setIdentifier(this.finish(r)),this.finish(e)}let t=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(c.Colon),t=!0),!e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))&&!t?null:this.finish(e)}_parseGuard(){if(!this.peekIdent("when"))return null;let e=this.create(qn);if(this.consumeToken(),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,f.ConditionExpected);for(;this.acceptIdent("and")||this.accept(c.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,f.ConditionExpected);return this.finish(e)}_parseGuardCondition(){let e=this.create(Kn);return e.isNegated=this.acceptIdent("not"),this.accept(c.ParenthesisL)?(e.addChild(this._parseExpr()),this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)):e.isNegated?this.finish(e,f.LeftParenthesisExpected):null}_parseFunction(){let e=this.mark(),t=this.create(me);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,f.ExpressionExpected)}return this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_parseFunctionIdentifier(){if(this.peekDelim("%")){let e=this.create(G);return e.referenceTypes=[z.Function],this.consumeToken(),this.finish(e)}return super._parseFunctionIdentifier()}_parseURLArgument(){let e=this.mark(),t=super._parseURLArgument();if(!t||!this.peek(c.ParenthesisR)){this.restoreAtMark(e);let r=this.create(x);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return t}};var Nt=class n extends Xe{constructor(e,t){super("@",e,t)}createFunctionProposals(e,t,r,i){for(let s of e){let a={label:s.name,detail:s.example,documentation:s.description,textEdit:_.replace(this.getCompletionRange(t),s.name+"($0)"),insertTextFormat:te.Snippet,kind:k.Function};r&&(a.sortText="z"),i.items.push(a)}return i}getTermProposals(e,t,r){let i=n.builtInProposals;return e&&(i=i.filter(s=>!s.type||!e.restrictions||e.restrictions.indexOf(s.type)!==-1)),this.createFunctionProposals(i,t,!0,r),super.getTermProposals(e,t,r)}getColorProposals(e,t,r){return this.createFunctionProposals(n.colorProposals,t,!1,r),super.getColorProposals(e,t,r)}getCompletionsForDeclarationProperty(e,t){return this.getCompletionsForSelector(null,!0,t),super.getCompletionsForDeclarationProperty(e,t)}};Nt.builtInProposals=[{name:"if",example:"if(condition, trueValue [, falseValue]);",description:p("returns one of two values depending on a condition.")},{name:"boolean",example:"boolean(condition);",description:p('"store" a boolean test for later evaluation in a guard or if().')},{name:"length",example:"length(@list);",description:p("returns the number of elements in a value list")},{name:"extract",example:"extract(@list, index);",description:p("returns a value at the specified position in the list")},{name:"range",example:"range([start, ] end [, step]);",description:p("generate a list spanning a range of values")},{name:"each",example:"each(@list, ruleset);",description:p("bind the evaluation of a ruleset to each member of a list.")},{name:"escape",example:"escape(@string);",description:p("URL encodes a string")},{name:"e",example:"e(@string);",description:p("escape string content")},{name:"replace",example:"replace(@string, @pattern, @replacement[, @flags]);",description:p("string replace")},{name:"unit",example:"unit(@dimension, [@unit: '']);",description:p("remove or change the unit of a dimension")},{name:"color",example:"color(@string);",description:p("parses a string to a color"),type:"color"},{name:"convert",example:"convert(@value, unit);",description:p("converts numbers from one type into another")},{name:"data-uri",example:"data-uri([mimetype,] url);",description:p("inlines a resource and falls back to `url()`"),type:"url"},{name:"abs",description:p("absolute value of a number"),example:"abs(number);"},{name:"acos",description:p("arccosine - inverse of cosine function"),example:"acos(number);"},{name:"asin",description:p("arcsine - inverse of sine function"),example:"asin(number);"},{name:"ceil",example:"ceil(@number);",description:p("rounds up to an integer")},{name:"cos",description:p("cosine function"),example:"cos(number);"},{name:"floor",description:p("rounds down to an integer"),example:"floor(@number);"},{name:"percentage",description:p("converts to a %, e.g. 0.5 > 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:p("rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:p("calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:p("sine function"),example:"sin(number);"},{name:"tan",description:p("tangent function"),example:"tan(number);"},{name:"atan",description:p("arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:p("returns pi"),example:"pi();"},{name:"pow",description:p("first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:p("first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:p("returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:p("returns the lowest of one or more values"),example:"max(@x, @y);"}];Nt.colorProposals=[{name:"argb",example:"argb(@color);",description:p("creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:p("creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:p("creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:p("creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:p("creates a color")},{name:"hue",example:"hue(@color);",description:p("returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:p("returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:p("returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:p("returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:p("returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:p("returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:p("returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:p("returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:p("returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:p("returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:p("returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:p("return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:p("return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:p("return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:p("return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:p("return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:p("return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:p("return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:p("return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:p("return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:p("returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:p("return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}];function co(n,e){let t=ja(n);return Ba(t,e)}function ja(n){function e(h){return n.positionAt(h.offset).line}function t(h){return n.positionAt(h.offset+h.len).line}function r(){switch(n.languageId){case"scss":return new zt;case"less":return new Tt;default:return new ce}}function i(h,u){let w=e(h),b=t(h);return w!==b?{startLine:w,endLine:b,kind:u}:null}let s=[],a=[],l=r();l.ignoreComment=!1,l.setSource(n.getText());let o=l.scan(),d=null;for(;o.type!==c.EOF;){switch(o.type){case c.CurlyL:case Mt:{a.push({line:e(o),type:"brace",isStart:!0});break}case c.CurlyR:{if(a.length!==0){let h=lo(a,"brace");if(!h)break;let u=t(o);h.type==="brace"&&(d&&t(d)!==u&&u--,h.line!==u&&s.push({startLine:h.line,endLine:u,kind:void 0}))}break}case c.Comment:{let h=b=>b==="#region"?{line:e(o),type:"comment",isStart:!0}:{line:t(o),type:"comment",isStart:!1},w=(b=>{let y=b.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//);if(y)return h(y[1]);if(n.languageId==="scss"||n.languageId==="less"){let E=b.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/);if(E)return h(E[1])}return null})(o);if(w)if(w.isStart)a.push(w);else{let b=lo(a,"comment");if(!b)break;b.type==="comment"&&b.line!==w.line&&s.push({startLine:b.line,endLine:w.line,kind:"region"})}else{let b=i(o,"comment");b&&s.push(b)}break}}d=o,o=l.scan()}return s}function lo(n,e){if(n.length===0)return null;for(let t=n.length-1;t>=0;t--)if(n[t].type===e&&n[t].isStart)return n.splice(t,1)[0];return null}function Ba(n,e){let t=e&&e.rangeLimit||Number.MAX_VALUE,r=n.sort((a,l)=>{let o=a.startLine-l.startLine;return o===0&&(o=a.endLine-l.endLine),o}),i=[],s=-1;return r.forEach(a=>{a.startLine=0;d--)if(this.__items[d].match(o))return!0;return!1},s.prototype.set_indent=function(o,d){this.is_empty()&&(this.__indent_count=o||0,this.__alignment_count=d||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},s.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},s.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},s.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var o=this.__parent.current_line;return o.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),o.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),o.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,o.__items[0]===" "&&(o.__items.splice(0,1),o.__character_count-=1),!0}return!1},s.prototype.is_empty=function(){return this.__items.length===0},s.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},s.prototype.push=function(o){this.__items.push(o);var d=o.lastIndexOf(` -`);d!==-1?this.__character_count=o.length-d:this.__character_count+=o.length},s.prototype.pop=function(){var o=null;return this.is_empty()||(o=this.__items.pop(),this.__character_count-=o.length),o},s.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},s.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},s.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},s.prototype.toString=function(){var o="";return this.is_empty()?this.__parent.indent_empty_lines&&(o=this.__parent.get_indent_string(this.__indent_count)):(o=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),o+=this.__items.join("")),o};function a(o,d){this.__cache=[""],this.__indent_size=o.indent_size,this.__indent_string=o.indent_char,o.indent_with_tabs||(this.__indent_string=new Array(o.indent_size+1).join(o.indent_char)),d=d||"",o.indent_level>0&&(d=new Array(o.indent_level+1).join(this.__indent_string)),this.__base_string=d,this.__base_string_length=d.length}a.prototype.get_indent_size=function(o,d){var h=this.__base_string_length;return d=d||0,o<0&&(h=0),h+=o*this.__indent_size,h+=d,h},a.prototype.get_indent_string=function(o,d){var h=this.__base_string;return d=d||0,o<0&&(o=0,h=""),d+=o*this.__indent_size,this.__ensure_cache(d),h+=this.__cache[d],h},a.prototype.__ensure_cache=function(o){for(;o>=this.__cache.length;)this.__add_column()},a.prototype.__add_column=function(){var o=this.__cache.length,d=0,h="";this.__indent_size&&o>=this.__indent_size&&(d=Math.floor(o/this.__indent_size),o-=d*this.__indent_size,h=new Array(d+1).join(this.__indent_string)),o&&(h+=new Array(o+1).join(" ")),this.__cache.push(h)};function l(o,d){this.__indent_cache=new a(o,d),this.raw=!1,this._end_with_newline=o.end_with_newline,this.indent_size=o.indent_size,this.wrap_line_length=o.wrap_line_length,this.indent_empty_lines=o.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new s(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}l.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},l.prototype.get_line_number=function(){return this.__lines.length},l.prototype.get_indent_string=function(o,d){return this.__indent_cache.get_indent_string(o,d)},l.prototype.get_indent_size=function(o,d){return this.__indent_cache.get_indent_size(o,d)},l.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},l.prototype.add_new_line=function(o){return this.is_empty()||!o&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},l.prototype.get_code=function(o){this.trim(!0);var d=this.current_line.pop();d&&(d[d.length-1]===` -`&&(d=d.replace(/\n+$/g,"")),this.current_line.push(d)),this._end_with_newline&&this.__add_outputline();var h=this.__lines.join(` -`);return o!==` -`&&(h=h.replace(/[\n]/g,o)),h},l.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},l.prototype.set_indent=function(o,d){return o=o||0,d=d||0,this.next_line.set_indent(o,d),this.__lines.length>1?(this.current_line.set_indent(o,d),!0):(this.current_line.set_indent(),!1)},l.prototype.add_raw_token=function(o){for(var d=0;d1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},l.prototype.just_added_newline=function(){return this.current_line.is_empty()},l.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},l.prototype.ensure_empty_line_above=function(o,d){for(var h=this.__lines.length-2;h>=0;){var u=this.__lines[h];if(u.is_empty())break;if(u.item(0).indexOf(o)!==0&&u.item(-1)!==d){this.__lines.splice(h+1,0,new s(this)),this.previous_line=this.__lines[this.__lines.length-2];break}h--}},i.exports.Output=l},,,,function(i){function s(o,d){this.raw_options=a(o,d),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs",this.indent_char===" "),this.indent_with_tabs&&(this.indent_char=" ",this.indent_size===1&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","angular","django","erb","handlebars","php","smarty"],["auto"])}s.prototype._get_array=function(o,d){var h=this.raw_options[o],u=d||[];return typeof h=="object"?h!==null&&typeof h.concat=="function"&&(u=h.concat()):typeof h=="string"&&(u=h.split(/[^a-zA-Z0-9_\/\-]+/)),u},s.prototype._get_boolean=function(o,d){var h=this.raw_options[o],u=h===void 0?!!d:!!h;return u},s.prototype._get_characters=function(o,d){var h=this.raw_options[o],u=d||"";return typeof h=="string"&&(u=h.replace(/\\r/,"\r").replace(/\\n/,` -`).replace(/\\t/," ")),u},s.prototype._get_number=function(o,d){var h=this.raw_options[o];d=parseInt(d,10),isNaN(d)&&(d=0);var u=parseInt(h,10);return isNaN(u)&&(u=d),u},s.prototype._get_selection=function(o,d,h){var u=this._get_selection_list(o,d,h);if(u.length!==1)throw new Error("Invalid Option Value: The option '"+o+`' can only be one of the following values: -`+d+` -You passed in: '`+this.raw_options[o]+"'");return u[0]},s.prototype._get_selection_list=function(o,d,h){if(!d||d.length===0)throw new Error("Selection list cannot be empty.");if(h=h||[d[0]],!this._is_valid_selection(h,d))throw new Error("Invalid Default Value!");var u=this._get_array(o,h);if(!this._is_valid_selection(u,d))throw new Error("Invalid Option Value: The option '"+o+`' can contain only the following values: -`+d+` -You passed in: '`+this.raw_options[o]+"'");return u},s.prototype._is_valid_selection=function(o,d){return o.length&&d.length&&!o.some(function(h){return d.indexOf(h)===-1})};function a(o,d){var h={};o=l(o);var u;for(u in o)u!==d&&(h[u]=o[u]);if(d&&o[d])for(u in o[d])h[u]=o[d][u];return h}function l(o){var d={},h;for(h in o){var u=h.replace(/-/g,"_");d[u]=o[h]}return d}i.exports.Options=s,i.exports.normalizeOpts=l,i.exports.mergeOpts=a},,function(i){var s=RegExp.prototype.hasOwnProperty("sticky");function a(l){this.__input=l||"",this.__input_length=this.__input.length,this.__position=0}a.prototype.restart=function(){this.__position=0},a.prototype.back=function(){this.__position>0&&(this.__position-=1)},a.prototype.hasNext=function(){return this.__position=0&&l=0&&o=l.length&&this.__input.substring(o-l.length,o).toLowerCase()===l},i.exports.InputScanner=a},,,,,function(i){function s(a,l){a=typeof a=="string"?a:a.source,l=typeof l=="string"?l:l.source,this.__directives_block_pattern=new RegExp(a+/ beautify( \w+[:]\w+)+ /.source+l,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(a+/\sbeautify\signore:end\s/.source+l,"g")}s.prototype.get_directives=function(a){if(!a.match(this.__directives_block_pattern))return null;var l={};this.__directive_pattern.lastIndex=0;for(var o=this.__directive_pattern.exec(a);o;)l[o[1]]=o[2],o=this.__directive_pattern.exec(a);return l},s.prototype.readIgnored=function(a){return a.readUntilAfter(this.__directives_end_ignore_pattern)},i.exports.Directives=s},,function(i,s,a){var l=a(16).Beautifier,o=a(17).Options;function d(h,u){var w=new l(h,u);return w.beautify()}i.exports=d,i.exports.defaultOptions=function(){return new o}},function(i,s,a){var l=a(17).Options,o=a(2).Output,d=a(8).InputScanner,h=a(13).Directives,u=new h(/\/\*/,/\*\//),w=/\r\n|[\r\n]/,b=/\r\n|[\r\n]/g,y=/\s/,E=/(?:\s|\n)+/g,A=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,I=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function P(T,j){this._source_text=T||"",this._options=new l(j),this._ch=null,this._input=null,this.NESTED_AT_RULE={page:!0,"font-face":!0,keyframes:!0,media:!0,supports:!0,document:!0},this.CONDITIONAL_GROUP_RULE={media:!0,supports:!0,document:!0},this.NON_SEMICOLON_NEWLINE_PROPERTY=["grid-template-areas","grid-template"]}P.prototype.eatString=function(T){var j="";for(this._ch=this._input.next();this._ch;){if(j+=this._ch,this._ch==="\\")j+=this._input.next();else if(T.indexOf(this._ch)!==-1||this._ch===` -`)break;this._ch=this._input.next()}return j},P.prototype.eatWhitespace=function(T){for(var j=y.test(this._input.peek()),X=0;y.test(this._input.peek());)this._ch=this._input.next(),T&&this._ch===` -`&&(X===0||X0&&this._indentLevel--},P.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var T=this._source_text,j=this._options.eol;j==="auto"&&(j=` -`,T&&w.test(T||"")&&(j=T.match(w)[0])),T=T.replace(b,` -`);var X=T.match(/^[\t ]*/)[0];this._output=new o(this._options,X),this._input=new d(T),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var Y=0,$e=!1,K=!1,_e=!1,Ie=!1,S=!1,v=this._ch,F=!1,C,N,D;C=this._input.read(E),N=C!=="",D=v,this._ch=this._input.next(),this._ch==="\\"&&this._input.hasNext()&&(this._ch+=this._input.next()),v=this._ch,this._ch;)if(this._ch==="/"&&this._input.peek()==="*"){this._output.add_new_line(),this._input.back();var M=this._input.read(A),oe=u.get_directives(M);oe&&oe.ignore==="start"&&(M+=u.readIgnored(this._input)),this.print_string(M),this.eatWhitespace(!0),this._output.add_new_line()}else if(this._ch==="/"&&this._input.peek()==="/")this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(I)),this.eatWhitespace(!0);else if(this._ch==="$"){this.preserveSingleSpace(N),this.print_string(this._ch);var Z=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);Z.match(/[ :]$/)&&(Z=this.eatString(": ").replace(/\s+$/,""),this.print_string(Z),this._output.space_before_token=!0),Y===0&&Z.indexOf(":")!==-1&&(K=!0,this.indent())}else if(this._ch==="@")if(this.preserveSingleSpace(N),this._input.peek()==="{")this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var $=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);$.match(/[ :]$/)&&($=this.eatString(": ").replace(/\s+$/,""),this.print_string($),this._output.space_before_token=!0),Y===0&&$.indexOf(":")!==-1?(K=!0,this.indent()):$ in this.NESTED_AT_RULE?(this._nestedLevel+=1,$ in this.CONDITIONAL_GROUP_RULE&&(_e=!0)):Y===0&&!K&&(Ie=!0)}else if(this._ch==="#"&&this._input.peek()==="{")this.preserveSingleSpace(N),this.print_string(this._ch+this.eatString("}"));else if(this._ch==="{")K&&(K=!1,this.outdent()),Ie=!1,_e?(_e=!1,$e=this._indentLevel>=this._nestedLevel):$e=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&$e&&this._output.previous_line&&this._output.previous_line.item(-1)!=="{"&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,this._options.brace_style==="expand"?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(D==="("?this._output.space_before_token=!1:D!==","&&this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line();else if(this._ch==="}")this.outdent(),this._output.add_new_line(),D==="{"&&this._output.trim(!0),K&&(this.outdent(),K=!1),this.print_string(this._ch),$e=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&this._input.peek()!=="}"&&this._output.add_new_line(!0),this._input.peek()===")"&&(this._output.trim(!0),this._options.brace_style==="expand"&&this._output.add_new_line(!0));else if(this._ch===":"){for(var Ue=0;Ue"||this._ch==="+"||this._ch==="~")&&!K&&Y===0)this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&y.test(this._ch)&&(this._ch=""));else if(this._ch==="]")this.print_string(this._ch);else if(this._ch==="[")this.preserveSingleSpace(N),this.print_string(this._ch);else if(this._ch==="=")this.eatWhitespace(),this.print_string("="),y.test(this._ch)&&(this._ch="");else if(this._ch==="!"&&!this._input.lookBack("\\"))this._output.space_before_token=!0,this.print_string(this._ch);else{var Co=D==='"'||D==="'";this.preserveSingleSpace(Co||N),this.print_string(this._ch),!this._output.just_added_newline()&&this._input.peek()===` -`&&F&&this._output.add_new_line()}var ko=this._output.get_code(j);return ko},i.exports.Beautifier=P},function(i,s,a){var l=a(6).Options;function o(d){l.call(this,d,"css"),this.selector_separator_newline=this._get_boolean("selector_separator_newline",!0),this.newline_between_rules=this._get_boolean("newline_between_rules",!0);var h=this._get_boolean("space_around_selector_separator");this.space_around_combinator=this._get_boolean("space_around_combinator")||h;var u=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_style="collapse";for(var w=0;w0&&fo(r,u-1);)u--;u===0||uo(r,u-1)?h=u:u0){let h=t.insertSpaces?Mr(" ",l*s):Mr(" ",s);d=d.split(` -`).join(` -`+h),e.start.character===0&&(d=h+d)}return[{range:e,newText:d}]}function mo(n){return n.replace(/^\s+/,"")}var qa=123,Ka=125;function Ga(n,e){for(;e>=0;){let t=n.charCodeAt(e);if(t===qa)return!0;if(t===Ka)return!1;e--}return!1}function Le(n,e,t){if(n&&n.hasOwnProperty(e)){let r=n[e];if(r!==null)return r}return t}function Ha(n,e,t){let r=e,i=0,s=t.tabSize||4;for(;r && ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",browsers:["E12","FF28","S9","C29","IE11","O16"],values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."},{name:"start"},{name:"end"},{name:"normal"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"space-around"},{name:"space-between"},{name:"space-evenly"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | | | ? ",relevance:66,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-content"}],description:"Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",browsers:["E12","FF20","S9","C29","IE11","O16"],values:[{name:"baseline",description:"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item's margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"normal"},{name:"start"},{name:"end"},{name:"self-start"},{name:"self-end"},{name:"first baseline"},{name:"last baseline"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | stretch | | [ ? ]",relevance:87,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-items"}],description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",browsers:["E12","FF20","S9","C52","IE11","O12.1"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"safe"},{name:"unsafe"},{name:"legacy"}],syntax:"normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/justify-items"}],description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",browsers:["E16","FF45","S10.1","C57","IE10","O44"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | | ? [ | left | right ]",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/justify-self"}],description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",browsers:["E12","FF20","S9","C29","IE10","O12.1"],values:[{name:"auto",description:"Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"normal"},{name:"self-end"},{name:"self-start"},{name:"baseline",description:"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item's margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"safe"},{name:"unsafe"}],syntax:"auto | normal | stretch | | ? ",relevance:73,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-self"}],description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert | revert-layer",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",browsers:["E12","FF16","S9","C43","IE10","O30"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"#",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",browsers:["E12","FF16","S9","C43","IE10","O30"],syntax:"